宿舍管理系统实现.docx
- 文档编号:4998061
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:40
- 大小:185.53KB
宿舍管理系统实现.docx
《宿舍管理系统实现.docx》由会员分享,可在线阅读,更多相关《宿舍管理系统实现.docx(40页珍藏版)》请在冰豆网上搜索。
宿舍管理系统实现
河南工业大学计科0906马飞扬
根据本报告,可完全实现建立运行宿舍管理系统,这是我c++的课程设计。
1:
工程结构
初始信息:
2:
源代码
main.cpp:
#include
#include
#include
#include
usingnamespacestd;//
#include"show.h"//文件包含语句
#include"show2.h"//
#include"denglu.h"//
#include"jianlixinxi.h"//
#include"chaxun.h"//
#include"xiugai.h"//
#include"shanchu.h"//
#include"huizong.h"//
#include"xiumima.h"//
#include"zhuce.h"//
#include"weisheng.h"//
voidmain()
{
intchoice=0;//记录选择
denglu();//输入登录信息
show();//显示菜单
cin>>choice;
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<<"您按错了!
"< } cin>>choice; } } 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) { cout<<"error! "< exit(0); } while(! fin2.eof())//从文件输入当前所有学生信息 { fin2>>p.name>>p.number>>p.banji>>p.sushehao; renshu++; } renshu--; fin2.close(); cout<<"1: 按学号查询"; cout<<"\t\t\t2: 按班级查询\n"; cout<<"3: 按宿舍查询\n"; cout<<"请选择(0返回): "; cin>>choice; while(choice! =0)//循环操作 { switch(choice) { case1: chaxue(renshu);break; case2: chaban(renshu);break; case3: chasu(renshu);break; case0: break; default: cout<<"您输错了! "< } cout<<"请选择: "; cin>>choice; } cout<<"已退出! "< show2();//显示主菜单 } voidchaxue(intrenshu) { student2p; inti=0; charxuehao[20]; cout<<"查询的学号: ";// cin>>xuehao;//输入查询的学号 ifstreamfin1("学生信息.txt"); if(! fin1) { cout<<"error! "< exit(0); } for(intj=0;j { fin1>>p.name>>p.number>>p.banji>>p.sushehao; if(! strcmp(p.number,xuehao))//找到相关信息后进行输出 { cout<<"姓名: "< "< cout<<"班级: "< "< i++; break; } } fin1.close(); if(i==0) { cout<<"没有该生信息! "< } } voidchaban(intrenshu)//实现细节类似上个函数 { student2p; inti=0; charbanji[20]; cout<<"查询的班级: "; cin>>banji; ifstreamfin1("学生信息.txt"); if(! fin1) { cout<<"error! "< exit(0); } for(intj=0;j { fin1>>p.name>>p.number>>p.banji>>p.sushehao; if(! strcmp(p.banji,banji)) { cout<<"姓名: "< "< cout<<"班级: "< "< i++; } } fin1.close(); if(i==0) { cout<<"没有该班学生信息! "< } } voidchasu(intrenshu)//实现细节类似上个函数 { student2p; inti=0; intsushehao; cout<<"查询的宿舍号: "; cin>>sushehao; ifstreamfin1("学生信息.txt"); if(! fin1) { cout<<"error! "< exit(0); } for(intj=0;j { fin1>>p.name>>p.number>>p.banji>>p.sushehao; if(p.sushehao==sushehao) { cout<<"姓名: "< "< cout<<"班级: "< "< i++; } } fin1.close(); if(i==0) { cout<<"该宿舍无人入住! "< } } denglu.h: voiddenglu() { charyonghu1[20];//存储用户输入的登录信息 charmima1[10];// charyonghu2[20];//存储当前系统设定的登录信息 charmima2[10];// cout<<"用户名(初始值: 111111): "; cin>>yonghu1; cout<<"密码(初始值: 000000): "; cin>>mima1; ifstreamfin1("登录信息.txt"); if(! fin1) { cout<<"error! "< exit(0); } fin1>>yonghu2 >>mima2; fin1.close(); if(strcmp(yonghu1,yonghu2)||strcmp(mima1,mima2))//判断是否为合法用户 { cout<<"用户名或密码错误! "< 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) { cout<<"error! "< exit(0); } while(! fin.eof())//输入所有学生信息 { fin>>array4[renshu].name>>array4[renshu].number>>array4[renshu].banji>>array4[renshu].sushehao; renshu++; } renshu--;//记录入住人数 fin.close(); if(renshu! =0) { susheshu++;// for(i=1;i { if(array4[i].sushehao! =array4[i-1].sushehao) { susheshu++; } } } ifstreamfin1("宿舍信息.txt"); if(! fin1) { cout<<"error! "< exit(0); } fin1>>louhao;//宿舍楼编号 fin1>>loucheng;//楼层个数 fin1>>fangjian;//每层房间数 fin1>>rongliang;//房间容量 fin1.close(); cout< "< cout<<"已入住: "< cout<<"\t\t剩余容纳量: "< cout<<"空房间数: "< show2();//显示主菜单 } jianlixinxi.h: structstudent//存储学生信息的单链表结点存储结构 { charname[20]; charnumber[20]; charbanji[20]; intsushehao; student*next; }; structsushe//存储各房间信息的单链表头结点 { intrenshu; student*next; }; voidjianli() { intchoice; cout<<"该操作将格式化之前记录,1确认,0返回: ";//防止失误操作 cin>>choice;// if(choice) { ofstreamfout3; fout3.open("学生信息.txt"); if(! fout3) { cout<<"error"< exit(0); } fout3.eof();//格式化当前记录的学生信息 fout3.close; charlouhao[20];intloucheng;intfangjian;introngliang;//存储宿舍楼基本信息 cout<<"宿舍楼编号: ";// cin>>louhao;// cout<<"楼层数(小于11): ";// cin>>loucheng;// cout<<"每层房间数(小于101): ";// cin>>fangjian;// cout<<"房间容量(小于20): ";// cin>>rongliang;// ofstreamfout1("宿舍信息.txt"); if(! fout1) { cout<<"error! "< exit(0); } fout1< fout1< fout1< fout1< fout1.close(); for(inti=0;i { sushe*lou=newsushe[fangjian];//定义存储每层信息的线性结构 for(intj=0;j { lou[j].renshu=0;// lou[j].next=NULL;// } student*p=NULL;//辅助结点变量 p=newstudent; cout<<"第"< "< cout<<"宿舍号("<<(i+1)*100<<"~"<<(i+1)*100+fangjian-1<<"): "; cin>>p->sushehao;//输入宿舍号以进行下面的操作 while(p->sushehao! =-1) { sushe*q=NULL; cout<<"姓名: "; cin>>p->name; cout<<"学号: "; cin>>p->number; cout<<"班级: "; cin>>p->banji; if(lou[p->sushehao%100].renshu { student*q=NULL; if(lou[p->sushehao%100].renshu==0)//空房间直接插入 { lou[p->sushehao%100].next=p; p->next=NULL; lou[p->sushehao%100].renshu++; } else//非空房间先找到链表尾结点再进行插入 { q=lou[p->sushehao%100].next; for(intm=0;m { q=q->next; } q->next=p; p->next=NULL; lou[p->sushehao%100].renshu++; } } else//房间已满输入无效 { cout<<"该宿舍已满,此次输入无效! "< } p=newstudent; cout<<"宿舍号: "; cin>>p->sushehao; } if(p->sushehao==-1)//退出本层信息输入后输入本层信息至文件 { ofstreamfout2; fout2.open("学生信息.txt",ios: : app); if(! fout2) { cout<<"error"< exit(0); } for(j=0;j { if(lou[j].renshu! =0) { p=lou[j].next; for(ints=0;s { fout2< fout2< fout2< fout2< p=p->next; } } } fout2.close(); delete[]lou; } } } cout<<"已建立宿舍信息! "< show2();//显示主菜单 } shanchu.h: voidmingshan();//按名字进行删除 voidxueshan();//按学号进行删除 voidshanchu() { intchoice=0; cout<<"1: 按名字删除: "; cout<<"\t\t2: 按学号删除: \n"; cout<<"请选择(0返回): "; cin>>choice; while(choice! =0)//循环操作 { switch(choice) { case1: mingshan();break; case2: xueshan();break; case0: break; default: cout<<"您按错了! "< } cout<<"请选择: "; cin>>choice; } cout<<"已退出! "< show2();//显示主菜单 } voidmingshan() { student2array3[100];//存储当前所有学生信息 intrenshu=0; charname[20];//存储待删除信息的名字 intj=0; ifstreamfin("学生信息.txt"); if(! fin) { cout<<"error! "< exit(0); } while(! fin.eof())//输入当前学生信息 { fin>>array3[renshu].name>>array3[renshu].number>>array3[renshu].banji>>array3[renshu].sushehao; renshu++; } renshu--;//记录人数 fin.close(); cout<<"待删除信息的名字: "; cin>>name;//输入待删除名字 for(inti=0;i { if(! strcmp(array3[i].name,name))//找到相关信息 { ofstreamfout3; fout3.open("学生信息.txt"); if(! fout3) { cout<<"error"< exit(0); } fout3.eof();//格式化当前信息 fout3.close; j++; ofstreamfout; fout.open("学生信息.txt",ios: : app); if(! fout) { cout<<"error! "< exit(0); } for(ints=0;s { if(s! =i) { fout< fout< fout< fout< } } fout.close(); cout<<"已删除! "< break; } } if(j==0)//查找失败时 { cout<<"不存在该生信息! "< } } voidxueshan()//实现细节于上个函数 { student2array4[100]; intrenshu=0; charnumber[20]; intj=0; ifstreamfin("学生信息.txt"); if(! fin) { cout<<"error! "< exit(0); } while(! fin.eof()) { fin>>array4[renshu].name>>array4[renshu].number>>array4[renshu].banji>>array4[renshu].sushehao; renshu++; } renshu--; fin.close(); cout<<"待删除信息的学号: "; cin>>number; for(inti=0;i { if(! strcmp(array4[i].number,number)) { ofstreamfout3; fout3.open("学生信息.txt"); if(! fout3) { cout<<"error"< exit(0); } fout3.eof(); fout3.close; j++; ofstreamfout; fout.open("学生信息.txt",ios: : app); if(! fout) { cout<<"error! "< exit(0); } for(i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 宿舍 管理 系统 实现