C++学生信息管理系统实验报告-示例_第1页
C++学生信息管理系统实验报告-示例_第2页
C++学生信息管理系统实验报告-示例_第3页
C++学生信息管理系统实验报告-示例_第4页
C++学生信息管理系统实验报告-示例_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上课程设计报告课程设计题目: 学生信息管理系统 学生姓名: 张鹏专 业: 软件工程(嵌入式)班 级: 指导教师: 高 永 平 2017年 6 月 9 日目录一、需求分析:根据对学生信息管理的需要,建立一个“学生信息管理系统”,以方便对学生信息数据的录入、修改、删除和查询功能。、要求完:1.有菜单界面可以对功能进行选择;2.能录入姓名、性别、学号、班级和电话号码等学生信息并保存到文件中;3.能根据学生的学号进行排序;4.能根据学生的学号对学生的信息进行修改;5.能根据学生的学号对学生的信息进行删除;6.能根据学生的学号、姓名和班级等对学生信息进行查询;7.能根据班级对学生

2、人数进统计。二、总体设计:根据以上分析,本系统主要包括:1.从键盘录入学生个人信息,并保存到文件中;2.按学号对学生信息进行排序3.按学号对学生信息进行修改;4.按学号对学生信息进行删除;5.按学号对学生信息进行查询;6.按姓名对学生信息进行查询;7.按班级对学生信息进行查询;8.结束当前程序; 等8大功能,系统主要定义了1个类和16个函数以实现各个功能:(1)主函数main():调用录入、查找、修改、排序、统计、删除等函数对学生成员信息进行处理。(2)定义类class student:用于定义成员结构体数组。(3)类中构造函数student():对类中各项私有成员进行传值。(4)类中输入运算

3、符重载函数operator >>():方便对类的对象输入。(5)类中输出运算符重载函数operator <<():方便对类的对象输出。(6)获取函数getnum():方便在类外对类中的私有成员num的数据进行调用。(7)获取函数getname():方便在类外对类中的私有成员name的数据进行调用。(8)获取函数getban():方便在类外对类中的私有成员ban的数据进行调用。(9)录入函数 enter():从键盘输入学生个人信息,并保存到文件中。(10)查找函数 search_num():按学号查找学生个人信息。(11)查找函数 search_name():按姓名查找学

4、生个人信息。(12)查找函数 search_ban():按班级查找学生个人信息。(13)修改函数 changr():按学号修改学生个人信息,保存的文件中。(14)删除函数 del():按学号删除学生个人信息,保存到文件中。(15)排序函数sort():按学号对学生个人信息进行排序。(16)统计函数count():按班级对学生人数进行统计。程序功能结构图如图1所示:学生信息管理系统键 盘 输 入保 存 数 据学 号 排 序信 息 修 改信 息 删 除学 号 查 询班 级 查 询 人 数 统 计姓 名 查 询图1程序功能结构图如图三、详细设计。本系统有一个主函数,8个功能模块,每个功能模块函数都是

5、由主函数调用,分别说明如下:(1)主函数main():调用录入、查找、修改、排序、统计、删除等函数对学生成员信息进行处理。主函数流程图如图2所示:开 始输出菜单输入操作选择cc=0c=8c=7c=6c=5c=3c=2c=1退出系统保存数据输入数据学号排序信息修改信息删除学号查询姓名查询统计人数班级查询c=4继续操作否YN结束图2主函数流程图(2)键盘输入函数流程图:从键盘输入学生个人信息,并保存到文件中。流程图如图3所示:开 始输入学生个人信息是否继续结束输入学生人数保存数据到文件中YN图3键盘输入函数流程图(3)排序函数流程图:按学号对学生个人信息进行排序。流程图如图4所示:开 始是否继续结

6、束按学号进行学排序输出排序完成后的信息NY图4排序函数流程图(4)信息修改函数流程图:由用户输入需要修改的成员的学号,在现有的学生信息中查询是否有此学生信息的存在,查到输出该学生的全部信息,没查到则输出“学号为XX的学生不存在!”信息。流程图如图5所示:开 始输出不存在成员信息信息打开文件输入成员学号查询到否输出查到成员信息信息输入修改成员信息信息关闭文件结束图5信息修改函数流程图(5)信息删除函数流程图:由用户输入需要删除的成员的学号,在现有的学生信息中查询是否有此学生信息的存在,查到删除该学生的全部信息,没查到则输出“学号为XX的学生不存在!”信息。流程图如图6所示:开 始打开文件查询到否

