C++课程设计学生信息管理系统.doc

上传人:laozhun 文档编号:2384417 上传时间:2023-02-17 格式:DOC 页数:11 大小:88.50KB
返回 下载 相关 举报
C++课程设计学生信息管理系统.doc_第1页
第1页 / 共11页
C++课程设计学生信息管理系统.doc_第2页
第2页 / 共11页
C++课程设计学生信息管理系统.doc_第3页
第3页 / 共11页
C++课程设计学生信息管理系统.doc_第4页
第4页 / 共11页
C++课程设计学生信息管理系统.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《C++课程设计学生信息管理系统.doc》由会员分享,可在线阅读,更多相关《C++课程设计学生信息管理系统.doc(11页珍藏版)》请在三一办公上搜索。

1、 C+课程设计 学生信息管理系统姓 名: 汪 志 成 学 号: 09102211 专 业: 信息与计算科学学 院: 理 学 院 指导老师: 日 期: 2012 . 12 . 12 学生管理系统C+课程设计报告概述 C+课程设计是实践性教学中的一个重要环节,它以C+教程课程为基础,是一门独立于课程之外的特殊课程。课程设计是让同学们对所学的课程更全面的学习和应用,理解和掌握课程的相关知识。C+教程是一门重要的专业基础课,是计算机理论和应用的核心基础课程。C+课程设计,要求学生在选择结构、循环结构以及算法方面的应用,加深对课程基本内容的理解。同时,在程序设计方法以及上机操作等基本技能和科学作风方面受

2、到比较系统和严格的训练。题目描述设计一个学生管理系统,要求能输入学生的信息,学生包含以下信息:姓名、学号、性别、出生年月、入学年份、院系。对学生信息能进行查询、修改、插入、删除等功能,并制作一个类似菜单的界面。由于学生管理系统中有学生的重要信息,为确保学生信息的安全性,需要设计一个登录系统才能进入菜单界面,只有登录后才能对系统中学生信息的录入、查询、修改、插入、删除等操作。查询功能需要分总体查询和条件查询;修改功能能修改学生单项信息和全部信息;插入功能能将新来的学生信息插入到指定位置;为了学生信息的误删,设计一个确认删除机制。系统分析这是一个学生信息管理系统,需为其设计一个功能的界面式菜单,通

3、过菜单对其各项功能一目了然,并通过if条件选择结构的设计,对各项功能按模块实现,并用while循环语句对各个模块完美的配合实现其界面的循环和跳转,并运用的C+中的特有的string、bool型数据,使得程序的设计更加完美。系统需要模拟学生信息管理系统的录入、查询、修改、插入、删等各项功能。各项功能模块如下:1、 录 入 2、查 询 3、修 改 4、 插 入 5、删 除 0、退 出 从主菜单中选择各项功能,进入相应的子菜单:录入功能支持录入单个学生信息和多个学生信息,完成录入信息后返回主菜单;查询功能支持总体查询和条件查询,查询完毕后可以选择返回主菜单;修改功能能对某个学生的各项信息进行单一修改

4、,也可以修改某个学生的全部信息,成功修改后返回主菜单,若没有找到需要修改的学生信息,可以选择继续修改或返回主菜单;插入功能支持单个插入和多个插入,插入是指将新来的学生信息插入到指定的位置,插入完毕后返回主菜单;删除功能支持单个删除和多个删除,删除学生信息会严重影响学生信息安全的操作,为确保学生信息的安全,采用了删除确认机制,只有确认后才进行删除;退出功能是结束整个循环,退出学生信息管理系统,同样采用了退出确认机制,只有确认后才会退出系统。并且每个子功能菜单中都有返回项,即使选错功能后能随时返回主菜单而不执行而任何操作,这样使系统更加完善。详细设计1、 录入学生信息在成功登陆学生信息管理系统后,

5、系统初始的学生信息为空,无法进行各功能的使用与实现,所以需要先录入学生的基本信息。学生基本信息包括:学生姓名、学生学号、性别、出生年月、入学年份、院系等六项信息。录入学生后,系统自定义给予学生一个序号,该序号与学生信息录入系统的先后顺序有关,序号的多少表示当前学生系统中已录入学生的个数。对于有同名或同学号的一些操作,都将是根据序号优先原则,比如修改、删除等功能。学生人数由变量n控制,每当录入一个学生信息时,n就会自加1。初始时n=0表示当前没有任何学生信息。多个录入则是对单个录入执行的一个for循环语句。/录入部分代码实现如下:n=n+1;coutnamen;coutnumn;coutyear

