ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

会议室管理系统改进

2022-02-28 13:02:58  阅读:197  来源: 互联网

标签:customer room 会议室 int 管理系统 改进 num cout


(1)博客介绍

  本篇博客中会议室预定系统源码来自同学课程设计大作业。通过阅读分析以及试运行,我觉得该系统仍有可以改进加入的功能模块。

 源代码如下:

#include<iostream>
#include<string>
#include<fstream>
using namespace std;
class Customer      //会议室用户信息类
{
public:
    string name;  //姓名
    int roomnum;  //预定会议室号
    string  ruzhum; //预定日期
    string  ruzhut;//预定时间        
    string  lidianm;//离室日期
    string  lidiant;//离室时间
    Customer()
    {
        name="无";
        roomnum=0;
        ruzhum="0";
        ruzhut="0";
        lidianm="0";
        lidiant="0";
    };
    ~Customer(){};
};
class Room     //会议室类
{
public:    
    int num;//会议室号
    Room()
    {
        num=0;    
    };
    ~Room(){};
};
//********会议室信息录入功能
void room_luru(Room *room);
void room_luru2(Room *room);
void room_luru(Room *room)//无会议室,添加会议室
{
    if(room[0].num==0)
    {
        int size;
        static int Number=1;
        cout<<"目前暂无会议室信息,请添加!"<<endl<<endl;
        cout<<"请输入要添加的会议室数:";
        cin>>size;
        for(int i=0;i<size;i++)
        {
            room[i].num=Number++;
            cout<<"会议室号码:"<<room[i].num;cout<<endl;
            cout<<endl<<endl;    
        };
        cout<<"会议室信息录入成功!"<<endl<<endl;
    }
    else
    {
        string P;
        cout<<"会议室信息已有,是否还要添加会议室?(Y/N)";
        cin>>P;
        if(P=="Y")
            room_luru2(room);
        else if(P=="N")
            cout<<"已取消会议室添加."<<endl<<endl;
        else cout<<"此操作非法!"<<endl<<endl;
    };
    system("pause");
    system("cls");    
};
void room_luru2(Room *room)//有会议室,添加会议室
{
    static int Number=1;
    string P;
    do{    
        for(int i=0;i<30;i++)
        {
            if(room[i].num==0)
            {
                room[i].num=Number++;
                cout<<"会议室号码:"<<room[i].num;cout<<endl;
                cout<<endl<<endl;
                cout<<"会议室添加成功,是否继续添加?(Y/N):";
                cin>>P;break;
            }
            else Number++;
        };
    }while(P=="Y");
    if(P=="N")
        cout<<"已取消添加。"<<endl<<endl;
    else cout<<"此操作非法!"<<endl<<endl;    
};
//用户使用登记功能
void check_in(Room *room,Customer *customer);
void check_in(Room *room,Customer *customer)
{
    int p=0;
    string b;
    cout<<"今日剩余会议室如下:"<<endl;
    for(int i=0;i<30;i++)
    {
        if(room[i].num!=0)
        {
            cout<<"会议室号码:";
            cout<<room[i].num<<"\t";    
            p++;
        }
    };
    if(p==0)cout<<"抱歉,今日暂无空会议室!"<<endl;
    else
    {
        cout<<"请问,需要使用吗?(Y/N)"<<endl;
        cin>>b;
        if(b=="Y")    
        {   int Num;
        int t=0;
        cout<<"请输入会议室号码:"<<endl;
        cin>>Num;
        for(int i=0;i<30;i++)
        {
            if(Num==room[i].num && room[i].num!=0)
            {
                customer[i].roomnum=Num;
                cout<<"请输入用户信息!"<<endl<<endl;
                cout<<"用户姓名:";
                cin>>customer[i].name;
                cout<<"预定日期:";
                cin>>customer[i].ruzhum;
                cout<<"预定时间:";
                cin>>customer[i].ruzhut;
                cout<<"离开日期:";
                cin>>customer[i].lidianm;
                cout<<"离开时间:";
                cin>>customer[i].lidiant;
                cout<<endl;
                cout<<"信息录入成功!"<<endl;
                t++;
            }
            else if(Num==room[i].num && room[i].num!=0)
            {
                cout<<"抱歉,此会议室已有人";
                t++;
            }
            else if(t==0 && i==29)
                cout<<"查无此会议室";    
        };
        }
        else if(b=="N") cout<<"预定已取消。";
        else cout<<"查无此会议室!";    
    }
    system("pause");
    system("cls");
};