7、关闭文件结束Y删除此学生信息N输入不存在信息读入学生信息输入删除学号图6信息删除函数流程图(6)学号查询函数流程图:由用户输入需要查询的成员的学号,在现有的学生信息中查询是否有此学生信息的存在,查到输出该学生的全部信息,没查到则输出“学号为XX的学生不存在!”信息。流程图如图7所示:开 始打开文件输出不存在学生信息结束关闭文件查询到否输入学生学号N输出查到学生信息信息Y图7学号查询函数流程图(7)姓名查询函数流程图:由用户输入需要查询的成员的姓名,在现有的学生信息中查询是否有此学生信息的存在,查到输出该学生的全部信息,没查到则输出“姓名为XX的学生不存在!”信息。流程图如图8所示:开 始打开文

8、件输出不存在学生信息结束关闭文件查询到否输入学生姓名N输出查到学生信息信息Y图8姓名查询函数流程图(8)班级查询函数流程图:由用户输入需要查询的成员的班级,在现有的学生信息中查询是否有此学生信息的存在,查到输出该学生的全部信息,没查到则输出“班级为XX的学生不存在!”信息。流程图如图9所示:开 始打开文件输出不存在该班级学生结束关闭文件查询到否输入学生班级N输出查到学生信息信息Y图9班级查询函数流程图(9)按班级统计函数流程图:由用户输入需要查询的成员的班级,在现有的学生信息中查询是否有此学生信息的存在,查到即对该班级人数进行统计,没查到则输出“班级为XX的学生不存在!”信息。流程图如图10所

9、示:开 始打开文件输出不存在该班级学生结束关闭文件查询到否输入学生班级N输出该班级的人数Y图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五、软件操作使用说明书。本软件采用命令行对话方式进行操作,运行后出现主界面如上图所示,然后按菜单提示操作即可。六、总结。经过一个星期的不

10、断上机实践练习,我对c+有了更进一步的认识和了解,学好它重在实践,要通过不断的上机操作不断的进行操作和试运行才能更好地掌握它,通过这次实践,我发现了自己的许多不足:我对各种循环的理解深度还不够,对字符成员调用还不是很熟练,对指针的理解还是不透彻,以及对解决问题的想法不够全面。这些不足,在这次实践中都有所提高,并且对这些不足我都会在后续的学习中努力补足。七、代码: #include<iostream>#include<fstream>#include<cstring>#define M 5000using namespace std;class student

11、public:student()student(char na10,char se10,int n,int b,char t12):num(n),ban(b)strcpy(sex,se);strcpy(name,na);strcpy(tel,t);friend istream & operator >>(istream & is,student & s)is>>>>s.sex>>s.num>>s.ban>>s.tel;return is;friend ostream & oper

12、ator <<(ostream & os,student & s)os<<<<" "<<s.sex<<" "<<s.num<<" "<<s.ban<<" "<<s.tel<<endl;return os;int getnum()return num;int getban()return ban;char *getsex()char *s=new charst

13、rlen(sex);s=sex;return s;char *getname()char *p=new charstrlen(name);p=name;return p;char *gettel()char *t=new charstrlen(tel);t=tel;return t;private:char name10;char sex10;int num,ban;char tel12;int menu()char s80;int c;cout<<"* 主 菜 单 *"<<endl<<endl;cout<<" |

14、0.退出当前程序 | n"<<endl;cout<<" | 1.输入学生信息 | n"<<endl;cout<<" | 2.根据学号查询 | n"<<endl;cout<<" | 3.根据姓名查询 | n"<<endl;cout<<" | 4.根据班级查询 | n"<<endl;cout<<" | 5.根据学号排序 | n"<<endl;cout<&

15、lt;" | 6.按班级计人数 | n"<<endl;cout<<" | 7.根据学号删除 | n"<<endl;cout<<" | 8.根据学号修改 | n"<<endl;cout<<"-"<<endl;cout<<" 输入您的菜单选项编号(0-8):"<<endl;cout<<" Designed by Peng"<<endl;for(;)g

16、ets(s);c=atoi(s);if(c>8)cout<<"输入错误,请重新输入!:"elsebreak;return c;int enter(student t)int i,n;system("cls");cout<<" 请输入学生信息条数"<<endl;cin>>n;cout<<" 请输入学生信息n"<<endl;cout<<"姓名 性别 学号 班级 联系电话"<<endl;fstream