6、nmonndayn;coutsexn;coutdaten;coutyuann;coutendl 已成功录入 endl;2、 查询学生信息当没有任何学生信息即n=0时,将会无法查询;总体查询查询当前已录入的全体学生信息,学生按录入的先后即系统给定的序号输出,并有一个整体的列表,使得各个学生的信息一目了然。条件查询针对用户给定的条件(如某个学号、姓名等),在系统中逐一进行查找,查找到符合相应条件的学生则给予输出,若没有找到任何相符的学生信息,系统则给出没有找到相应学生的报告信息。/总体查询部分代码实现如下:for(i=1;i=n;i+)cout |setw(3)i |setw(9)numi |se

7、tw(9)namei |;if(sexi=1)cout 男 ;else if(sexi=2)cout 女 ;else cout未知;cout| setw(4)yeari.setw(2)moni.setw(2)dayi |setw(6)datei |setw(9)yuani |endl;/条件查询部分代码实现如下:for(i=1;i=n;i+)if(chaxun=numi|chaxun=namei|chaxun=yeari|chaxun=datei|chaxun=yuani)a=1;cout |setw(3)i |setw(9)numi |setw(9)namei |;if(sexi=1)cou

8、t 男 ;else if(sexi=2)cout 女 ;else cout未知;cout| setw(4)yeari.setw(2)moni.setw(2)dayi |setw(6)datei |setw(9)yuani |endl;3、 修改学生信息进入修改子菜单后,首先选择要修改的选项,如修改学号或者姓名等,选择修改项后,然后指定要修改的学生的姓名或者学号,然后系统会自动匹配,如果系统没有找到相应的学生的姓名或学号,系统将反馈没有找到的相应信息,无法进行修改;如若找到后,将会进行修改,请输入修改后的信息即可,修改完成后,系统将对该学生的信息进行更新。修改中提供全部修改功能项,使得修改更加完

9、善与方便实用。/修改部分代码实现如下:couta;if(a=0)cout 返回主菜单界面 7)cout 输入不正确,请重新输入endl;f1=true;elsecoutchaxun;m=0;for(i=1;i=n;i+)if(chaxun=namei|chaxun=numi)m=i;i=n+1;if(m=0)cout 没有找到相应学生的信息,无法进行修改endl;f1=true;else if(a=1)coutnamem;else if(a=2)coutnumm;else if(a=3)coutsexm;else if(a=4)coutyearmmonmdaym;else if(a=5)cou

10、tdatem;else if(a=6)coutyuanm;else if(a=7)coutnamem;coutnumm;coutyearmmonmdaym;coutsexm;coutdatem;coutyuanm;if(m!=0)cout 已成功修改 endl;4、 插入学生信息插入功能与录入功能有些相似,都具有录入学生信息的作用,但是插入功能的区别在于,插入能使录入的学生信息插入到指定的位置,这个位置是指系统的序号,如系统已经有5个学生的信息了,如果是录入一个新的学生信息,系统将会将这个学生序号定为6,即在前面5个学生的后面,而插入则可以插入的这个人中的任何顺序,输入插入位置为1则插入到第一

11、号位置,但是果然插入的位置大于5(当前学生的个数),为了是学生的序号连续,系统将强制转化为6,即在五个学生的后面。而多个插入则是由第一个插入的学生决定,如果出入3个,插入位置为3,则这三个学生的位置分别为3、4、5,而原来3、4、5的则变为6、7、8的位置,其基本原理与单个相似,插入是将要插入的该位置以及之后的学生信息相应的往后移动,信息移动完成后,要插入的位置的学生信息为空,然后输入学生的信息即赋值给该位置,然后完成插入,然后学生的个数同样会自加1。/插入部分代码实现如下:coutm;if(m=0)m=1;else if(mn)m=n+1;if(m=m;i-)namei+1=namei;nu

12、mi+1=numi;yeari+1=yeari;moni+1=moni;dayi+1=dayi;sexi+1=sexi;datei+1=datei;yuani+1=yuani;n=n+1;coutnamem;coutnumm;coutyearmmonmdaym;coutsexm;coutdatem;coutyuanm;cout 已成功插入 endl;5、 删除学生信息删除学生功能是输入要删除学生的学号或姓名,系统自动寻找与之匹配的学生,若没有找到将无法执行删除操作,若找到后,将会进入删除确认机制,这是为了确定学生的信息安全,确保不会被误删而丢失数据。删除功能的实现是将将要删除的学生序号找到,从

13、该序号开始,后一个学生的信息依次赋值给前一个学生,直到最后一个学生赋值给倒数第二个学生终止,并且学生数会自减1,多个删除与单个删除基本相似,利用循序即可实现。/删除部分代码实现如下:coutchaxun;m=0;for(i=1;i=n;i+)if(chaxun=namei|chaxun=numi)m=i;i=n+1;if(m=0)cout 没有找到相应学生的信息,无法进行删除endl;f1=true;else coute;if(e=Y|e=y)f0=false;else if(e=N|e=n)cout 已取消删除该学生信息endl;f1=true;f0=false;else cout 输入错误

