C++结构体学生成绩统计系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include
#include
#include
using namespace std;
struct student
{
char number[10];// 学号
string name;// 姓名
double xuekea;// 第一个学科成绩
double xuekeb;// 第二个学科成绩
double xuekec;// 第三个学科成绩
double xueked;// 第四个学科成绩
double total;// 总分
double average;// 总成绩平均分
int rank;//排名
}s[1000];//
struct xueke//定义一个xueke类型的结构体,成员代表的是四门学科的名字
{
string mingzia;
string mingzib;
string mingzic;
string mingzid;
}x[1];
void welcome(void);//欢迎界面
void luruxk(xueke &x);//录入四门学科
void luru(student &s,xueke &x);//录入学生的成绩函数
void count(student &s);//计算学生成绩总分和平均分的函数
void paixu(student s[],int N);//排名函数
void print(student &s);//输出学生信息,并写入“成绩备份.txt”。
void printxk(xueke &x);//将“排名,姓名,学号,四科学科的名字”显示屏幕并写入“成绩备份.txt”。
void print_and_write(student &s);//将学生信息显示在显示屏上并写入文件“成绩备份.txt”中。
int search1(student s[],int N,char *n);//按学号的查找方式
void search2(student s[],int N,string x);//按姓名的查找方式
void Delete(student s[],int &N,string mmm) ;//删除学生信息
void main()
{
welcome(); system("pause"); system("cls");system("COLOR 73");
int renshu=0;
int order=0;
while (order!=7)
{
cout<<"`````````````````````命令菜单`````````````````"<
switch(order)
{
case 1:
{
luruxk(x[0]);
}
break;
case 2:
{
cout<<"=================请输入学生信息====================="<
for(int i=0;i
cout<<"请输入第"<luru(s[i],x[0]);
count(s[i]);
++renshu;
if(s[i].name=="结束")
{
--renshu;
--renshu;
}
}
}
break;
case 3:
{
system("cls");
printxk(x[0]);
paixu(s,renshu);
for(int i=0;i
}
break;
case 4:
{
cout<<"请选择查找方式:"
<
cin>>mingling;
switch(mingling)
{
case 1:
{
char code[10];
cout<<"请输入要查找的学号: ";
cin>>code;
int result=search1(s,renshu,code);
if (result==-1)
cout<<"查找的学号不存在"<
cout<<"\n你要查找的信息已经找到"<
}
break;
case 2:
{
string t;
cout<<"请输入你要查找的姓名:"<
search2(s,renshu,t);
}
break;
}
}
break;
case 5:
{
int a=0;
cout<<"请选择查找方式:===①:按姓名②:按学号"<
if(a==1)
{
bool flag=false;
string nam;
cout<<"请输入要查找的姓名"<
for(int i=0;i
if(s[i].name==nam)
{
cout<cout<<"学号: ";
cin>>s[i].number;
cout<
cout<
cout<
cout<
s[i].total=(s[i].xuekea+s[i].xuekeb+s[i].xuekec+s[i].xueked);
s[i].average=s[i].total/4;
cout<<"信息修改完毕"<
break;
}
}
if(flag==false)cout<<"信息貌似不存在";
}
if(a==2)
{
char cod[10];
cout<<"请输入学生号";
cin>>cod;
int jieguo=search1(s,renshu,cod);
if(jieguo==-1)
cout<<" sorry 未找到"<
{
cout<cout<<"学号"<<"\t";
cin>>s[jieguo].number;
cout<
cout<
cout<
cout<
s[jieguo].total=(s[jieguo].xuekea+s[jieguo].xuekeb+s[jieguo].xuekec+s[jieguo].xueked);
s[jieguo].average=s[jieguo].total/4;
cout<<"信息修改完毕"<
}
if(a!=1&&a!=2)
{
cout<<"命令有误"<
}
}
break;
case 6:
{
string m_z;
cout<<"请输入你要删除的学生的名字: "<
Delete(s
,renshu,m_z);
}
break;
case 7:
break;
default:
cout<<"请在0到6之间选择"<
}
}
void welcome(void)
{
system("COLOR 3f");
cout<<" --------【学生信息管理系统】-------\n";
cout<<" 制作人: 李晓东 指导人:杨燕翔 \n";
cout<<" $$$$$$$$$$$$\n";
cout<<" $$\n";
cout<<" $$\n";
cout<<" $$\n";
cout<<" $$$$$$$$$$$$\n";
cout<<" $$\n";
cout<<" $$\n";
cout<<" $$\n";
cout<<" $$$$$$$$$$$$$\n";
cout<<" ¥¥¥¥¥¥¥¥¥¥\n";
cout<<" ¥¥¥¥¥¥¥¥¥¥\n";
cout<<" ¥¥ \n";
cout<<" ¥¥ \n";
cout<<" ¥¥ \n";
cout<<" ¥¥ \n";
cout<<" ¥¥ \n";
cout<<" ¥¥ \n";
cout<<" ¥¥ \n";
cout<<" ¥¥ \n";
cout<<" ¥¥ \n";
}
void luruxk(xueke &x)
{
system("cls");
cout<<"=================请输入学科信息====================="<
cin>>x.mingzia;
cout<
cin>>x.mingzib;
cout<
cin>>x.mingzic;
cout<
cin>>x.mingzid;
}
void luru(student &s,xueke &x)
{
cout<<"======姓名:";
cin>>;
cout<
{
cout<<"======学号:";
cin>>s.number;
cout<
cout<
cout<
cout<
cout<
else
cout<<"统计结束"<
}
int search1(student s[],int N,char *c)
{
for (int i=0;i
if(strcmp(s[i].number,c)==0)
return i;
}
return -1;
}
void search2(student s[],int N,string xm)
{
bool flag=false;
for(int i=0;i
{
cout<<"信息被找到内容如下:"<
flag=true;
break;
}
if(flag==false)cout<<"信息貌似不存在";
}
void count(student &s)
{
s.total=0;
s.average=0;
s.rank=0;
s.total=s.xuekea+s.xuekeb+s.xuekec+s.xueked;
s.average=s.total/4;
}
void print(student &s)
{
cout<<"=========姓名"<<"\t"<<<
ut<<"========="<
void printxk(xueke &x)
{
ofstream outfile("成绩备份.txt",ios::out|ios::app);
if(! outfile)
{
cerr<<"open error!"<
}
cerr<<"排名"<<"\t"<<"姓名"<<"\t"<<"学号"<<"\t\t"<
}
void print_and_write(student &s)
{
ofstream outfile("成绩备份.txt",ios::out|ios::app);
if(! outfile)
{
cerr<<"open error!"<
}
cerr<
}
void paixu(student s[],int N)
{
student itemp;
for(int i=0;i<(N-1);i++)
{
for(int j=i+1;j
if(s[i].total{
itemp=s[i];
s[i]=s[j];
s[j]=itemp;
}
}
}
for(int j=0;j
}
void Delete(student s[],int &N,string mmm) //按名字查找信息,删除信息。
{
int i=0,j;
while(s[i].name!=mmm&&i
{
cout<<"\t没有发现该学生资料!\n"; /*返回失败信息*/
}
else
{
for(j=i;j
s[j]=s[j+1];
}
cout<<"\t"<<"当前信息已删除成功!"<
}
}