版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE1PAGE0第一章系统概述1.1系统开发背景数据库是从60年代初发展起来的计算机技术。经过四十来年的发展,数据库技术已经趋于成熟。数据库在新的计算机环境中发生了很大的变化。就数据应用而言呈现出多样化的空间,如数字图书馆、电子出版物、电子商务、远程教育系统等的出现,给数据库技术提出了更多、更高的要求。学生宿舍管理系统的开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于后台数据库的建立与维护要求建立起一致性和完整性强、数据安全性好的库。而对于前端应用程序的开发则要求应用程序能提供强大的数据操纵功能,界面友好、使用简单方便等特点。旧的手工记录的宿舍管理方式已经不能适应高速发展的信息化时代,新的宿舍管理系统开发出来之后,学校现有的宿舍信息管理将有很大的改观,由过去的人工方式转变为计算机方式,有效率低下、数据冗余、易产生错误转变为检索迅速、查找方便、可靠性高、存贮量大。这些优点能够极大地提高效率,也是学校科学化、正规化管理的重要条件。1.2项目研究的意义 作为计算机应用的一部分,使用计算机对宿舍进行管理,有着手工管理无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高信息管理的效率。第二章课程设计目的和要求2.1课程设计目的和要求宿舍管理系统可以用于支持各高校完成宿舍的管理,有如下几个方面的目标;宿舍的基本信息(如:内部设置、设备的基本状况等)、学生基本信息(姓名、性别、学号等)。具体设计如下:1.宿舍信息文件操作:建立只包含宿舍楼号房号、宿舍内主要设备及设备状况的宿舍信息文件。2.输入或导入学生基本信息数据:学生学号、姓名、性别、身份证号、联系电话等。3.编辑数据:可对以上信息进行添加、删除、修改等的操作。4.查询:可按学生姓名、学号等进行查询。5.浏览:可浏览打开、修改、查询后的数据。6.退出系统。第三章程序系统的结构3.1系统详细描述学生宿舍管理系统,本系统功能与学校的宿舍管理系统功能基本上相似,拥有输入学生信息、修改学生信息、查询学生信息、浏览学生信息、删除学生信息的功能。以下为上述功能的具体描述:输入学生信息:包括输入学生的学号、姓名、性别、身份证号、学生房间号以及宿舍内的相关设备的名称和设备状况。修改学生信息:输入要修改的学生的学号进行查找,查找成功后,可以对该学生的信息进行修改并保存。查询学生信息:输入要查询的学生的学号、姓名或者房间号进行查找,查找成功后,输出该学生的全部信息包括:学号、姓名、性别、房间号、身份证号、联系电话、宿舍内主要设备名称及设备状况。浏览学生信息:输出所有学生的全部信息,包括:学号、姓名、性别、房间号、身份证号、联系电话、宿舍内主要设备名称及设备状况。删除学生信息:输入要删除的学生的学号进行查找,查找成功后,可以对该学生的所有信息进行删除。3.2主菜单模块实现3.2.1模块描述在整体设计中,我将学生宿舍管理系统分为五个大的模块:输入信息模块、信息修改模块、信息查询模块、信息浏览模块、信息删除模块。每个模块将实现不同的功能。如图3.2.1。学生宿舍管理系统学生宿舍管理系统信息删除模块信息浏览模块信息查询模块信息修改模块输入信息模块信息删除模块信息浏览模块信息查询模块信息修改模块输入信息模块3.3.2.1主菜单模块图开始3.2.2流程图开始显示主菜单显示主菜单输入功能选项输入功能选项N选项是否正确N选项是否正确YY选项是否为“2”选项是否为“2”选项是否为“1”NNNN选项是否为选项是否为“3”NNYY选项是否为“4YY选项是否为“4”信息修改输入数据信息修改输入数据YNYN信息查询选项是否为信息查询选项是否为“5”YNYN信息浏览信息浏览YY信息删除信息删除退出退出3.3.2.2流程图3.2.3模块测试进入学生系统管理后,主菜单模块如图3.2.3所示,输入1到6数字即可进入各个模块。3.23.2.3模块测试3.3输入模块实现3.3.1模块测试进入输入模块后,即可输入学生的信息。如图3.3.1所示。3.3.3.1模块测试输入需要修改的学号开始3.4修改模块实现输入需要修改的学号开始3.4.1流程图显示修改菜单显示修改菜单输入功能选项输入功能选项选项是否正确选项是否正确YNYN选项是否为“选项是否为“2”选项是否为“1”NNNNN选项是否为N选项是否为“3”YYYYN选项是否为N选项是否为“4”Y修改姓名修改性别选项是否为“5”Y修改姓名修改性别选项是否为“5”NNY修改房间号N选项是否为“6”Y修改房间号N选项是否为“6”Y修改身份证号Y修改身份证号N选项是否为“7”N选项是否为“7”Y修改联系电话Y修改联系电话修改宿舍主要设备修改宿舍主要设备YY修改设备状况修改设备状况3.43.4.1流程图退出退出3.4.2模块测试输入学生学号,进入修改菜单后,如图3.4.2.1所示,输入1到7即可修改学生信息。3.43.4.2.1模块测试对学生姓名的修改,如图3.4.2.2所示。3.43.4.2.2姓名修改对学生性别的修改,如图3.4.2.3所示。3.43.4.2.3性别修改对学生房间号的修改,如图3.4.2.4所示。3.3.4.2.4房间号修改对学生身份证号的修改,如图3.4.2.5所示。3.43.4.2.5身份证号修改对学生联系电话的修改,如图3.4.2.6所示。3.43.4.2.6联系电话修改对学生宿舍内的主要设备名称修改,如图3.4.2.7。3.43.4.2.7宿舍设备名称修改对学生宿舍内设备的状况进行修改,如图3.4.2.8所示。3.3.4.2.8宿舍设备状况修改3.5查询模块实现3.5.1模块描述该模块是通过学生学号、姓名、房间号三种查询方式,对学生所有信息(姓名、性别、宿舍号、身份证号等)的查询。如模块3.5.1所示。按学生学号查询按学生学号查询信息查询信息查询按学生姓名查询按学生姓名查询按学生房间号查询按学生房间号查询3.3.5.1信息查询3.5.2模块测试按学生学号查询,如图3.5.2.1所示。3.3.5.2.1按学号查询按学生姓名查询,如图3.5.2.2所示。3.53.5.2.2按姓名查询按学生房间号查询,如图3.5.2.3所示。3.3.5.2.3按房间号查询3.6浏览模块实现3.6.1模块测试对所有学生进行浏览,如图3.6.1所示。3.63.6.1信息浏览3.7删除模块实现3.7.1模块测试对一名学生进行删除的测试。如图3.7.1所示。3.73.7.1信息删除第四章课程设计心得与体会在老师布置下这个任务后,我主要考虑将这个系统分为几个模块,每个模块具体又要实现哪些功能,然后逐个模块去一一详细设计。程序代码完成之后,要进行运行调试,由于自己的知识不多,所以刚开始出现了好多错误。例如:1.没有将定义的变量初始化。2.在定义了一个字符型q之后,在switch语句中用q进行循环,忘记将q减48,导致程序运行不了。因为在ASCII码中048ASCII值为0字符。3.在查询信息的时候没有必要调用库中的信息。4.在比较两个信息是否相等时,只是知道整型或是长整型的只需判断两者是否相等,而忘记字符型的则需要用strcmp比较。当然,在同学的帮助下,终于顺利完成了,自己也学到了许多知识。总之,通过这几周的课程设计,让我感受到了软件开发的整个过程。课程设计不仅是对我在大学里对C++知识的应用,也是一次增长知识和经验的好机会。同时也是我学到了许多处理、解决问题的办法,大大提高了自己的动手能力。第五章参考文献[1]谭浩强.C++程序设计.清华大学出版社.2011[2]郑莉.C++程序设计(第三版).清华大学出版社.2005[3]钱能.C++程序设计教程.清华大学出版社.2004[4]武俊亮.visualc++课程设计与系统开发案例.清华出版社[5]黄维通.VisualC++程序设计教程.清华大学出版社.2005
第六章附录#include<iostream>#include<string>#include<fstream>#include<stdlib.h>#include<iomanip>usingnamespacestd;classstudent{public:longstu_num;charstu_name[30];charstu_sex[30];charroom_num[30];charID_num[30];charphone_num[30];charshebei_name[30];charshebeizhuangkuang[30];student()//初始化{stu_num=0;for(inti=0;i<30;i++){stu_name[i]='\0';stu_sex[i]='\0';room_num[i]='\0';ID_num[i]='\0';phone_num[i]='\0';shebei_name[i]='\0';shebeizhuangkuang[i]='\0';}}friendvoidmenu();//友元函数};voidmenu()//menu函数开始{L1:cout<<"******************************************"<<endl;cout<<"学生公寓管理系统"<<endl;cout<<"******************************************"<<endl;cout<<"*******************************"<<endl;cout<<"*主菜单命令如下:*"<<endl;cout<<"*1.输入数据*"<<endl;cout<<"*2.修改数据*"<<endl;cout<<"*3.信息查询*"<<endl;cout<<"*4.信息浏览*"<<endl;cout<<"*5.信息删除*"<<endl;cout<<"*6.退出系统*"<<endl;cout<<"*******************************"<<endl;cout<<"请输入您的指令数字(1~6)"<<endl<<"";charp;charw;studentstu[50];fstreamin("E:\\student.txt",ios::in);if(!in)cout<<"Error!"<<endl;for(intm=0;m<50;m++){in>>stu[m].stu_num;in>>stu[m].stu_name;in>>stu[m].stu_sex;in>>stu[m].room_num;in>>stu[m].ID_num;in>>stu[m].phone_num;in>>stu[m].shebei_name;in>>stu[m].shebeizhuangkuang;} ofstreamout;fstreamf;//输入输出对象inti=0;intj=0;intflag=0;do//flag判断输入是否有效{cin>>p;if(p>='1'&&p<='6')flag=1;elsecout<<"指令错误!请重新输入:"<<endl;}while(flag==0);do{switch(p)//根据p的值确定用户操作哪一指令{case'1'://信息输入{longstu_num;charstu_name[30],stu_sex[30],room_num[30],ID_num[30],phone_num[30],shebei_name[30],shebeizhuangkuang[30],c;inti=0;do{cout<<"请输入学生学号:";cin>>stu_num;cout<<endl<<"请输入学生姓名:";cin>>stu_name;cout<<endl<<"请输入学生性别:";do{cin>>stu_sexif((stu_sex[0]!='w'&&stu_sex[0]!='m')|(stu_sex[1]!='\0')){cout<<"性别输入有误,请重新输入:"<<endl<<"";flag=0;}else{for(intk=1;k<30;k++)stu_sex[k]='\0';flag=1;}}while(flag==0);cout<<endl<<"请输入学生房间号:";cin>>room_num;cout<<endl<<"请输入学生身份证号:";cin>>ID_num;cout<<endl<<"请输入学生联系电话:";cin>>phone_num; cout<<endl<<"请输入学生宿舍内的主要设备:";cin>>shebei_name;cout<<endl<<"请输入该设备的状况:";cin>>shebeizhuangkuang;cout<<endl;stu[i].stu_num=stu_num;strcpy(stu[i].stu_name,stu_name);strcpy(stu[i].stu_sex,stu_sex);strcpy(stu[i].room_num,room_num);strcpy(stu[i].ID_num,ID_num);strcpy(stu[i].phone_num,phone_num);strcpy(stu[i].shebei_name,shebei_name);strcpy(stu[i].shebeizhuangkuang,shebeizhuangkuang);cout<<"数据输入成功,是否继续输入?y/n:"<<endl<<"";i++;cin>>c;cout<<endl;do{if(c!='y'&&c!='n'){cout<<"指令错误!请重新输入:"<<endl<<"";charc;cin>>c;}elseflag=1;}while(flag==0);}while(c=='y');break;}case'2'://修改数据{longstu_num;intflag=0;charstu_name[30],stu_sex[30],room_num[30],ID_num[30],phone_num[30],shebei_name[30],shebeizhuangkuang[30],c;longs_num;chars_name[30],s_sex[30],room[30],ID[30],phone[30],shebei[30],zhuangkuang[30],q;cout<<"请输入您要修改的学生的学号:"<<endl;cin>>s_num;cout<<endl;f.open("E:\\student.txt",ios::in|ios::out);f.clear();while(!f.eof())//文件没有读到末尾{f>>stu_num;if(stu_num==s_num){do{flag=1;cout<<"*菜单如下*"<<endl;cout<<"*1.修改姓名*"<<endl;cout<<"*2.修改性别*"<<endl;cout<<"*3.修改房间号*"<<endl;cout<<"*4.修改身份证号*"<<endl;cout<<"*5.修改联系电话*"<<endl;cout<<"*6.修改宿舍内主要设备*"<<endl;cout<<"*7.修改设备状况*"<<endl;cout<<"*请输入您的指令数字(1~7)*"<<endl<<""; do//flag判断输入是否有效{cin>>q;if(q>='1'&&q<='7')flag=1;elsecout<<"指令错误!请重新输入:"<<endl;}while(flag==0);switch(q-48){case1://修改姓名{cout<<"请输入修改后的学生姓名:";cin>>s_name;cout<<endl; strcpy(stu_name,s_name);f<<s_name;cout<<"修改成功!"<<endl;f.close();break;}case2:{cout<<"请输入修改后的学生性别:";cin>>s_sex;cout<<endl;strcpy(stu_sex,s_sex);f<<s_sex;cout<<"修改成功!"<<endl;f.close();break;}case3:{cout<<"请输入修改后的房间号:";cin>>room;cout<<endl; strcpy(room_num,room); f<<room;cout<<"修改成功!"<<endl;f.close();break;}case4:{cout<<"请输入修改后的身份证号:";cin>>ID;cout<<endl; strcpy(ID_num,ID);f<<ID;cout<<"修改成功!"<<endl;f.close();break;}case5:{cout<<"请输入修改后的联系电话:";cin>>phone;cout<<endl; strcpy(phone_num,phone);f<<phone;cout<<"修改成功!"<<endl;f.close();break;}case6:{cout<<"请输入修改后的宿舍主要设备:";cin>>shebei;cout<<endl; strcpy(shebei_name,shebei);f<<shebei;cout<<"修改成功!"<<endl;f.close();break;}case7:{cout<<"请输入修改后的设备状况:";cin>>zhuangkuang; strcpy(shebeizhuangkuang,zhuangkuang);f<<zhuangkuang;cout<<"修改成功!"<<endl;f.close();break;}}f.close();if(flag==0){cout<<"您要修改的学生不存在"<<endl;}cout<<"您想继续修改吗?y/n:"<<endl;cin>>c;cout<<endl;if(c=='n')gotoL1;if(c!='y'&&c!='n'){cout<<"指令错误!请重新输入:"<<endl<<"";cin>>c;}}while(c=='y');}}break;}case'3'://信息查询{intx;cout<<"请选择您要进行查询的方式:"<<endl;cout<<"1.按学生学号查询"<<endl;cout<<"2.按学生姓名查询"<<endl;cout<<"3.按学生房间查询"<<endl;intk;cin>>k;switch(k){case1://按学生学号查询{longs_num;charc;do{intflag=0;cout<<"请输入你要查询的学生的学号:"<<endl;cin>>s_num;cout<<endl;for(inti=0;i<50;i++){if(stu[i].stu_num==s_num){x=i+1;break;}}if(x){x-=1;flag=1;cout<<"您要查询的学生姓名:"<<stu[x].stu_name<<"的信息是:"<<endl;cout<<"学号姓名性别房间号身份证号联系电话设备名称设备状况"<<endl;cout<<setw(4)<<stu[x].stu_num<<setw(6)<<stu[x].stu_name<<setw(5)<<stu[x].stu_sex<<setw(8)<<stu[x].room_num<<setw(20)<<stu[x].ID_num<<setw(14)<<stu[x].phone_num<<setw(7)<<stu[x].shebei_name<<setw(12)<<stu[x].shebeizhuangkuang<<endl;}if(flag==0){cout<<"对不起,您要查询的学生不存在。"<<endl;}cout<<"您想继续查询吗?y/n:";cin>>c;cout<<endl;if(c=='n')break;if(c!='y'&&c!='n'){cout<<"指令错误!请重新输入:"<<endl;cin>>c;}}while(c=='y');break;}case2://按学生姓名查询{chars_name[30];charc;do{intflag=0;cout<<"请输入你要查询的学生的姓名:"<<endl;cin>>s_name;cout<<endl;for(inti=0;i<50;i++){if(strcmp(s_name,stu[i].stu_name)==0){x=i+1;break;}}if(x){x-=1;flag=1;cout<<"您要查询的学生姓名:"<<stu[x].stu_name<<"的信息是:"<<endl; cout<<"学号姓名性别房间号身份证号联系电话设备名称设备状况"<<endl;cout<<setw(4)<<stu[x].stu_num<<setw(6)<<stu[x].stu_name<<setw(5)<<stu[x].stu_sex<<setw(8)<<stu[x].room_num<<setw(20)<<stu[x].ID_num<<setw(14)<<stu[x].phone_num<<setw(7)<<stu[x].shebei_name<<setw(12)<<stu[x].shebeizhuangkuang<<endl;}if(flag==0){cout<<"对不起,您要查询的学生不存在。"<<endl;}cout<<"您想继续查询吗?y/n:";cin>>c;cout<<endl;if(c=='n')break;if(c!='y'&&c!='n'){cout<<"指令错误!请重新输入:"<<endl;cin>>c;}}while(c=='y');break;}case3://按房间号查询{charc;charroom[30];do{intflag=0;cout<<"请输入您要查询的房间号:"<<endl;cin>>room;cout<<endl;for(inti=0;i<50;i++){if(strcmp(room,stu[i].room_num)==0){x=i+1;break;}}if(x){x-=1;flag=1;cout<<"您要查询的学生姓名:"<<stu[x].stu_name<<"的信息是:"<<endl; cout<<"学号姓名性别房间号身份证号联系电话设备名称设备状况"<<endl;cout<<setw(4)<<stu[x].stu_num<<setw(6)<<stu[x].stu_name<<setw(5)<<stu[x].stu_sex<<setw(8)<<stu[x].room_num<<setw(20)<<stu[x].ID_num<<setw(14)<<stu[x].phone_num<<setw(7)<<stu[x].shebei_name<<setw(12)<<stu[x].shebeizhuangkuang<<endl;}if(flag==0){cout<<"对不起,您要查询的学生不存在。"<<endl;}cout<<"您想继续查询吗?y/n:";cin>>c;cout<<endl;if(c=='n')break;if(c!='y'&&c!='n'){cout<<"指令错误!请重新输入:"<<endl;cin>>c;}}while(c=='y');break;}default:{cout<<"对不起,您输入的指令有误。";break;}}break;}case'4'://信息浏览{cout<<"学生数据如下:"<<endl;cout<<"学号姓名性别房间号身份证号电话号码设备名称设备状况"<<endl;for(i=0;i<50;i++){if(!stu[i].stu_num)continue;cout<<setw(5)<<stu[i].stu_num<<setw(8)<<stu[i].stu_name<<setw(4)<<stu[i].stu_sex<<setw(8)<<stu[i].room_num<<setw(20)<<stu[i].ID_num<<setw(14)<<stu[i].phone_num<<setw(7)<<stu[i].shebei_name<<setw(12)<<stu[i].shebeizhuangkuang<<endl;}break;}case'5'://信息删除{longs_num;intx,i;charc;do{intflag=0;cout<<"请输入您要删除的学生的学号:"<<endl;cin>>s_num;cout<<endl;for(i=0;i<50;i++){if(stu[i].stu_num==s_num){flag=1;x=i;break;}elseflag=0;}if(flag==1){for(i=x;i<49;i++){stu[i].stu_num=stu[i+1].stu_num;strcpy(stu[i].stu_name,stu[i+1].stu_name);strcpy(stu[i].stu_sex,stu[i+1].stu_sex);strcpy(stu[i].room_num,s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐馆住房屋租赁合同范本
- 城市地下仓库箱涵施工合同
- 体育场馆招投标廉政合同模板
- 职能部门对生产计划的支持
- 全国科普日的活动总结
- 幼儿园小朋友表达制度
- 上海财经大学浙江学院《计算机辅助制图》2023-2024学年第一学期期末试卷
- 部门年终总结(7篇)
- 研究生考试考研数学(二302)试题与参考答案(2025年)
- 元旦节的活动总结
- 试验检测单位安全培训课件
- 二年级下册加减混合竖式练习360题附答案
- 公路沥青路面设计标准规范
- 2024年湖北交投智能检测股份有限公司招聘笔试参考题库含答案解析
- 2023年银行安全保卫知识考试题库(含答案)
- 水库白蚁防治标书
- 广东省深圳市宝安、罗湖、福田、龙华四区2023-2024学年数学九年级第一学期期末联考试题含解析
- 电子电路EWB仿真技术
- 小学三年级语文教研活动记录表1
- 初中九年级化学课件化学实验过滤
- 教学课件:《新时代新征程》
评论
0/150
提交评论