1、学生成绩管理系统用C+编程教学提纲 学生成绩管理系统要求:1. 学生的信息用结构体来表示。struct stu int sno; /学号 char name8; /姓名 char sex3; /性别 char inclass8; /班级 float math; /数学成绩 float English; /英语成绩 float computer; /计算机成绩2. 能够按学号、按性别、按班级查询。查询方式可以自己补充。3. 能够统计每个学生的平均成绩、总成绩、并可以按平均成绩和总成绩进行排序(排序的方法很多,大家应该上网多查查排序的方法,并比较各个排序方式的好坏),并在屏幕上打印排序结果。4.
2、能够修改、删除、添加学生的信息。5. 系统的各个功能模块要求用函数的形式实现。6. 在主函数里通过菜单来调用各个函数。7. 用链表或数组来存储班级学生。8. 学生的信息能够保存在文件里(思考用二进制文件和文本文件的异同)。如果用文本文件存储,则文件格式如下:学号 姓名 性别 班级 数学 英语 计算机0601 王鹏 男 一班 68.5 58 960602 李云 女 二班 68.5 88 980603 赵亚男 女 一班 58.5 48 960604 刘飞 男 三班 68.5 78 589. 能够对文件进行读写、修改、删除。#include#include#include#include#inclu
3、deFILE *fp;struct student int sno; /学号 char name8; /姓名 char sex4; /性别 char Class4; /班级 float math; /数学成绩 float English; /英语成绩 float computer; /计算机成绩 float zong; /总成绩 float ping; /平均成绩stu100,change;void print() /定义界面函数 cout*endl; coutsetw(15)* 欢进迎入学生成绩管理系统setw(5)*endl; cout*endl; coutsetw(17)* 1. 创建学
4、生成绩文件setw(5)*endl; coutsetw(17)* 2. 增加学生信息 setw(5)*endl; coutsetw(17)* 3. 删除学生信息 setw(5)*endl; coutsetw(17)* 4. 修改学生信息 setw(5)*endl; coutsetw(17)* 5. 学生成绩查询信息setw(5)*endl; coutsetw(17)* 6. 学生成绩排序浏览setw(5)*endl; coutsetw(17)* 0. 退出系统setw(13)*endl; cout*endl;void cjxscj() /定义 创建学生成绩文件 函数 int i;char a;
5、 for(i=0;i100;i+) /输入学生信息 cout请输入第i+1个学生的信息:endl; coutstui.sno; coutstui.name; coutstui.sex; coutstui.Class; coutstui.math; coutstui.English; puter; stui.zong=stui.math+stui.English+puter; stui.ping=stui.zong/3; cout继续输入请按endl; cout退出输入,返回主菜单请按#a; if(a=#) i=100; fp=fopen(fh.dat,wb); /打开fh.dat文件 for(
6、i=0;i100;i+) /把结构体的信息存入fh.dat文件 if(fwrite(&stui,sizeof(student),1,fp)!=1) cout文件写入出错endl; fclose(fp); /关闭文件 print(); /打印出主菜单void zjxsxx() /定义 增加学生信息 函数 int i;char y; if(fp=fopen(fh.dat,rb+)=NULL) /打开fh.dat文件 cout不能打开此文件endl; exit(0); for(i=0;i=0;i-) if(stui.math=0) break; cout请输入需要添加的学生信息0) /输入需要添加的
7、学生信息 coutstui.sno; coutstui.name; coutstui.sex; coutstui.Class; coutstui.math; coutstui.English; puter; stui.zong=stui.math+stui.English+puter; stui.ping=stui.zong/3; cout继续添加请按endl; cout返回主菜单请按#y; if(y=#) /控制使其停止输入 i=0; i-; rewind(fp); /移动文件内部位置指针到文件首 for(i=0;i100;i+) /把结构体的信息存入fh.dat文件 fwrite(&stu
8、i,sizeof(student),1,fp); fclose(fp); /关闭文件 print(); /打印出主菜单void scxsxx() /定义删除学生信息 函数 int i,p,k,j;char w;char x8; if(fp=fopen(fh.dat,rb+)=NULL) /打开fh.dat文件 cout不能打开此文件endl; exit(0); for(i=0;i100;i+) /把文件中数据付给结构体 fread(&stui,sizeof(student),1,fp);loop:cout请输入你要删除学生信息的姓名或学号endl; cout输入姓名请按1endl; cout输
9、入学号请按2p; if(p=1) /通过输入名字查找要删除的信息 coutx; else /通过输入学号查找要删除的信息 coutk; i=0,j=0; while(i100) if(strcmp(x,stui.name)=0|k=stui.sno) /找出要删除的学生信息,将其输出 cout学生信息情况:endl; cout学号t姓名t性别t 班级t数学t英语t 计算机t总成绩t平均成绩; coutendlstui.snotstui.namet stui.sextstui.Classt stui.mathtstui.Englisht putertstui.zongt stui.pingend
10、l; cout确定删除请按#endl; cout取消删除请按w; if(w=#) /控制是否删除 i=100; i+;j+; if(i=100) /控制是否找到要删除学生的信息 cout没有找到你要删除的学生信息endl; else for(i=j-1;i100;i+) /从要删除的学生信息开始,将后一个结构体的 stui=stui+1; /信息赋值给前一个 cout继续删除请按#endl; cout返回主菜单请按w; if(w=#) /控制是否继续删除 goto loop; rewind(fp); /移动文件内部位置指针到文件首 for(i=0;i100;i+) /把结构体的信息存入fh.d
11、at文件 fwrite(&stui,sizeof(student),1,fp); fclose(fp); /关闭文件 print(); /打印出主菜单void xgxsxx() /定义 修改学生信息 函数 int i,p,k,j=0;char u,v8; if(fp=fopen(fh.dat,rb+)=NULL) /打开fh.dat文件 cout不能打开此文件endl; exit(0); for(i=0;i100;i+) /把文件中数据付给结构体 fread(&stui,sizeof(student),1,fp);hoop:cout请输入你要修改学生信息的姓名或学号endl; cout输入姓名
12、请按1endl; cout输入学号请按2p; if(p=1) /通过输入姓名查找要修改的学生信息 coutv; else /通过输入学号查找要修改的学生信息 coutk; i=0; while(i100) if(strcmp(v,stui.name)=0|k=stui.sno)/找出要修改的学生信息,将其输出 coutendl学生信息情况:endl; cout学号t姓名t性别t 班级t数学t英语t 计算机t总成绩t平均成绩; coutendlstui.snotstui.namet stui.sextstui.Classt stui.mathtstui.Englisht putertstui.z
13、ongt stui.pingendl; i=100; i+;j+; if(i=100) /控制是否找到要修改学生的信息 cout没有找到你要修改的学生的信息endl; else cout下面请开始修改endl; /开始进行修改 coutchange.sno; coutchange.name; coutchange.sex; coutchange.Class; coutchange.math; coutchange.English; coutputer; change.zong=change.math+change.English+puter; change.ping=change.zong/3
14、; stuj-1=change; cout继续修改请按endl; cout返回主菜单请按#u; if(u=) /控制是否继续修改 goto hoop; rewind(fp); /移动文件内部位置指针到文件首 for(i=0;i100;i+) /把结构体的信息存入fh.dat文件 fwrite(&stui,sizeof(student),1,fp); fclose(fp); /关闭文件 print(); /打印出主菜单void cxxsxx() /定义查询学生信息 函数 int b,d,f; bool tf; char z8,x4,g4; if(fp=fopen(fh.dat,rb)=NULL)
15、 /打开fh.dat文件 cout不能打开该文件endl; exit(0); cout选择1姓名查询endl; cout选择2学号查询endl; cout选择3性别查询endl; cout选择4班级查询endl; cout选择5退出查询系统,返回主菜单d; for(b=0;b100;b+) /把文件中数据付给结构体 fread(&stub,sizeof(student),1,fp); while(d5) tf=false; if(d=1) /按姓名查询 coutz;b=0; while(b100) if(strcmp(z,stub.name)=0) /找到要查询学生的信息,将其输出 cout学
16、号t姓名t性别t 班级t数学t英语t 计算机t总成绩t平均成绩; coutendlstub.snotstub.namet stub.sextstub.Classt stub.mathtstub.Englisht putertstub.zongt stub.ping; tf=true; b+; if(tf=false) /控制是否找到要查询的学生信息 cout没有你要查询的信息endl; else if(d=2) /按学号查询 coutf;b=0; while(b100) if(f=stub.sno) /找到要查询学生的信息,将其输出 cout学号t姓名t性别t 班级t数学t英语t 计算机t总成
17、绩t平均成绩; coutendlstub.snotstub.namet stub.sextstub.Classt stub.mathtstub.Englisht putertstub.zongt stub.ping; b=100; b+; if(b=100) /控制是否找到要查询的学生信息 cout没有你要查询的信息endl; else if(d=3) /按性别查询 coutx;b=0; while(b100) if(strcmp(x,stub.sex)=0) /找到要查询学生的信息,将其输出 cout学号t姓名t性别t 班级t数学t英语t 计算机t总成绩t平均成绩; coutendlstub
18、.snotstub.namet stub.sextstub.Classt stub.mathtstub.Englisht putertstub.zongt stub.ping; tf=true; b+; if(tf=false) /控制是否找到要查询的学生信息 cout没有你要查询的信息endl; else /按班级查询 coutg;b=0; while(b100) if(strcmp(g,stub.Class)=0) /找到要查询学生的信息,将其输出 cout学号t姓名t性别t 班级t数学t英语t 计算机t总成绩t平均成绩; coutendlstub.snotstub.namet stub.
19、sextstub.Classt stub.mathtstub.Englisht putertstub.zongt stub.ping; tf=true; b+; if(tf=false) /控制是否找到要查询的学生信息 cout没有你要查询的信息endl; coutendl; cout选择1姓名查询endl; cout选择2学号查询endl; cout选择3性别查询endl; cout选择4班级查询endl; cout选择5退出查询系统,返回主菜单d; /控制while循环语句 print(); /打印出主菜单void px() /定义排序 函数 int i,j; if(fp=fopen(fh
20、.dat,r)=NULL) /打开fh.dat文件 cout不能打开此文件endl; exit(0); for(i=0;i100;i+) /把文件中数据付给结构体 fread(&stui,sizeof(student),1,fp); for(i=0;i100;i+) /采用降序法排序 for(j=i+1;j100;j+) if(stui.zongstuj.zong) change=stui; stui=stuj; stuj=change; coutendl全部学生总成绩排序后为:endl; cout学号t姓名t性别t 班级t数学t英语t 计算机t总成绩t平均成绩; for(i=0;i100;i+) if(stui.math!=0) /控制输出排序后的学生信息 coutendlstui.snotstui.namet stui.sextstui.Classt stui.mathtstui.Englisht putertstui.zongt stui.pingendl; fclose(fp); /关闭文件 print(); /打印出主菜单void main() in
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1