学生基本信息管理系统.docx
- 文档编号:10622662
- 上传时间:2023-02-21
- 格式:DOCX
- 页数:30
- 大小:215.20KB
学生基本信息管理系统.docx
《学生基本信息管理系统.docx》由会员分享,可在线阅读,更多相关《学生基本信息管理系统.docx(30页珍藏版)》请在冰豆网上搜索。
学生基本信息管理系统
前言
随着两周时间的过去,本次的“学生成绩管理系统”课程设计也结束了。
虽然只是两周时间,但是却让我对C++有了新的认识和更深一步的了解。
在这两周里,每天下午都坐在机房,对着电脑,看着自己编写的代码从少变多,从简单变复杂。
心里都有种说不出的感觉,既希望能够快点写完,又害怕出现未知的错误。
虽然其中出现很多错误,但是经过请教一些同学,上网XX或者翻看教科书,最终还是解决了这些问题,完成了任务。
“C++程序设计”是大学本科计算机相关专业的一门非常重要的专业基础课。
本课程的重点是C++程序语言的选择、循环语句,数组,函数,指针,类及对象以及继承、多态等,给学生渗透程序及算法设计的基本思想及方法,难点是指针和面向对象的理解。
为体现作为专业基础课的“专业”和“基础”的特点,本次课程设计有两个方面的内容要在实践中落实:
一、掌握C++语言本身的语法及程序结构。
二、掌握一定的算法及常用函数的编程实现,为后续课程打好基础。
同时,我也希望自己可以在此次课程设计学习之后,可以更加熟练的运用C++基本语句,培养自己对于计算机编程的喜爱,对编程可以有更深一步的了解。
1、课程设计的目的及要求
1.1课程设计的目的
C++课程设计是将C++理论教学及实践环节相结合的关键步骤,通过该实践教学环节,使学生进一步学习和巩固C++课程的核心内容,加深对面向对象程序设计思想的正确理解;并且熟练掌握C++程序设计技能及上机调试方法,为今后学习其他专业课程打好基础;并能具备一定的计算机程序设计能力,培养独立分析问题、解决问题及查阅资料、获取新知识的能力,以适应技术不断更新的计算机行业特点。
1.2课程设计的内容
按照要求设计一个学生基本信息管理系统,实现对学生信息的综合管理。
学生信息包括:
学号、姓名、年龄、性别、家庭住址、联系电话、寝室号等信息。
现要求编写程序来完成如下功能:
(1)学生信息的输入
包含功能:
对输入的学号是否重复进行判断(学号唯一);对输入的是否为有效性别进行判断。
(2)学生信息的显示
(3)学生信息的查询
包含功能:
实现按“学号、姓名、性别、寝室号”等查询;若非法查询或未查到请给予提示。
(4)学生信息的统计
包含功能:
统计学生的“男生人数、女生人数、总人数”
(5)学生信息的删除
包含功能:
删除指定学号的学生信息;若无此记录,给予提示。
(6)学生信息的修改
包含功能:
根据接收到的待修改的学生的学号,进行对相应信息的修改。
(7)清理屏幕
(8)退出
1.3课程设计的要求
(1)熟悉VC++6.0编译环境,熟练使用编译调试工具。
(2)学习C++输入输出流对象的使用。
(3)通过系统分析和实现,掌握简单软件开发的一般过程。
(4)以学生独立思考、解决问题为主,教师指导为辅,结合上机操作,完成指定的任务,撰写课程设计报告。
2、设计方案及具体实现
2.1程序总的功能说明
这是一个学生基本信息管理系统,通过本系统,可以实现对学生信息进行学生信息的录入、学生信息的显示、学生信息的统计、学生信息的删除、学生信息的修改、清理屏幕和退出等功能,可以有效的对学生信息进行综合管理。
学生信息包括:
学号、姓名、性别、年龄、家庭住址、联系电话以及寝室号等信息。
2.2总的设计思路及流程
在这个学生基本信息管理系统中,定义了函数voidgetInfo()、voidSaveTxt()、voidstuSaveTxt()、voidshowInfo()、voidsearchmenu()、voidsearchnum()、voidsearchname()、voidsearchsex()、voidsearchdormitory()、voidcountmenu()、voidaltermenu()、voidalterstudent()、voiderase()、inthuoqu(inti)、进行学生信息的录入、保存、显示学生信息、按学号、姓名、性别、寝室号查询;统计学生信息、修改学生信息、删除学生信息等的实现,另外用函数实现了程序中的清屏和退出。
在函数中,多次运用switch(),dowhile()函数,使程序简单顺利的进行。
当然,通过menu()等的菜单函数,来实现功能菜单显示在运行窗口以提示用户如何进行操作。
另外,主函数main()中,不再是全部在一个函数中实现,而是通过对函数的调用,让函数的功能进行实现。
另外,在函数中也用了大量的清屏和退出函数,使整个管理系统更为合理和完善。
2.3系统功能的说明和设计及各模块流程图
在本章中,主要是介绍各个功能函数的设计思路和实现方法。
在整个管理系统中让用户的使用更加容易,使整个程序变得更为简便。
整个管理系统的结构图如下:
录入学生信息
学生的录入信息函数中,通过对getInfo()函数的调用,对学号、姓名、年龄、性别、家庭住址、联系电话、寝室号进行录入、保存。
显示学生信息
在学生信息的显示中,通过对showInfo()函数的调用,来显示所有的学生数据。
其中包括所有学生的学号、姓名、年龄、性别、家庭住址、联系电话、寝室号,显示成功后,又用system("pause")来实现按任意键返回,可以返回到主菜单,
再次进行选择。
查询学生信息
在学生的信息查询中,通过调用searchmenu()来进行输入提示。
具体操作中,通过调用searchnum()、searchname()、searchsex()、searchdormitory()分别以学生的学号、姓名、性别、寝室号进行查询,通过这些函数对学生的信息进行了筛选,使查询信息变得更为简单,也更省时间。
通过switch()函数,实现了查询的四种方法,也通过system("pause")进行了程序的返回。
统计学生信息
在学生信息的统计中,统计函数主要通过对TXT文件里面性别(sex)数据做统计,最后按照想要统计的输出统计的男生人数、女生人数、总人数的统计,同时输入任意键可以用system("pause")来进行返回。
删除学生信息
删除信息功能需要先调用查找学号位置函数,然后通过不读入要删除学号信息的方法,重新写入原来TXT文件里面实现删除功能。
修改学生信息
修改函数主要是先通过输入的学号查找信息所在TXT文件所在的位置,然后再通过voidalterstudent()函数对学号,姓名,性别,年龄,家庭住址,联系方式,宿舍号的修改。
清理屏幕
清理屏幕通过system("cls");函数实现。
退出
退出功能就是结束程序,通过break结束循环结束程序。
3、调试及运行结果
3.1主菜单
主菜单显示了1录入学生信息,2显示学生信息,3查询学生信息,4统计学生信息,5删除学生信息,6修改学生信息,7清理屏幕,0退出管理系统等功能选项及姓名联系方式等信息。
3.2录入学生信息
在主菜单中选择1,将出现输入学号,姓名,年龄,性别,地址,电话,寝室号等选项,输入完毕后,成功保存到电脑D盘中。
若输入相同的学号,将出现提示“重复学号”。
3.3显示学生信息
在主菜单中选择2,系统将会自动显示student.txt文件中的内容。
3.4查询学生信息
在主菜单选择3,将通过选择按学号查询,按姓名查询,按性别查询,按寝室号查询等选项,输入对应的选项将显示所查找的信息。
以下是按学号查询:
3.5统计学生信息
在主菜单选择4,系统将会统计出来输入的男生人数,女生人数,总人数并显示。
3.6删除学生信息
选择删除信息选项后,系统提示输入要删除的学号,输入回车即可删除学生信息。
3.7修改学生信息
3.8清理及退出
选择退出管理系统后,程序将结束
4、小结
经过不到两个星期的努力,“学生信息管理系统”终于做完了,这是第一次完成一个系统。
学习的心态很关键,不懂了就要学着去用不同的方式去获取,补足自己,通过各种各样的方式,学着去请教别人和别人交流,做到不懂就问。
不可否认的是,这个系统并不是靠我一个人的能力完成的。
我请教了很多同学,有时为了理解代码的含义,经常问同学或是上网查资料,并且老师给我们的模板对我的帮助也非常大,让我学会了使用#include
过程是有点儿浮躁的,有的时候为难的有点儿绝望,不过经过同学在一起讨论和自己的摸索,整个流程还是较为通顺的完成了。
在做程序的过程中,因为太为频繁的使用switch语句do-while语句,有的甚至是switch中套着switch,出错后再进行修改,很容易大括号丢失或多余,这时程序提示的错误也就变得不准确了,即使知道是因为大括号导致的问题,也一时半会儿改不出来,浪费了很多时间。
这种错误的原因还是因为自己对语句不够熟练,以后的学习中要避免类似错误发生。
另外,在刚开始做这个程序的时候,和老师的思路不是特别一样,自己也尝试着按照自己的想法做程序,但是导致自己两天都没有任何进展,最后又重新做了一遍。
自己在对C语言的了解还不够多,只是皮毛,所以还不能轻松地运用自如,一些方面还是考虑的不够周全,这是我所欠缺的。
虽然这次课程设计是在参考程序的基础之上进行的,但是我觉得对自己是一个挑战和锻炼。
学习计算机是一个漫长的过程,当然有时也会很枯燥,甚至在别人眼中是不可思议的。
但是既然选择了这个专业,就努力脚踏实地学好,让它真正的为己所用。
参考文献
1.《C++面向对象程序设计》谭浩强清华大学出版社
2.《数据结构(C语言版)》严蔚敏&吴伟民清华大学出版社
3.XX资源
附录:
程序代码
#include
#include
#include
#include
usingnamespacestd;
classStudent//声明类
{private:
stringnum;
stringname;
intage;
stringsex;
stringaddress;
stringphone;
stringdormitory;
public:
voidgetInfo();//录入
voidSaveTxt();//保存
voidshowInfo();//显示
voidsearchmenu();//查询菜单
voidsearchnum();
voidsearchname();
voidsearchsex();
voidsearchdormitory();
voidcountmenu();//统计
voidaltermenu();//修改菜单
voidalterstudent();//修改
voidalterSaveTxt();
voiderase();//删除
inthuoqu(inti);
};
//获取录入新的学生信息
voidStudent:
:
getInfo()
{
cout<<"请输入学号:
"< cin>>num; cout<<"请输入姓名: "< cin>>name; cout<<"请输入年龄: "< cin>>age; cout<<"请输入性别: "< cin>>sex; cout<<"请输入地址: "< cin>>address; cout<<"请输入电话: "< cin>>phone; cout<<"请输入寝室号: "< cin>>dormitory; cout<<"是否确认? 1、是,按其他键为退回主页面"< inta; cin>>a; } voidStudent: : SaveTxt() { fstreamfout1("f: \\student.txt",ios: : out|ios: : app); if(! fout1) { cout<<"Cannotopenfile."< exit (1); } fout1< fout1.close(); } //显示所有学生信息 voidStudent: : showInfo() { fstreamfin("f: \\student.txt",ios: : in); if(! fin) { cout<<"Cannotopenfile."< exit (1); } while(! fin.eof()) { fin>>num>>name>>sex>>age>>address>>phone>>dormitory; if(num=="") { break; } cout<<"学号: "< "< "< "< cout<<"家庭住址: "< "< "< num=""; } fin.close(); system("pause"); } //查询菜单 voidStudent: : searchmenu() { cout<<"=============================="< cout<<"1按学号查询2按姓名查询"< cout<<"3按性别查询4按寝室号查询"< cout<<"------------------------------"< cout<<"请选择: "; } voidStudent: : searchnum() { stringNum; cout<<"请输入你要查询的学号: "< cin>>Num; fstreamfin("f: \\student.txt",ios: : in); if(fin.fail()) { cout<<"Cannotopenfile."< exit (1); } intn=0; cout<<"查询结果: "; while(! fin.eof()) { fin>>num>>name>>sex>>age>>address>>phone>>dormitory; if(num=="") break; if(num==Num) { cout<<"学号: "< "< "< "< cout<<"家庭住址: "< "< "< n=1; } num=""; } if(n==0) { cout<<"没有要找的学生"< } fin.close(); system("pause"); } voidStudent: : searchname() { stringName; cout<<"请输入你要查询的姓名: "< cin>>Name; fstreamfin("f: \\student.txt",ios: : in); if(fin.fail()) { cout<<"Cannotopenfile."< exit (1); } intn=0; cout<<"查询结果: "; while(! fin.eof()) { fin>>num>>name>>sex>>age>>address>>phone>>dormitory; if(num=="") break; if(name==Name) { cout<<"学号: "< "< "< "< cout<<"家庭住址: "< "< "< n=1; } num=""; } if(n==0) { cout<<"没有要找的学生"< } fin.close(); system("pause"); } voidStudent: : searchsex() { stringSex; cout<<"请输入你要查询的性别: "< cin>>Sex; fstreamfin("f: \\Student.txt",ios: : in); if(fin.fail()) { cout<<"Cannotopenfile."< exit (1); } intn=0; cout<<"查询结果: "; while(! fin.eof()) { fin>>num>>name>>sex>>age>>address>>phone>>dormitory; if(num=="") break; if(sex==Sex) { cout<<"学号: "< "< "< "< cout<<"家庭住址: "< "< "< n=1; } num=""; } if(n==0) { cout<<"没有要找的学生"< } fin.close(); system("pause"); } voidStudent: : searchdormitory() { stringDormitory; cout<<"请输入你要查询的寝室号: "< cin>>Dormitory; fstreamfin("f: \\student.txt",ios: : in); if(fin.fail()) { cout<<"无法找到文件"< exit (1); } Studentstu; intn=0; cout<<"查询结果: "; while(! fin.eof()) { fin>>num>>name>>sex>>age>>address>>phone>>dormitory; if(num=="") break; if(dormitory==Dormitory) { cout<<"学号: "< "< "< "< cout<<"家庭住址: "< "< "< n=1; } num=""; } if(n==0) { cout<<"没有要找的学生"< } fin.close(); system("pause"); } voidStudent: : countmenu()//统计 { fstreamfin("f: \\student.txt",ios: : in); intm=0,n=0,i=0; if(fin.fail()) { cout<<"Cannotopenfail."; exit (1); } while(! fin.eof()) { fin>>num>>name>>sex>>age>>address>>phone>>dormitory; if(num=="") break; if(sex=="男") n++; else i++; m++; } fin.close(); cout<<"男生人数有"< cout<<"女生人数有"< cout<<"总人数"< system("pause"); } //查找 intStudent: : huoqu(inti) { intn=0; stringm; switch(i) { case1: cout<<"请输入要删除的学号: ";break; case2: cout<<"请输入要修改的学号: ";break; default: "错误! ";break; } cin>>m; fstreamfin("f: \\student.txt",ios: : in); if(fin.fail()) { cout<<"Cannotopenfail."; exit (1); } while(! fin.eof()) { fin>>num>>name>>sex>>age>>address>>phone>>dormitory; if(num=="") break; if(num==m) n++; } returnn; } //删除 voidStudent: : erase() { intcount=0,n; n=huoqu (1); fstreamfile("f: \\student.txt"); stringline; ofstreamoutfile("d: \\in2.txt",ios: : out|ios: : trunc); while(! ()) { getline(); if(count! =n-1) outfile< count++; } out(); (); ofstreamoutfile1("f: \\student.txt",ios: : out|ios: : trunc); fstreamfile1("d: \\in2.txt"); while(! ()) { getline(); outfile1< } out(); (); system("delin2.txt"); } voidStudent: : altermenu() { cout<<"请输入要修改的学号: ";
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 基本信息 管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)