📄 主.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 + -