《c宿舍管理完整实现 .docx》由会员分享,可在线阅读,更多相关《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。 /添加同学信息ca
3、se 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 number2
4、0 。char banji20 。 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 。whilechoi
5、ce.=0/ 循环操作可编辑资料 - - - 欢迎下载精品名师归纳总结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
6、同学信息 .txt 。if.fin1couterror.endl 。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/ 实现细节类似上个函
7、数student2 p。int i=0 。char banji20 。coutbanji 。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 re
8、nshu/ 实现细节类似上个函数student2 p。int i=0 。int sushehao。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 。d
9、englu.h:void dengluchar yonghu120 。/储备用户输入的登录信息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可
10、编辑资料 - - - 欢迎下载精品名师归纳总结char louhao20 。int loucheng=0。int fangjian=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.sush
11、ehao。renshu+ 。renshu-。/记录入住人数fin.close 。ifrenshu.=0susheshu+。/fori=1 。 irenshu。i+/ 运算已入住的宿舍个数ifarray4i.sushehao.=array4i-1.sushehaosusheshu+。ifstream fin1 宿舍信息 .txt 。if.fin1couterror.louhao 。/宿舍楼编号fin1loucheng 。/楼层个数fin1fangjian 。/ 每层房间数fin1rongliang 。/ 房间容量fin1.close 。coutlouhao 宿舍楼信息汇总 :endl 。cout
12、 已入住 :renshu 名同学 。/输出已入住的人数couttt 剩余容纳量 :loucheng*fangjian*rongliang-renshuendl。/剩余容纳量可编辑资料 - - - 欢迎下载精品名师归纳总结cout 空房间数 :loucheng*fangjian-susheshuendl 。/ 空房间数show2。/ 显示主菜单jianlixinxi.h:struct student/ 储备同学信息的单链表结点储备结构char name20 。char number20 。char banji20 。 int sushehao。student*next 。 。struct sus
13、he/储备各房间信息的单链表头结点int renshu。student*next 。 。void jianliint choice 。coutchoice 。/ifchoiceofstream fout3 。fout3.open 同学信息 .txt 。if.fout3couterrorendl 。exit0 。fout3.eof 。/ 格式化当前记录的同学信息fout3.close。char louhao20 。int loucheng 。int fangjian 。int rongliang 。/ 储备宿舍楼基本信息coutlouhao 。/coutloucheng 。/coutfangji
14、an 。/coutrongliang 。/ofstream fout1 宿舍信息 .txt 。可编辑资料 - - - 欢迎下载精品名师归纳总结if.fout1couterror.endl 。exit0 。可编辑资料 - - - 欢迎下载精品名师归纳总结fout1louhaoendl 。/ 输入到文件fout1louchengendl 。/ fout1fangjianendl 。/ fout1rongliangendl 。/ fout1.close 。forint i=0 。iloucheng 。i+/ 按楼层数逐个建立每层信息sushe*lou=new sushefangjian 。/定义储备
15、每层信息的线性结构forint j=0 。jfangjian 。j+/ 对该线性结构进行初始化louj.renshu=0 。/ louj.next=NULL。/可编辑资料 - - - 欢迎下载精品名师归纳总结1 ): 。student*p=NULL 。/ 帮忙结点变量p=new student。cout 第i+1 层信息(宿舍号 -1 进入下一层) :endl 。cout宿 舍 号 ( i+1*100p-sushehao。/输入宿舍号以进行下面的操作whilep-sushehao.=-1可编辑资料 - - - 欢迎下载精品名师归纳总结否已满入sushe*q=NULL 。coutp-name 。
16、coutp-number 。coutp-banji 。ifloup-sushehao%100.renshusushehao%100.renshu=0/空房间直接插loup-sushehao%100.next=p 。p-next=NULL 。loup-sushehao%100.renshu+ 。可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结else/非空房间先找到链表尾结点再进行插入可编辑资料 - - - 欢迎下载精品名师归纳总结sushehao%100.renshu-1。 m+q=loup-sushehao%100.next 。forintm=
17、0。mnext 。q-next=p 。p- next=NULL 。loup-sushehao%100.renshu+ 。可编辑资料 - - - 欢迎下载精品名师归纳总结else/房间已满输入无效cout 该宿舍已满 ,此次输入无效 .endl 。p=new student。coutp-sushehao。ifp-sushehao=-1/ 退出本层信息输入后输入本层信息至文件ofstream fout2 。fout2.open 同学信息 .txt,ios:app 。if.fout2couterrorendl 。exit0 。forj=0 。jfangjian 。j+iflouj.renshu.=0
18、p=louj.next 。forint s=0 。slouj.renshu 。s+fout2nameendl 。fout2numberendl 。fout2banjiendl 。fout2sushehaonext 。可编辑资料 - - - 欢迎下载精品名师归纳总结fout2.close 。deletelou 。cout 已建立宿舍信息 .endl 。show2。/ 显示主菜单shanchu.h:void mingshan 。/ 按名字进行删除void xueshan 。/按学号进行删除void shanchuint choice=0 。cout1: 按名字删除 :。couttt 2: 按学号删
19、除 :n 。coutchoice 。whilechoice.=0/ 循环操作switchchoicecase 1:mingshan。break。case 2:xueshan。break。case 0:break。default:cout 您按错了 .endl 。break。coutchoice 。cout 已退出 .endl 。show2。/ 显示主菜单void mingshanstudent2 array3100 。/储备当前全部同学信息int renshu=0 。char name20 。/储备待删除信息的名字int j=0 。ifstream fin 同学信息 .txt 。if.finc
20、outerror.array3renshu.namearray3renshu.numberarray3renshu.banjiarray3rens hu.sushehao。renshu+ 。renshu-。/记录人数fin.close 。coutname。/输入待删除名字forint i=0 。irenshu。i+/ 循环查找线性表if.strcmparray3i.name,name/找到相关信息ofstream fout3 。fout3.open 同学信息 .txt 。if.fout3couterrorendl 。exit0 。fout3.eof 。/格式化当前信息fout3.close 。
21、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.sushehaoendl 。可编辑资料 - - - 欢迎下载精品名师归纳总结fout.close 。cout 已删除 .endl 。break。ifj=0/ 查找失败时cout 不存在该生信息 .endl
22、。void xueshan/ 实现细节于上个函数student2 array4100 。int renshu=0 。char number20 。int j=0 。ifstream fin 同学信息 .txt 。if.fincouterror.array4renshu.namearray4renshu.numberarray4renshu.banjiarray4rens hu.sushehao。renshu+ 。renshu-。fin.close 。coutnumber 。forint i=0 。irenshu。i+if.strcmparray4i.number,numberofstream
23、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.nameendl 。foutarray4s.numberendl 。foutarray4s.banjiendl。foutarray4s.sushehao
24、endl 。可编辑资料 - - - 欢迎下载精品名师归纳总结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。cout3: 宿舍信息汇总 。coutttttttt 4:修改同学信
25、息 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。cout7: 宿舍卫生评比 。co
26、utttttttt 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。int i=0 。ifstream f
27、in1 同学信息 .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.su
28、shehao.=array5i.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 宿舍卫生信息
29、 .txt 。if.fout3couterror.endl 。exit0 。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 得
30、分最高的宿舍为:=2&shengsusheshu2-2.score=shengsusheshu2-1.score/循环输出最高得分宿舍cout, 。coutshengsusheshu2-2.sushehao。susheshu2-。coutendl 。i=0 。ifshengi.score60cout 不及格宿舍有 :shengi.sushehao 。i+ 。whileisusheshu&shengi.score60/循环输出不及格宿舍信息cout, 。coutshengi.sushehao。i+ 。可编辑资料 - - - 欢迎下载精品名师归纳总结elseelsecoutendl 。cout 全
31、部宿舍均及格 .endl 。可编辑资料 - - - 欢迎下载精品名师归纳总结cout 当前宿舍信息为空.endl 。cout 各宿舍得分已输入文件.endl 。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.scor
32、e 。whilelowhighwhilelow=key-high 。p=llow.score 。 q=llow.sushehao 。llow.score=lhigh.score。llow.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 array2100 。/ 储备同学信息void xiugaiint choice=0 。int renshu=0 。ifstream fin 同学信息 .txt 。可编辑资料 - - - 欢迎下载精品名师归纳总结if.fincouterror.array2renshu.namearray2renshu.numberarray2renshu.