




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、合 肥 师 范 学 院(本 科)课程设计说明书课 程 数据结构题 目 学生信息管理系统姓 名 俞雪峰、刘超、石富强、汪洋学 号1310421007、1310421115、1310421057、1310421011专业班级 2013级软件工程(1)班指导教师 王群芳完成日期2014年12月28号28目 录1 引 言.4 1.1 问题的提出.4 1.2国内外研究的现状.4 1. 3任务与分析.42 程序的主要功能.5 2.1创建功能.5 2.2显示功能.5 2.3查找功能.5 2.4排序功能.5 2.5添加功能.5 2.6修改功能.5 2.7删除功能.5 2.8退出系统.53 程序运行平台.64
2、总体设计.105 程序类的说明.116 模块分析.13 6.1 创建模块.13 6.2 显示模块.13 6.3 查找模块.14 6.4 排序模块.15 6.5 添加模块.16 6.6 修改模块.17 6.7 删除模块.18 6.8退出模块.207 系统测试.208 结论.26致谢.28参考文献.28 摘 要 随着计算机的普及,网络时代的到来,社会信息化程度不断提高,信息管理与信息系统越来越受人们所青睐,由此产生信息总量的剧增,信息更新速度的加快,使得管理的负担越来越重。如何快速查找学生的信息,成为摆在所有管理工作者面前的一大难题。本系统为学校学生信息管理系统,该系统进行了深入的分析和研究,提出
3、了学生信息管理的理论依据和实现的方法。该系统分析了学生的基本信息,利用c+的类与对象的关系编程实现了对每个学生信息的基本管理系统,该系统具有对学生信息的显示、添加、查找、修改和删除等功能。 关键词:管理系统;计算机;学生;信息;功能1 引 言 1.1 问题的提出 在现代化的学生信息管理中,学生信息管理系统有着十分重要的作用,然而,用大型软件系统来于学校的小型事件,不啻于“杀鸡用牛刀”,因此小型的的软件对于这种学校的学生成绩管理自然有十分重要作用。某学校出于这种目的制作了这个学生信息管理系统。1.2国内外研究的现状 信息管理是学校管理的一个重要内容,随着时代的进步,学校也逐渐变得庞大起来.如何管
4、理好学校内部学生的信息,成为学校管理中的一个大的问题.在这种情况下,一个可以规范化,自动化的学生信息管理系统就显的非常必要. 最初的信息管理,都是靠人力来完成的.当学校人数比较小的时候,人力可以完成,随着学生人数越来越多,学校依然维持着用人力进行管理,必然会造成工作效率低,工作错误增高的问题. 学生信息管理系统就是把分散的学生信息实行统一,集中,规范的收集管理,建立分类编号管理,电脑存储查询以及防火,防潮,防蛀防盗等现代化,专业化的管理系统,为学校解除后顾之忧. 学生信息管理系统为学校提供学生信息查询,录入,修改,删除等功能. 1.3任务与分析 任务: 本课题主要的任务是定义学生类Studen
5、t,其中包含学生姓名、学号、性别或更多门课程的成绩以及对这些成员的操作,然后要定义Student的对象数组,录入学生信息并显示到屏幕,同时保存到文件;可以从文件读取数据并查询、修改和统计学生信息。并且,在录入信息前要有提示信息,屏幕输出和文件存取时可使用>>、<<运算符重载或用I/O流对象引用作参数的成员函数实现。分析: 要完成上面的任务,首先根据要解决的问题是分析设计类图,然后抽象出各个类的数据成员和函数成员,然后进行详细编码,在主函数中创建类的对象,调用适当的成员函数或全局函数实现相应的功能。最后再对软件进行测试。2 程序的主要功能2.1创建功能录入学生基本信息,包
6、括学号,姓名,性别,年龄,数据结构成绩。2.2显示功能显示所有学生的主要信息包括学号,姓名,性别,年龄,数据结构成绩。2.3查找功能根据你键入的学生姓名,显示其学号,性别,年龄,数据结构成绩等详细信息,或者键入的学生学号,显示姓名,性别,年龄,数据结构成绩等详细信息!2.4排序功能对学生的基本信息,包括学号,姓名,性别,年龄,数据结构成绩等进行排序处理,排序包括插入排序,冒泡排序和选择排序。2.5添加功能 添加学生基本信息,包括学号,姓名,性别,年龄,数据结构成绩等。2.6修改功能 对学生的基本信息进行修改,包括学号,姓名,性别,年龄,数据结构成绩等。2.7删除功能 能够对一个学生的信息进行删
7、除可按照信息位置进行删除。2.8退出系统 能够安全退出学生成绩管理系统。3 程序运行平台 VC+6.0。 具体操作如下: (1).进入visusal c+6.0开发环境。单击Next TipA按钮可显示下一条信息,单 击Close按钮关闭如图3.1所示的帮助窗口,进入visusal c+6.0开发环境主窗口。 图3.1 开发窗口 (2).创建一个visual c+项目。在开发环境主窗口中选择File/new菜单项,单击Projects选项卡,选择Win32 Console Application,在Project Name文本框中输入“学生信息管理系统”,在Location文本框中输入要保存的
8、路径,单击OK按钮完成该对话框的设置,如图3.2所示。在弹出的对话框中选择An Empty Project单选钮,并单击Finish按钮,在弹出的对话框中单击OK按钮,如图3.3所示。完成“学生成绩管理系统”的创建。 图3.2 输入名称 图3.3 创建项目 (3).编辑并建立C+源程序。选择Project Add To Project New菜单项,在弹出的对话框的File选项卡中选择C+ Source File选择,在File文本框中输入文件名“学生信息管理系统”,如图3.4所示,其他选项选择默认值。单击OK按钮,弹出如图3.5所示的编辑窗口,在该窗口中进行源代码的输入。 图3.4 输入文件
9、名 图3.5 编译源代码 (4).编译并运行程序。在完成源代码的编辑后,选择File Save保存所编辑的源程序文件。选择Build Compile学生成绩管理系统.cpp编译源程序。如图3.6所示。 图3.6 运行程序(5)选择Build Compile学生成绩管理系统.exe连接学生成绩管理系统程序,如果有错误显示,则排除这些错误直到没有,那样就已经建立了学生成绩管理系统.exe可执行文件。选择Build Execute.exe,运行学生成绩管理系统程序,其结果如图3.7所示。 图3.7 运行结果4 总体设计 整个程序的主要结构设计如下图4.1所示。查找功能显示功能删除功能修改功能创建功能
10、排序功能添加功能退出功能 声明类 Student类 主函数 图4.1 结构设计5 程序类的说明5.1 Student类的声明:typedef structint id;char name50;char sex50;int age;int SGscore;elemtype;typedef structelemtype datamaxsize+1;int len;student;5.2 声明类:void creat(L);void display(L);int search(L);void sort_SGscore1(L);void sort_SGscore2(L);void sort_SGsco
11、re3(L);int delet(L,i);void modify(L);void creat(student &L)6 模块分析6.1 创建模块系统将提示用户输入新的学生的信息,插入在顺序表中。其示意图如下:输入学生信息调用creat函数 图6.1 创建示意图其代码如下:void creat(student &L) int i;cout<<"请输入所记录的学生总数:"cin>>L.len;for(i=1;i<=L.len;i+)cout<<"请输入学生的学号、姓名、性别、年龄、数构成绩:"cin
12、>>L.datai.id>>L.>>L.datai.sex>>L.datai.age>>L.datai.SGscore;6.2 显示模块显示模块将输出所有学生的成绩等信息。其示意图如下:显示学生信息调用display函数 图6.2 创建示意图其代码如下:void display(student &L)for(int i=1;i<=L.len;i+)cout<<"该学生的学号、姓名、性别、年龄、数构成绩"<<endl;cout<<L.datai.i
13、d<<" "<<L.<<" "<<L.datai.sex<<" "<<L.datai.age<<" "<<L.datai.SGscore; cout<<endl;6.3查找模块首先由用户输入要查找的学生学号或者姓名,然后系统用查找函数查找,然后系统就调用输出函数,输出所查找的学生信息。其示意图如下: 输出学生信息 按学号查找 按姓名查找 调用search函数 图6.3 查找示意图其代码如下
14、:int search(student &L) int i,j;int num1;char num25;cout<<"0.退出查找系统"<<endl; cout<<"1.按学号查找"<<endl; cout<<"2.按姓名查找"<<endl; while(1)cout<<"请选择(0-2)"cin>>j;while(j<0|j>2)cout<<"只能选择0-2,请重新选择:&qu
15、ot;cin>>j;switch(j)case 0: return 0;case 1:cout<<"请输入学生学号:"cin>>num1;for(i=1;i<=L.len;i+)if(L.datai.id=num1)cout<<"找到了该同学!"<<endl; cout<<"该同学的学号、姓名、性别、年龄、数构成绩为:"<<endl; cout<<" "<<L.datai.id<<"
16、; "<<L.<<" "<<L.datai.sex<<" "<<L.datai.age<<" "<<L.datai.SGscore<<endl;return i;else if(i=L.len)cout<<"未查到!"<<endl;break;case 2:cout<<"请输入学生姓名:"cin>>num2;for(i=1;
17、i<=L.len;i+)if(strcmp(L.,num2)=0)cout<<"找到了该同学!"<<endl; cout<<"该同学的学号、姓名、性别、年龄、数构成绩为:"<<endl; cout<<" "<<L.datai.id<<" "<<L.<<" "<<L.datai.sex<<" "<
18、<L.datai.age<<" "<<L.datai.SGscore<<endl;return i;else if(i=L.len)cout<<"未查到!"<<endl;break;6.4排序模块 对保存的学生信息按数据结构成绩依次进行排序,包括插入排序,冒泡排序,选择排序。其示意图如下: 输出学生信息排序结果 调用sort_SGscore3函数 调用sort_SGscore2函数 调用sort_SGscore1函数 图6.4 排序示意图其代码如下:void sort_SGscore1(s
19、tudent &L)int i,j; for (i=2;i<=L.len;i+) L.data0=L.datai; for(j=i-1; L.data0.SGscore<L.dataj.SGscore; j-) L.dataj+1=L.dataj; L.dataj+1=L.data0; void sort_SGscore2(student L)int i,j;for(i=1;i<=L.len;i+)int noswap=1;for(j=L.len;j>=i+1;j-)if(L.dataj.SGscore<L.dataj-1.SGscore)L.data0=
20、L.dataj;L.dataj=L.dataj-1;L.dataj-1=L.data0;noswap=0;if(noswap)break;void sort_SGscore3(student L)int i,j;for(i=1;i<=L.len;i+)int min=i;for(j=i+1;j<=L.len;j+)if(L.dataj.SGscore<L.datamin.SGscore)min=j;if(min!=i)L.data0=L.datamin;L.datamin=L.datai;L.datai=L.data0;6.5添加模块 输入要添加的学生信息 调用Sert函数在
21、原有信息基础上添加其他的学生信息。其示意图如下: 图6.5 添加示意图其代码如下:int insert(student &L)int i=0;elemtype S;i=L.len; cout<<"请输入插入学生的学号、姓名、性别、年龄、数构成绩:"cin>>S.id>>S.name>>S.sex>>S.age>>S.SGscore;if (L.len=maxsize ) cout<<"表已满,无法插入!" return 0; for(i=L.len;i>=1
22、&& L.datai.id>S.id;i-) L.datai+1=L.datai; L.datai+1=S; L.len+; cout<<"插入成功!" return 1;6.6删除模块 删除学生信息 调用delete函数 输入要删除的信息位置首先由用户输入要删除的单个学生信息位置,然后调用删除函数,删除该名学生的信息。其示意图如下: 图6.6 删除示意图其代码如下:int delet(student &L,int i) int j; if (L.len<i|i<=0 ) cout<<"表无此位置,
23、无法删除!" return 0; for(j=i;j<=L.len;j+) L.dataj=L.dataj+1; L.len-; return 1; 6.7修改模块首先由用户输入要修改的学生的学号或姓名,然后调用修改函数,对学生信息进行修改,包括学号,姓名,性别,年龄,数据结构成绩。其示意图如下: 修改学生信息 调用modify函数输入要修改学生的学号或姓名 图6.7 修改示意图其代码如下:void modify(student &L)int i,x,a=0;int id;char name50;char sex50;int age;int SGscore;cout&l
24、t;<"请选择你要修改的学生学号"cin>>id;cout<<"请输入你要修改的学生信息"<<endl;cout<<"1.修改学生学号"<<endl;cout<<"2.修改学生姓名"<<endl;cout<<"3.修改学生性别"<<endl;cout<<"4.修改学生年龄"<<endl;cout<<"5.修改学生数构成
25、绩"<<endl;cin>>x;switch(x)case 1:for(i=0;i<L.len;i+)if(id=L.datai.id) cout<<"请输入新学号" cin>>id; L.datai.id=id; a=1;if(a=0)cout<<"对不起你要改的名字不存在" break; case 2:for(i=0;i<L.len;i+)if(id=L.datai.id) cout<<"请输入新姓名" cin>>name;
26、strcpy(L.,name); a=1;if(a=0)cout<<"对不起你要改的名字不存在" break; case 3:for(i=0;i<L.len;i+)if(id=L.datai.id) cout<<"请输入新性别" cin>>sex; strcpy(L.datai.sex,sex); a=1;if(a=0)cout<<"对不起你要改的名字不存在" break; case 4: for(i=0;i<L.len;i+)if(id=L.datai.
27、id) cout<<"请输入新年龄" cin>>age; L.datai.age=age; a=1;if(a=0)cout<<"对不起你要改的名字不存在" break; case 5: for(i=0;i<L.len;i+)if(id=L.datai.id) cout<<"请输入新数构成绩" cin>>SGscore; L.datai.SGscore=SGscore; a=1;if(a=0)cout<<"对不起你要改的名字不存在" bre
28、ak;6.8退出模块首先由用户选择退出程序选项,由系统调用退出模块的程序,达到退出系统的目的。7 系统测试首先进入VC+6.0,打开工程学生信息管理系统.dsw,然后进入源程序,接着选择Build下的Execute学生信息管理系统.exe即可运行程序。在程序开始时如图7.1所示。 图7.1 进入系统图7.1表示已经成功进入学生信息管理系统。 图7.2 创建功能图7.2表示实现了程序的创建功能。 图7.3 显示功能图7.3表示实现了程序的显示功能。 图7.4 查找功能图7.4表示实现了程序的查找功能。 图7.5 排序功能图7.5表示实现了程序的排序功能。 图7.6 添加功能图7.6表示实现了程序
29、的添加功能。 图7.7 删除功能图7.7表示实现了程序的删除功能。 图7.8 修改功能图7.8表示实现了程序的修改功能。 图7.9 退出系统图7.9表示实现了程序的退出功能。 通过上述测试,本系统实现了对学生一系列信息的显示功能,能够显示已有学生的信息;实现了对学生的添加功能,能够添加另外学生的信息;实现了对已有学生信息的查找功能,能够根据学生的姓名或学号来查找学生的信息;实现了对学生信息的修改,删除等功能,同时能够避对没有的学生进行准确的判断。8 结论系统是以Visual C+6.0为开发工具编的程序。本系统实现了对学生信息的显示,添加,查找,修改和删除的功能。第一周结束的时候,我们感觉自己收获挺大的,从一开始的迷茫,不知道从何下手到把程序中的几个模块编写出来,心里挺开心的。但是,到了第二周,我由不得不再次陷入困境。在整个程序的编写过程中。最难
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学校电炒锅管理制度
- 学生俱乐部管理制度
- 安全办部门管理制度
- 安哥拉卫生管理制度
- 宝贝王卫生管理制度
- 实训室物资管理制度
- 客房部员工管理制度
- 客运车公司管理制度
- 家具厂培训管理制度
- 家政流程及管理制度
- 水产育苗场管理制度
- 致命性肺血栓栓塞症急救护理专家共识(2024版)解读
- 济宁医学院《科学技术哲学》2023-2024学年第二学期期末试卷
- 2025年医药代表职业资格考试试题及答案
- 项目合作经验与能力证明(8篇)
- 2025年广东省深圳中考数学考前冲刺(含详解)
- 2025-2030年中国基因检测行业现状调查及发展前景预测研究报告
- 贵州省黔南布依族苗族自治州2023-2024学年八年级下学期期末质量监测语文试卷(含答案)
- 2025年“全国安全生产月”《安全知识》竞赛题库及答案
- 2025中考政治最后一课及考前指导【课件】
- 2025春国开《马克思主义基本原理》大作业答案
评论
0/150
提交评论