学生信息管理系统报告.docx
- 文档编号:28144378
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:29
- 大小:339.11KB
学生信息管理系统报告.docx
《学生信息管理系统报告.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统报告.docx(29页珍藏版)》请在冰豆网上搜索。
学生信息管理系统报告
姓名:
曹真毓
学号:
201308956
班级:
地信1301班
指导教师:
王中辉
《C++程序设计》课程设计
兰州交通大学
2014年7月11日
设
计
题
目
题目
学生信息管理系统
程序功能:
试完成一个学生信息管理系统,学生信息应包括学生姓名、学号、电话、住址等信息。
要求:
(1)采用文件形式管理所有学生的信息及数据;
(2)采用菜单工作方式;
(3)可实现信息的创建、输出、查询、添加、修改及删除功能;
(4)各功能均采用模块化设计、数据结构采用结构体。
前言
本学生信息管理系统是基于C++语言编写的一款软件,通过该软件可实现对若干学生信息的管理。
该软件在功能上实现了对学生信息的创建、添加、修改、删除、查询以及显示功能。
用户界面为DOS操作界面,操作方式为菜单工作方式。
第一章系统概述
1.1功能简介
本软件是一个简单的学校学生信息管理系统,软件窗口为DOS界面。
学生信息管理系统的功能主要是实现对学生信息的系统化管理。
通过学生信息管理系统,管理人员可以实现对学生信息的创建、增加、删除、修改、查询和显示等操作。
1.2设计思路
将学生信息定义为一个student类,在类中包含私有数据成员stringnum、stringname、stringphoneNum、stringaddress,分别表示学号、姓名、电话号码、家庭住址。
公有数据成员包括set(),add(),delete(),modify(),search(),display(),menu()分别用来实现对学生信息数据的创建、增加、删除、修改、查询、显示功能以及用户界面菜单的显示。
主函数是一个程序必不可少的,在主函数中,用while循环来实现清除屏幕显示内容、显示菜单以及关闭程序功能。
使用一个switch语句来选择调用主菜单中的各个功能函数。
第二章功能介绍
在本章中,主要介绍各个功能函数的设计思路和实现方法。
2.1创建函数
此函数实现的功能主要是,对学生信息的初始化录入功能,在初始时,文件中没有任何数据,可以通过次函数输入任意个学生的信息,在输入时通过一个if条件语句来实现控制循环,当输入的学号是“0”时,使用break语句就跳出循环,即停止输入学生信息。
在此函数中使用文件处理的方式,先建立一个文件输出流对象,以写的方式打开f1.txt文件,使输入的学生信息都写入文件。
2.2添加函数
此函数实现的功能主要是,添加一个学生的信息,也就是说调用一次这个函数只添加一个学生的信息。
在此函数中也使用文件处理的方式,但使用的是以追加的方式(app)打开文件,使输入的学生信息写在文件里原有信息的后面。
2.3删除函数
此函数实现的功能是删除一个学生的信息。
在此函数中,先以读的方式打开文件,读出文件里的信息在显示在屏幕上,用户再根据提示信息输入想要删除第几个人的信息,关闭文件。
再以写的方式打开文件,以一个if条件语句控制,再重新将学生信息写入文件(除了需要删除的那个学生的信息),由于本次是以写的方式打开的文件,所以文件里原有的数据就都没有了,只有存入的新的数据(除删除的学生信息之外的其他信息)。
2.4修改函数
此函数实现的功能主要是,修改一个学生的信息。
此函数的设计方法和删除函数的设计思路相类似,都是将学生信息重新写入文件的方法,将原有数据覆盖。
2.5查询函数
在查询功能中,可以按多条件查询,本系统分为两个查询条件,即按学号查询和按姓名查询。
使用if语句来选择查询条件。
2.5.1按学号查询
根据提示信息输入学号后,然后使用一个for循环语句,从第一个学生开始检索,如果该学生的学号和输入的学号相同,则输出该学生的信息,并使用break语句跳出循环。
当无查询结果时,会输出一条提示信息“没有查询到该生信息!
”。
2.5.2按姓名查询
根据提示信息输入姓名后,然后使用一个for循环语句,从第一个学生开始检索,如果该学生的姓名和输入的姓名一样,则输出该学生的信息,由于学生的姓名有可能重复出现,所以不使用break语句跳出循环,而从第一个学生开始检索到最后一名学生。
当无查询结果时,会输出一条提示信息“没有查询到该生信息!
”。
2.6显示函数
此函数实现的功能主要是,显示所有学生的信息。
先是从文件中读取学生信息,然后在输出到显示窗口中。
用一个for循环语句,来把所有学生的信息都输出到显示界面。
2.7退出系统
在菜单选择界面选择输入“0”菜单,就能退出系统,这是通过while语句来控制实现的。
第三章软件流程图
第四章程序运行图
4.1欢迎界面
4.2菜单界面
4.3录入信息
4.4添加信息
4.5删除信息
2.5-a删除
2.5-b删除后
4.6修改信息
4.7查询信息
2.7.1按学号查询
2.7.2按姓名查询
4.8显示所有信息
4.9退出界面
附录程序源代码
#include
#include
#include
#include
#include
usingnamespacestd;
#defineM200//文件支持存放的最大学生数
#defineY20000//文件支持存放的最大字符数
intN=0;
classstudent
{
public:
student();
voidSet();//初始化信息,第一次对信息的录入
voidAdd();//添加学生信息
voidDelete();//删除某学生信息
voidModify();//修改某学生信息
voidSearch();//查询某学生信息
voidDisplay();//显示全部学生信息
voidMenu();//显示菜单
private:
stringnum,name,phoneNum,Address;
};
student:
:
student(){}
intCount()//计数函数
{
ifstreaminfile("f1.txt");
charstr[Y];
intn=0;
while(!
infile.eof())
{
infile.getline(str,sizeof(str));//此处默认的终止标识符为‘\n’
n++;
}
infile.close();
returnn;
}
voidstudent:
:
Set()//数据初始化录入函数
{
inti;
stringSetnum,Setname,SetphoneNum,SetAddress;
ofstreamoutfile;
outfile.open("f1.txt",ios:
:
out);
if(!
outfile)
{
cerr<<"openerror"< exit (1); } for(i=0;i { cout<<"学号输入为‘0’时,退出信息录入! "< cout<<"请输入学号: "< cin>>Setnum; num=Setnum; if(Setnum=="0") { cout<<"信息录入成功! "< cout<<"按任意键继续..."< getch(); break; } if(Setnum! ="0") { cout<<"请输入姓名: "< cin>>Setname; name=Setname; outfile< outfile< cout<<"请输入电话号码: "< cin>>SetphoneNum; phoneNum=SetphoneNum; outfile< cout<<"请输入家庭住址: "< cin>>SetAddress; Address=SetAddress; outfile< } } outfile.close(); } voidstudent: : Add()//添加函数 { stringAddnum,Addname,AddphoneNum,AddAddress; ofstreamoutfile("f1.txt",ios: : app); if(! outfile) { cerr<<"openerror"< exit (1); } cout<<"请输入您要添加的数据"< cout<<"请输入学号: "< cin>>Addnum; outfile< cout<<"请输入姓名: "< cin>>Addname; outfile< cout<<"请输入电话号码: "< cin>>AddphoneNum; outfile< cout<<"请输入家庭住址: "< cin>>AddAddress; outfile< outfile.close(); cout<<"信息添加成功! "< cout<<"按任意键继续..."< getch(); } voidstudent: : Delete()//删除函数 { intk,i; stringnum[M],name[M],phoneNum[M],Address[M]; N=Count(); ifstreaminfile("f1.txt",ios: : in); if(! infile) { cerr<<"openerror"< exit (1); } for(i=0;i<8;i++) { cout<<""; infile>>num[i]; cout< infile>>name[i]; cout< infile>>phoneNum[i]; cout< infile>>Address[i]; cout< } cout<<"你想删除第几个学生的信息? "< cin>>k; k=k-1; infile.close(); ofstreamoutfile("f1.txt",ios: : out); if(! outfile) { cerr<<"openerror"< exit (1); } for(i=0;i<8;i++) { if(i! =k) { outfile< outfile< outfile< outfile< } } outfile.close(); cout<<"信息删除成功! "< cout<<"按任意键继续..."< getch(); } voidstudent: : Modify()//修改函数 { inti,k; stringnum[M],name[M],phoneNum[M],Address[M]; N=Count(); ifstreaminfile("f1.txt",ios: : in); if(! infile) { cerr<<"openerror"< exit (1); } for(i=0;i { cout<<""; infile>>num[i]; cout< infile>>name[i]; cout< infile>>phoneNum[i]; cout< infile>>Address[i]; cout< } infile.close(); ofstreamoutfile("f1.txt",ios: : out); if(! outfile) { cerr<<"openerror"< exit (1); } cout<<"你想修改第几个学生的信息? "< cin>>k; k=k-1; cout<<"请输入新的数据: "< cout<<"请输入学号: "< cin>>num[k]; cout<<"请输入姓名: "< cin>>name[k]; cout<<"请输入电话: "< cin>>phoneNum[k]; cout<<"请输入家庭住址: "< cin>>Address[k]; cout<<"输入完毕,按任意键继续..."< getch(); for(i=0;i { outfile< outfile< outfile< outfile< } outfile.close(); cout<<"信息修改成功! "< cout<<"按任意键继续..."< getch(); } voidstudent: : Search()//查询函数 { inti,w=0,c; stringSearchname,Searchnum,num[M],name[M],phoneNum[M],politic[M],Address[M],b[M][4]; N=Count(); cout<<"1.按学号查找2.按姓名查找"< ifstreaminfile("f1.txt",ios: : in); if(! infile) { cerr<<"openerror"< exit (1); } for(i=0;i { infile>>num[i];b[i][0]=num[i]; infile>>name[i];b[i][1]=name[i]; infile>>phoneNum[i];b[i][2]=phoneNum[i]; infile>>Address[i];b[i][3]=Address[i]; } cout<<"请选择查询方式! "< cin>>c; if(c==1) { cout<<"请输入学号! "< cin>>Searchnum; for(i=0;i if(b[i][0]==Searchnum) { w=1; cout<<"学号姓名电话家庭住址"< cout<<""; cout< cout< cout< cout< cout<<"该生信息显示完毕! \n按任意键继续..."< getch(); } if(w==0) { cout<<"没有查找到此人信息! \n按任意键继续..."< getch(); } } elseif(c==2) { cout<<"请输入姓名! "< cin>>Searchname; for(i=0;i if(name[i]==Searchname) { w=1; cout<<"学号姓名电话家庭住址"< cout<<""; cout< cout< cout< cout< cout<<"该生信息显示完毕! \n按任意键继续..."< getch(); } if(w==0) { cout<<"没有查找到此人信息! "< cout<<"按任意键继续..."< getch(); } } else { cout<<"没有这个选项! "< cout<<"按任意键继续..."< getch(); } } voidstudent: : Display()//显示函数 { intk; stringnum,name,phoneNum,politic,Address; N=Count(); ifstreaminfile("f1.txt",ios: : in); if(! infile) { cerr<<"文件打开错误! "< exit (1); } cout<<"学号姓名电话家庭住址"< for(k=0;k { cout<<""; infile>>num; cout< infile>>name; cout< infile>>phoneNum; cout< infile>>Address; cout< } infile.close(); cout<<"信息显示完成! \n按任意键继续..."< getch(); } voidstudent: : Menu()//菜单函数 { cout<<"▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉"< cout<<"▉▉▉▉"< cout<<"▉▉★★学生信息管理系统★★▉▉"< cout<<"▉▉▉▉"< cout<<"▉▉▉▉★★★★★★★★★★★★★★★★★★★★▉▉▉▉"< cout<<"▉▉▉▉"< cout<<"▉▉☆☆1.录入学生信息☆☆▉▉"< cout<<"▉▉☆☆2.添加学生信息☆☆▉▉"< cout<<"▉▉☆☆3.删除学生信息☆☆▉▉"< cout<<"▉▉☆☆4.修改学生信息☆☆▉▉"< cout<<"▉▉☆☆5.查询学生信息☆☆▉▉"< cout<<"▉▉☆☆6.显示所有信息☆☆▉▉"< cout<<"▉▉☆☆0.退出管理系统☆☆▉▉"< cout<<"▉▉▉▉"< cout<<"▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉"< cout< cout<<"——————请输入您要实现的功能序号: "; } studentstu;//定义一个student类的对象stu intmain()//主函数 { intmenuChoice; boolX=1; cout<<"\t\t〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓"< cout<<"\t\t☆☆【欢迎进入学生信息管理系统】☆☆"< cout<<"\t\t〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n\n"< cout<<"按任意键进入菜单..."; getch(); while(X) { system("cls"); stu.Menu(); cin>>menuChoice; switch(menuChoice) { case0: X=0;cout<<"\n\n您已成功退出管理系统,谢谢您的使用! \n"< case1: stu.Set();break; case2: stu.Add();break; case3: stu.Delete();break; case4: stu.Modify();break; case5: stu.Search();break; case6: stu.Display();break; } } return0; } 成 绩
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 信息管理 系统 报告