//查询已预定的会议室功能
void chaxun_num(Room *room,Customer *customer)  //会议室查询
{
    int Num;
    int t=0;
    cout<<"输入要查找的会议室号码:";
    cin>>Num;
    for(int i=0;i<30;i++)              //for循环查找
    {
        if(room[i].num==Num )       //查找会议室号
        {
            string B,C;
            cout<<"会议室已找到:"<<endl;
            t++;
            for(int j=0;j<30;j++)
            {
                if(room[i].num==customer[j].roomnum)   //情况1,会议室有人
                {
                    cout<<"用户姓名:";
                    cout<<customer[j].name<<endl;
                }
            }    
        }
        else if(t==0&&i==29){cout<<"错误,找不到会议室信息!"<<endl<<endl;}
    }
    system("pause");
    system("cls");
}

//删除预定功能
void delete_room(Room *room,Customer *customer);
void delete_room(Room *room,Customer *customer)//删除预定函数
{
    int Num;
    int t=0;
    cout<<"请输入要删除的会议室号:";
    cin>>Num;
    for(int i=0;i<30;i++)              //for循环查找
    {    for(int j=0;j<30;j++)
    //*****************************************
    if(room[i].num==Num&&Num!=0 )       //查找会议室号
    {
        string B,C;
        cout<<"会议室已找到:"<<endl;
        t++;
        if(room[i].num==customer[j].roomnum)   //情况1,会议室有人
        {
            cout<<"该会议室仍有人使用,用户信息如下:"<<endl;
            cout<<"用户姓名:";
            cout<<customer[j].name<<endl;
            cout<<"确定仍要删除用户信息?(Y/N)";
            cin>>B;cout<<endl;
            if(B=="Y")
            {
                customer[j].name="无";
                customer[j].roomnum=0;
                customer[j].ruzhum="0";
                customer[j].ruzhut="0";
                customer[j].lidianm="0";
                customer[j].lidiant="0";
                
                room[i].num=0;
                cout<<"删除成功!"<<endl;    
            }
            else if(B=="N")
            {cout<<"取消删除。"<<endl;break;}
            else {cout<<"非法的操作!"<<endl;break;}
        }
        else if(room[i].num!=customer[j].roomnum)  //情况2,会议室空
        {  cout<<"确定要删除用户信息?(Y/N)";
        cin>>C;cout<<endl;
        if(C=="Y")
        {
            room[i].num=0;
            cout<<"删除成功!"<<endl;
        }
        else if(C=="N"){cout<<"取消删除。"<<endl;break;}
        else  {cout<<"非法的操作!"<<endl;break;}
        }
    }
    else if(t==0&&i==29&&j==29){cout<<"错误,找不到会议室信息!"<<endl<<endl;}
    };
    system("pause");
    system("cls");
};
//***保存文件功能
void write(Room * room,Customer *customer)   //保存会议室信息
{   ofstream Str("用户信息.txt",ios_base::trunc);
    ofstream C("用户信息.txt",ios_base::trunc);
if (!Str||!C)
    {
                return;
    }
    for(int i=0;i<30;i++)
{
    if(room[i].num!=0)   
    {        
        Str<<room[i].num<<"\t"<<endl;
    }
}
for(int j=0;j<30;j++)        
{
    if(customer[j].roomnum!=0)
    {        
        C<<customer[j].roomnum<<"\t"<<customer[j].name<<"\t"<<customer[j].ruzhum<<"\t"<<customer[j].ruzhut
            <<"\t"<<customer[j].lidianm<<"\t"<<customer[j].lidiant<<endl;
    }
}
Str.close();
C.close();
};
//***************读入文件功能
void read(Room *room,Customer *customer)
{
    int i=0;
    int j=0;
    ifstream readroom("用户信息.txt");
    ifstream readcustomer("用户信息.txt");
    if (!readroom||!readcustomer)
    {
                return;
    }
    while(!readroom.eof())
    {
        readroom>>room[i].num;
        i++;    
    };
    while(!readcustomer.eof())
    {    
        readcustomer>>customer[j].roomnum>>customer[j].name>>customer[j].ruzhum>>customer[j].ruzhut
            >>customer[j].lidianm>>customer[j].lidiant;
        j++;    
    };
    readroom.close();
    readcustomer.close();
}
int main()
{
    Room room[50];
    Customer customer[50];
    read(room,customer);
    while(1)
    {  
        cout<<"\n\n       *****会议室使用管理系统*****         \n\n";
        cout<<"               1.会议室信息的录入               \n\n";
        cout<<"               2.用户使用登记                   \n\n";
        cout<<"               3.查询已有的预订信息             \n\n";
        cout<<"               4.删除预定                       \n\n";
        cout<<"               0.退 出 系 统                    \n\n";
        cout<<"  请选择:";
        int choose=0;
        cin>>choose;
        system("cls");
        switch (choose)                                     //用户的选择
        {
        case 1:room_luru(room); break;       //输入用户信息    
        case 2:check_in(room,customer);break;           //用户使用登记
        case 3:chaxun_num(room,customer) ; break;     //查询已有的会议室
        case 4:delete_room(room,customer); break;     //删除预定
        case 0:write(room,customer);
            exit(0);                               //退出
        default : break;
        }
    }
};