14、,请重新输入(Y 确定/N 取消):;while(e=Y|e=y)e=e;for(i=m;i=n;i+)namei=namei+1;numi=numi+1;yeari=yeari+1;moni=moni+1;dayi=dayi+1;sexi=sexi+1;datei=datei+1;yuani=yuani+1;n=n-1;cout 已成功删除 endl;6、 登陆学生信息管理系统因为学生系统含有学生的重要信息,并且能对学生信息进行修改、删除等操作,所以将学生管理系统设定为一个加密系统。此处,为了方便演示,账号随意输入,密码定为2012./登陆部分代码实现如下:while(f0)coutendl

15、chaxun;coutchaxun;if(chaxun=2012)f0=false;else cout 账号或密码不正确,请重新输入endl;coutendl 登录成功,欢迎进入主菜单界面endl;7、 退出学生信息管理系统退出系统即终止整个循环即可。修改总循环的bool值为false,并进入一个退出确认机制,如果取消则不会退出返回到主菜单,如果确认则会退出结束本程序。/退出部分实现代码如下:if(k=0)f0=true;while(f0)f0=false;coute;if(e=y|e=Y) f=false;else if(e=n|e=N)coutendl;else f0=true; 总结 通

16、过这次C+课程设计,我认识到从课本上学到的知识是远远不够的。本次设计使我深入的了解了C+编程在实际问题下的灵活运用,并对C+有了更进一步的认识。虽然经过努力终于把该系统完成,可是该系统还是不完善,程序中的一些算法还不是很清楚,只不过把简单的功能实现了出来,这些缺憾归根结底都是因为我的C+语言和数据结构的水平还不是很高 ,还需要经过不懈的努力才能做出比较完善的系统。这次课程设计让我明白要真正的掌握一门编程语言需要的不仅仅是课本上的东西,还要在实际的编程过程中慢慢的掌握其中的奥妙。同时我明白了,要成为一名优秀的编程人员必须具备坚实的编程语言基础、熟练的调试程序的技能,耐心也很重要、同时细心也是不可

17、缺少的。所以为了自己的梦想,在以后的学习过程中,我要不断的充实自己,努力的学习。通过本次课程设计让我熟悉了软件开发的基本过程;初步掌握了软件开发过程的问题分析、系统设计、程序编码、测试等阶段的基本任务和技能方法;培养了我的算法设计和算法分析的能力;提高了综合运用所学的理论知识和方法以及独立分析和解决问题的能力。虽然课程设计的过程是艰辛的,但是当看着自己的程序能够运行的瞬间,无限的满足感会让自己感到从未有过的兴奋。参考文献1 郑莉 李宁编著:C+教程人民邮电出版社 2010版2 耿国华主编:数据结构(C语言描述)高等教育出版社 2005版3 金远平著:数据结构(C+描述)清华大学出版社 2005

18、版 附录:/学生信息管理系统源代码#include#include#includeusing namespace std;const int t=100;void main()int a,b,c,i,j,k,m,n;int sext;char e;bool f,f0,f1;string namet=v,numt=0,yeart=0,mont=0,dayt=0,datet=0,yuant=v,chaxun;n=0;f=true;f0=true;coutendl;cout = endl;cout | 学 生 信 息 管 理 系 统 | endl;cout | | endl;cout | 欢 迎 使

19、 用 | endl;cout | | endl;cout | 版权所有者:汪志成 | endl;cout | 2012.3.18 | endl;cout = endlendl;cout 本系统为加密系统,需要登录成功后方能使用 endl;while(f0)coutendlchaxun;coutchaxun;if(chaxun=2012)f0=false;else cout 账号或密码不正确,请重新输入endl;coutendl 登录成功,欢迎进入主菜单界面endl;while(f)coutendl;cout = endl;cout | | endl;cout | 学 生 信 息 管 理 系 统

20、 | endl;cout | | endl;cout | 1、录入 2、查询 3、修改 | endl;cout | 4、插入 5、删除 0、退出 | endl;cout | | endl;cout = endlendl;coutk;if(k=0)f0=true;while(f0)f0=false;coute;if(e=y|e=Y) f=false;coutendl = endl;cout | 学 生 信 息 管 理 系 统 | endl;cout | | endl;cout | 谢 谢 使 用 | endl;cout | | endl;cout | 版权所有者:汪志成 | endl;cout

21、| 2012.3.18 | endl;cout = endlendl;else if(e=n|e=N)coutendl;else f0=true;else if(k=1)cout = 录 入 = endl; cout | 1、单个 2、多个 0、返回 | endl;cout = endl;f1=true;while(f1)f1=false;coutendla;if(a=0) cout 返回主菜单界面 endl;else if(a=1)n=n+1;coutnamen;coutnumn;coutyearnmonndayn;coutsexn;coutdaten;coutyuann;coutendl