17、 fs;fs.open("c:item.txt",ios:out);for(i=0;i<n;i+)cin>>ti;fs<<ti;fs.close();getchar();return n;void search_num(student t,int n)int i,nu,temp=-1000;system("cls");cout<<"请输入查找学生的学号:"<<endl;cin>>nu;for(i=0;i<n;i+)if(nu=ti.getnum()cout<

18、<"该学生信息为:"<<endl<<"姓名 性别 学号 班级 联系电话"<<endl;cout<<ti;temp=i;if(temp=-1000)cout<<endl<<endl<<"学号为 "<<nu<<" 的学生不存在!"<<endl;getchar();void search_ban(student t,int n)int i,ba,temp=-1000;system("cl

19、s");cout<<"请输入查找学生的班级号:"<<endl;cin>>ba;cout<<"该学生信息为:"<<endl<<"姓名 性别 学号 班级 联系电话"<<endl;for(i=0;i<n;i+)if(ba=ti.getban()cout<<ti;temp=i;if(temp=-1000)cout<<endl<<endl<<"班级为 "<<ba<

20、;<" 的学生不存在!"<<endl;getchar();void search_name(student t,int n)int i,temp=-1000;char na20;system("cls");cout<<"请输入查找学生的姓名:"<<endl;cin>>na;for(i=0;i<n;i+)if(strcmp(na,ti.getname()=0)cout<<"该学生信息为:"<<endl<<"姓名

21、性别 学号 班级 联系电话"<<endl;cout<<ti;temp=i;if(temp=-1000)cout<<endl<<endl<<"姓名为 "<<na<<" 的学生不存在!"<<endl;getchar();void sort(student t,int n)student p;int s;system("cls");cout<<"请选择升序或降序(1或2):"<<endl;ci

22、n>>s;if(s=1)cout<<"按学号排序(升序)完成如下:"<<endl;for(int i=0;i<n-1;i+)for(int j=0;j<n-1-i;j+)if(tj.getnum()>tj+1.getnum()p=tj;tj=tj+1;tj+1=p;cout<<"姓名 性别 学号 班级 联系电话"<<endl;for(int a=0;a<n;a+)cout<<ta;if(s=2)cout<<"按学号排序(降序)完成如下:&

23、quot;<<endl;for(int i=0;i<n-1;i+)for(int j=0;j<n-1-i;j+)if(tj.getnum()<tj+1.getnum()p=tj;tj=tj+1;tj+1=p;cout<<"姓名 性别 学号 班级 联系电话"<<endl;for(int a=0;a<n;a+)cout<<ta;getchar();void count(student t,int n)int i,c,temp=-1000;system("cls");fstream fs;

24、fs.open("c:item.txt",ios:in);cout<<"请输入想统计人数的班级:"<<endl;cin>>c;int s=0;for(i=0;i<n;i+)fs>>ti;if(c=ti.getban()s+;temp=i;cout<<"该班级人数为:"<<s<<endl;fs.close();if(temp=-1000)cout<<endl<<endl<<"班级为 "<

25、<c<<" 的学生不存在!"<<endl;getchar();void change(student t,int n)int id,i,temp=-1000,run=0;system("cls");cout<<"请输入要修改的学生的学号:"<<endl;cin>>id;fstream fs;fs.open("c:item.txt",ios:in|ios:out);for(i=0;i<n;i+)if(id=ti.getnum()cout<&

26、lt;"修改前该学生信息为:"<<endl<<"姓名 性别 学号 班级 联系电话"<<endl;cout<<ti;temp=i;run=2000;fs.close();if(run=2000)fs.open("c:item.txt",ios:in|ios:out);cout<<"请输入你修改该学生的信息为:"<<endl<<"姓名 性别 学号 班级 联系电话"<<endl;cin>>ti;

27、fs<<ti;fs.close();cout<<"修改成功!"<<endl;if(temp=-1000)cout<<endl<<endl<<"姓名为 "<<id<<" 的学生不存在!"<<endl;getchar();int del(student t,int n)int ber,temp=-1000,run=0;int i,j,nu;system("cls");cout<<"请输入要删除的学生的学号:"<<endl;cin>>ber;for(i=0;i<n;i+)if(ber

温馨提示

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

评论

0/150

提交评论