?? 主.cpp
字號:
#include<iostream.h>
#include<string.h>
#include<iomanip.h>
#include<conio.h>
#include<iostream>
struct student //定義一個學生結構體
{ char name[8];
int num;
char bj[20];
int GS,YY,JSJ,SUM; };
int s=0;
class student1 //定義一個學生類
{
private:
student stu[40];
char name,bj;
int num;
int GS,YY,JSJ,SUM;
public:
void sr(char *,int,char *,int,int,int);
void print(int);
int jc(int xxh)
{ int m=0;
while(m<=s+1)
if(xxh==stu[m++].num) break;
if(m>s+1) return 0;
else
return 1; }
void cz(int);
void sc(int);
void sum(int); };
void student1::sr(char *xm,int xh,char *dz,int gs,int yy,int jsj) //輸入模塊
{ strcpy(stu[s].name,xm);
stu[s].num=xh; strcpy(stu[s].bj,dz); stu[s].GS=gs;
stu[s].YY=yy;
stu[s].JSJ=jsj; }
void student1::print(int s) //輸出模塊
{ cout<<s<<"\t";
cout<<stu[s].name<<"\t";
cout<<stu[s].num<<"\t";
cout<<stu[s].bj<<"\t";
cout<<stu[s].GS<<"\t";
cout<<stu[s].YY<<"\t";
cout<<stu[s].JSJ<<"\t"; cout<<endl; }
void student1::cz(int s) //查找模塊
{ int xxh,p;
while(s==0)
{ cout<<"沒有記錄,請先輸入記錄!"<<endl;
break; }
if(s!=0)
{cout<<"請輸入您要查找的學號:";
cin>>xxh;
while (xxh<100000||xxh>999999) //判斷輸入的學號是否正確
{ cout<<"您輸入的學號不正確,請輸入一個六位數的學號"<<endl;
cin>>xxh; } while(s!=0) //查找是否有符合條件的記錄
{ p=1;
if (xxh==stu[s].num)
{ cout<<"姓名\t學號\t班級\t高數\t英語\t計算機"<<endl;
cout<<stu[s].name<<"\t";
cout<<stu[s].num<<"\t";
cout<<stu[s].bj<<"\t";
cout<<stu[s].GS<<"\t";
cout<<stu[s].YY<<"\t";
cout<<stu[s].JSJ<<endl;
getch(); break; }
else
p=0; s--; } if(p==0)
cout<<"很抱歉,沒有找到您要查找的學號!"<<endl;}
getch(); }
void student1::sc(int n) //刪除模塊
{ int xxh,p;
char da;
while(s==0)
{ cout<<"沒有記錄,請先輸入記錄!"<<endl; break; }
if(s!=0)
{ cout<<"請輸入您要刪除的學號:";
cin>>xxh;
while (xxh<100000||xxh>999999)
{ cout<<"您輸入的學號不正確,請您輸入一個六位數的學號" <<endl;
cin>>xxh; }
for(int i=1;i<=n;i++)
{ if(stu[i].num!=xxh) p=0;
if(stu[i].num==xxh)
{ cout<<"姓名\t學號\t班級\t高數\t英語\t計算機"<<endl;
cout<<stu[i].name<<"\t";
cout<<stu[i].num<<"\t";
cout<<stu[i].bj<<"\t";
cout<<stu[i].GS<<"\t";
cout<<stu[i].YY<<"\t";
cout<<stu[i].JSJ<<endl;
cout<<"您確實要刪除該學生的記錄嗎?(y/n)";
cin>>da;
if(da=='y'||da=='Y')
{ for(int j=i;j<=n-1;j++) //刪除記錄
{ strcpy(stu[j].name,stu[j+1].name);
stu[j].num=stu[j+1].num;
strcpy(stu[j].bj,stu[j+1].bj);
stu[j].GS=stu[j+1].GS;
stu[j].YY=stu[j+1].YY;
stu[j].JSJ=stu[j+1].JSJ; }
cout<<"該記錄已刪除!"<<endl; s=s-1; p=1; break; }
else
{ cout<<"該記錄未刪除!"<<endl;
p=1; } } }
if(p==0) cout<<"很抱歉,沒有找到您要找的學號!"<<endl; }
getch(); }
void student1::sum(int s) //排序模塊
{ int chang;
int b[40];
while(s==0)
{ cout<<"沒有記錄,請先輸入記錄!"<<endl; break;
} if(s!=0)
{ cout<<"姓名\t學號\t班級\t英語\t";
cout<<"高數\t計算機\t總分"<<endl;
for(int k=1;k<=s;k++)
{ b[k]=stu[k].GS+stu[k].YY+stu[k].JSJ;
stu[k].SUM=stu[k].GS+stu[k].YY+stu[k].JSJ;
} for(int i=1;i<=s;i++) //利用冒泡法對B[]進行排序
for(int j=1;j<=s-i;j++)
if(b[j]<b[j+1])
{ chang=b[j];
b[j]=b[j+1];
b[j+1]=chang; }
for(int h=1;h<=s;h++) //輸出與B[]中相同總分所對應的內容
for(int e=1;e<=s;e++)
if(b[h]==stu[e].SUM)
{ cout<<stu[e].name<<"\t";
cout<<stu[e].num<<"\t";
cout<<stu[e].bj<<"\t";
cout<<stu[e].YY<<"\t";
cout<<stu[e].GS<<"\t";
cout<<stu[e].JSJ<<"\t";
cout<<stu[e].SUM<<endl; } }
getch();
} void main()
{ student1 st;
char da,a;
char *xm,*dz;
int gs,yy,jsj,xh;
time_t t;
while(1)
{ system("cls");
cout<<endl;
cout<<" 學生信息管理"<<endl;
cout<<"1.添加學生資料"<<' ';
cout<<"2.顯示學生資料"<< ' ';
cout<<"3.查找"<<' ';
cout<<"4.刪除"<<' ';
cout<<"5.按總分進行排序"<<endl;
cout<<"6.退出"<<endl;
cout<<"請選擇操作(1-6)"<<endl;
cin>>a;
t: if(a=='6') break;
switch (a)
{ case '1':
{ cout<<"請依次輸入學生的姓名,學號,班級,高數,英語,計算機:"<<endl;
xm=new char[];dz=new char[]; cin>>xm>>xh>>dz>>gs>>yy>>jsj;
while(st.jc(xh)) //調用JC模塊判斷學號是否重復
{ cout<<"學號重復,請重新輸入!"<<endl;
cin>>xh; }
s=s+1;
st.sr(xm,xh,dz,gs,yy,jsj);
cout<<"是否繼續輸入?(y/n)";
cin>>da;
while (da=='y'||da=='Y') //判斷是否要繼續輸入
{ cout<<"請依次輸入學生的姓名,學號,班級,高數,英語,計算機:"<<endl;
xm=new char[];dz=new char[];
cin>>xm>>xh>>dz>>gs>>yy>>jsj;
while(st.jc(xh))
{ cout<<"學號重復,請重新輸入!"<<endl;
cin>>xh; }
s=s+1;
st.sr(xm,xh,dz,gs,yy,jsj);
cout<<"是否繼續輸入?(y/n)";
cin>>da; }
getch();
};break;
case '2':
{ if(s==0) //判斷是否有記錄輸入
{ cout<<"沒有記錄,請先輸入記錄!"<<endl; getch(); break; }
if(s!=0)
{ cout<<"序號"<<"\t"; cout<<"姓名"<<"\t"; cout<<"學號"<<"\t";
cout<<"班級"<<"\t";
cout<<"高數"<<"\t";
cout<<"英語"<<"\t";
cout<<"計算機"<<endl;
for(int i=1;i<=s;i++)
st.print(i);
getch(); } };
break;
case '3':st.cz(s);break;
case '4':st.sc(s);
break;
case '5':st.sum(s);break; default:
{ while(a=='0'||a>'6') //判斷選項是否正確
{ cout<<"錯誤選項,請重新選擇!"<<endl;
cin>>a; } goto t; };break; } }
cout<<"謝謝您的使用!"<<endl; }
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -