《2022年c宿舍管理完整实现.docx》由会员分享,可在线阅读,更多相关《2022年c宿舍管理完整实现.docx(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
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/ #
2、includexiumima.h/ #includezhuce.h/ #includeweisheng.h/ void mainint choice=0 ;/ 记录选择denglu ;/输入登录信息show;/显示菜单 cinchoice ;whilechoice.=0/ 循环输入选择switchchoicecase 1:jianli ;break;/ 建立宿舍信息case 2:chaxun;break;/ 查询同学信息case 3:huizong ;break;/宿舍信息汇总case 4:xiugai ;break;/修改同学信息case 5:zhuce;break; /添加同学信息case
3、 6:shanchu;break;/删除同学信息欢迎下载精品学习资源case 7:weisheng; break;/ 宿舍卫生评比case 8:xiumima ;break;/修改登录信息case 0:break;default:cout 您按错了 .choice ;chaxun.h:void chaxueint renshu ;/ 按学号查询void chabanint renshu ;/ 按班级查询void chasuint renshu ;/按宿舍查询struct student2/ 定义储备信息的结点结构char name20 ;char number20 ;char banji20
4、; int sushehao; ;student2 array1100 ;/ 定义储备信息的线性结构数组void chaxunstudent2 p;/帮忙结点变量int choice=0 ;int renshu=0 ;ifstream fin2 同学信息 .txt ;if.fin2couterror.p.namep.numberp.banjip.sushehao ;renshu+ ;renshu-;fin2.close ;cout1: 按学号查询 ;coutttt 2: 按班级查询 n ;cout3: 按宿舍查询 n ;coutchoice ;whilechoice.=0/ 循环操作欢迎下载精
5、品学习资源switchchoicecase 1:chaxuerenshu;break;case 2:chabanrenshu;break;case 3:chasurenshu;break;case 0:break;default:cout 您输错了 .endl ;break;coutchoice ;cout 已退出 .endl ;show2;/ 显示主菜单void chaxueint renshustudent2 p;int i=0 ;char xuehao20 ;coutxuehao ;/ 输入查询的学号ifstream fin1 同学信息 .txt ;if.fin1couterror.en
6、dl ;exit0 ;forint j=0 ;jp.namep.numberp.banjip.sushehao ;if.strcmpp.number,xuehao/ 找到相关信息后进行输出cout 姓名 :p.namett学号 :p.numberendl ;cout 班级 :p.banjitt宿舍号 :p.sushehaoendl ;i+ ;break;fin1.close ;ifi=0cout 没有该生信息 .endl ;欢迎下载精品学习资源void chabanint renshu/ 实现细节类似上个函数student2 p;int i=0 ;char banji20 ;coutbanji
7、 ;ifstream fin1 同学信息 .txt ;if.fin1couterror.endl ;exit0 ;forint j=0 ;jp.namep.numberp.banjip.sushehao ;if.strcmpp.banji,banjicout 姓名 :p.namett学号 :p.numberendl ;cout 班级 :p.banjitt宿舍号 :p.sushehaoendl ;i+ ;fin1.close ;ifi=0cout 没有该班同学信息.endl ;void chasuint renshu/ 实现细节类似上个函数student2 p;int i=0 ;int sush
8、ehao;coutsushehao;ifstream fin1 同学信息 .txt ;if.fin1couterror.endl ;exit0 ;forint j=0 ;jp.namep.numberp.banjip.sushehao ;ifp.sushehao=sushehaocout 姓名 :p.namett学号 :p.numberendl ;cout 班级 :p.banjitt宿舍号 :p.sushehaoendl ;i+ ;fin1.close ;ifi=0cout 该宿舍无人入住 .endl ;denglu.h:void dengluchar yonghu120 ;/储备用户输入的登
9、录信息char mima110 ;/char yonghu220 ;/储备当前系统设定的登录信息char mima210 ;/coutyonghu1 ;coutmima1 ;ifstream fin1 登录信息 .txt ;if.fin1couterror.yonghu2mima2 ;fin1.close ;ifstrcmpyonghu1,yonghu2|strcmpmima1,mima2/判定是否为合法用户cout 用户名或密码错误.endl ;exit0 ;huizong.h:void huizong欢迎下载精品学习资源char louhao20 ;int loucheng=0;int f
10、angjian=0 ;int rongliang=0 ;int i=0 ;/记录宿舍楼的基本信息student2 array4100 ;/ 储备宿舍楼的全部同学信息int susheshu=0;int renshu=0 ;/记录宿舍楼已入住的宿舍数及总入住人数ifstream fin 同学信息 .txt ;if.fincouterror.array4renshu.namearray4renshu.numberarray4renshu.banjiarray4rens hu.sushehao;renshu+ ;renshu-;/记录入住人数fin.close ;ifrenshu.=0sushesh
11、u+;/fori=1 ; irenshu;i+/ 运算已入住的宿舍个数ifarray4i.sushehao.=array4i-1.sushehaosusheshu+;ifstream fin1 宿舍信息 .txt ;if.fin1couterror.louhao ;/宿舍楼编号fin1loucheng ;/楼层个数fin1fangjian ;/ 每层房间数fin1rongliang ;/ 房间容量fin1.close ;coutlouhao 宿舍楼信息汇总 :endl ;cout 已入住 :renshu 名同学 ;/输出已入住的人数couttt 剩余容纳量 :loucheng*fangjian
12、*rongliang-renshuendl;/剩余容纳量欢迎下载精品学习资源cout 空房间数 :loucheng*fangjian-susheshuendl ;/ 空房间数show2;/ 显示主菜单jianlixinxi.h:struct student/ 储备同学信息的单链表结点储备结构char name20 ;char number20 ;char banji20 ; int sushehao;student*next ; ;struct sushe/储备各房间信息的单链表头结点int renshu;student*next ; ;void jianliint choice ;coutc
13、hoice ;/ifchoiceofstream fout3 ;fout3.open 同学信息 .txt ;if.fout3couterrorendl ;exit0 ;fout3.eof ;/ 格式化当前记录的同学信息fout3.close;char louhao20 ;int loucheng ;int fangjian ;int rongliang ;/ 储备宿舍楼基本信息coutlouhao ;/coutloucheng ;/coutfangjian ;/coutrongliang ;/ofstream fout1 宿舍信息 .txt ;欢迎下载精品学习资源if.fout1couterr
14、or.endl ;exit0 ;欢迎下载精品学习资源fout1louhaoendl ;/ 输入到文件fout1louchengendl ;/ fout1fangjianendl ;/ fout1rongliangendl ;/ fout1.close ;forint i=0 ;iloucheng ;i+/ 按楼层数逐个建立每层信息sushe*lou=new sushefangjian ;/定义储备每层信息的线性结构forint j=0 ;jfangjian ;j+/ 对该线性结构进行初始化louj.renshu=0 ;/ louj.next=NULL;/欢迎下载精品学习资源1 ): ;stud
15、ent*p=NULL ;/ 帮忙结点变量p=new student;cout 第i+1 层信息(宿舍号 -1 进入下一层) :endl ;cout宿 舍 号 ( i+1*100p-sushehao;/输入宿舍号以进行下面的操作whilep-sushehao.=-1欢迎下载精品学习资源否已满入sushe*q=NULL ;coutp-name ;coutp-number ;coutp-banji ;ifloup-sushehao%100.renshusushehao%100.renshu=0/空房间直接插loup-sushehao%100.next=p ;p-next=NULL ;loup-sus
16、hehao%100.renshu+ ;欢迎下载精品学习资源欢迎下载精品学习资源else/非空房间先找到链表尾结点再进行插入欢迎下载精品学习资源sushehao%100.renshu-1; m+q=loup-sushehao%100.next ;forintm=0;mnext ;q-next=p ;p- next=NULL ;loup-sushehao%100.renshu+ ;欢迎下载精品学习资源else/房间已满输入无效cout 该宿舍已满 ,此次输入无效 .endl ;p=new student;coutp-sushehao;ifp-sushehao=-1/ 退出本层信息输入后输入本层信息
17、至文件ofstream fout2 ;fout2.open 同学信息 .txt,ios:app ;if.fout2couterrorendl ;exit0 ;forj=0 ;jfangjian ;j+iflouj.renshu.=0p=louj.next ;forint s=0 ;slouj.renshu ;s+fout2nameendl ;fout2numberendl ;fout2banjiendl ;fout2sushehaonext ;欢迎下载精品学习资源fout2.close ;deletelou ;cout 已建立宿舍信息 .endl ;show2;/ 显示主菜单shanchu.h
18、:void mingshan ;/ 按名字进行删除void xueshan ;/按学号进行删除void shanchuint choice=0 ;cout1: 按名字删除 :;couttt 2: 按学号删除 :n ;coutchoice ;whilechoice.=0/ 循环操作switchchoicecase 1:mingshan;break;case 2:xueshan;break;case 0:break;default:cout 您按错了 .endl ;break;coutchoice ;cout 已退出 .endl ;show2;/ 显示主菜单void mingshanstudent
19、2 array3100 ;/储备当前全部同学信息int renshu=0 ;char name20 ;/储备待删除信息的名字int j=0 ;ifstream fin 同学信息 .txt ;if.fincouterror.array3renshu.namearray3renshu.numberarray3renshu.banjiarray3rens hu.sushehao;renshu+ ;renshu-;/记录人数fin.close ;coutname;/输入待删除名字forint i=0 ;irenshu;i+/ 循环查找线性表if.strcmparray3i.name,name/找到相关
20、信息ofstream fout3 ;fout3.open 同学信息 .txt ;if.fout3couterrorendl ;exit0 ;fout3.eof ;/格式化当前信息fout3.close ;j+ ;ofstream fout ;fout.open 同学信息 .txt,ios:app ;if.foutcouterror.endl;exit0 ;forint s=0 ;srenshu;s+/ 输入非删除信息至文件ifs.=ifoutarray3s.nameendl ;foutarray3s.numberendl ;foutarray3s.banjiendl;foutarray3s.s
21、ushehaoendl ;欢迎下载精品学习资源fout.close ;cout 已删除 .endl ;break;ifj=0/ 查找失败时cout 不存在该生信息 .endl ;void xueshan/ 实现细节于上个函数student2 array4100 ;int renshu=0 ;char number20 ;int j=0 ;ifstream fin 同学信息 .txt ;if.fincouterror.array4renshu.namearray4renshu.numberarray4renshu.banjiarray4rens hu.sushehao;renshu+ ;rens
22、hu-;fin.close ;coutnumber ;forint i=0 ;irenshu;i+if.strcmparray4i.number,numberofstream fout3 ;fout3.open 同学信息 .txt ;if.fout3couterrorendl ;exit0 ;欢迎下载精品学习资源fout3.eof ;fout3.close ;j+ ;ofstream fout ;fout.open 同学信息 .txt,ios:app ;if.foutcouterror.endl;exit0 ;forint s=0 ;srenshu;s+ifs.=ifoutarray4s.na
23、meendl ;foutarray4s.numberendl ;foutarray4s.banjiendl;foutarray4s.sushehaoendl ;欢迎下载精品学习资源ifj=0fout.close ;cout 已删除 .endl ;break;欢迎下载精品学习资源show.h:cout 不存在该生信息 .endl ;欢迎下载精品学习资源void show/ 主界面显示信息time_t t ;time&t ;cout -宿舍治理查询系统 -endl;cout ttt时间: ctime&t;cout-n;cout1: 建立宿舍信息 ;coutttttttt 2:查询同学信息 n;co
24、ut3: 宿舍信息汇总 ;coutttttttt 4:修改同学信息 n;cout5: 注册同学信息 ;coutttttttt 6:删除同学信息 n;cout7: 宿舍卫生评比 ;欢迎下载精品学习资源coutttttttt 8:修改登录信息 n;cout-n;cout 请选择( 0 退出): ;show2.h:void show2/ 进行操作后显示的主界面信息cout-n;cout1: 建立宿舍信息 ;coutttttttt 2:查询同学信息 n;cout3: 宿舍信息汇总 ;coutttttttt 4:修改同学信息 n;cout5: 注册同学信息 ;coutttttttt 6:删除同学信息 n
25、;cout7: 宿舍卫生评比 ;coutttttttt 8:修改登录信息 n;cout-n;cout 请选择( 0 退出): ;weisheng.h:struct wei/ 宿舍卫生储备结构int sushehao;int score; ;void sortwei*l,int low,int high;/ 快速排序函数int partionwei*l,int low,int high;/返回枢轴位置void weishengstudent2 array5100 ;/ 同学信息储备结构wei sheng100 ;/ 宿舍卫生信息储备结构int renshu=0 ;int susheshu=0;i
26、nt i=0 ;ifstream fin1 同学信息 .txt ;if.fin1couterror.array5renshu.namearray5renshu.numberarray5renshu.banjiarray5ren欢迎下载精品学习资源shu.sushehao;renshu+ ;欢迎下载精品学习资源renshu-;/记录人数fin1.close ;ifrenshu.=0shengsusheshu.sushehao=array5i.sushehao;susheshu+;fori=1 ; irenshu;i+/ 建立已入住的宿舍信息储备数组ifarray5i-1.sushehao.=ar
27、ray5i.sushehaoshengsusheshu.sushehao=array5i.sushehao;susheshu+;cout 为各宿舍打分( 0100) :endl ;/为各入住宿舍打分fori=0 ; isusheshu;i+欢迎下载精品学习资源wei*l ;cout 宿舍 shengi.sushehaoshengi.score ;欢迎下载精品学习资源l=sheng;i=susheshu-1;sortl,0,i ;/按得分对宿舍信息进行排序ofstream fout3 ;fout3.open 宿舍卫生信息 .txt ;if.fout3couterror.endl ;exit0 ;
28、fout3.eof ;/格式化上次得分信息fout3.close ;ofstream fout2 ;fout2.open 宿舍卫生信息 .txt,ios:app ;if.fout2couterror.endl ;exit0 ;fori=0 ; isusheshu;i+/ 写入宿舍卫生信息至文件欢迎下载精品学习资源fout2shengi.sushehaoendl ;fout2shengi.scoreendl ;fout2.close ;int susheshu2=susheshu;cout 得分最高的宿舍为:=2&shengsusheshu2-2.score=shengsusheshu2-1.s
29、core/循环输出最高得分宿舍cout, ;coutshengsusheshu2-2.sushehao;susheshu2-;coutendl ;i=0 ;ifshengi.score60cout 不及格宿舍有 :shengi.sushehao ;i+ ;whileisusheshu&shengi.score60/循环输出不及格宿舍信息cout, ;coutshengi.sushehao;i+ ;欢迎下载精品学习资源elseelsecoutendl ;cout 全部宿舍均及格 .endl ;欢迎下载精品学习资源cout 当前宿舍信息为空.endl ;cout 各宿舍得分已输入文件.endl ;
30、show2;/ 显示主菜单void sortwei*l,int low,int high/快速排序函数iflowhigh欢迎下载精品学习资源int key=partionl,low,high;sortl,low,key-1 ;sortl,key+1,high ;int partionwei*l,int low,int high/返回枢轴位置int p=0 ;int q=0 ;int key=llow.score ;whilelowhighwhilelow=key-high ;p=llow.score ; q=llow.sushehao ;llow.score=lhigh.score;llow.
31、sushehao=lhigh.sushehao ;lhigh.score=p ;lhigh.sushehao=q ;whilelowhigh&llow.score=key+low ;p=llow.score ; q=llow.sushehao ;llow.score=lhigh.score;llow.sushehao=lhigh.sushehao ;lhigh.score=p ;lhigh.sushehao=q ;return low ;xiugai.h:void mingxiuint renshu ;/ 按名字修改void xuexiuint renshu ;/ 按学号修改student2
32、array2100 ;/ 储备同学信息void xiugaiint choice=0 ;int renshu=0 ;ifstream fin 同学信息 .txt ;欢迎下载精品学习资源if.fincouterror.array2renshu.namearray2renshu.numberarray2renshu.banjiarray2rens hu.sushehao;renshu+ ;renshu-;fin.close ;cout1: 按名字修改 :;couttt 2: 按学号修改 :n ;coutchoice ;whilechoice.=0switchchoicecase 1:mingxiurenshu ;break;case 2:xuexiurenshu;break;case 0:break;default:cout 您按错了 .endl ;break;coutchoice ;cout 已退出 .endl ;show2;void mingxiuint renshuchar na20 ;int j=0 ;coutna ;forint i=0 ;irenshu;i+if.strcmparray2i.name,na/找到相关信息进行修改coutarray2i.name ;coutarray2i.number ;coutarray2i.banji ;cout 宿舍号 : ;c