学生成绩管理系统用C++编程教学提纲.docx
- 文档编号:26763468
- 上传时间:2023-06-22
- 格式:DOCX
- 页数:18
- 大小:18.14KB
学生成绩管理系统用C++编程教学提纲.docx
《学生成绩管理系统用C++编程教学提纲.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统用C++编程教学提纲.docx(18页珍藏版)》请在冰豆网上搜索。
学生成绩管理系统用C++编程教学提纲
学生成绩管理系统
要求:
1.学生的信息用结构体来表示。
structstu{
intsno;//学号
charname[8];//姓名
charsex[3];//性别
charinclass[8];//班级
floatmath;//数学成绩
floatEnglish;//英语成绩
floatcomputer;//计算机成绩
}
2.能够按学号、按性别、按班级查询。
查询方式可以自己补充。
3.能够统计每个学生的平均成绩、总成绩、并可以按平均成绩和总成绩进行排序(排序的方法很多,大家应该上网多查查排序的方法,并比较各个排序方式的好坏),并在屏幕上打印排序结果。
4.能够修改、删除、添加学生的信息。
5.系统的各个功能模块要求用函数的形式实现。
6.在主函数里通过菜单来调用各个函数。
7.用链表或数组来存储班级学生。
8.学生的信息能够保存在文件里(思考用二进制文件和文本文件的异同)。
如果用文本文件存储,则文件格式如下:
学号姓名性别班级数学英语计算机
0601王鹏男一班68.55896
0602李云女二班68.58898
0603赵亚男女一班58.54896
0604刘飞男三班68.57858
9.能够对文件进行读写、修改、删除。
#include
#include
#include
#include
#include
FILE*fp;
structstudent{
intsno;//学号
charname[8];//姓名
charsex[4];//性别
charClass[4];//班级
floatmath;//数学成绩
floatEnglish;//英语成绩
floatcomputer;//计算机成绩
floatzong;//总成绩
floatping;//平均成绩
}stu[100],change;
voidprint()//定义界面函数
{
cout<<"*********************************************************"< cout< cout<<"*********************************************************"< cout< cout< cout< cout< cout< cout< cout< cout<<"*********************************************************"< } voidcjxscj()//定义创建学生成绩文件函数 { inti;chara; for(i=0;i<100;i++)//输入学生信息 { cout<<"请输入第"< "< cout<<"学号: "; cin>>stu[i].sno; cout<<"姓名: "; cin>>stu[i].name; cout<<"性别: "; cin>>stu[i].sex; cout<<"班级: "; cin>>stu[i].Class; cout<<"数学成绩: "; cin>>stu[i].math; cout<<"英语成绩: "; cin>>stu[i].English; cout<<"计算机成绩: "; cin>>stu[i].computer; stu[i].zong=stu[i].math+stu[i].English+stu[i].computer; stu[i].ping=stu[i].zong/3; cout<<"继续输入请按@"< cout<<"退出输入,返回主菜单请按#"< cin>>a; if(a=='#') i=100; } fp=fopen("fh.dat","wb");//打开fh.dat文件 for(i=0;i<100;i++)//把结构体的信息存入fh.dat文件 if(fwrite(&stu[i],sizeof(student),1,fp)! =1) cout<<"文件写入出错"< fclose(fp);//关闭文件 print();//打印出主菜单 } voidzjxsxx()//定义增加学生信息函数 { inti;chary; if((fp=fopen("fh.dat","rb+"))==NULL)//打开fh.dat文件 { cout<<"不能打开此文件"< exit(0); } for(i=0;i<100;i++)//把文件中数据付给结构体 fread(&stu[i],sizeof(student),1,fp); for(i=98;i>=0;i--) if(stu[i].math==0) break; cout<<"请输入需要添加的学生信息"< while(i>0)//输入需要添加的学生信息 { cout<<"学号: ";cin>>stu[i].sno; cout<<"姓名: ";cin>>stu[i].name; cout<<"性别: ";cin>>stu[i].sex; cout<<"班级: ";cin>>stu[i].Class; cout<<"数学: ";cin>>stu[i].math; cout<<"英语: ";cin>>stu[i].English; cout<<"计算机: ";cin>>stu[i].computer; stu[i].zong=stu[i].math+stu[i].English+stu[i].computer; stu[i].ping=stu[i].zong/3; cout<<"继续添加请按@"< cout<<"返回主菜单请按#"< cin>>y; if(y=='#')//控制使其停止输入 i=0; i--; } rewind(fp);//移动文件内部位置指针到文件首 for(i=0;i<100;i++)//把结构体的信息存入fh.dat文件 fwrite(&stu[i],sizeof(student),1,fp); fclose(fp);//关闭文件 print();//打印出主菜单 } voidscxsxx()//定义删除学生信息函数 { inti,p,k,j;charw;charx[8]; if((fp=fopen("fh.dat","rb+"))==NULL)//打开fh.dat文件 { cout<<"不能打开此文件"< exit(0); } for(i=0;i<100;i++)//把文件中数据付给结构体 fread(&stu[i],sizeof(student),1,fp); loop: cout<<"请输入你要删除学生信息的姓名或学号"< cout<<"输入姓名请按1"< cout<<"输入学号请按2"< cin>>p; if(p==1)//通过输入名字查找要删除的信息 { cout<<"请输入姓名: "; cin>>x; } else//通过输入学号查找要删除的信息 { cout<<"请输入学号: "; cin>>k; } i=0,j=0; while(i<100) { if(strcmp(x,stu[i].name)==0||k==stu[i].sno)//找出要删除的学生信息,将其输出 { cout<<"学生信息情况: "< cout<<"学号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t" <<"班级"<<"\t"<<"数学"<<"\t"<<"英语"<<"\t" <<"计算机"<<"\t"<<"总成绩"<<"\t"<<"平均成绩"; cout< < stu[i].math<<"\t"< stu[i].computer<<"\t"< stu[i].ping< cout<<"确定删除请按#"< cout<<"取消删除请按@"< cin>>w; if(w=='#')//控制是否删除 i=100; } i++;j++; } if(i==100)//控制是否找到要删除学生的信息 cout<<"没有找到你要删除的学生信息"< else for(i=j-1;i<100;i++)//从要删除的学生信息开始,将后一个结构体的 stu[i]=stu[i+1];//信息赋值给前一个 cout<<"继续删除请按#"< cout<<"返回主菜单请按@"< cin>>w; if(w=='#')//控制是否继续删除 gotoloop; rewind(fp);//移动文件内部位置指针到文件首 for(i=0;i<100;i++)//把结构体的信息存入fh.dat文件 fwrite(&stu[i],sizeof(student),1,fp); fclose(fp);//关闭文件 print();//打印出主菜单 } voidxgxsxx()//定义修改学生信息函数 { inti,p,k,j=0;charu,v[8]; if((fp=fopen("fh.dat","rb+"))==NULL)//打开fh.dat文件 { cout<<"不能打开此文件"< exit(0); } for(i=0;i<100;i++)//把文件中数据付给结构体 fread(&stu[i],sizeof(student),1,fp); hoop: cout<<"请输入你要修改学生信息的姓名或学号"< cout<<"输入姓名请按1"< cout<<"输入学号请按2"< cin>>p; if(p==1)//通过输入姓名查找要修改的学生信息 { cout<<"请输入姓名: "; cin>>v; } else//通过输入学号查找要修改的学生信息 { cout<<"请输入学号: "; cin>>k; } i=0; while(i<100) { if(strcmp(v,stu[i].name)==0||k==stu[i].sno)//找出要修改的学生信息,将其输出 { cout< "< cout<<"学号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t" <<"班级"<<"\t"<<"数学"<<"\t"<<"英语"<<"\t" <<"计算机"<<"\t"<<"总成绩"<<"\t"<<"平均成绩"; cout< < stu[i].math<<"\t"< stu[i].computer<<"\t"< stu[i].ping< i=100; } i++;j++; } if(i==100)//控制是否找到要修改学生的信息 cout<<"没有找到你要修改的学生的信息"< else { cout<<"下面请开始修改"< cout<<"学号: "; cin>>change.sno; cout<<"姓名: "; cin>>change.name; cout<<"性别: "; cin>>change.sex; cout<<"班级: "; cin>>change.Class; cout<<"数学成绩: "; cin>>change.math; cout<<"英语成绩: "; cin>>change.English; cout<<"计算机成绩: "; cin>>puter; change.zong=change.math+change.English+puter; change.ping=change.zong/3; stu[j-1]=change; } cout<<"继续修改请按@"< cout<<"返回主菜单请按#"< cin>>u; if(u=='@')//控制是否继续修改 gotohoop; rewind(fp);//移动文件内部位置指针到文件首 for(i=0;i<100;i++)//把结构体的信息存入fh.dat文件 fwrite(&stu[i],sizeof(student),1,fp); fclose(fp);//关闭文件 print();//打印出主菜单 } voidcxxsxx()//定义查询学生信息函数 { intb,d,f;booltf; charz[8],x[4],g[4]; if((fp=fopen("fh.dat","rb"))==NULL)//打开fh.dat文件 { cout<<"不能打开该文件"< exit(0); } cout<<"选择1姓名查询"< cout<<"选择2学号查询"< cout<<"选择3性别查询"< cout<<"选择4班级查询"< cout<<"选择5退出查询系统,返回主菜单"< cin>>d; for(b=0;b<100;b++)//把文件中数据付给结构体 fread(&stu[b],sizeof(student),1,fp); while(d<5) { tf=false; if(d==1)//按姓名查询 { cout<<"请输入姓名: "; cin>>z;b=0; while(b<100) { if(strcmp(z,stu[b].name)==0)//找到要查询学生的信息,将其输出 { cout<<"学号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t" <<"班级"<<"\t"<<"数学"<<"\t"<<"英语"<<"\t" <<"计算机"<<"\t"<<"总成绩"<<"\t"<<"平均成绩"; cout< < stu[b].math<<"\t"< stu[b].computer<<"\t"< stu[b].ping; tf=true; } b++; } if(tf=false)//控制是否找到要查询的学生信息 cout<<"没有你要查询的信息"< } elseif(d==2)//按学号查询 { cout<<"请输入学号: "; cin>>f;b=0; while(b<100) { if(f==stu[b].sno)//找到要查询学生的信息,将其输出 { cout<<"学号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t" <<"班级"<<"\t"<<"数学"<<"\t"<<"英语"<<"\t" <<"计算机"<<"\t"<<"总成绩"<<"\t"<<"平均成绩"; cout< < stu[b].math<<"\t"< stu[b].computer<<"\t"< stu[b].ping; b=100; } b++; } if(b==100)//控制是否找到要查询的学生信息 cout<<"没有你要查询的信息"< } elseif(d==3)//按性别查询 { cout<<"请输入性别: "; cin>>x;b=0; while(b<100) { if(strcmp(x,stu[b].sex)==0)//找到要查询学生的信息,将其输出 { cout<<"学号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t" <<"班级"<<"\t"<<"数学"<<"\t"<<"英语"<<"\t" <<"计算机"<<"\t"<<"总成绩"<<"\t"<<"平均成绩"; cout< < stu[b].math<<"\t"< stu[b].computer<<"\t"< stu[b].ping; tf=true; } b++; } if(tf==false)//控制是否找到要查询的学生信息 cout<<"没有你要查询的信息"< } else//按班级查询 { cout<<"请输入班级: "; cin>>g;b=0; while(b<100) { if(strcmp(g,stu[b].Class)==0)//找到要查询学生的信息,将其输出 { cout<<"学号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t" <<"班级"<<"\t"<<"数学"<<"\t"<<"英语"<<"\t" <<"计算机"<<"\t"<<"总成绩"<<"\t"<<"平均成绩"; cout< < stu[b].math<<"\t"< stu[b].computer<<"\t"< stu[b].ping; tf=true; } b++; } if(tf==false)//控制是否找到要查询的学生信息 cout<<"没有你要查询的信息"< } cout< cout<<"选择1姓名查询"< cout<<"选择2学号查询"< cout<<"选择3性别查询"< cout<<"选择4班级查询"< cout<<"选择5退出查询系统,返回主菜单"< cin>>d;//控制while循环语句 } print();//打印出主菜单 } voidpx()//定义排序函数 { inti,j; if((fp=fopen("fh.dat","r"))==NULL)//打开fh.dat文件 { cout<<"不能打开此文件"< exit(0); } for(i=0;i<100;i++)//把文件中数据付给结构体 fread(&stu[i],sizeof(student),1,fp); for(i=0;i<100;i++)//采用降序法排序 for(j=i+1;j<100;j++) if(stu[i].zong { change=stu[i]; stu[i]=stu[j]; stu[j]=change; } cout< "< cout<<"学号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t" <<"班级"<<"\t"<<"数学"<<"\t"<<"英语"<<"\t" <<"计算机"<<"\t"<<"总成绩"<<"\t"<<"平均成绩"; for(i=0;i<100;i++) if(stu[i].math! =0)//控制输出排序后的学生信息 cout< < stu[i].math<<"\t"< stu[i].computer<<"\t"< stu[i].ping< fclose(fp);//关闭文件 print();//打印出主菜单 } voidmain() { in
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统 C+ 编程 教学 提纲
![提示](https://static.bdocx.com/images/bang_tan.gif)