1、江 苏 师 范 大 学 科 文 学 院本 科 生 课 程 设 计课 程 名 称: 计算机语言程序设计 题 目: 基于C+宿舍管理系统 专 业 班 级: 11电信1班 学 生 姓 名: 朱 枫 学 生 学 号: 日 期: 12月21日 指 导 教 师: 姜芳艽 科文学院教务部印制一、课程设计目、任务和内容规定:计算机语言程序设计是一门以编程实践为主专业课,目在于培养学生运用计算机语言进行软件开发所必须基本思想和基本技能,进一步提高综合应用计算机语言各种编程知识和技巧进行程序设计能力,通过本次课程设计,学生应能达到具备设计功能较为复杂应用程序能力,同步培养学生自主学习和独立创新精神。任务如下: 1
2、进行需求分析和概要设计,给出流程图。 2写出详细设计,熟悉其中采用核心技术。3给出详细编码实现并调试。4写课程设计报告提交源程序。内容规定:设计并完毕软件系统。规定:1应具备简洁和谐顾客界面。2规定软件系统功能完整。3规定程序具备对的性,可读性和运营高效性。 二、进度安排:第3天: 查找资料,进行需求分析和概要设计;第46天: 各模块详细设计;第712天: 软件实现与调试;第1314天:写课程设计报告并提交源程序。三、重要参照文献:1郑莉、董渊、何江舟. C+语言程序设计(第4版) .北京.清华大学出版社,.72肖俊宇、吴为胜.由浅入深C+基本、进阶与必做300题.北京.电子工业出版社,.73
3、徐兆元.C+从入门到精通.北京.化学工业出版社,.9 指引教师签字: 年 月 日目 录摘 要 Abstract .1 绪论 11.1 总体目的与任务规定 .11.2 题目选取与目意义 . 11.3 系统需求分析 .12 设计方案简述 . 22.1 功能构造图 .2 2.2 程序流程阐明 .22.3 基本思路 .33 详细设计43.1 主函数 .43.2 登录模块 .5 3.3 显示函数 .63.4 建立信息模块 .73.5 查询信息模块 .12 3.6 信息汇总模块 .173.7 修改信息模块 .20 3.8 注册信息模块 .25 3.9 删除信息模块 .303.10 宿舍评分模块 .36 3
4、.11 修改登录信息模块 .41 4 设计成果及分析.434.1登录界面 .43 4.2 主界面 .43 4.3 建立信息界面 .44 4.4 查询信息界面 .44 4.5 信息汇总界面 .454.6 注册信息界面 .454.7 修改信息界面 .464.8 删除信息界面 .46 4.9 宿舍评分界面 .474.10修改登录信息界面 .47 5总 结 .48摘 要学生宿舍管理系统对于一种学校来说是必不可少构成某些。当前好多学校还停留在宿舍管理人员手工记录数据最初阶段,但对于学生信息量比较庞大,需要记录存档数据高校来说,人工记录是相称麻烦。当今社会是飞速进步而世界,原始记录方式已经被社会所裁减,计
5、算机化管理正是适应时代产物。信息世界永远不会是一种安静世界,当一种技术不能满足需求时,就会有新技术诞生并取代旧技术。21世纪今天,信息社会占着主流地位,计算机在各行各业中运用已经得到普及,自动化、信息化管理越来越广泛应用于各个领域。故随着宿舍需要管理信息迅速增长,建立一种宿舍管理系统可使宿舍管理人员管理工作系统化、规范化、自动化,大大提高管理效率。核心词:管理系统;计算机化;管理效率Abstract Student hostel management system for a school is an integral part. Currently many schools still in
6、 the initial stages of the dormitory management staff to manually record the data,but the relatively large amount of information for students,colleges and universities need to record for archived data,manual recording is rather cumbersome. Todays society is the rapid progress and the world,the origi
7、nal recording has been eliminated by the community,computerized management is to adapt the product of the times. Information of the world will never be a peaceful world,when a technology can not meet the demand,there will be a new technology was born and replace old technology. 21st century informat
8、ion society occupied the mainstream,computer use in various industries have gained popularity,automation,information management and more widely used in various fields. Therefore,the need to manage information as quarters of rapid growth,the establishment of a hostel management system will enable the
9、 systematic management of dormitory management,standardization,automation,greatly improving management efficiency.Keywords:management systems;computerization;management efficiency1 绪论1.1 总体目的与任务规定本学生宿舍管理系统应提供简朴、层次关系明了、清晰操作界面,使顾客一目了然。尽量为顾客录入、查询等功能操作提供以便。在设计该系统时,应尽量贴近学生,便于顾客操作。系统在实现上应当具备如下功能: 1、系统规定顾客
10、必要输入对的顾客名和密码才干进入系统。2、系统应提供查询功能,以以便顾客对学生基本信息查询(要实现按各种条件查询)及楼房信息查询。3、系统还应具备添加、修改、删除、汇总、评分、修改登录密码功能。1.2 题目选取与目意义选取学生宿舍管理系统作为题目使用者会感到操作非常以便,管理人员需要做就是将数据输入到系统数据库中去。由于数据库存储容量相称大,并且比较稳定,适合较长时间保存,也不容易丢失。这无疑是为信息存储量比较大学校提供了一种以便、快捷操作方式。本系统具备运营速度快、安全性高、稳定性好长处,并且具备完善报表生成、修改功能,可以迅速查询学校所需住宿信息,以便高校对学生宿舍管理。1.3 系统需求分
11、析 该程序是由C+语言编写一种宿舍管理软件,本程序在Microsoft Visual C+ 6.0下运营,其重要功能是实现对学生信息录入、添加、删除、修改、查询、记录。其中查询可以分别以学号、班级、宿舍号为核心字查询学生信息。2 设计方案简述2.1功能构造图宿舍管理系统顾客登录模块显示模块宿舍评分模块修改登录信息模块删除信息模块注册信息模块修改信息模块信息汇总模块查询信息模块建立信息模块图2-1 功能构造图2.2 程序流程阐明(1)顾客登录顾客只需要填写姓名和密码就可以完毕登录操作,登录成功自动跳转到主菜单页面。登录失败则会自动退出。(2)建立信息顾客在此建立学生宿舍信息,建立完毕后可以通过链
12、接跳转到其她页面进行有关操作。(3)信息查询顾客在此可以通过输入学号、班级、宿舍号进行分类查询,查看相相应学生基本信息。查询完后可以通过链接跳转到其她页面进行有关操作。(4)信息汇总顾客在此可以查看学生宿舍信息汇总。(5)信息修改顾客在此可以通过输入学号、名字进行查询,修改香相应学生基本信息。查询完后可以通过链接跳转到其她页面进行有关操作。(6)信息注册顾客在此可以对学生信息进行添加注册,注册完后可以通过链接跳转到其她页面进行有关操作。(7)信息删除顾客在此可以通过输入学号、名字进行查询,删除相相应学生基本信息。操作完后可以通过链接跳转到其她页面进行有关操作。(8)宿舍评分顾客在此可以对各宿舍
13、进行打分,并显示最高得分宿舍与未及格宿舍,操作完后可以通过链接跳转到其她页面进行有关操作。(9)登录信息修改顾客在此可以对登录账户信息进行修改,修改完毕后悔自动跳转到主菜单页面。2.3 基本思路一方面在Visual C+6.0里建立student构造体,包括了学生各种信息,然后将信息存储在.TXT文本里。建立一种主控程序,调用建立信息模块、查询信息模块、信息汇总模块等8个子程序。3 详细设计3.1 主函数#include#include/#include/#includeusing namespace std;/#includeshow.h/文献包括语句#includedenglu.h/#in
14、cludejianlixinxi.h/#includechaxun.h/#includexiugai.h/#includeshanchu.h/#includehuizong.h/#includexiumima.h/#includezhuce.h/#includeweisheng.h/void main()int choice=0;/记录选取denglu();/输入登录信息system(cls);show();/显示菜单cinchoice;while(choice!=0)/循环输入选取switch(choice)case 1:jianli();break;/建立宿舍信息case 2:chaxun
15、();break;/查询学生信息case 3:huizong();break;/宿舍信息汇总case 4:xiugai();break;/修改学生信息case 5:zhuce();break;/添加学生信息case 6:shanchu();break;/删除学生信息case 7:weisheng();break;/宿舍卫生评比case 8:xiumima();break;/修改登录信息case 0:break;default:couttt您按错了!choice;3.2 登录模块void denglu()char yonghu120;/存储顾客输入登录信息char mima110;/char y
16、onghu220;/存储当前系统设定登录信息char mima210;/time_t t;time(&t);cout-n;couttt1 欢迎进入江苏师范大学科文学院宿舍管理系统nn;couttt 班级:11电信1班 制作人:朱枫 学号:nn; cout ttt 时间: ctime(&t); cout-n; coutyonghu1;coutmima1;ifstream fin1(登录信息.txt);if(!fin1)coutnntterror!yonghu2mima2;fin1.close();if(strcmp(yonghu1,yonghu2)|strcmp(mima1,mima2)/判断与
17、否为合法顾客coutnntt顾客名或密码错误!endl;exit(0);3.3 显示模块void show()/主界面显示信息time_t t;time(&t);cout-江苏师范大学科文学院学生宿舍管理系统-nn;couttt 班级:11电信1班 制作人:朱枫 学号:nn; cout ttt 时间: ctime(&t); cout-n; cout1:建立宿舍信息; coutttttttt 2:查询学生信息n; cout3:宿舍信息汇总; coutttttttt 4:修改学生信息n; cout5:注册学生信息; coutttttttt 6:删除学生信息n; cout7:宿舍卫生评比; cout
18、ttttttt 8:修改登录信息n; cout-n; cout请选取(0退出):;3.4 建立信息模块struct student/存储学生信息单链表结点存储构造char name20;char number20;char banji20;int sushehao;student*next;struct sushe/存储各房间信息单链表头结点int renshu;student*next;void jianli()int choice;coutchoice;/if(choice)ofstream fout3;fout3.open(学生信息.txt);if(!fout3)couterrorend
19、l;exit(0);fout3.eof();/格式化当前记录学生信息fout3.close();char louhao20;int loucheng;int fangjian;int rongliang;/存储宿舍楼基本信息coutlouhao;/coutloucheng;/coutfangjian;/coutrongliang;/ofstream fout1(宿舍信息.txt);if(!fout1)couttterror!endl;exit(0);fout1louhaoendl;/输入到文献fout1louchengendl;/fout1fangjianendl;/fout1ronglian
20、gendl;/fout1.close();for(int i=0;iloucheng;i+)/按楼层数逐个建立每层信息sushe*lou=new sushefangjian;/定义存储每层信息线性构造for(int j=0;jfangjian;j+)/对该线性构造进行初始化louj.renshu=0;/louj.next=NULL;/student*p=NULL;/辅助结点变量p=new student;cout第i+1层信息(宿舍号-1进入下一层):endl;cout宿舍号((i+1)*100(i+1)*100+fangjian-1p-sushehao;/输入宿舍号以进行下面操作while(
21、p-sushehao!=-1)sushe*q=NULL;coutp-name;coutp-number;coutp-banji;if(loup-sushehao%100.renshusushehao%100.renshu=0)/空房间直接插入loup-sushehao%100.next=p;p-next=NULL;loup-sushehao%100.renshu+;else/非空房间先找到链表尾结点再进行插入q=loup-sushehao%100.next;for(int m=0;msushehao%100.renshu-1;m+)q=q-next;q-next=p;p-next=NULL;l
22、oup-sushehao%100.renshu+;else/房间已满输入无效couttt该宿舍已满,本次输入无效!endl;p=new student;coutp-sushehao;if(p-sushehao=-1)/退出本层信息输入后输入本层信息至文献ofstream fout2;fout2.open(学生信息.txt,ios:app);if(!fout2)couttterrorendl;exit(0);for(j=0;jfangjian;j+)if(louj.renshu!=0)p=louj.next;for(int s=0;slouj.renshu;s+)fout2nameendl;fo
23、ut2numberendl;fout2banjiendl;fout2sushehaonext;fout2.close();deletelou;cout已建立宿舍信息!endl;show();/显示主菜单3.5 查询信息模块void chaxue(int renshu);/按学号查询void chaban(int renshu);/按班级查询void chasu(int renshu);/按宿舍查询struct student2/定义存储信息结点构造char name20;char number20;char banji20;int sushehao;student2 array1100;/定义
24、存储信息线性构造数组void chaxun()student2 p;/辅助结点变量int choice=0;int renshu=0; ifstream fin2(学生信息.txt);if(!fin2)couterror!p.namep.numberp.banjip.sushehao;renshu+;renshu-;fin2.close();cout1:按学号查询ttt2:按班级查询ttt3:按宿舍查询n;coutchoice;while(choice0)/循环操作switch(choice)case 1:chaxue(renshu);break;case 2:chaban(renshu);b
25、reak;case 3:chasu(renshu);break;case 0:break;default:cout您输错了!endl;break;coutchoice;system(cls);show();/显示主菜单void chaxue(int renshu)student2 p;int i=0;char xuehao20;coutxuehao;/输入查询学号ifstream fin1(学生信息.txt);if(!fin1)couterror!endl;exit(0);for(int j=0;jp.namep.numberp.banjip.sushehao;if(!strcmp(p.num
26、ber,xuehao)/找到有关信息后进行输出coutsetw(5)姓 名setw(8)班 级setw(9)学 号setw(9)宿舍号endl;coutsetw(6)p.namesetw(8)p.banjisetw(10)p.numbersetw(5)p.sushehaoendl;i+;break;fin1.close();if(i=0)couttt没有该生信息!endl;void chaban(int renshu)/实现细节类似上个函数student2 p;int i=0;char banji20;coutbanji;ifstream fin1(学生信息.txt);if(!fin1)cou
27、terror!endl;exit(0);for(int j=0;jp.namep.numberp.banjip.sushehao;if(!strcmp(p.banji,banji)if(i=0)coutsetw(5)姓 名setw(8)班 级setw(9)学 号setw(9)宿舍号endl;coutsetw(6)p.namesetw(8)p.banjisetw(10)p.numbersetw(5)p.sushehaoendl;i+;elsecoutsetw(6)p.namesetw(8)p.banjisetw(10)p.numbersetw(5)p.sushehaoendl;i+;fin1.c
28、lose();if(i=0)couttt没有该班学生信息!endl;void chasu(int renshu)/实现细节类似上个函数student2 p;int i=0;int sushehao;coutsushehao;ifstream fin1(学生信息.txt);if(!fin1)couterror!endl;exit(0);for(int j=0;jp.namep.numberp.banjip.sushehao;if(p.sushehao=sushehao)if(i=0)coutsetw(5)姓 名setw(8)班 级setw(9)学 号setw(9)宿舍号endl;coutsetw
29、(6)p.namesetw(8)p.banjisetw(10)p.numbersetw(5)p.sushehaoendl;i+;elsecoutsetw(6)p.namesetw(8)p.banjisetw(10)p.numbersetw(5)p.sushehaoendl;i+;fin1.close();if(i=0)couttt该宿舍无人入住!endl;3.6 信息汇总模块void huizong()char louhao20;int loucheng=0;int fangjian=0;int rongliang=0;int i=0;int k=0;/记录宿舍楼基本信息student2 ar
30、ray4100;/存储宿舍楼所有学生信息student2 p;int susheshu=0;int renshu=0;/记录宿舍楼已入住宿舍数及总入住人数ifstream fin(学生信息.txt);if(!fin)couttterror!array4renshu.namearray4renshu.numberarray4renshu.banjiarray4renshu.sushehao;renshu+;renshu-;/记录入住人数fin.close();if(renshu!=0)susheshu+;/for(i=1;irenshu;i+)/计算已入住宿舍个数if(array4i.sushe
31、hao!=array4i-1.sushehao)susheshu+;ifstream fin1(宿舍信息.txt);if(!fin1)couttterror!louhao;/宿舍楼编号fin1loucheng;/楼层个数fin1fangjian;/每层房间数fin1rongliang;/房间容量fin1.close();coutlouhao宿舍楼信息汇总:endl;cout已入住:renshu名学生;/输出已入住人数couttt 剩余容纳量:loucheng*fangjian*rongliang-renshuendl;/剩余容纳量cout空房间数:loucheng*fangjian-susheshuendl;/空房间数ifstream fin2(学生信息.txt);if(!fin2)couterror!endl;exit(0);for(int j=0;j
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100