C++学生信息管理系统实验报告示例.docx
- 文档编号:1688371
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:31
- 大小:370.92KB
C++学生信息管理系统实验报告示例.docx
《C++学生信息管理系统实验报告示例.docx》由会员分享,可在线阅读,更多相关《C++学生信息管理系统实验报告示例.docx(31页珍藏版)》请在冰点文库上搜索。
C++学生信息管理系统实验报告示例
课程设计报告
课程设计题目:
学生信息管理系统
学生姓名:
张鹏
专业:
软件工程(嵌入式)
班级:
1621806
指导教师:
高永平
2017年6月9日
一、需求分析:
根据对学生信息管理的需要,建立一个“学生信息管理系统”,以方便对学生信息数据的录入、修改、删除和查询功能。
、
要求完:
1。
有菜单界面可以对功能进行选择;
2。
能录入姓名、性别、学号、班级和电话号码等学生信息并保存到文件中;
3。
能根据学生的学号进行排序;
4。
能根据学生的学号对学生的信息进行修改;
5。
能根据学生的学号对学生的信息进行删除;
6。
能根据学生的学号、姓名和班级等对学生信息进行查询;
7.能根据班级对学生人数进统计。
二、总体设计:
根据以上分析,本系统主要包括:
1。
从键盘录入学生个人信息,并保存到文件中;
2.按学号对学生信息进行排序
3。
按学号对学生信息进行修改;
4。
按学号对学生信息进行删除;
5.按学号对学生信息进行查询;
6。
按姓名对学生信息进行查询;
7.按班级对学生信息进行查询;
8。
结束当前程序;
等8大功能,系统主要定义了1个类和16个函数以实现各个功能:
(1)主函数main():
调用录入、查找、修改、排序、统计、删除等函数对学生成员信息进行处理。
(2)定义类classstudent:
用于定义成员结构体数组。
(3)类中构造函数student():
对类中各项私有成员进行传值。
(4)类中输入运算符重载函数operator>>():
方便对类的对象输入。
(5)类中输出运算符重载函数operator<<():
方便对类的对象输出。
(6)获取函数getnum():
方便在类外对类中的私有成员num的数据进行调用。
(7)获取函数getname():
方便在类外对类中的私有成员name的数据进行调用。
(8)获取函数getban():
方便在类外对类中的私有成员ban的数据进行调用。
(9)录入函数enter():
从键盘输入学生个人信息,并保存到文件中。
(10)查找函数search_num():
按学号查找学生个人信息.
(11)查找函数search_name():
按姓名查找学生个人信息。
(12)查找函数search_ban():
按班级查找学生个人信息。
(13)修改函数changr():
按学号修改学生个人信息,保存的文件中。
(14)删除函数del():
按学号删除学生个人信息,保存到文件中.
(15)排序函数sort():
按学号对学生个人信息进行排序。
(16)统计函数count():
按班级对学生人数进行统计。
程序功能结构图如图1所示:
图1程序功能结构图如图
三、详细设计。
本系统有一个主函数,8个功能模块,每个功能模块函数都是由主函数调用,分别说明如下:
(1)主函数main():
调用录入、查找、修改、排序、统计、删除等函数对学生成员信息进行处理。
主函数流程图如图2所示:
图2主函数流程图
(2)键盘输入函数流程图:
从键盘输入学生个人信息,并保存到文件中。
流程图如图3所示:
图3键盘输入函数流程图
(3)排序函数流程图:
按学号对学生个人信息进行排序。
流程图如图4所示:
图4排序函数流程图
(4)信息修改函数流程图:
由用户输入需要修改的成员的学号,在现有的学生信息中查询是否有此学生信息的存在,查到输出该学生的全部信息,没查到则输出“学号为XX的学生不存在!
”信息。
流程图如图5所示:
图5信息修改函数流程图
(5)信息删除函数流程图:
由用户输入需要删除的成员的学号,在现有的学生信息中查询是否有此学生信息的存在,查到删除该学生的全部信息,没查到则输出“学号为XX的学生不存在!
”信息。
流程图如图6所示:
图6信息删除函数流程图
(6)学号查询函数流程图:
由用户输入需要查询的成员的学号,在现有的学生信息中查询是否有此学生信息的存在,查到输出该学生的全部信息,没查到则输出“学号为XX的学生不存在!
"信息。
流程图如图7所示:
图7学号查询函数流程图
(7)姓名查询函数流程图:
由用户输入需要查询的成员的姓名,在现有的学生信息中查询是否有此学生信息的存在,查到输出该学生的全部信息,没查到则输出“姓名为XX的学生不存在!
”信息。
流程图如图8所示:
图8姓名查询函数流程图
(8)班级查询函数流程图:
由用户输入需要查询的成员的班级,在现有的学生信息中查询是否有此学生信息的存在,查到输出该学生的全部信息,没查到则输出“班级为XX的学生不存在!
”信息.
流程图如图9所示:
图9班级查询函数流程图
(9)按班级统计函数流程图:
由用户输入需要查询的成员的班级,在现有的学生信息中查询是否有此学生信息的存在,查到即对该班级人数进行统计,没查到则输出“班级为XX的学生不存在!
"信息。
流程图如图10所示:
图10按班级统计函数流程图
四、测试结果.
(1)程序运行主菜单如图11所示:
图11
(2)从键盘上输入学生人数和学生信息如图12所示:
图12
(3)按学号修改如图13所示:
图13
(4)按学号删除如图14:
图14
(5)按学号查找如图15:
图15
(6)按姓名查找如图16:
图16
(7)按班级查找如图17:
图17
(8)按班级统计人数如图18:
图18
(9)按学号进行排序如图19:
如图19
五、软件操作使用说明书。
本软件采用命令行对话方式进行操作,运行后出现主界面如上图所示,然后按菜单提示操作即可.
六、总结。
经过一个星期的不断上机实践练习,我对c++有了更进一步的认识和了解,学好它重在实践,要通过不断的上机操作不断的进行操作和试运行才能更好地掌握它,通过这次实践,我发现了自己的许多不足:
我对各种循环的理解深度还不够,对字符成员调用还不是很熟练,对指针的理解还是不透彻,以及对解决问题的想法不够全面。
这些不足,在这次实践中都有所提高,并且对这些不足我都会在后续的学习中努力补足。
七、代码:
#include〈iostream>
#include〈fstream〉
#include
#defineM5000
usingnamespacestd;
classstudent
{
public:
student(){}
student(charna[10],charse[10],intn,intb,chart[12]):
num(n),ban(b)
{
strcpy(sex,se);
strcpy(name,na);
strcpy(tel,t);
}
friendistream&operator>>(istream&is,student&s)
{
is〉>s。
name〉>s.sex〉>s.num>〉s。
ban〉〉s。
tel;
returnis;
}
friendostream&operator<〈(ostream&os,student&s)
{
os<
name<〈”"<〈s。
sex〈〈”"〈 ban〈<"”〈〈s.tel〈 returnos; } intgetnum() { returnnum; } intgetban() { returnban; } char*getsex() { char*s=newchar[strlen(sex)]; s=sex; returns; } char*getname() { char*p=newchar[strlen(name)]; p=name; returnp; } char*gettel() { char*t=newchar[strlen(tel)]; t=tel; returnt; } private: charname[10]; charsex[10]; intnum,ban; chartel[12]; }; intmenu() { chars[80]; intc; cout<〈"**************************主菜单***************************"〈 cout<<”|0。 退出当前程序|\n”〈〈endl; cout<〈”|1。 输入学生信息|\n”<〈endl; cout<<”|2。 根据学号查询|\n”< cout<〈"|3.根据姓名查询|\n"<〈endl; cout〈<”|4.根据班级查询|\n"〈 cout<〈”|5。 根据学号排序|\n"<〈endl; cout<〈”|6。 按班级计人数|\n"〈〈endl; cout<<”|7.根据学号删除|\n”< cout<<"|8。 根据学号修改|\n"<〈endl; cout〈〈"—---—-———-———-—--—--—---———-----———-————————-—-------———-—-——--——-——-—--——--—"〈 cout〈〈”输入您的菜单选项编号(0—8): ”〈 cout<〈”DesignedbyPeng”<〈endl; for(;;) { gets(s); c=atoi(s); if(c>8) cout<<”输入错误,请重新输入! : ”; else break; } returnc; } intenter(studentt[]) { inti,n; system(”cls"); cout<〈”请输入学生信息条数"〈〈endl; cin〉〉n; cout<〈"请输入学生信息\n"〈 cout〈〈”姓名性别学号班级联系电话"〈 fstreamfs; fs。 open(”c: \\item.txt”,ios: : out); for(i=0;i〈n;i++) { cin〉>t[i]; fs〈〈t[i]; } fs.close(); getchar(); returnn; } voidsearch_num(studentt[],intn) { inti,nu,temp=-1000; system(”cls"); cout〈〈"请输入查找学生的学号: ”〈 cin〉〉nu; for(i=0;i〈n;i++) { if(nu==t[i]。 getnum()) { cout〈〈"该学生信息为: "<〈endl<<”姓名性别学号班级联系电话”<〈endl; cout〈〈t[i]; temp=i; } } if(temp==—1000) cout<〈endl<〈endl〈<"学号为"<〈nu<<”的学生不存在! ”〈〈endl; getchar(); } voidsearch_ban(studentt[],intn) { inti,ba,temp=—1000; system("cls”); cout<〈”请输入查找学生的班级号: ”< cin〉〉ba; cout〈〈”该学生信息为: "〈〈endl〈〈"姓名性别学号班级联系电话"〈〈endl; for(i=0;i { if(ba==t[i].getban()) cout〈〈t[i]; temp=i; } if(temp==-1000) cout< ”〈 getchar(); } voidsearch_name(studentt[],intn) { inti,temp=—1000; charna[20]; system("cls"); cout〈<"请输入查找学生的姓名: ”〈 cin>>na; for(i=0;i〈n;i++) { if(strcmp(na,t[i]。 getname())==0) { cout<<"该学生信息为: ”< cout〈 temp=i;} } if(temp==-1000) cout< "〈〈endl; getchar(); } voidsort(studentt[],intn) { studentp;ints; system("cls"); cout<〈"请选择升序或降序(1或2): ”< cin〉>s; if(s==1) {cout〈〈"按学号排序(升序)完成如下: ”< for(inti=0;i〈n-1;i++) {for(intj=0;j { if(t[j].getnum()〉t[j+1].getnum()) { p=t[j]; t[j]=t[j+1]; t[j+1]=p; } } } cout<<"姓名性别学号班级联系电话”<〈endl; for(inta=0;a { cout< } } if(s==2) {cout〈〈”按学号排序(降序)完成如下: ”〈 for(inti=0;i {for(intj=0;j { if(t[j].getnum() getnum()) { p=t[j]; t[j]=t[j+1]; t[j+1]=p; } } } cout〈〈"姓名性别学号班级联系电话”〈 for(inta=0;a { cout< } } getchar(); } voidcount(studentt[],intn) { inti,c,temp=-1000; system(”cls”); fstreamfs; fs。 open(”c: \\item。 txt”,ios: : in); cout〈〈”请输入想统计人数的班级: "<〈endl; cin>〉c; ints=0; for(i=0;i〈n;i++) { fs>〉t[i]; if(c==t[i].getban()) { s++; temp=i; } } cout<<”该班级人数为: "〈 fs。 close(); if(temp==—1000) cout〈〈endl〈 "<〈endl; getchar(); } voidchange(studentt[],intn) { intid,i,temp=—1000,run=0; system("cls”); cout<〈”请输入要修改的学生的学号: ”< cin>〉id; fstreamfs; fs.open("c: \\item.txt”,ios: : in|ios: : out); for(i=0;i { if(id==t[i]。 getnum()) { cout<<”修改前该学生信息为: "〈〈endl<〈"姓名性别学号班级联系电话"〈 cout<〈t[i]; temp=i; run=2000;} } fs.close(); if(run==2000) {fs.open("c: \\item.txt",ios: : in|ios: : out); cout〈〈"请输入你修改该学生的信息为: ”<〈endl<<"姓名性别学号班级联系电话”< cin〉〉t[i]; fs〈〈t[i]; fs.close(); cout<〈”修改成功! "< if(temp==—1000) cout〈〈endl〈 ”〈 getchar(); } intdel(studentt[],intn) { intber,temp=—1000,run=0; inti,j,nu; system(”cls"); cout〈<"请输入要删除的学生的学号: "<〈endl; cin>〉ber; for(i=0;i { if(ber==t[i].getnum()) { temp=i; run=2000; } } if(run==2000) { cout<<”删除中...。 。 ..。 ”〈 cout<<”删除后数据为: "< } fstreamfs; fs.open(”c: \\item。 txt”,ios: : out); for(intx=0;x〈n;x++) { if(ber==t[x].getnum()) { for(j=0;j〈n;j++) { if(j==x) continue; else fs< cout〈 } } } nu=n-1; fs.close(); if(temp==-1000) cout<〈endl〈 "<〈endl; getchar(); returnnu; } voidmain() { students[M]; intlength; for(;;) { system("cls”); switch(menu()) { case0: exit(0);break; case1: length=enter(s);break; case5: sort(s,length);break; case8: change(s,length);break; case7: length=del(s,length);break; case2: search_num(s,length);break; case3: search_name(s,length);break; case4: search_ban(s,length);break; case6: count(s,length);break; } cout<<”按回车返回主菜单.。 ”<〈endl; getchar(); } return; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 学生 信息管理 系统 实验 报告 示例
![提示](https://static.bingdoc.com/images/bang_tan.gif)