您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > c++宿舍管理系统实现
河南工业大学计科0906马飞扬根据本报告,可完全实现建立运行宿舍管理系统,这是我c++的课程设计。1:工程结构初始信息:2:源代码main.cpp:#includeiostream//预编译语句#includecstdlib//#includectime//#includefstream//usingnamespacestd;//#includeshow.h//文件包含语句#includeshow2.h//#includedenglu.h//#includejianlixinxi.h//#includechaxun.h//#includexiugai.h//#includeshanchu.h//#includehuizong.h//#includexiumima.h//#includezhuce.h//#includeweisheng.h//voidmain(){intchoice=0;//记录选择denglu();//输入登录信息show();//显示菜单cinchoice;while(choice!=0)//循环输入选择{switch(choice){case1:jianli();break;//建立宿舍信息case2:chaxun();break;//查询学生信息case3:huizong();break;//宿舍信息汇总case4:xiugai();break;//修改学生信息case5:zhuce();break;//添加学生信息case6:shanchu();break;//删除学生信息case7:weisheng();break;//宿舍卫生评比case8:xiumima();break;//修改登录信息case0:break;default:cout您按错了!endl;}cinchoice;}}chaxun.h:voidchaxue(intrenshu);//按学号查询voidchaban(intrenshu);//按班级查询voidchasu(intrenshu);//按宿舍查询structstudent2//定义存储信息的结点结构{charname[20];charnumber[20];charbanji[20];intsushehao;};student2array1[100];//定义存储信息的线性结构数组voidchaxun(){student2p;//辅助结点变量intchoice=0;intrenshu=0;ifstreamfin2(学生信息.txt);if(!fin2){couterror!endl;exit(0);}while(!fin2.eof())//从文件输入当前所有学生信息{fin2p.namep.numberp.banjip.sushehao;renshu++;}renshu--;fin2.close();cout1:按学号查询;cout\t\t\t2:按班级查询\n;cout3:按宿舍查询\n;cout请选择(0返回):;cinchoice;while(choice!=0)//循环操作{switch(choice){case1:chaxue(renshu);break;case2:chaban(renshu);break;case3:chasu(renshu);break;case0:break;default:cout您输错了!endl;break;}cout请选择:;cinchoice;}cout已退出!endl;show2();//显示主菜单}voidchaxue(intrenshu){student2p;inti=0;charxuehao[20];cout查询的学号:;//cinxuehao;//输入查询的学号ifstreamfin1(学生信息.txt);if(!fin1){couterror!endl;exit(0);}for(intj=0;jrenshu;j++)//对结构数组中的元素进行循环判断{fin1p.namep.numberp.banjip.sushehao;if(!strcmp(p.number,xuehao))//找到相关信息后进行输出{cout姓名:p.name\t\t学号:p.numberendl;cout班级:p.banji\t\t宿舍号:p.sushehaoendl;i++;break;}}fin1.close();if(i==0){cout没有该生信息!endl;}}voidchaban(intrenshu)//实现细节类似上个函数{student2p;inti=0;charbanji[20];cout查询的班级:;cinbanji;ifstreamfin1(学生信息.txt);if(!fin1){couterror!endl;exit(0);}for(intj=0;jrenshu;j++){fin1p.namep.numberp.banjip.sushehao;if(!strcmp(p.banji,banji)){cout姓名:p.name\t\t学号:p.numberendl;cout班级:p.banji\t\t宿舍号:p.sushehaoendl;i++;}}fin1.close();if(i==0){cout没有该班学生信息!endl;}}voidchasu(intrenshu)//实现细节类似上个函数{student2p;inti=0;intsushehao;cout查询的宿舍号:;cinsushehao;ifstreamfin1(学生信息.txt);if(!fin1){couterror!endl;exit(0);}for(intj=0;jrenshu;j++){fin1p.namep.numberp.banjip.sushehao;if(p.sushehao==sushehao){cout姓名:p.name\t\t学号:p.numberendl;cout班级:p.banji\t\t宿舍号:p.sushehaoendl;i++;}}fin1.close();if(i==0){cout该宿舍无人入住!endl;}}denglu.h:voiddenglu(){charyonghu1[20];//存储用户输入的登录信息charmima1[10];//charyonghu2[20];//存储当前系统设定的登录信息charmima2[10];//cout用户名(初始值:111111):;cinyonghu1;cout密码(初始值:000000):;cinmima1;ifstreamfin1(登录信息.txt);if(!fin1){couterror!endl;exit(0);}fin1yonghu2mima2;fin1.close();if(strcmp(yonghu1,yonghu2)||strcmp(mima1,mima2))//判断是否为合法用户{cout用户名或密码错误!endl;exit(0);}}huizong.h:voidhuizong(){charlouhao[20];intloucheng=0;intfangjian=0;introngliang=0;inti=0;//记录宿舍楼的基本信息student2array4[100];//存储宿舍楼的所有学生信息intsusheshu=0;intrenshu=0;//记录宿舍楼已入住的宿舍数及总入住人数ifstreamfin(学生信息.txt);if(!fin){couterror!endl;exit(0);}while(!fin.eof())//输入所有学生信息{finarray4[renshu].namearray4[renshu].numberarray4[renshu].banjiarray4[renshu].sushehao;renshu++;}renshu--;//记录入住人数fin.close();if(renshu!=0){susheshu++;//for(i=1;irenshu;i++)//计算已入住的宿舍个数{if(array4[i].sushehao!=array4[i-1].sushehao){susheshu++;}}}ifstreamfin1(宿舍信息.txt);if(!fin1){couterror!endl;exit(0);}fin1louhao;//宿舍楼编号fin1loucheng;//楼层个数fin1fangjian;//每层房间数fin1rongliang;//房间容量fin1.close();coutlouhao宿舍楼信息汇总:endl;cout已入住:renshu名学生;//输出已入住的人数cout\t\t剩余容纳量:loucheng*fangjian*rongliang-renshuendl;//剩余容纳量cout空房间数:loucheng*fangjian-susheshuendl;//空房间数show2();//显示主菜单}jianlixinxi.h:structstudent//存储学生信息的单链表结点存储结构{charname[20];charnumber[20];charbanji[20];intsushehao;student*next;};structsushe//存储各房间信息的单链表头结点{intrenshu;student*next;};voidjianli(){intchoice;cout该操作将格式化之前记录,1确认,0返回:;//防止失误操作cinchoice;//if(choice){ofstreamfout3;fout3.open(学生信息.txt);if(!fout3){couterrorendl;exit(0);}fout3.eof();//格式化当前记录的学生信息fout3.close;charlouhao[20];intloucheng;intfangjian;introngliang;//存储宿舍楼基本信息cout宿舍楼编号:;//cinlouhao;//cout楼层数(小于11):;//cinloucheng;//cout每层房间数(小于101):;//cinfangjian;//cout房间容量(小于20):;//cinrongliang;//ofstreamfout1(宿舍信息.txt);if(!fout1){couterror!endl;exit(0);}fout1louhaoendl;//输入到文件fout1louchengendl;//fout1fangjianendl;//fout1rongliangendl;//fout1.close();for(inti=0;iloucheng;i++)//按楼层数逐个建立每层信息{sushe*lou=newsushe[fangjian];//定义存储每层信息的线性结构for(intj=0;jfangjian;j++)//对该线性结构进行初始化{lou[j].renshu=0;//lou[j].next=NULL;//}student*p=NULL;//辅助结点变量p=newstudent;cout第i+1层信息(宿舍号-1进入下一层):endl;cout宿舍号((i+1)*100~(i+1)*100+fangjian-1):;c
本文标题:c++宿舍管理系统实现
链接地址:https://www.777doc.com/doc-4285608 .html