C++学籍管理系统参考模板_第1页
C++学籍管理系统参考模板_第2页
C++学籍管理系统参考模板_第3页
C++学籍管理系统参考模板_第4页
C++学籍管理系统参考模板_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 C+学生学籍管理系统1、 基本要求:为方便管理一个班同学的学籍,编写一个学籍管理系统软件。系统记录必须包括学生姓名、学号、数学、物理、化学、英语、网络等课程成绩。2、 基本管理功能:(1) 添加:增加一个同学的记录到管理系统中。(2) 查询:可以根据姓名或学号查找某人的相关信息,若找到则显示其信息。(3) 修改:在管理系统中修改一个同学的记录。(4) 保存:将所有学生学籍信息保存在一个文件中(数据库文件或普通的文本文件)。(5) 读取:从文件中读取已保存了数据。(6) 删除:从管理系统中删除一条记录。(7) 恢复:能恢复被删除的记录。(8) 统计:(A)计算各门课程全班平均成绩及总成绩;(B

2、) 统计其课程全班得:100分、 9099分、8089分、7079分、6069分、59分以下学生人数及全班总人数的百分比;(C)以表格形式打印全部学生的平均成绩(包括各课总的平均成绩)。(9) 其他:可以根据自己的思路设计其他功能。PS:我们报告是手写的,所以报告没有弄上来,不过源程序大家可以看一下,下面是运行的界面1 / 25剩下的功能大家自己试吧,这里就不截图了。源程序:(头文件#include "stdafx.h"和主函数int main(int argc, char* argv) 是建工程时自带的,把之前的清掉后直接复制即可)#include "stdaf

3、x.h"#include<iostream>#include<fstream>#include<cmath>#include<string>#include<stdlib.h>#include<conio.h>#include<iomanip>using namespace std;int n=0,u=0;int number56=0,0,0,0,0; /各门学科分段成绩的人数double point56=0,0,0,0,0;double eva5=0,0,0,0,0;string find_name

4、;string find_num;int p;void search(string);void search(int);void cunqu_data(); /*存取文件*/void save_data(); /*保存文件*/void read_data(); /*读取文件*/void renew_data(); /*删除恢复*/void delete_data(int m); /*删除记录*/void recover_data(); /*恢复记录*/void set_eva2(); /*课程的平均成绩*/void put_result1();void put_result2();void p

5、ut_result3();class Student /*定义一个Student类*/public:Student(); /*构造函数*/void set_eva();friend void set_massage(int m,Student j);/*友元函数*/friend void add_massage(int m,Student j);/*友元函数*/friend void put_massage(int m,Student j);friend void change_data(int m,Student j);/*修改学生信息*/friend void search_data();

6、 /*查找学生信息*/friend void search_name(string name);friend void search_num(string num);friend void set_number();friend void set_point();friend void save_data(); /*保存文件*/friend void read_data(); /*读取文件*/friend void delete_data(int m); /*删除记录*/friend void recover_data(); /*恢复记录*/friend void set_eva2(); /*

7、课程的平均成绩*/friend void put_result1();private: string name; /*姓名*/ string num; /*学号*/string sex; /*性别*/double eva; /*学习水平*/ double shuxue; /*数学成绩*/ double wuli; /*物理成绩*/ double huaxue; /*化学成绩*/ double yingyu; /*英语成绩*/ double wangluo; /*网络成绩*/stud200,studl200;Student:Student() /*定义构造函数*/name="wu&qu

8、ot;num="wu"sex="wu"shuxue=0;wuli=0;huaxue=0;yingyu=0;wangluo=0;void Student:set_eva() /计算平均成绩eva=(shuxue+wuli+huaxue+yingyu+wangluo)/5;void set_massage(int m,Student j)int i;for(i=0;i<m;i+) cout<<"输入第"<<i+1<<"个学生的信息"<<endl; cout<&

9、lt;"姓名 学号 性别 数学成绩 物理成绩 化学成绩 英语成绩 网络成绩"<<endl;cin>>>>ji.num>>ji.sex>>ji.shuxue>>ji.wuli>>ji.huaxue>>ji.yingyu>>ji.wangluo;cout<<'n'system("cls");void add_massage(int m,Student j)/增加学生信息int i;for(i=n;i<n+

10、m;i+) cout<<"输入第"<<i+1<<"个学生的信息"<<endl; cout<<"姓名 学号 性别 数学成绩 物理成绩 化学成绩 英语成绩 网络成绩"<<endl;cin>>>>ji.num>>ji.sex>>ji.shuxue>>ji.wuli>>ji.huaxue>>ji.yingyu>>ji.wangluo;system("cl

11、s");n=n+m;void change_data(int m,Student j)/修改学生信息if(m=0|m>n)cout<<"输入错误!"<<endl;getch(); else cout<<endl; cout<<" 输入该同学的新学籍信息"<<endl; cout<<" _ "<<endl; cout<<"姓名 学号 性别 数学成绩 物理成绩 化学成绩 英语成绩 网络成绩"<<e

12、ndl; cin>>>>jm-1.num>>jm-1.sex>>jm-1.shuxue>>jm-1.wuli>>jm-1.huaxue>>jm-1.yingyu>>jm-1.wangluo; system("cls"); cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<en

13、dl<<endl<<" 修改成功_,按任意键返回主菜单。"<<endl;getch();void put_massage(int m,Student j)int i;cout<<" _ "<<endl; cout<<" 序号 姓 名 学 号 性别数学物理化学英语网络"<<endl;cout<<" -"<<endl; for(i=0;i<m;i+) cout<<" "cou

14、t<<" "<<setfill('0')<<setw(3)<<setiosflags(ios:left)<<setiosflags(ios:fixed)<<setprecision(0)<<i+1;cout<<""cout<<" "<<setfill('0')<<setw(7)<<setiosflags(ios:left)<<setiosflags(

15、ios:fixed)<<setprecision(0)<<;cout<<""cout<<setfill('0')<<setw(10)<<setiosflags(ios:left)<<setiosflags(ios:fixed)<<setprecision(0)<<ji.num;cout<<""cout<<" "<<setfill('0')<&

16、lt;setw(3)<<setiosflags(ios:left)<<setiosflags(ios:fixed)<<setprecision(0)<<ji.sex;cout<<""cout<<" "<<setfill('0')<<setw(3)<<setiosflags(ios:left)<<setiosflags(ios:fixed)<<setprecision(0)<<ji.shuxue;c

17、out<<""cout<<" "<<setfill('0')<<setw(3)<<setiosflags(ios:left)<<setiosflags(ios:fixed)<<setprecision(0)<<ji.wuli;cout<<""cout<<" "<<setfill('0')<<setw(3)<<setiosflags

18、(ios:left)<<setiosflags(ios:fixed)<<setprecision(0)<<ji.huaxue;cout<<""cout<<" "<<setfill('0')<<setw(3)<<setiosflags(ios:left)<<setiosflags(ios:fixed)<<setprecision(0)<<ji.yingyu;cout<<""cou

19、t<<" "<<setfill('0')<<setw(3)<<setiosflags(ios:left)<<setiosflags(ios:fixed)<<setprecision(0)<<ji.wangluo;cout<<""cout<<'n'cout<<" _ "<<endl; void search_data()/查找功能char a;for(a='0'

20、;a='0'|a!='4')system("cls");cout<<"1.按姓名查找"<<endl<<"2.按学号查找"<<endl<<"3.输出所有学生信息"<<endl<<"4.返回主菜单"<<endl;cin>>a;system("cls");switch(a) case '1':cout<<"

21、输入您需要查找的学生姓名: "cin>>find_name;search_name(find_name);break;case '2':cout<<"输入您需要查找的学号: "cin>>find_num;search_num(find_num);break;case '3':cout<<endl; cout<<" 学生学籍信息"<<endl; put_massage(n,stud);getch();break;case '4'

22、:break;default:cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<" 错误指令!按任意键返回。"<<endl;getch();break;void search_name(string name)/按姓名查找int i;bool flag=false;for(i=0;i<n;i+) if(

23、=name) cout<<" _"<<endl; cout<<" 序号 姓 名 学 号 性别数学物理化学英语网络"<<endl; cout<<" -"<<endl; cout<<" "cout<<" "<<setfill('0')<<setw(3)<<setiosflags(ios:left)<<i+1;cout<<"

24、;" cout<<" "<<setfill('0')<<setw(7)<<setiosflags(ios:left)<<;cout<<"" cout<<setfill('0')<<setw(10)<<setiosflags(ios:left)<<studi.num;cout<<"" cout<<" "<&l

25、t;setfill('0')<<setw(3)<<setiosflags(ios:left)<<studi.sex;cout<<"" cout<<" "<<setfill('0')<<setw(3)<<setiosflags(ios:left)<<studi.shuxue;cout<<"" cout<<" "<<setfill('0&

26、#39;)<<setw(3)<<setiosflags(ios:left)<<studi.wuli;cout<<"" cout<<" "<<setfill('0')<<setw(3)<<setiosflags(ios:left)<<studi.huaxue;cout<<"" cout<<" "<<setfill('0')<<set

27、w(3)<<setiosflags(ios:left)<<studi.yingyu;cout<<"" cout<<" "<<setfill('0')<<setw(3)<<setiosflags(ios:left)<<studi.wangluo;cout<<"" cout<<'n' cout<<" _ "<<endl; flag=true; b

28、reak; if(flag=false) cout<<"对不起,暂无此学生信息" getch();void search_num(string num)/按学号查找int i;bool flag=false;for(i=0;i<n;i+)if(studi.num=num) cout<<" _"<<endl; cout<<" 序号 姓 名 学 号 性别数学物理化学英语网络"<<endl; cout<<" -"<<endl; co

29、ut<<" "cout<<" "<<setfill('0')<<setw(3)<<setiosflags(ios:left)<<i+1;cout<<"" cout<<" "<<setfill('0')<<setw(7)<<setiosflags(ios:left)<<;cout<<"" co

30、ut<<setfill('0')<<setw(10)<<setiosflags(ios:left)<<studi.num;cout<<"" cout<<" "<<setfill('0')<<setw(3)<<setiosflags(ios:left)<<studi.sex;cout<<"" cout<<" "<<setfill(&

31、#39;0')<<setw(3)<<setiosflags(ios:left)<<studi.shuxue;cout<<"" cout<<" "<<setfill('0')<<setw(3)<<setiosflags(ios:left)<<studi.wuli;cout<<"" cout<<" "<<setfill('0')<&

32、lt;setw(3)<<setiosflags(ios:left)<<studi.huaxue;cout<<"" cout<<" "<<setfill('0')<<setw(3)<<setiosflags(ios:left)<<studi.yingyu;cout<<"" cout<<" "<<setfill('0')<<setw(3)<

33、<setiosflags(ios:left)<<studi.wangluo;cout<<"" cout<<'n' cout<<" _ "<<endl; flag=true; break;if(flag=false) cout<<"对不起,暂无此学生信息" getch();void set_number()/number 开始 int e,f,i,t; for(e=0,f=0,t=0,i=0;i<n;i+) /100 if(studi.s

34、huxue=100) t+; numberef=t; for(e=1,f=0,t=0,i=0;i<n;i+) if(studi.wuli=100) t+; numberef=t; for(e=2,f=0,t=0,i=0;i<n;i+) if(studi.huaxue=100) t+; numberef=t; for(e=3,f=0,t=0,i=0;i<n;i+) if(studi.yingyu=100) t+; numberef=t; for(e=4,f=0,t=0,i=0;i<n;i+) if(studi.wangluo=100) t+; numberef=t; fo

35、r(e=0,f=1,t=0,i=0;i<n;i+) /9099 if(studi.shuxue>=90&&studi.shuxue<=99) t+; numberef=t; for(e=1,f=1,t=0,i=0;i<n;i+) /9099 if(studi.wuli>=90&&studi.wuli<=99) t+; numberef=t; for(e=2,f=1,t=0,i=0;i<n;i+) /9099 if(studi.huaxue>=90&&studi.huaxue<=99) t+;

36、numberef=t; for(e=3,f=1,t=0,i=0;i<n;i+) /9099 if(studi.yingyu>=90&&studi.yingyu<=99) t+; numberef=t; for(e=4,f=1,t=0,i=0;i<n;i+) /9099 if(studi.wangluo>=90&&studi.wangluo<=99) t+; numberef=t; for(e=0,f=2,t=0,i=0;i<n;i+) /8089 if(studi.shuxue>=80&&studi

37、.shuxue<=89) t+; numberef=t; for(e=1,f=2,t=0,i=0;i<n;i+) /8089 if(studi.wuli>=80&&studi.wuli<=89) t+; numberef=t; for(e=2,f=2,t=0,i=0;i<n;i+) /8089 if(studi.huaxue>=80&&studi.huaxue<=89) t+; numberef=t; for(e=3,f=2,t=0,i=0;i<n;i+) /8089 if(studi.yingyu>=80&

38、amp;&studi.yingyu<=89) t+; numberef=t; for(e=4,f=2,t=0,i=0;i<n;i+) /8089 if(studi.wangluo>=80&&studi.wangluo<=89) t+; numberef=t; for(e=0,f=3,t=0,i=0;i<n;i+) /7079 if(studi.shuxue>=90&&studi.shuxue<=99) t+; numberef=t; for(e=1,f=3,t=0,i=0;i<n;i+) /7079 if(

39、studi.wuli>=70&&studi.wuli<=79) t+; numberef=t; for(e=2,f=3,t=0,i=0;i<n;i+) /7079 if(studi.huaxue>=70&&studi.huaxue<=79) t+; numberef=t; for(e=3,f=3,t=0,i=0;i<n;i+) /7079 if(studi.yingyu>=70&&studi.yingyu<=79) t+; numberef=t; for(e=4,f=3,t=0,i=0;i<n

40、;i+) /7079 if(studi.wangluo>=70&&studi.wangluo<=79) t+; numberef=t; for(e=0,f=4,t=0,i=0;i<n;i+) /6069 if(studi.shuxue>=60&&studi.shuxue<=69) t+; numberef=t; for(e=1,f=4,t=0,i=0;i<n;i+) /6069 if(studi.wuli>=60&&studi.wuli<=69) t+; numberef=t; for(e=2,f=

41、4,t=0,i=0;i<n;i+) /6069 if(studi.huaxue>=60&&studi.huaxue<=69) t+; numberef=t; for(e=3,f=4,t=0,i=0;i<n;i+) /6069 if(studi.yingyu>=60&&studi.yingyu<=69) t+; numberef=t; for(e=4,f=4,t=0,i=0;i<n;i+) /6069 if(studi.wangluo>=60&&studi.wangluo<=69) t+; nu

42、mberef=t; for(e=0,f=5,t=0,i=0;i<n;i+) /59以下 if(studi.shuxue>=0&&studi.shuxue<=59) t+; numberef=t; for(e=1,f=5,t=0,i=0;i<n;i+) /59以下 if(studi.wuli>=0&&studi.wuli<=59) t+; numberef=t; for(e=2,f=5,t=0,i=0;i<n;i+) /59以下 if(studi.huaxue>=0&&studi.huaxue<

43、=59) t+; numberef=t; for(e=3,f=5,t=0,i=0;i<n;i+) /59以下 if(studi.yingyu>=0&&studi.yingyu<=59) t+; numberef=t; for(e=4,f=5,t=0,i=0;i<n;i+) /59以下 if(studi.wangluo>=0&&studi.wangluo<=59) t+; numberef=t; void set_point() /point int e,f; for(e=0;e<5;e+) for(f=0;f<6;

44、f+) pointef=numberef/(n*1.0)*100; void set_eva2() /*课程的平均成绩*/ double s;int i; for(i=0,s=0;i<n;i+) s=s+studi.shuxue; eva0=s/(n*1.0); for(i=0,s=0;i<n;i+) s=s+studi.wuli; eva1=s/(n*1.0); for(i=0,s=0;i<n;i+) s=s+studi.huaxue; eva2=s/(n*1.0); for(i=0,s=0;i<n;i+) s=s+studi.yingyu; eva3=s/(n*1.

45、0); for(i=0,s=0;i<n;i+) s=s+studi.wangluo; eva4=s/(n*1.0); void put_result() /输出统计结果char g;for(g='0'g='0'|g!='4')system("cls");cout<<"1.查询每位学生的总平均分"<<endl<<"2.查询各课的成绩分布及平均成绩"<<endl<<"3.查询各段成绩所占的百分比"<&

46、lt;endl<<"4.返回主菜单"<<endl;cin>>g;system("cls");switch(g)case '1':put_result1();getch();break; case '2':put_result2();getch();break; case '3':put_result3();getch();break; case '4':break; default:cout<<endl<<endl<<e

47、ndl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<" 错误指令!按任意键返回。"<<endl;getch();break;void put_result1()/每位学生的总平均分int e; cout<<" 学生的总平均分 "<<endl; cout<<" _"<<endl; cout<<"

48、姓 名平均成绩"<<endl; cout<<" -"<<endl; for(e=0;e<n;e+) cout<<" "cout<<setfill('0')<<setw(6)<<setiosflags(ios:right)<<<<" "<<""cout<<setfill('0')<<setw(6)<&l

49、t;setiosflags(ios:right)<<stude.eva<<" "<<""<<endl; cout<<" _"<<endl;void put_result2() /输出统计结果2int e,f; cout<<" 各课的成绩分布及平均成绩 "<<endl; cout<<" _"<<endl; cout<<" 课 程 100 9099808970

50、79606960以下平均分"<<endl; cout<<" -"<<endl; cout<<" "cout<<"数 学"for(e=0,f=0;f<6;f+)cout<<setfill('0')<<setw(4)<<setiosflags(ios:right)<<numberef<<" "<<""cout<<"

51、"<<setfill('0')<<setw(5)<<setiosflags(ios:left)<<setiosflags(ios:fixed)<<setprecision(1)<<eva0<<""<<endl; cout<<" "cout<<"物 理"for(e=1,f=0;f<6;f+)cout<<setfill('0')<<setw(4)&l

52、t;<setiosflags(ios:right)<<numberef<<" "<<""cout<<" "<<setfill('0')<<setw(5)<<setiosflags(ios:left)<<setiosflags(ios:fixed)<<setprecision(1)<<eva1<<""<<endl; cout<<"

53、"cout<<"化 学"for(e=2,f=0;f<6;f+)cout<<setfill('0')<<setw(4)<<setiosflags(ios:right)<<numberef<<" "<<""cout<<" "<<setfill('0')<<setw(5)<<setiosflags(ios:left)<<setios

54、flags(ios:fixed)<<setprecision(1)<<eva2<<""<<endl; cout<<" "cout<<"英 语"for(e=3,f=0;f<6;f+)cout<<setfill('0')<<setw(4)<<setiosflags(ios:right)<<numberef<<" "<<""cout<

55、;<" "<<setfill('0')<<setw(5)<<setiosflags(ios:left)<<setiosflags(ios:fixed)<<setprecision(1)<<eva3<<""<<endl; cout<<" "cout<<"网 络"for(e=4,f=0;f<6;f+)cout<<setfill('0')<&

56、lt;setw(4)<<setiosflags(ios:right)<<numberef<<" "<<""cout<<" "<<setfill('0')<<setw(5)<<setiosflags(ios:left)<<setiosflags(ios:fixed)<<setprecision(1)<<eva4<<""<<endl; cout<

57、;<" _"<<endl;void put_result3() /输出统计结果3int e,f; cout<<" 各段成绩所占的百分比 "<<endl; cout<<" _"<<endl; cout<<" 课 程 100 909980897079606960以下平均分"<<endl; cout<<" -"<<endl; cout<<" "cout<

58、;<"数 学"for(e=0,f=0;f<6;f+)cout<<setfill('0')<<setw(5)<<setiosflags(ios:right)<<pointef<<" "<<""cout<<" "<<setfill('0')<<setw(5)<<setiosflags(ios:left)<<setiosflags(ios:fixe

59、d)<<setprecision(1)<<eva0<<""<<endl; cout<<" "cout<<"物 理"for(e=1,f=0;f<6;f+)cout<<setfill('0')<<setw(5)<<setiosflags(ios:right)<<pointef<<" "<<""cout<<" &qu

60、ot;<<setfill('0')<<setw(5)<<setiosflags(ios:left)<<setiosflags(ios:fixed)<<setprecision(1)<<eva1<<""<<endl; cout<<" "cout<<"化 学"for(e=2,f=0;f<6;f+)cout<<setfill('0')<<setw(5)<&

61、lt;setiosflags(ios:right)<<pointef<<" "<<""cout<<" "<<setfill('0')<<setw(5)<<setiosflags(ios:left)<<setiosflags(ios:fixed)<<setprecision(1)<<eva2<<""<<endl; cout<<" &quo

62、t;cout<<"英 语"for(e=3,f=0;f<6;f+)cout<<setfill('0')<<setw(5)<<setiosflags(ios:right)<<pointef<<" "<<""cout<<" "<<setfill('0')<<setw(5)<<setiosflags(ios:left)<<setiosflags

63、(ios:fixed)<<setprecision(1)<<eva3<<""<<endl; cout<<" "cout<<"网 络"for(e=4,f=0;f<6;f+)cout<<setfill('0')<<setw(5)<<setiosflags(ios:right)<<pointef<<" "<<""cout<<&

64、quot; "<<setfill('0')<<setw(5)<<setiosflags(ios:left)<<setiosflags(ios:fixed)<<setprecision(1)<<eva4<<""<<endl; cout<<" _"<<endl;void cunqu_data() /存取文件char g;for(g='0'g='0'|g!='3')sy

65、stem("cls");cout<<"1.保存文件"<<endl<<"2.读取文件"<<endl<<"3.返回主菜单"<<endl;cin>>g;system("cls");switch(g)case '1':save_data();break; case '2':read_data();break; case '3':break; default:cout<

66、<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<" 错误指令!按任意键返回。"<<endl;getch();break;void save_data() /保存文件int i;remove("学生学籍信息.dat");ofstream outfile("学生学籍信息.dat",ios:out);if(outfile=0)cerr<<"打开失败!"<<endl;exit(1);else for(i=0;i<n;i+) outfile<<<<" " outfile<<studi.num<<" " outfile<<studi.sex<<" " outfile<<studi.shuxue<<" " outf

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论