大学C语言(c++)课程设计电影院售票管理系统

二、电影院座位预订系统(良)
功能需求:
(1)查询空位;
(2)预订空位;
(3)打印电影票(电影名称、座位、放映时间等)。
(4)把所有位置以符号形式输出。

#include<iostream>
#include<iomanip>
#define LEN 20
#define ROW 20
using namespace std;

void initseat(char s[LEN][ROW])
{
int i,j;
for(i=0;i<LEN;i++)
{
for(j=0;j<ROW;j++)
{
s[i][j]=' ';
}
}
}
void printmenu()
{
cout<<"\t\t1.查询座位\t"<<"2.预定座位"<<endl;
cout<<"\t\t3.打印电影票\t"<<"4.显示所有位置"<<endl;
cout<<"\t\t0.退出"<<endl;
}
void printseat(char s[LEN][ROW])
{
int i,j;
cout<<"    ";
for(i=0;i<ROW;i++)
cout<<setw(3)<<i+1;
cout<<endl;
for(i=0;i<LEN;i++)
{
cout<<setw(3)<<i+1<<".";
for(j=0;j<ROW;j++)
cout<<setw(3)<<s[i][j];
cout<<endl;
}
}
bool searchfull(char s[LEN][ROW])
{
int l,r;
cout<<"您要查找的行数为:";
cin>>l;
cout<<"您要查找的列数为:";
cin>>r;
if(s[l-1][r-1]!=' ')
{
cout<<"您查找的座位已有人!!!"<<endl;
return false;
}
else
{
cout<<"您查找的座位没有人!!!"<<endl;
return true;
}
}
bool printticket(char s[LEN][ROW],int l,int r)
{
cout<<"电影名称:"<<"星际穿越"<<endl;
cout<<"座位:"<<l<<"排"<<r<<"列"<<endl;
cout<<"放映时间:"<<"2014年12月20日14:00"<<endl;
return true;
}
bool reservation(char s[LEN][ROW])
{
int l,r;
cout<<"您要预定的行数为:";
cin>>l;
cout<<"您要预定的列数为:";
cin>>r;
if(!(l<=LEN&&l>=0&&r<=ROW&&r>=0))
{
cout<<"您的输入不合法!!!"<<endl<<"预定失败!!!"<<endl;
return false;
}
bool flag;
if(s[l-1][r-1]=='#')
flag=false;
else
flag=true;
if(flag==false)
{
cout<<"此座位已有人!!!"<<endl;
return false;
}
s[l-1][r-1]='#';
printticket(s,l,r);
return true;
}
int main()
{
char seat[LEN][ROW];
int flag,l,r;
initseat(seat);
printseat(seat);
printmenu();
while(cin>>flag,flag!=0)
{
switch(flag)
{
case 1:searchfull(seat);break;
case 2:reservation(seat);break;
case 3:cout<<"请输入您要打印的行数:";cin>>l;
   cout<<"请输入您要打印的行数:";cin>>r;
   if(!(l<=LEN&&l>=0&&r<=ROW&&r>=0))
{
cout<<"您的输入不合法!!!"<<endl<<"预定失败!!!"<<endl;
break;
}
   printticket(seat,l,r);
break;
case 4:printseat(seat);
default:break;
}
printmenu();
}
return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-20
#include<iostream>
using namespace std;
class sys
{
    private:
        int seat[10][10];
        char name[100];
        int time[2];
    public:
        sys(char *str,int t1,int t2)
        {
            int i,j;
            for(i=0;i<10;i++)
            for(j=0;j<10;j++)
            seat[i][j]=0;
            for(i=0;str[i];i++)
            name[i]=str[i];
            time[0]=t1;
            time[1]=t2;
        }
        int check_empty(int x,int y)
        {
            if(seat[x][y])
            {
                cout<<x<<"-"<<y<<"被占了"<<endl;
                return 0;
            }
            else
            {
                cout<<x<<"-"<<y<<"空位"<<endl;
                return 1;
            }
        }
        int take(int x,int y)
        {
            if(seat[x][y])
            {
                cout<<x<<"-"<<y<<"被占了"<<endl;
                return 0;
            }
            else
            {
                cout<<"预订空位:"<<x<<"-"<<y<<endl;
                seat[x][y]=1;
                return 1;
            }
        }
        void print_ticket(int x,int y)
        {
            cout<<"名称:"<<name<<endl;
            cout<<"座位:"<<x<<"-"<<y<<endl;
            cout<<"放映时间:";
            if(time[0]<10)cout<<"0";
            cout<<time[0]<<":";
            if(time[1]<10)cout<<"0";
            cout<<time[1]<<endl;
        }
        void print_seat()
        {
            int i,j;
            for(i=0;i<10;i++)
            {
                for(j=0;j<10;j++)
                {
                    if(seat[i][j])
                    cout<<"*";
                    else
                    cout<<".";
                }
                cout<<endl;
            }
        }
};
int main()
{
    sys s("asdf",18,30);
    s.check_empty(3,5);
    s.take(3,5);
    s.print_ticket(3,5);
    s.print_seat();
    system("pause");
}

相似回答