c++宿舍管理系统实现(共29页).doc
《c++宿舍管理系统实现(共29页).doc》由会员分享,可在线阅读,更多相关《c++宿舍管理系统实现(共29页).doc(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上河南工业大学 计科0906 马飞扬根据本报告,可完全实现建立运行宿舍管理系统,这是我c+的课程设计。1:工程结构初始信息:2:源代码main.cpp:#include/预编译语句#include/#include/#include/using namespace std;/#includeshow.h/文件包含语句#includeshow2.h/#includedenglu.h/#includejianlixinxi.h/#includechaxun.h/#includexiugai.h/#includeshanchu.h/#includehuizong.h/#inc
2、ludexiumima.h/#includezhuce.h/#includeweisheng.h/void main()int choice=0;/记录选择denglu();/输入登录信息show();/显示菜单cinchoice;while(choice!=0)/循环输入选择 switch(choice) case 1:jianli();break;/建立宿舍信息 case 2:chaxun();break;/查询学生信息 case 3:huizong();break;/宿舍信息汇总 case 4:xiugai();break;/修改学生信息 case 5:zhuce();break;/添加
3、学生信息 case 6:shanchu();break;/删除学生信息 case 7:weisheng();break;/宿舍卫生评比 case 8:xiumima();break;/修改登录信息 case 0:break; default:cout您按错了!choice;chaxun.h:void chaxue(int renshu);/按学号查询void chaban(int renshu);/按班级查询void chasu(int renshu);/按宿舍查询struct student2/定义存储信息的结点结构char name20;char number20;char banji20
4、;int sushehao;student2 array1100;/定义存储信息的线性结构数组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:按学号查询;coutttt 2:按班级查询n;cout3:按宿舍查询n;coutchoice;while(choice!=0)/循环操作 switch(choice) c
5、ase 1:chaxue(renshu);break; case 2:chaban(renshu);break; case 3:chasu(renshu);break; case 0:break; default:cout您输错了!endl;break; coutchoice;cout已退出!endl;show2();/显示主菜单void chaxue(int renshu)student2 p;int i=0;char xuehao20;coutxuehao;/输入查询的学号ifstream fin1(学生信息.txt);if(!fin1)couterror!endl;exit(0);for
6、(int j=0;jp.namep.numberp.banjip.sushehao;if(!strcmp(p.number,xuehao)/找到相关信息后进行输出cout姓名:p.namett 学号:p.numberendl;cout班级:p.banjitt 宿舍号:p.sushehaoendl;i+;break;fin1.close();if(i=0)cout没有该生信息!endl;void chaban(int renshu)/实现细节类似上个函数student2 p;int i=0;char banji20;coutbanji;ifstream fin1(学生信息.txt);if(!fi
7、n1)couterror!endl;exit(0);for(int j=0;jp.namep.numberp.banjip.sushehao;if(!strcmp(p.banji,banji)cout姓名:p.namett 学号:p.numberendl;cout班级:p.banjitt 宿舍号:p.sushehaoendl;i+;fin1.close();if(i=0)cout没有该班学生信息!endl;void chasu(int renshu)/实现细节类似上个函数student2 p;int i=0;int sushehao;coutsushehao;ifstream fin1(学生信
8、息.txt);if(!fin1)couterror!endl;exit(0);for(int j=0;jp.namep.numberp.banjip.sushehao;if(p.sushehao=sushehao)cout姓名:p.namett 学号:p.numberendl;cout班级:p.banjitt 宿舍号:p.sushehaoendl;i+;fin1.close();if(i=0)cout该宿舍无人入住!endl;denglu.h:void denglu()char yonghu120;/存储用户输入的登录信息char mima110;/char yonghu220;/存储当前系统
9、设定的登录信息char mima210;/coutyonghu1;coutmima1;ifstream fin1(登录信息.txt);if(!fin1)couterror!yonghu2 mima2;fin1.close();if(strcmp(yonghu1,yonghu2)|strcmp(mima1,mima2)/判断是否为合法用户cout用户名或密码错误!endl;exit(0);huizong.h:void huizong()char louhao20;int loucheng=0;int fangjian=0;int rongliang=0;int i=0;/记录宿舍楼的基本信息st
10、udent2 array4100;/存储宿舍楼的所有学生信息int susheshu=0;int renshu=0;/记录宿舍楼已入住的宿舍数及总入住人数ifstream fin(学生信息.txt);if(!fin)couterror!array4renshu.namearray4renshu.numberarray4renshu.banjiarray4renshu.sushehao;renshu+;renshu-;/记录入住人数fin.close();if(renshu!=0) susheshu+;/ for(i=1;irenshu;i+)/计算已入住的宿舍个数 if(array4i.sus
11、hehao!=array4i-1.sushehao) susheshu+; ifstream fin1(宿舍信息.txt);if(!fin1)couterror!louhao;/宿舍楼编号fin1loucheng;/楼层个数fin1fangjian;/每层房间数fin1rongliang;/房间容量fin1.close();coutlouhao宿舍楼信息汇总:endl;cout已入住:renshu名学生;/输出已入住的人数couttt 剩余容纳量:loucheng*fangjian*rongliang-renshuendl;/剩余容纳量cout空房间数:loucheng*fangjian-su
12、sheshuendl;/空房间数show2();/显示主菜单jianlixinxi.h: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)couterrorendl;exi
13、t(0);fout3.eof();/格式化当前记录的学生信息fout3.close; char louhao20;int loucheng;int fangjian;int rongliang;/存储宿舍楼基本信息 coutlouhao;/coutloucheng;/coutfangjian;/coutrongliang;/ofstream fout1(宿舍信息.txt);if(!fout1)couterror!endl;exit(0);fout1louhaoendl;/输入到文件fout1louchengendl;/fout1fangjianendl;/fout1rongliangendl;
14、/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(p-su
15、shehao!=-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;loup-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 宿舍 管理 系统 实现 29
限制150内