亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C++實(shí)現(xiàn)學(xué)生住宿管理系統(tǒng)

 更新時(shí)間:2022年03月16日 14:24:12   作者:qfl_sdu  
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)學(xué)生住宿管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C++實(shí)現(xiàn)學(xué)生住宿管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

功能

(1)學(xué)生信息包括:姓名、學(xué)號(hào)、年齡、性別、學(xué)院、年級(jí)等

(2)宿舍信息包括:宿舍編號(hào)、宿舍樓名、樓層號(hào)、宿舍類型(二人間、四人間、六 人間、八人間) 、收費(fèi)標(biāo)準(zhǔn)等。

(3)住宿信息包括:學(xué)生、宿舍、入住時(shí)間、是否欠費(fèi)等。

(4)完成以下的操作:學(xué)生信息和宿舍信息的添加、修改、瀏覽、刪除和查詢。

(5)完成以下的操作:學(xué)生入住、繳費(fèi);住宿信息瀏覽、學(xué)生住宿信息查詢、宿舍住 宿信息瀏覽與查詢。

提示:

(1)增加必要的數(shù)據(jù)成員、成員函數(shù)或類; (2)對(duì)象指針(住宿信息類的對(duì)象指針成員可以指向相關(guān)的宿舍、對(duì)象指針數(shù)組成員可 以表示該宿舍的學(xué)生們)

代碼:

