C++实现学生住宿管理系统
作者:qfl_sdu
这篇文章主要为大家详细介绍了C++实现学生住宿管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了C++实现学生住宿管理系统的具体代码,供大家参考,具体内容如下
功能
(1)学生信息包括:姓名、学号、年龄、性别、学院、年级等
(2)宿舍信息包括:宿舍编号、宿舍楼名、楼层号、宿舍类型(二人间、四人间、六 人间、八人间) 、收费标准等。
(3)住宿信息包括:学生、宿舍、入住时间、是否欠费等。
(4)完成以下的操作:学生信息和宿舍信息的添加、修改、浏览、删除和查询。
(5)完成以下的操作:学生入住、缴费;住宿信息浏览、学生住宿信息查询、宿舍住 宿信息浏览与查询。
提示:
(1)增加必要的数据成员、成员函数或类; (2)对象指针(住宿信息类的对象指针成员可以指向相关的宿舍、对象指针数组成员可 以表示该宿舍的学生们)
代码:
#include <iostream> #include <string> using namespace std; //定义学生和宿舍的最大数量 #define MAXSTU 50 #define MAXDOR 20 //定义学生类 class Student { private: int mXuehao; //学号 char* mName; //名字 int mAge; //年龄 char mSex; //性别 char* mPartment;//学院 int mGrade; //年级 public: Student(){mName = 0;mPartment = 0;} Student(int id,const char* name,int age,char sex,const char* par,int grade) { mXuehao = id; mName = new char[strlen(name)+1]; memcpy(mName,name,strlen(name)); mName[strlen(name)] = '\0'; mAge = age; mSex = toupper(sex); mPartment = new char[strlen(par)+1]; memcpy(mPartment,par,strlen(par)); mPartment[strlen(par)] = '\0'; mGrade = grade; } ~Student() { if (mName) { delete[] mName; mName = 0; } if (mPartment) { delete[] mPartment; mPartment = 0; } } //设置类属性 void setId(int id){mXuehao = id;} void setName(const char* name) { if (mName != 0) { delete[] mName; mName = 0; } mName = new char[strlen(name)+1]; memcpy(mName,name,strlen(name)); mName[strlen(name)] = '\0'; } void setSex(char sex){mSex = toupper(sex);} void setAge(int age){mAge = age;} void setPartment(const char* par) { if(mPartment) delete []mPartment; mPartment = new char[strlen(par)+1]; memcpy(mPartment,par,strlen(par)); mPartment[strlen(par)] = '\0'; } void setGrade(int g){mGrade = g;} //获取类属性 int getId(){return mXuehao;} char* getName(){return mName;} char getSex(){return mSex;} int getAge(){return mAge;} char* getPartment(){return mPartment;} int getGrade(){return mGrade;} void display() { cout.setf(ios::left);//设置左对齐 cout << mXuehao << " " ; cout.fill(' '); //设置不足位填充方式 cout.width(10); //设置宽度,只对下一条有作用 cout << mName ; cout << " " << mSex << " "; cout << mAge << " " ; cout.fill(' '); cout.width(20); cout<< mPartment ; cout<< " " << mGrade << endl; cout.unsetf(ios::left); //取消左对齐 } }; //定义宿舍类型 enum EDomType { e_dorm_two=1, e_dorm_four, e_dorm_six, e_dorm_eight }; //定义宿舍类 class Dormatory { private: int mSusheId; //宿舍号 char* mDorName; //宿舍楼名 int mLayer; //楼层号 EDomType mEtype;//类型 int mPrice; //价格 public: Dormatory(){mDorName = 0;} Dormatory(int id,const char* name,int layer,EDomType e,int price) { mSusheId = id; mDorName = new char[strlen(name)+1]; memcpy(mDorName,name,strlen(name)); mDorName[strlen(name)] = '\0'; mLayer = layer; mEtype = e; mPrice = price; } ~Dormatory() { if(mDorName) { delete[] mDorName; mDorName = 0; } } //设置类属性 void setId(int id){mSusheId = id;} void setName(const char* name) { if(mDorName) delete[] mDorName; mDorName = new char[strlen(name)+1]; memcpy(mDorName,name,strlen(name)); mDorName[strlen(name)] = '\0'; } void setLayer(int layer){mLayer = layer;} void setDormType(EDomType e){mEtype = e;} void setPrice(int p){mPrice = p;} //获取类属性 int getId(){return mSusheId;} char* getName(){return mDorName;} int getLayer(){return mLayer;} EDomType getType(){return mEtype;} int getPrice(){return mPrice;} void display() { cout.setf(ios::left); cout<< mSusheId << " "; cout.fill(' '); cout.width(10); //名字最多5个汉子或者10个英文字符 cout << mDorName; cout << " " << mLayer << " "; if(e_dorm_two == mEtype) cout << "二人间" ; else if(e_dorm_four == mEtype) cout << "四人间" ; else if(e_dorm_six == mEtype) cout << "六人间" ; else cout << "八人间" ; cout << " " << mPrice << endl; cout.unsetf(ios::left); } }; //定义时间类 struct Date { int year; int month; int day; }; //住宿信息 class HomeInfo { private: Dormatory* mDormatory; //宿舍对象指针 Student* mStu[8]; //学生指针数组 bool mbqf[8]; //是否欠费,true欠费,否则不欠费 Date mHomeDate[8]; //入住时间 int mCurrentNmb;//当前已入住人数 char mDormSex; //当前宿舍的性别 public: HomeInfo() { for (int i =0;i< 8;i++) { mStu[i] = 0; mbqf[i] = true; } mDormatory = 0; mCurrentNmb = 0; mDormSex = 'n'; //表示该宿舍尚未分配 } void setDormatory(Dormatory* p){mDormatory = p;} void setSex(char sex){mDormSex = sex;} Dormatory* getDormatory(){return mDormatory;} char getSex(){return mDormSex;} int getCurrentNmb(){return mCurrentNmb;} //查看某个学生是否在该房间 bool isIn(Student* stu) { for (int i=0;i<mCurrentNmb;i++) { if(mStu[i] == stu) return true; } return false; } //是否已经注满 bool isFull() { if(e_dorm_eight == mDormatory->getType() && mCurrentNmb == 8) return true; else if(e_dorm_six == mDormatory->getType() && mCurrentNmb == 6) return true; else if(e_dorm_four == mDormatory->getType() && mCurrentNmb == 4) return true; else if(e_dorm_two == mDormatory->getType() && mCurrentNmb == 2) return true; return false; } //办理入住 bool Home(Student *stu,Date d) { if(isFull()) { cout << "宿舍已满,请重新选择宿舍!!!"<< endl; return false; } if(mDormSex == 'n') mDormSex = stu->getSex(); mStu[mCurrentNmb] = stu; mHomeDate[mCurrentNmb] = d; mCurrentNmb++; cout << "入住成功!宿舍:" << mDormatory->getName() << " " << mDormatory->getLayer() << " " << mDormatory->getId() << endl; return true; } //付费 void pay(Student *stu) { for (int i=0;i<mCurrentNmb;i++) { if(mStu[i] == stu) { mbqf[i] = false; cout << "缴费成功!!"<< endl; break; } } } //学生离开 void Leave(Student* stu) { for (int i=0;i<mCurrentNmb;i++) { if(mStu[i] == stu) { for(int j= i;j< mCurrentNmb-1;j++) { mbqf[j] = mbqf[j+1]; mStu[j] = mStu[j+1]; mHomeDate[j] = mHomeDate[j+1]; } mCurrentNmb -=1; //入住人数减去1 cout << "该学生已从入住信息中删除" << endl; break; } } } //判断学生是否已经缴费 bool isPayed(Student* stu) { for (int i=0;i<mCurrentNmb;i++) { if(mStu[i] == stu) { return (!mbqf[i]); } } return false; } //显示入住信息 void display() { mDormatory->display(); for (int i =0;i<mCurrentNmb;i++) { cout << " >>"; mStu[i]->display(); } } }; //转换类型 EDomType getDormType(int type) { if(1== type) return e_dorm_two; else if(2 == type) return e_dorm_four; else if(3== type) return e_dorm_six; else return e_dorm_eight; } //1添加学生 void AddStudent(Student* allStudents[],int &nRealStu) { bool bgo = true; int id; char name[20]={0}; char sex; int age; char par[30]={0}; int grade; char ch; while(bgo) { system("cls"); cout << "请输入学生学号:"; while(1) { id = 0; cin >> id; if(id <= 0) { cout << "输入不合法,请重新输入"; if (cin.fail()) { cin.clear(); cin.sync(); } } else break; } cout << "请输入学生姓名:" ; memset(name,0,20); cin >> name; cout << "请输入学生性别:"; cin >> sex; cout << "请输入学生年龄:"; while(1) { age = 0; cin >> age; if (age <= 0) { cout << "输入不合法,请重新输入"; if (cin.fail()) { cin.clear(); cin.sync(); } }else break; } cout << "请输入学院:"; memset(par,0,30); cin >> par; cout << "请输入年级:"; while(1) { grade = 0; cin >> grade; if (grade <= 0) { cout << "输入不合法,请重新输入"; if (cin.fail()) { cin.clear(); cin.sync(); } }else break; } Student* stu = new Student(id,name,age,sex,par,grade); allStudents[nRealStu] = stu; nRealStu++; cout << "学生添加成功!" << endl; cout << "是否继续添加(Y/N)?" ; while(true) { if (cin.fail()) { cin.clear(); cin.sync(); } cin >> ch; if (ch == 'N' || ch == 'n') { bgo = false; break; }else if(ch == 'Y' || ch == 'y') { break; } } } system("pause"); } //2修改学生信息 void ModStudent(Student* allStudents[],int nRealStu) { int id; char name[20]={0}; char sex; int age; char par[30]={0}; int grade; Student* stu = 0; system("cls"); cout << "请输入需要修改信息的学生学号:"; while(1) { id = 0; cin >> id; if(id > 0) break; if (cin.fail()) { cin.clear(); cin.sync(); } cout << "输入不合法,请重新输入" << endl; } for (int i =0;i< nRealStu;i++) { if(allStudents[i]->getId() == id) { stu = allStudents[i]; cout << "找到学生信息如下:" << endl; cout << "姓名:" << stu->getName() << endl;; cout << "性别:" << stu->getSex() << endl; cout << "年龄:" << stu->getAge() << endl;; cout << "学院:" << stu->getPartment() << endl; cout << "年级:"<< stu->getGrade() << endl; cout << "请输入需要修改的信息:" << endl; cout << "请输入学生姓名:"; cin >> name; cout << "请输入学生性别:"; cin >> sex; cout << "请输入学生年龄:"; cin >> age; cout << "请输入学院:"; cin >> par; cout << "请输入年级:"; cin >> grade; allStudents[i]->setName(name); allStudents[i]->setSex(sex); allStudents[i]->setAge(age); allStudents[i]->setPartment(par); allStudents[i]->setGrade(grade); cout << "学生信息修改成功!" << endl; break; } } if(stu==0) cout << "未找到该学生信息!" << endl; system("pause"); } //3删除学生信息 void DeleteStudent(Student* allStudents[],int &nRealStu,HomeInfo allInfo[],int nRealDorm) { int id; Student* stu = 0; system("cls"); cout << "请输入需要删除信息的学生学号:"; while(1) { id = 0; cin >> id; if(id > 0) break; if (cin.fail()) { cin.clear(); cin.sync(); } cout << "输入不合法,请重新输入" << endl; } for (int i =0;i< nRealStu;i++) { if(allStudents[i]->getId() == id) { stu = allStudents[i]; //删除学生 nRealStu -=1; //数组元素前移 for (int j = i;j< nRealStu;j++) { allStudents[j] = allStudents[j+1]; } cout << "删除成功!!" << endl; break; } } if (stu == 0) { cout << "未找到该学生信息" << endl; }else { //从住宿信息中删除该学生信息 for (int i=0;i< nRealDorm;i++) { allInfo[i].Leave(stu); } delete stu; stu = 0; } system("pause"); } //4.浏览所有学生信息 void ShowAllStudents(Student* allStudents[],int nRealStu) { system("cls"); cout << "学生信息如下:" << endl; for (int i =0;i< nRealStu;i++) { allStudents[i]->display(); } system("pause"); } //5.查询学生信息 void FindStudents(Student* allStudents[],int nRealStu) { int i,opt; int id; char tmp[40] = {0}; bool bgo = true; bool isfind = false; char ch; while(bgo) { system("cls"); cout << "1.按学号查询" << endl; cout << "2.按姓名查询" << endl; cin >> opt; switch(opt) { case 1: cout << "请输入需要查询的学号:" << endl; while(1) { cin >> id; if(id > 0)break; else { if (cin.fail()) { cin.clear(); cin.sync(); } cout << "输入不合法,请重新输入" << endl; } } for (i=0;i<nRealStu;i++) { if(allStudents[i]->getId() == id) { allStudents[i]->display(); break; } } if (i == nRealStu) { cout << "未找到学号为"<< id <<"的学生信息..." << endl; } break; case 2: cout << "请输入需要查询的姓名:" << endl; memset(tmp,0,40); cin >> tmp; isfind = false; for (i=0;i<nRealStu;i++) { if(strcmp(allStudents[i]->getName(),tmp) == 0) { isfind = true; allStudents[i]->display(); } } if (!isfind) { cout << "未找到姓名为"<< tmp <<"的学生信息..." << endl; } break; } cout << "是否继续查询(Y/N)?"; while(true) { if (cin.fail()) { cin.clear(); cin.sync(); } cin >> ch; if (ch == 'n' || ch == 'N') { bgo = false; break; }else if(ch == 'y'||ch =='Y') { break; } } } system("pause"); } //6.添加宿舍 void AddDormatory(Dormatory* allDormatory[],int &nRealDorm,HomeInfo allInfo[]) { int id; char name[20]={0}; int layer; int type; int price; char ch; bool bgo = true; while(bgo) { system("cls"); cout << "请输入宿舍编号:"; while(1) { id = 0; cin >> id; if(id > 0) break; else { if (cin.fail()) { cin.clear(); cin.sync(); } cout << "输入不合法,请重新输入" << endl; } } cout << "请输入宿舍名称:"; cin >> name; cout << "请输入楼层号:"; cin >> layer; cout << "请输入宿舍类型(1.二人间 2.四人间 3.六人间 4.八人间)"; cin >> type; cout << "请输入价格:"; cin >> price; Dormatory* st = new Dormatory(id,name,layer,getDormType(type),price); allDormatory[nRealDorm] = st; //添加入住信息 allInfo[nRealDorm].setDormatory(st); nRealDorm += 1; cout << "宿舍添加成功!!" << endl; cout << "是否继续添加(Y/N)?"; while(true) { cin >> ch; if(ch == 'y' || ch == 'Y') break; else if(ch == 'N' || ch == 'n') { bgo = false; break; } } } system("pause"); } //7.修改宿舍信息 void ModDormatory(Dormatory* allDormatory[],int nRealDorm) { int id; int i; char name[20]={0}; int layer; int type; int price; system("cls"); cout << "请输入要修改信息的宿舍编号:"; while(1) { id = 0; cin >> id; if (id > 0)break; else { if (cin.fail()) { cin.clear(); cin.sync(); } cout << "输入不合法,请重新输入" << endl; } } for (i=0;i<nRealDorm;i++) { if (allDormatory[i]->getId() == id) { cout << "该宿舍当前信息如下:" << endl; allDormatory[i]->display(); cout << "-------------------------" << endl; cout << "请输入宿舍名称:"; cin >> name; cout << "请输入楼层号:"; cin >> layer; cout << "请输入宿舍类型(1.二人间 2.四人间 3.六人间 4.八人间)"; cin >> type; cout << "请输入价格:"; cin >> price; allDormatory[i]->setName(name); allDormatory[i]->setLayer(layer); allDormatory[i]->setDormType(getDormType(type)); allDormatory[i]->setPrice(price); cout << "宿舍信息修改成功!!"<< endl; break; } } system("pause"); } //8.删除宿舍信息 void DeleteDormatory(Dormatory* allDormatory[],int &nRealDorm,HomeInfo allInfo[]) { int i,j,id; bool isfind = false; Dormatory* dor = 0; system("cls"); cout << "请输入需要删除的宿舍号:"; while(1) { id = 0; cin >> id; if (id > 0)break; else { if (cin.fail()) { cin.clear(); cin.sync(); } cout << "输入不合法,请重新输入" << endl; } } for (i=0;i<nRealDorm;i++) { if (allDormatory[i]->getId() == id) { dor = allDormatory[i]; //数组前移 for (j = i;j<nRealDorm-1;j++) { allDormatory[j] = allDormatory[j+1]; } break; } } if (dor == 0) { cout << "未找到宿舍号为" << id << "的宿舍信息" << endl; }else { //从入住信息中删除 for (i = 0;i<nRealDorm;i++) { if (allInfo[i].getDormatory() == dor) { for (j = i;j<nRealDorm-1;j++) { allInfo[j] = allInfo[j+1]; } break; } } delete dor; dor = 0; nRealDorm -=1; cout << "宿舍信息已删除!!" << endl; } system("pause"); } //9.浏览所有宿舍信息 void ShowAllDormatory(Dormatory* allDormatory[],int nRealDorm) { system("cls"); cout << "宿舍信息如下:" << endl; for (int i=0;i<nRealDorm;i++) { allDormatory[i]->display(); } system("pause"); } //10.查询宿舍信息 void FindDormatory(Dormatory* allDormatory[],int nRealDorm) { int id,i; char tmp[30]={0}; char ch; int opt; bool isfind = false; bool bgo = true; while(bgo) { system("cls"); cout << "1.根据宿舍编号查询" << endl; cout << "2.根据宿舍名查询" << endl; cout << "3.根据楼层号查询" << endl; cout << "4.根据宿舍类型查询" << endl; cin >> opt; switch(opt) { case 1: cout << "请输入宿舍编号:"; cin >> id; for (i=0;i<nRealDorm;i++) { if(allDormatory[i]->getId() == id) { allDormatory[i]->display(); break; } } if (i == nRealDorm) { cout << "未找到是宿舍编号为" << id << "的宿舍信息" << endl; } break; case 2: cout << "请输入宿舍名:"; cin >> tmp; isfind = false; for (i=0;i<nRealDorm;i++) { if(strcmp(allDormatory[i]->getName(),tmp) == 0) { allDormatory[i]->display(); isfind = true; } } if (!isfind) { cout << "未找到是宿舍名为" << tmp << "的宿舍信息" << endl; } break; case 3: cout << "请输入楼层号:"; cin >> id; isfind = false; for (i=0;i<nRealDorm;i++) { if(allDormatory[i]->getLayer() == id) { allDormatory[i]->display(); isfind = true; } } if (!isfind) { cout << "未找到是楼层号为" << id << "的宿舍信息" << endl; } break; case 4: cout << "请输入宿舍类型(1.二人间 2.四人间 3.六人间 4.八人间):"; cin >> id; isfind = false; for (i=0;i<nRealDorm;i++) { if(allDormatory[i]->getType() == getDormType(id)) { allDormatory[i]->display(); isfind = true; } } if (!isfind) { if(1 == id) cout << "未找到是房间类型为二人间的宿舍信息" << endl; else if(2 == id) cout << "未找到是房间类型为四人间的宿舍信息" << endl; else if(3 == id) cout << "未找到是房间类型为六人间的宿舍信息" << endl; else cout << "未找到是房间类型为八人间的宿舍信息" << endl; } break; } cout << "是否继续查询(Y/N)?" << endl; while(true) { cin >> ch; if(ch == 'y' || ch =='Y') break; else if(ch == 'n' || ch == 'N') { bgo = false; break; } } } system("pause"); } //获取可用的宿舍-功能11调用 int GetDormatory(Student* stu,HomeInfo allinfo[],int nRealNmb) { int i = 0; //先找是否有未住满的同性别宿舍 for (i=0;i<nRealNmb;i++) { if ( (allinfo[i].getSex() == stu->getSex()) && (!allinfo[i].isFull()) ) { return i; } } //没有已分配的宿舍,则从未分配性别的宿舍中找一个 for (i=0;i<nRealNmb;i++) { if (allinfo[i].getSex() == 'n') { return i; } } return -1; } //11学生入住 void StudentIn(Student* allStudents[],int nRealStu,Dormatory* allDormatory[],int nRealDorm,HomeInfo allInfo[]) { int id; bool bgo = true; Student* stu = 0; char ch; while(bgo) { system("cls"); cout << "请输入需要办理入住的学生的学号:"; cin >> id; //查找学生信息 stu = 0; for (int i = 0;i<nRealStu;i++) { if(allStudents[i]->getId()==id) { stu = allStudents[i]; break; } } if (stu == 0) { cout << "未找到该学号的学生"<< endl; }else { //判断学生是否已经入住 bool isIn = false; for (int i=0;i<nRealDorm;i++) { if (allInfo[i].isIn(stu)) { isIn = true; cout << "该学生已经入住" << endl; allInfo[i].getDormatory()->display(); break; } } //如果没有入住,则办理入住 if (!isIn) { int index = GetDormatory(stu,allInfo,nRealDorm); if(index == -1) { cout << "没有宿舍可供分配" << endl; }else { cout << "请输入入住年、月、日:"; Date dd; cin >> dd.year >> dd.month >> dd.day; allInfo[index].Home(stu,dd); } } } cout << "是否继续办理入住(Y/N)?"; while(1) { cin >> ch; if(ch == 'y' || ch == 'Y') break; else if(ch =='n' || ch == 'N') { bgo = false; break; } } }//while end system("pause"); } //12学生缴费 void StudentPay(Student* allStudents[],int nRealStu,HomeInfo allInfo[],int nRealDorm) { int id; bool bgo = true; Student* stu = 0; char ch; while(bgo) { system("cls"); cout << "请输入要缴费的学生学号:"; cin >> id; //查找学生信息 stu = 0; for (int i = 0;i<nRealStu;i++) { if(allStudents[i]->getId()==id) { stu = allStudents[i]; break; } } if (stu == 0) { cout << "未找到该学号的学生"<< endl; }else { //查找该学生的入住信息 int i = 0; for (i=0;i< nRealDorm;i++) { if (allInfo[i].isIn(stu)) { if(allInfo[i].isPayed(stu)) { cout << "该学生已经付费" << endl; break; }else { allInfo[i].pay(stu); break; } } } if (i == nRealDorm) { cout << "该学生尚未办理入住,请先办理入住" << endl; } } cout << "是否继续办理缴费(Y/N)?"; while(1) { cin >> ch; if(ch == 'y' || ch == 'Y') break; else if(ch =='n' || ch == 'N') { bgo = false; break; } } } system("pause"); } //13住宿信息浏览 void ShowHomeInfo(HomeInfo allInfo[],int nRealDorm) { int i; system("cls"); cout << "入住信息如下:" <<endl; for (i=0;i<nRealDorm;i++) { allInfo[i].display(); } system("pause"); } //14学生入住信息查询 void FindStudent(Student* allStudents[],int nRealStu,HomeInfo allInfo[],int nRealDorm) { int i,j; Student* stu = 0; bool bgo = true; int opt; char ch; while(bgo) { system("cls"); stu = 0; cout << "1.根据学号查找" << endl; cout << "2.根据姓名查找" << endl; cin >> opt; int id; char tmp[30]={0}; switch(opt) { case 1: cout << "请输入学号:"; cin >> id; for (i=0;i<nRealStu;i++) { if(allStudents[i]->getId() == id) { stu = allStudents[i]; break; } } if(stu == 0) cout << "未找到该学号的学生" << endl; else { for (i=0;i<nRealDorm;i++) { if (allInfo[i].isIn(stu)) { cout << "该学生的入住信息如下:" << endl; allInfo[i].getDormatory()->display(); break; } } } break; case 2: cout << "请输入姓名:"; cin >> tmp; for (i=0;i<nRealStu;i++) { if(strcmp(allStudents[i]->getName(),tmp) == 0) { stu = allStudents[i]; for (j=0;j<nRealDorm;j++) { if (allInfo[j].isIn(stu)) { cout << "该学生的入住信息如下:" << endl; allInfo[j].getDormatory()->display(); break; } } //可能存在重名的学生,所以此处不退出循环 } } if(stu == 0) cout << "未找到该学号的学生" << endl; break; } cout << "是否继续查询(Y/N)?"; while(1) { cin >> ch; if(ch == 'y' || ch == 'Y') break; else if(ch =='n' || ch == 'N') { bgo = false; break; } } } system("pause"); } //15宿舍入住信息查询 void FindDormInfo(HomeInfo allInfo[],int nRealDorm) { int i; bool bgo = true; int id; char ch; while(bgo) { system("cls"); cout << "请输入需要查询的宿舍编号:"<< endl; cin >> id; for (i=0;i< nRealDorm;i++) { if (allInfo[i].getDormatory()->getId() == id) { allInfo[i].display(); } } cout << "是否继续查询(Y/N)?"; while(1) { cin >> ch; if(ch == 'y' || ch == 'Y') break; else if(ch =='n' || ch == 'N') { bgo = false; break; } } } system("pause"); } int main() { Student* allStudents[MAXSTU]; //存储所有学生信息 int nRealStu = 0; //当前实际学生数量 Dormatory* allDormatory[MAXDOR];//保存所有宿舍信息 int nRealDorm = 0; //当前实际宿舍数量 HomeInfo allInfo[MAXDOR]; //保存所有入住信息 int opt; bool bgo = true; while(bgo) { system("cls"); cout << "--------------学生住宿信息管理系统---------------"<< endl; cout << "| 1.添加学生 |"<< endl; cout << "| 2.修改学生信息 |"<< endl; cout << "| 3.删除学生 |"<< endl; cout << "| 4.浏览所有学生信息 |"<< endl; cout << "| 5.查询学生信息 |"<< endl; cout << "| 6.添加宿舍 |"<< endl; cout << "| 7.修改宿舍信息 |"<< endl; cout << "| 8.删除宿舍 |"<< endl; cout << "| 9.浏览所有宿舍信息 |"<< endl; cout << "| 10.查询宿舍信息 |"<< endl; cout << "| 11.学生入住 |"<< endl; cout << "| 12.学生缴费 |"<< endl; cout << "| 13.住宿信息浏览 |"<< endl; cout << "| 14.学生入住信息查询 |"<< endl; cout << "| 15.宿舍入住信息查询 |"<< endl; cout << "| 0.退出系统 |"<< endl; cout << "-------------------------------------------------"<< endl; cin >> opt; switch(opt) { case 0: bgo = false; break; case 1: //添加学生 AddStudent(allStudents,nRealStu); break; case 2: //修改学生信息 ModStudent(allStudents,nRealStu); break; case 3: //删除学生 DeleteStudent(allStudents,nRealStu,allInfo,nRealDorm); break; case 4: //浏览所有学生信息 ShowAllStudents(allStudents,nRealStu); break; case 5: //查询学生信息 FindStudents(allStudents,nRealStu); break; case 6: //添加宿舍信息 AddDormatory(allDormatory,nRealDorm,allInfo); break; case 7: //修改宿舍信息 ModDormatory(allDormatory,nRealDorm); break; case 8: //删除宿舍信息 DeleteDormatory(allDormatory,nRealDorm,allInfo); break; case 9: //浏览所有宿舍信息 ShowAllDormatory(allDormatory,nRealDorm); break; case 10: //查询宿舍信息 FindDormatory(allDormatory,nRealDorm); break; case 11: //学生入住 StudentIn(allStudents,nRealStu,allDormatory,nRealDorm,allInfo); break; case 12: //学生缴费 StudentPay(allStudents,nRealStu,allInfo,nRealDorm); break; case 13: //住宿信息浏览 ShowHomeInfo(allInfo,nRealDorm); break; case 14: //学生入住信息查询 FindStudent(allStudents,nRealStu,allInfo,nRealDorm); break; case 15: //宿舍入住信息查询 FindDormInfo(allInfo,nRealDorm); break; } } return 0; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。