C++高校学籍管理系统.docx
- 文档编号:11003616
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:17
- 大小:18.14KB
C++高校学籍管理系统.docx
《C++高校学籍管理系统.docx》由会员分享,可在线阅读,更多相关《C++高校学籍管理系统.docx(17页珍藏版)》请在冰豆网上搜索。
C++高校学籍管理系统
课题2:
高校学籍管理系统
(一)、课程设计题目:
高校学籍管理系统
(二)、目的与要求:
1、目的:
(1)要求学生达到熟练掌握C++语言的基本知识和技能;
(2)基本掌握面向对象程序设计的基本思路和方法;
(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
2、基本要求:
(1)要求利用面向对象的方法以及C++的编程思想来完成系统的设计;
(2)要求在设计的过程中,建立清晰的类层次;
(3)在系统的设计中,至少要用到面向对象的一种机制。
3、创新要求:
在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。
4、写出设计说明书
(三)、设计方法和基本原理:
1、问题描述(功能要求):
(1)能够从屏幕上读取一个学生的信息并将信息存入到数据文件中。
(2)能够将指定的信息从文件中删除。
(3)能够按编号、姓名对学生的信息进行检索并将检索结果显示在屏幕上。
(4)可以统计全部学生的总成绩,及其在班上的排名。
(5)能够统计各科的平均成绩及及格率。
(6)要求有错误提示功能,例如性别只能输入男女,输入错误提示重新输入。
(7)如果检索不到相应的信息应提示用户。
(8)扩展要求:
能先行设置本学期的科目
每个学生信息应该包括:
姓名、学号、成绩
成绩信息应该包括:
科目数量、各科目名称、各科目成绩
2、问题的解决方案:
根据系统功能要求,可以将问题解决分为以下步骤:
(1)写出需求分析(做什么);
(2)分析系统中的各个实体之间的关系及其属性和行为;
(3)根据问题描述,设计系统的类层次;
(4)完成类层次中各个类的描述(包括属性和方法);
(5)完成类中各个成员函数的定义;
(6)用户界面的设计;
(7)分析系统功能模块(系统流程图);
(8)代码编写,功能调试;
(9)完成系统总结报告以及系统使用说明书。
#include
#include
usingnamespacestd;
intdi=0;
intnum=0;
classxinxi
{
public:
intnumber;
charname[20];
charsex[6];
charp[100][10];
floatfenshu[10];
floatshuliang;
floataverage;
floatsum;
floataver;
floatjigelv;
inti;
virtualvoidShow()//显示
{
cout<<"学生学号:
"< "< "< "< for(inti=0;i { cout< "< } cout<<"总成绩为: "< cout<<"平均成绩为: "< } voidBook(intn) { cout<<"学生学号: ";cin>>number; cout<<"学生姓名: ";cin>>name; cout<<"学生性别: ";cin>>sex; while (1) { if(strcmp(sex,"男")==0||strcmp(sex,"女")==0) { break; } else { cout<<"输入有误,请重新输入: "< cin>>sex; } } /*cout<<"请输入本学期科目数量: ";//通过数量确定课程 cin>>shuliang; for(i=0;i { cout<<"请输入科目"< cin>>p[i]; cout<<"请输入科目"< cin>>fenshu[i]; }*/ while (1)//通过课程确定数量 { chara; intb; for(i=0,b=0;;i++) { cout<<"请输入科目"< cin>>p[i]; cout<<"请输入科目"< cin>>fenshu[i]; b++; cout<<"是否继续输入? (Y/N)"< cin>>a; if(a=='Y'||a=='y') continue; else { shuliang=b; break; } } break; } } /*virtualvoidSave(fstream&f)//保存到文件f中 { f< } virtualvoidLoad(fstream&f)//从文件f中导出数据 { f>>number>>name>>sex>>fenshu>>shuliang>>average>>sum; }*/ }; xinxid[100]; xinxiv[100]; //输入学生信息 voidBookIn() { while (1) { cout<<"*************************"< cout<<"*************************"< cout<<"请输入学生信息: "< d[di].Book(num++); di++; for(intj=0;j { floats=0; for(inti=0;i { s=s+d[j].fenshu[i]; } d[j].sum=s; d[j].average=d[j].sum/d[j].shuliang; } cout<<"是否继续输入: Y继续、其他退出"< charx; cin>>x; if(x! ='y'&&x! ='Y') break; } } //删除学生信息 voidBookOut() { inti; while (1) { intc; cout<<"*************************"< cout<<"*************************"< cout<<"请输入您要删除的学生学号: "< cin>>c; for(i=0;i if(c==d[i].number) { d[i]=d[--di]; cout<<"删除成功! "< } else { cout<<"输入错误! "< system("PAUSE"); } cout<<"是否继续删除: Y继续、其他退出"< charx; cin>>x; if(x! ='y'&&x! ='Y') break; } } //学生信息查询 voidInquiry() { while (1) { cout<<"*************************"< cout<<"*************************"< cout<<"1、按学号查询"< cout<<"2、按姓名查询"< cout<<"请输入您的选择: ? "< intc; inttest; cin>>c; if(c==1) { cout<<"请选择要查询学号: "; inta; cin>>a; for(inti=0;i { if(a==d[i].number) { test=1; break; } else test=0; } if(test==0) { cout<<"没有这个学生! "< system("PAUSE"); } elseif(test==1) { d[i].Show(); } } elseif(c==2) { charc[10]; cout<<"请选择要查询的姓名: "; cin>>c; for(inti=0;i { if(strcmp(c,d[i].name)==0) { test=1; break; } else test=0; } if(test==0) { cout<<"没有这个学生! "< system("PAUSE"); } elseif(test==1) { d[i].Show(); } } else { cout<<"输入错误! "< system("PAUSE"); } cout<<"是否继续查询: Y继续、其他退出"< charx; cin>>x; if(x! ='y'&&x! ='Y') break; } } //显示学籍信息 voidDisplay() { for(inti=0;i { d[i].Show(); cout<<"\n"< } } voidPaixu() { inti,k; inttempsum; chartempname[10]; for(i=0;i { strcpy(v[i].name,d[i].name); v[i].sum=d[i].sum; } for(i=0;i { for(k=i+1;k { if(v[i].sum { strcpy(tempname,v[i].name); strcpy(v[i].name,v[k].name); strcpy(v[k].name,tempname); tempsum=v[i].sum; v[i].sum=v[k].sum; v[k].sum=tempsum; } } } for(i=0;i { cout<<"第"< "< "< } system("PAUSE"); } voidDanke() { for(intj=0;j { floatsum=0; for(inti=0;i { sum=sum+d[i].fenshu[j]; } v[j].aver=sum/di; cout< "< } system("PAUSE"); for(intm=0;m { floatk=0; for(inti=0;i { if(d[i].fenshu[m]>=60) k++; } v[m].jigelv=k/di; cout< "< } system("PAUSE"); } /*voidFileLoad()//信息读取函数 { inti; fstreamfile; file.open("mydata.dat",ios: : in);//打开保存数据的文件 if(! file) return;//文件不存在则直接返回 file>>di;//读入 for(i=0;i d[i].Load(file); file.close();//文件关闭 } voidFileSave()//信息保存函数 { inti; fstreamfile; file.open("mydata.dat",ios: : out);//打开保存数据的文件 file< for(i=0;i d[i].Save(file); file.close();//文件关闭 cout<<"保存成功! "< } */ //主函数 voidmain() { while (1) { cout<<"*******************高校学籍管理系统*********************"< cout<<"\t\t1、输入学生信息"< cout<<"\t\t2、删除学生信息"< cout<<"\t\t3、学生信息查询"< cout<<"\t\t4、学生信息保存"< cout<<"\t\t5、查看学籍系统"< cout<<"\t\t6、学生成绩排名"< cout<<"\t\t7、单科平均成绩及及格率"< cout<<"\t\t8、退出管理系统"< cout<<"请选择功能: ? "< intc; cin>>c; if(c==1) { BookIn(); } elseif(c==2) { BookOut(); } elseif(c==3) { Inquiry(); } elseif(c==4) { //FileSave(); } elseif(c==5) { Display(); } elseif(c==6) { Paixu(); } elseif(c==7) { Danke(); } elseif(c==8) {break;} else { cout<<"输入错误! "< system("PAUSE"); } } } 如有侵权请联系告知删除,感谢你们的配合!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 高校 学籍 管理 系统