22、已成功录入 endl;else if(a=2)coutm;for(i=0;im;i+)n=n+1;coutnamen;coutnumn;coutyearnmonndayn;coutsexn;coutdaten;coutyuann;cout 已成功录入 i+1 个endlendl;else cout 输入不正确,请重新输入endl;f1=true;else if(k=2)cout = 查 询 = endl;cout | 1、总体查询 2、条件查询 0、返回 | endl;cout = endl;f1=true;while(f1)f1=false;coutendla;if(a=0) cout 返回

23、主菜单界面 endl;else if(a=1)if(n=0)cout 当前还没有录入任何学生的信息endl; elsecout = endl; cout |序号| 学 号 | 姓 名 |性别| 出生年月 |入学年份| 院 系 |endl; for(i=1;i=n;i+)cout |setw(3)i |setw(9)numi |setw(9)namei |; if(sexi=1)cout 男 ;else if(sexi=2)cout 女 ;else cout未知; cout| setw(4)yeari.setw(2)moni.setw(2)dayi |setw(6)datei |setw(9)y

24、uani |endl; cout = endl;else if(a=2)cout (支持查询项):姓名、学号、出生年份、入学年份、院系 endlendlchaxun;a=0;cout = endl; cout |序号| 学 号 | 姓 名 |性别| 出生年月 |入学年份| 院 系 |endl; for(i=1;i=n;i+)if(chaxun=numi|chaxun=namei|chaxun=yeari|chaxun=datei|chaxun=yuani)a=1; cout |setw(3)i |setw(9)numi |setw(9)namei |; if(sexi=1)cout 男 ;el

25、se if(sexi=2)cout 女 ;else cout未知; cout| setw(4)yeari.setw(2)moni.setw(2)dayi |setw(6)datei |setw(9)yuani |endl; if(a=0)cout = endl | 没 有 找 到 相 应 的 学 生 信 息 | endl; cout = endl; else cout 输入不正确,请重新输入endl;f1=true;else if(k=3)cout = 修 改 = endl; cout | 1.姓名 2.学号 3.性别 4.出生年月 5.入学时间 6.院系 7.全部 0.返回| endl;co

26、ut = endl; f1=true;while(f1)f1=false;coutendla;if(a=0)cout 返回主菜单界面 7)cout 输入不正确,请重新输入endl;f1=true; elsecoutchaxun;m=0;for(i=1;i=n;i+)if(chaxun=namei|chaxun=numi)m=i;i=n+1; if(m=0)cout 没有找到相应学生的信息,无法进行修改endl;f1=true; else if(a=1)coutnamem;else if(a=2)coutnumm; else if(a=3)coutsexm;else if(a=4)coutyea

27、rmmonmdaym; else if(a=5)coutdatem;else if(a=6)coutyuanm; else if(a=7)coutnamem;coutnumm;coutyearmmonmdaym; coutsexm;coutdatem;coutyuanm; if(m!=0)cout 已成功修改 endl;else if(k=4)cout = 插 入 = endl; cout | 1、单个 2、多个 0、返回 | endl;cout = endl; f1=true;while(f1)f1=false;coutendla;if(a=0)cout 返回主菜单界面endl; else

28、if(a=1)coutm;if(m=0)m=1;else if(mn)m=n+1; if(m=m;i-)namei+1=namei;numi+1=numi;yeari+1=yeari;moni+1=moni;dayi+1=dayi;sexi+1=sexi;datei+1=datei;yuani+1=yuani; n=n+1;coutnamem;coutnumm;coutyearmmonmdaym; coutsexm;coutdatem;coutyuanm;cout 已成功插入 endl; else if(a=2)coutb;for(j=0;jb;j+) coutm;if(m=0)m=1;els

29、e if(mn)m=n+1; if(m=m;i-)namei+1=namei;numi+1=numi;yeari+1=yeari;moni+1=moni;dayi+1=dayi;sexi+1=sexi;datei+1=datei;yuani+1=yuani; n=n+1;coutnamem;coutnumm;coutyearmmonmdaym; coutsexm;coutdatem;coutyuanm;cout 已成功插入 j+1 个endlendl; else cout 输入不正确,请重新输入endl;f1=true;else if(k=5)cout = 删 除 = endl; cout |

30、 1、单个 2、多个 0、返回 | endl;cout = endl; f1=true;while(f1)c=n;f1=false;coutendla;if(a=0)cout 返回主菜单界面endl; else if(a=1)coutchaxun;m=0;for(i=1;i=n;i+)if(chaxun=namei|chaxun=numi)m=i;i=n+1; if(m=0)cout 没有找到相应学生的信息,无法进行删除endl;f1=true; else coute;if(e=Y|e=y)f0=false;else if(e=N|e=n)cout 已取消删除该学生信息endl;f1=true;f0=false;el

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号