学生基本信息管理系统.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等文件的使用,在编程过程中有的错误提示自己实在想不通的就去XX上搜,网络给了我很多帮助。
过程是有点儿浮躁的,有的时候为难的有点儿绝望,不过经过同学在一起讨论和自己的摸索,整个流程还是较为通顺的完成了。
在做程序的过程中,因为太为频繁的使用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<<"请输入要修改的学号:
";