#include <iostream>
#include <string>
using namespace std;
?
//定義學(xué)生和宿舍的最大數(shù)量
#define MAXSTU 50
#define MAXDOR 20
?
//定義學(xué)生類
class Student
{
private:
?? ?int mXuehao; ? ?//學(xué)號(hào)
?? ?char* mName; ? ?//名字
?? ?int mAge; ? ? ? //年齡
?? ?char mSex; ? ? ?//性別
?? ?char* mPartment;//學(xué)院
?? ?int mGrade; ? ? //年級(jí)
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;
?? ??? ?}
?? ?}
?? ?//設(shè)置類屬性
?? ?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);//設(shè)置左對(duì)齊
?? ??? ?cout << mXuehao << " " ;
?? ??? ?cout.fill(' '); ?//設(shè)置不足位填充方式
?? ??? ?cout.width(10); ?//設(shè)置寬度,只對(duì)下一條有作用
?? ??? ?cout << mName ;
?? ??? ?cout << " " << mSex << " ";
?? ??? ?cout << mAge << " " ;
?? ??? ?cout.fill(' ');
?? ??? ?cout.width(20);
?? ??? ?cout<< mPartment ;
?? ??? ?cout<< " " << mGrade << endl;
?? ??? ?cout.unsetf(ios::left); //取消左對(duì)齊
?? ?}
};
?
//定義宿舍類型
enum EDomType
{
?? ?e_dorm_two=1,
?? ?e_dorm_four,
?? ?e_dorm_six,
?? ?e_dorm_eight
};
?
//定義宿舍類
class Dormatory
{
private:
?? ?int mSusheId; ? //宿舍號(hào)
?? ?char* mDorName; //宿舍樓名
?? ?int mLayer; ? ? //樓層號(hào)
?? ?EDomType mEtype;//類型
?? ?int mPrice; ? ? //價(jià)格
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;
?? ??? ?}
?? ?}
?? ?//設(shè)置類屬性
?? ?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個(gè)漢子或者10個(gè)英文字符
?? ??? ?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);
?? ?}
};
//定義時(shí)間類
struct Date?
{
?? ?int year;
?? ?int month;
?? ?int day;
};
//住宿信息
class HomeInfo
{
private:
?? ?Dormatory* mDormatory; ? //宿舍對(duì)象指針
?? ?Student* mStu[8]; ? ? ? ?//學(xué)生指針數(shù)組
?? ?bool mbqf[8]; ? ? ? ? ? ?//是否欠費(fèi),true欠費(fèi),否則不欠費(fèi)
?? ?Date mHomeDate[8]; ? ? ? //入住時(shí)間
?
?? ?int mCurrentNmb;//當(dāng)前已入住人數(shù)
?? ?char mDormSex; ?//當(dāng)前宿舍的性別
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;}
?? ?//查看某個(gè)學(xué)生是否在該房間
?? ?bool isIn(Student* stu)
?? ?{
?? ??? ?for (int i=0;i<mCurrentNmb;i++)
?? ??? ?{
?? ??? ??? ?if(mStu[i] == stu)
?? ??? ??? ??? ?return true;
?? ??? ?}
?? ??? ?return false;
?? ?}
?
?? ?//是否已經(jīng)注滿
?? ?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;
?? ?}
?? ?//付費(fèi)
?? ?void pay(Student *stu)
?? ?{
?? ??? ?for (int i=0;i<mCurrentNmb;i++)
?? ??? ?{
?? ??? ??? ?if(mStu[i] == stu)
?? ??? ??? ?{
?? ??? ??? ??? ?mbqf[i] = false;
?? ??? ??? ??? ?cout << "繳費(fèi)成功!!"<< endl;
?? ??? ??? ??? ?break;
?? ??? ??? ?}
?? ??? ?}
?? ?}
?
?? ?//學(xué)生離開
?? ?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; ?//入住人數(shù)減去1
?? ??? ??? ??? ?cout << "該學(xué)生已從入住信息中刪除" << endl;
?? ??? ??? ??? ?break;
?? ??? ??? ?}
?? ??? ?}
?? ?}
?? ?//判斷學(xué)生是否已經(jīng)繳費(fèi)
?? ?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();
?? ??? ?}
?? ?}
};
?
//轉(zhuǎn)換類型
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添加學(xué)生
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 << "請輸入學(xué)生學(xué)號(hào):";
?? ??? ?
?? ??? ?while(1)
?? ??? ?{
?? ??? ??? ?id = 0;
?? ??? ??? ?cin >> id;
?? ??? ??? ?if(id <= 0)
?? ??? ??? ?{
?? ??? ??? ??? ?cout << "輸入不合法,請重新輸入";
?? ??? ??? ??? ?if (cin.fail())
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?cin.clear();
?? ??? ??? ??? ??? ?cin.sync();
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ??? ?else
?? ??? ??? ??? ?break;
?? ??? ?}
?? ??? ?
?? ??? ?
?? ??? ?cout << "請輸入學(xué)生姓名:" ;
?? ??? ?memset(name,0,20);
?? ??? ?cin >> name;
?? ??? ?cout << "請輸入學(xué)生性別:";
?? ??? ?cin >> sex;
?? ??? ?cout << "請輸入學(xué)生年齡:";
?? ??? ?while(1)
?? ??? ?{
?? ??? ??? ?age = 0;
?? ??? ??? ?cin >> age;
?? ??? ??? ?if (age <= 0)
?? ??? ??? ?{
?? ??? ??? ??? ?cout << "輸入不合法,請重新輸入";
?? ??? ??? ??? ?if (cin.fail())
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?cin.clear();
?? ??? ??? ??? ??? ?cin.sync();
?? ??? ??? ??? ?}
?? ??? ??? ?}else
?? ??? ??? ??? ?break;
?? ??? ?}
?? ??? ?
?? ??? ?cout << "請輸入學(xué)院:";
?? ??? ?memset(par,0,30);
?? ??? ?cin >> par;
?? ??? ?cout << "請輸入年級(jí):";
?? ??? ?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 << "學(xué)生添加成功!" << endl;
?? ??? ?cout << "是否繼續(xù)添加(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修改學(xué)生信息
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 << "請輸入需要修改信息的學(xué)生學(xué)號(hào):";
?? ?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 << "找到學(xué)生信息如下:" << endl;
?? ??? ??? ?cout << "姓名:" << stu->getName() << endl;;
?? ??? ??? ?cout << "性別:" << stu->getSex() << endl;
?? ??? ??? ?cout << "年齡:" << stu->getAge() << endl;;
?? ??? ??? ?cout << "學(xué)院:" << stu->getPartment() << endl;
?? ??? ??? ?cout << "年級(jí):"<< stu->getGrade() << endl;
?
?? ??? ??? ?cout << "請輸入需要修改的信息:" << endl;
?
?? ??? ??? ?cout << "請輸入學(xué)生姓名:";
?? ??? ??? ?cin >> name;
?? ??? ??? ?cout << "請輸入學(xué)生性別:";
?? ??? ??? ?cin >> sex;
?? ??? ??? ?cout << "請輸入學(xué)生年齡:";
?? ??? ??? ?cin >> age;
?? ??? ??? ?cout << "請輸入學(xué)院:";
?? ??? ??? ?cin >> par;
?? ??? ??? ?cout << "請輸入年級(jí):";
?? ??? ??? ?cin >> grade;
?
?? ??? ??? ?allStudents[i]->setName(name);
?? ??? ??? ?allStudents[i]->setSex(sex);
?? ??? ??? ?allStudents[i]->setAge(age);
?? ??? ??? ?allStudents[i]->setPartment(par);
?? ??? ??? ?allStudents[i]->setGrade(grade);
?
?? ??? ??? ?cout << "學(xué)生信息修改成功!" << endl;
?? ??? ??? ?break;
?? ??? ?}
?? ?}
?? ?if(stu==0)
?? ??? ?cout << "未找到該學(xué)生信息!" << endl;
?? ?
?? ?system("pause");
}
?
//3刪除學(xué)生信息
void DeleteStudent(Student* allStudents[],int &nRealStu,HomeInfo allInfo[],int nRealDorm)
{
?? ?int id;
?? ?Student* stu = 0;
?? ?system("cls");
?? ?cout << "請輸入需要?jiǎng)h除信息的學(xué)生學(xué)號(hào):";
?? ?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];
?? ??? ??? ?//刪除學(xué)生
?? ??? ??? ?nRealStu -=1;
?? ??? ??? ?//數(shù)組元素前移
?? ??? ??? ?for (int j = i;j< nRealStu;j++)
?? ??? ??? ?{
?? ??? ??? ??? ?allStudents[j] = allStudents[j+1];
?? ??? ??? ?}
?? ??? ??? ?cout << "刪除成功!!" << endl;
?? ??? ??? ?break;
?? ??? ?}
?? ?}
?? ?if (stu == 0)
?? ?{
?? ??? ?cout << "未找到該學(xué)生信息" << endl;
?? ?}else
?? ?{
?? ??? ?//從住宿信息中刪除該學(xué)生信息
?? ??? ?for (int i=0;i< nRealDorm;i++)
?? ??? ?{
?? ??? ??? ?allInfo[i].Leave(stu);
?? ??? ?}
?? ??? ?delete stu;
?? ??? ?stu = 0;
?? ?}
?? ?system("pause");
}
?
//4.瀏覽所有學(xué)生信息
void ShowAllStudents(Student* allStudents[],int nRealStu)
{
?? ?system("cls");
?? ?cout << "學(xué)生信息如下:" << endl;
?? ?for (int i =0;i< nRealStu;i++)
?? ?{
?? ??? ?allStudents[i]->display();
?? ?}
?? ?system("pause");
}
//5.查詢學(xué)生信息
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.按學(xué)號(hào)查詢" << endl;
?? ??? ?cout << "2.按姓名查詢" << endl;
?? ??? ?cin >> opt;
?? ??? ?switch(opt)
?? ??? ?{
?? ??? ?case 1:
?? ??? ??? ?cout << "請輸入需要查詢的學(xué)號(hào):" << 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 << "未找到學(xué)號(hào)為"<< id <<"的學(xué)生信息..." << 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 <<"的學(xué)生信息..." << endl;
?? ??? ??? ?}
?? ??? ??? ?break;
?? ??? ?}
?
?? ??? ?cout << "是否繼續(xù)查詢(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 << "請輸入宿舍編號(hào):";
?? ??? ?while(1)
?? ??? ?{
?? ??? ??? ?id = 0;
?? ??? ??? ?cin >> id;
?? ??? ??? ?if(id > 0) break;
?? ??? ??? ?else
?? ??? ??? ?{
?? ??? ??? ??? ?if (cin.fail())
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?cin.clear();
?? ??? ??? ??? ??? ?cin.sync();
?? ??? ??? ??? ?}
?? ??? ??? ??? ?cout << "輸入不合法,請重新輸入" << endl;
?? ??? ??? ?}
?? ??? ?}
?? ?
?? ??? ?cout << "請輸入宿舍名稱:";
?? ??? ?cin >> name;
?? ??? ?cout << "請輸入樓層號(hào):";
?? ??? ?cin >> layer;
?? ??? ?cout << "請輸入宿舍類型(1.二人間 2.四人間 3.六人間 4.八人間)";
?? ??? ?cin >> type;
?? ??? ?cout << "請輸入價(jià)格:";
?? ??? ?cin >> price;
?? ??? ?Dormatory* st = new Dormatory(id,name,layer,getDormType(type),price);
?? ??? ?allDormatory[nRealDorm] = st;
?
?? ??? ?//添加入住信息
?? ??? ?allInfo[nRealDorm].setDormatory(st);
?
?? ??? ?nRealDorm += 1;
?? ??? ?cout << "宿舍添加成功!!" << endl;
?? ??? ?cout << "是否繼續(xù)添加(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 << "請輸入要修改信息的宿舍編號(hào):";
?? ?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 << "該宿舍當(dāng)前信息如下:" << endl;
?? ??? ??? ?allDormatory[i]->display();
?? ??? ??? ?cout << "-------------------------" << endl;
?? ??? ??? ?cout << "請輸入宿舍名稱:";
?? ??? ??? ?cin >> name;
?? ??? ??? ?cout << "請輸入樓層號(hào):";
?? ??? ??? ?cin >> layer;
?? ??? ??? ?cout << "請輸入宿舍類型(1.二人間 2.四人間 3.六人間 4.八人間)";
?? ??? ??? ?cin >> type;
?? ??? ??? ?cout << "請輸入價(jià)格:";
?? ??? ??? ?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 << "請輸入需要?jiǎng)h除的宿舍號(hào):";
?? ?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];
?? ??? ??? ?//數(shù)組前移
?? ??? ??? ?for (j = i;j<nRealDorm-1;j++)
?? ??? ??? ?{
?? ??? ??? ??? ?allDormatory[j] = allDormatory[j+1];
?? ??? ??? ?}
?? ??? ??? ?
?? ??? ??? ?break;
?? ??? ?}
?? ?}
?? ?if (dor == 0)
?? ?{
?? ??? ?cout << "未找到宿舍號(hào)為" << 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.根據(jù)宿舍編號(hào)查詢" << endl;
?? ??? ?cout << "2.根據(jù)宿舍名查詢" << endl;
?? ??? ?cout << "3.根據(jù)樓層號(hào)查詢" << endl;
?? ??? ?cout << "4.根據(jù)宿舍類型查詢" << endl;
?? ??? ?cin >> opt;
?? ??? ?switch(opt)
?? ??? ?{
?? ??? ?case 1:
?? ??? ??? ?cout << "請輸入宿舍編號(hào):";
?? ??? ??? ?cin >> id;
?? ??? ??? ?for (i=0;i<nRealDorm;i++)
?? ??? ??? ?{
?? ??? ??? ??? ?if(allDormatory[i]->getId() == id)
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?allDormatory[i]->display();
?? ??? ??? ??? ??? ?break;
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ??? ?if (i == nRealDorm)
?? ??? ??? ?{
?? ??? ??? ??? ?cout << "未找到是宿舍編號(hào)為" << 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 << "請輸入樓層號(hào):";
?? ??? ??? ?cin >> id;
?? ??? ??? ?isfind = false;
?? ??? ??? ?for (i=0;i<nRealDorm;i++)
?? ??? ??? ?{
?? ??? ??? ??? ?if(allDormatory[i]->getLayer() == id)
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?allDormatory[i]->display();
?? ??? ??? ??? ??? ?isfind = true;
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ??? ?if (!isfind)
?? ??? ??? ?{
?? ??? ??? ??? ?cout << "未找到是樓層號(hào)為" << 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 << "是否繼續(xù)查詢(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調(diào)用
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;
?? ??? ?}
?? ?}
?? ?//沒有已分配的宿舍,則從未分配性別的宿舍中找一個(gè)
?? ?for (i=0;i<nRealNmb;i++)
?? ?{
?? ??? ?if (allinfo[i].getSex() == 'n')
?? ??? ?{
?? ??? ??? ?return i;
?? ??? ?}
?? ?}
?? ?return -1;
}
?
?
//11學(xué)生入住
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 << "請輸入需要辦理入住的學(xué)生的學(xué)號(hào):";
?? ??? ?cin >> id;
?? ??? ?//查找學(xué)生信息
?? ??? ?stu = 0;
?? ??? ?for (int i = 0;i<nRealStu;i++)
?? ??? ?{
?? ??? ??? ?if(allStudents[i]->getId()==id)
?? ??? ??? ?{
?? ??? ??? ??? ?stu = allStudents[i];
?? ??? ??? ??? ?break;
?? ??? ??? ?}
?? ??? ?}
?? ??? ?if (stu == 0)
?? ??? ?{
?? ??? ??? ?cout << "未找到該學(xué)號(hào)的學(xué)生"<< endl;
?? ??? ?}else
?? ??? ?{
?? ??? ??? ?//判斷學(xué)生是否已經(jīng)入住
?? ??? ??? ?bool isIn = false;
?? ??? ??? ?for (int i=0;i<nRealDorm;i++)
?? ??? ??? ?{
?? ??? ??? ??? ?if (allInfo[i].isIn(stu))
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?isIn = true;
?? ??? ??? ??? ??? ?cout << "該學(xué)生已經(jīng)入住" << 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 << "是否繼續(xù)辦理入住(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學(xué)生繳費(fèi)
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 << "請輸入要繳費(fèi)的學(xué)生學(xué)號(hào):";
?? ??? ?cin >> id;
?? ??? ?//查找學(xué)生信息
?? ??? ?stu = 0;
?? ??? ?for (int i = 0;i<nRealStu;i++)
?? ??? ?{
?? ??? ??? ?if(allStudents[i]->getId()==id)
?? ??? ??? ?{
?? ??? ??? ??? ?stu = allStudents[i];
?? ??? ??? ??? ?break;
?? ??? ??? ?}
?? ??? ?}
?? ??? ?if (stu == 0)
?? ??? ?{
?? ??? ??? ?cout << "未找到該學(xué)號(hào)的學(xué)生"<< endl;
?? ??? ?}else
?? ??? ?{
?? ??? ??? ?//查找該學(xué)生的入住信息
?? ??? ??? ?int i = 0;
?? ??? ??? ?for (i=0;i< nRealDorm;i++)
?? ??? ??? ?{
?? ??? ??? ??? ?if (allInfo[i].isIn(stu))
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?if(allInfo[i].isPayed(stu))
?? ??? ??? ??? ??? ?{
?? ??? ??? ??? ??? ??? ?cout << "該學(xué)生已經(jīng)付費(fèi)" << endl;
?? ??? ??? ??? ??? ??? ?break;
?? ??? ??? ??? ??? ?}else
?? ??? ??? ??? ??? ?{
?? ??? ??? ??? ??? ??? ?allInfo[i].pay(stu);
?? ??? ??? ??? ??? ??? ?break;
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ??? ?if (i == nRealDorm)
?? ??? ??? ?{
?? ??? ??? ??? ?cout << "該學(xué)生尚未辦理入住,請先辦理入住" << endl;
?? ??? ??? ?}
?? ??? ?}
?
?? ??? ?cout << "是否繼續(xù)辦理繳費(fèi)(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學(xué)生入住信息查詢
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.根據(jù)學(xué)號(hào)查找" << endl;
?? ??? ?cout << "2.根據(jù)姓名查找" << endl;
?? ??? ?cin >> opt;
?? ??? ?int id;
?? ??? ?char tmp[30]={0};
?? ??? ?switch(opt)
?? ??? ?{
?? ??? ?case 1:
?? ??? ??? ?cout << "請輸入學(xué)號(hào):";
?? ??? ??? ?cin >> id;
?? ??? ??? ?for (i=0;i<nRealStu;i++)
?? ??? ??? ?{
?? ??? ??? ??? ?if(allStudents[i]->getId() == id)
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?stu = allStudents[i];
?? ??? ??? ??? ??? ?break;
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ??? ?if(stu == 0)
?? ??? ??? ??? ?cout << "未找到該學(xué)號(hào)的學(xué)生" << endl;
?? ??? ??? ?else
?? ??? ??? ?{
?? ??? ??? ??? ?for (i=0;i<nRealDorm;i++)
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?if (allInfo[i].isIn(stu))
?? ??? ??? ??? ??? ?{
?? ??? ??? ??? ??? ??? ?cout << "該學(xué)生的入住信息如下:" << 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 << "該學(xué)生的入住信息如下:" << endl;
?? ??? ??? ??? ??? ??? ??? ?allInfo[j].getDormatory()->display();
?? ??? ??? ??? ??? ??? ??? ?break;
?? ??? ??? ??? ??? ??? ?}
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ??? ?//可能存在重名的學(xué)生,所以此處不退出循環(huán)
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ??? ?if(stu == 0)
?? ??? ??? ??? ?cout << "未找到該學(xué)號(hào)的學(xué)生" << endl;
?? ??? ??? ?
?? ??? ??? ?break;
?? ??? ?}
?? ??? ?cout << "是否繼續(xù)查詢(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 << "請輸入需要查詢的宿舍編號(hào):"<< endl;
?? ??? ?cin >> id;
?? ??? ?for (i=0;i< nRealDorm;i++)
?? ??? ?{
?? ??? ??? ?if (allInfo[i].getDormatory()->getId() == id)
?? ??? ??? ?{
?? ??? ??? ??? ?allInfo[i].display();
?? ??? ??? ?}
?? ??? ?}
?
?? ??? ?cout << "是否繼續(xù)查詢(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]; ? //存儲(chǔ)所有學(xué)生信息
?? ?int nRealStu = 0; ? ? ? ? ? ? ? //當(dāng)前實(shí)際學(xué)生數(shù)量
?? ?Dormatory* allDormatory[MAXDOR];//保存所有宿舍信息
?? ?int nRealDorm = 0; ? ? ? ? ? ? ?//當(dāng)前實(shí)際宿舍數(shù)量
?? ?HomeInfo allInfo[MAXDOR]; ? ? ? //保存所有入住信息
?
?? ?int opt;
?? ?bool bgo = true;
?? ?while(bgo)
?? ?{
?? ??? ?system("cls");
?? ??? ?cout << "--------------學(xué)生住宿信息管理系統(tǒng)---------------"<< endl;
?? ??? ?cout << "| ? ?1.添加學(xué)生 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |"<< endl;
?? ??? ?cout << "| ? ?2.修改學(xué)生信息 ? ? ? ? ? ? ? ? ? ? ? ? ? ? |"<< endl;
?? ??? ?cout << "| ? ?3.刪除學(xué)生 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |"<< endl;
?? ??? ?cout << "| ? ?4.瀏覽所有學(xué)生信息 ? ? ? ? ? ? ? ? ? ? ? ? |"<< endl;
?? ??? ?cout << "| ? ?5.查詢學(xué)生信息 ? ? ? ? ? ? ? ? ? ? ? ? ? ? |"<< endl;
?? ??? ?cout << "| ? ?6.添加宿舍 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |"<< endl;
?? ??? ?cout << "| ? ?7.修改宿舍信息 ? ? ? ? ? ? ? ? ? ? ? ? ? ? |"<< endl;
?? ??? ?cout << "| ? ?8.刪除宿舍 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |"<< endl;
?? ??? ?cout << "| ? ?9.瀏覽所有宿舍信息 ? ? ? ? ? ? ? ? ? ? ? ? |"<< endl;
?? ??? ?cout << "| ? ?10.查詢宿舍信息 ? ? ? ? ? ? ? ? ? ? ? ? ? ?|"<< endl;
?? ??? ?cout << "| ? ?11.學(xué)生入住 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|"<< endl;
?? ??? ?cout << "| ? ?12.學(xué)生繳費(fèi) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|"<< endl;
?? ??? ?cout << "| ? ?13.住宿信息瀏覽 ? ? ? ? ? ? ? ? ? ? ? ? ? ?|"<< endl;
?? ??? ?cout << "| ? ?14.學(xué)生入住信息查詢 ? ? ? ? ? ? ? ? ? ? ? ?|"<< endl;
?? ??? ?cout << "| ? ?15.宿舍入住信息查詢 ? ? ? ? ? ? ? ? ? ? ? ?|"<< endl;
?? ??? ?cout << "| ? ?0.退出系統(tǒng) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |"<< endl;
?? ??? ?cout << "-------------------------------------------------"<< endl;
?? ??? ?cin >> opt;
?? ??? ?switch(opt)
?? ??? ?{
?? ??? ?case 0:
?? ??? ??? ?bgo = false;
?? ??? ??? ?break;
?? ??? ?case 1:
?? ??? ??? ?//添加學(xué)生
?? ??? ??? ?AddStudent(allStudents,nRealStu);
?? ??? ??? ?break;
?? ??? ?case 2:
?? ??? ??? ?//修改學(xué)生信息
?? ??? ??? ?ModStudent(allStudents,nRealStu);
?? ??? ??? ?break;
?? ??? ?case 3:
?? ??? ??? ?//刪除學(xué)生
?? ??? ??? ?DeleteStudent(allStudents,nRealStu,allInfo,nRealDorm);
?? ??? ??? ?break;
?? ??? ?case 4:
?? ??? ??? ?//瀏覽所有學(xué)生信息
?? ??? ??? ?ShowAllStudents(allStudents,nRealStu);
?? ??? ??? ?break;
?? ??? ?case 5:
?? ??? ??? ?//查詢學(xué)生信息
?? ??? ??? ?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:
?? ??? ??? ?//學(xué)生入住
?? ??? ??? ?StudentIn(allStudents,nRealStu,allDormatory,nRealDorm,allInfo);
?? ??? ??? ?break;
?? ??? ?case 12:
?? ??? ??? ?//學(xué)生繳費(fèi)
?? ??? ??? ?StudentPay(allStudents,nRealStu,allInfo,nRealDorm);
?? ??? ??? ?break;
?? ??? ?case 13:
?? ??? ??? ?//住宿信息瀏覽
?? ??? ??? ?ShowHomeInfo(allInfo,nRealDorm);
?? ??? ??? ?break;
?? ??? ?case 14:
?? ??? ??? ?//學(xué)生入住信息查詢
?? ??? ??? ?FindStudent(allStudents,nRealStu,allInfo,nRealDorm);
?? ??? ??? ?break;
?? ??? ?case 15:
?? ??? ??? ?//宿舍入住信息查詢
?? ??? ??? ?FindDormInfo(allInfo,nRealDorm);
?? ??? ??? ?break;
?? ??? ?}
?? ?}
?? ?return 0;
}

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論