(2)原系统模块分析

  功能模块涵盖录入会议室信息、用户使用登记、查询或删除已登记的预定。建立两个类,分别为Customer和Room,其中Customer类包含用户姓名,用户预订会议室日期、时间,以及离开会议室日期、时间,Room类包含会议室号。

 模块一 会议室的预订:录入会议室信息,先判断是否已存在会议室信息,如果已存在,则提示选择是否再次添加;若不存在,则添加会议室信息。用户登记模块:页面首先显示目前剩余会议室信息,后提示用户选择会议室号码,登记相关用户信息,登记预定成功。

 模块二 删除预定:从保存中的文件中读取信息,删除需要删除的信息,完善运作。

 模块三 查询已有的会议室预订:分按编号、类型、用户姓名查找客房信息,同时可以查看当日所有会议室、已使用会议室、剩余客会议室信息,这样可以更具有人性化来选择所剩余的会议室,从而进行日常安排。

 

(3)问题与改进

  综合以上模块已经是一个比较成熟完备的会议室预定系统,但如果客户方有需求,需要改动预定会议室的时间,那么可以添加一项功能对预定会议室的时间进行修改。

 

改进方案如下:

读取保存的会议室信息数据,根据会议室编号查找所需修改的会议室信息,然后根据具体所需,修改成员参数。

void printall1(Room *room,Customer *customer);

void printall2(Room *room,Customer *customer);

void room_xiugai(Room *room,Customer *customer)

{

int Num;

int _num;

string _ruzhut;

string _ruzhum;

string _lidianm;

string _lidiant;

cout<<"请输入要修改的会议室号码:"<<endl;

cin>>Num;

int t=0;

for(int i=0;i<30;i++)

{

if(Num==room[i].num)

{

cout<<"会议室号:"<<room[i].num<<"\t"<<endl;

cout<<"会议室信息已找到!"<<endl;

cout<<"是否确定要修改会议室信息?(Y/N)";

string p;

cin>>p;

if(p=="Y")

{

cout<<"预定日期改为:";

cin>>_ruzhum;

customer[i].ruzhum=_ruzhum;

cout<<endl;

cout<<"预定时间改为:";

cin>>_ruzhut;

customer[i].ruzhut=_ruzhut;

cout<<"离开日期改为:";

cin>>_lidianm;

customer[i].lidianm=_lidianm;

cout<<"离开时间改为:";

cin>>_lidiant;

customer[i].lidiant=_lidiant;

cout<<endl;

cout<<"修改成功!"<<endl<<endl;

}

else if(p=="N") cout<<"已取消修改。";

else cout<<"操作非法!";

t++;

}

else if(t==0 && i==29 && room[i].num==0)

cout<<"查无此会议室!"<<endl<<endl;

};

system("pause");

system("cls");

};

 

void printall1(Room *room,Customer *customer)   //打印已用会议室信息

{

int t=0;

 

cout<<"已使用会议室信息如下:"<<endl;

for(int i=0;i<30;i++)

{     for(int j=0;j<30;j++)

{

if(room[i].num!=0&&customer[j].roomnum==room[i].num)

{

cout<<"会议室号:"<<room[i].num<<"\t"<<endl;

cout<<"用户姓名:"<<customer[j].name<<"\t"

<<"预定日期:"<<customer[j].ruzhum<<"\t"<<"预定时间:"<<customer[j].ruzhut<<endl

<<"离开日期:"<<customer[j].lidianm<<"\t"<<"离开时间:"<<customer[j].lidiant<<endl<<endl<<endl;

t++;

}

}

if(t==0 && i==29) cout<<"暂无任何会议室信息!"<<endl<<endl;

};

system("pause");

system("cls");

};

(4)结果截图

原系统运行结果如下:

 

 

 

 

 

 

 

 

 

 

修改后如下:

 

录入用户预定会议室信息:

 查询已使用会议室信息:

新添加功能:修改已预定会议室信息

 

 

 

(5)心得体会

  通过对原程序的添加与改进,编写程序时分析问题做出算法,想好思路,在心里有个大致的框架,然后按部就班的记下自己想到的每一点内容,查缺补漏,把一些细节的地方补完整。改程序时逐条语句的读,看是否能输出自己想要输出的结果,直到把程序调试的完美无缺为至。对程序进行修改或改进,应该先对原程序进行比较全面的了解,根据原程序功能实现的不足处进行改善,使得程序能够更加高效合理。

 

 

标签:customer,room,会议室,int,管理系统,改进,num,cout
来源: https://www.cnblogs.com/mochipark/p/15932272.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有