内蒙古科技大学 课程设计论文
题 目:C++课程设计 ——电影院售票管理系统 学生姓名:张雪婉 学 号:1167119224 专 业:通信工程 班 级:2011-2 指导教师:郝斌
【摘要】.....................................................................................................................................1 第一章 问题描述.........................................................................................................................
1.1 电影院售票管理系统的设计 ....................................................................................... 第二章 问题分析.........................................................................................................................
2.1 阐述你对问题的理解、解决问题的方案说明 ........................................................... 2.2 系统功能模块的划分 ................................................................................................... 第三章 数据模型.........................................................................................................................
3.1 相关数据结构的说明类的设计 ................................................................................... 3.2 程序结构说明,即程序各个部分之间如何协调来完成任务 ................................... 第四章 算法描述.........................................................................................................................
4.1 解题算法的设计思路介绍 ........................................................................................... 4.2 主要程序代码,加上详细的注释 ............................................................................... 第五章 设计总结......................................................................................................................... 第六章 附录.................................................................................................................................
【摘要】
电影院售票管理系统实现的功能:
1、录入信息:且可不定时增加数据。并根据放映时间排序。
2、浏览信息:可显示出某日期所有放映信息,如果当前系统时间超过了某电影的放映时间,则显示“此电影放映结束”的提示信息。
3、查询电影:可按日期或电影名查询。并显示目标的详细信息。 4、售票:售票即为影片预定。可根据输出的可预订信息选择订票,如果该影片已放映,则提示不能订票,如果售票成功,自动跟新座位数。
5、退票:影片退订即退票。根据放映时间和系统时间来判断是否能进行退票,并自动更新座位数。
其他参数:程序中定义了一个moive结构和一个ticket类,在结构体和类外还定义了seat()和putout()两个函数。moive结构用来存放电影的数据(属性)信息;ticket类实现管理moive结构体里面的数据和系统功能模块;seat()和putout()函数用来辅助结构体和类,简化程序。
第一章: 问题描述
1.1、设计资料及参数
用C++设计一个系统,能提供下列服务: (1)录入放映信息,格式为:
可不定时地增加放映数据。
(2)浏览放映信息,可显示出某日期所有放映信息,如果当前系统时间超过了某电影的放映时间,则显示“此电影放映结束”的提示信息。 (3)查询电影:可按日期或电影名查询。 (4)售票和退票功能
A:查询电影名。当剩余座位数大于0,并且当前系统时间小于放映时间时才能售票,计算会员折扣,售票后自动更新剩余座位数。
B:退票时,输入退票的电影名和场次,当电影未放映时才能退票,如果以会员折扣购买的电影票,退票按照折扣价退款,退票后自动更新剩余座位数。
1.2、设计要求及成果
根据系统功能要求,可以将问题解决分为以下步骤: (1)分析系统中的各个实体之间的关系及其属性和行为; (2)根据问题描述,设计系统的类层次;
(3)完成类层次中各个类的描述(包括属性和方法); (4)完成类中各个成员函数的定义; (5)完成系统的应用模块; (6)功能调试;
(7)提交课程设计报告:完成系统总结报告以及系统使用说明书
第二章:问题分析
2.1、对问题理解的阐述、解决方案的说明
由设计题目知电影院售票管理系统主要由1、录入(input)2、显示(show)3、查询(search)4、售票(sell)5、退票(refund)五个模块组成。
对整个系统进行功能分析不难发现,电影院管理系统可以对所有数据的信息进行操作,比如:录入(input)、显示(show)、查询(search)、售票(sell)和退票(refund)。所以需要设计一个moive结构体和ticket类来实现对基本数据的储存和模块功能的实现。考虑到程序实现程序的尽量简洁明了,又增加了时间比较函数(timecmp)、座位判断函数(seat)和信息输出函数(putout)三个函数,对程序实现一定程度的简化。 2.2、系统的模块功能流程图如下:
运行程序时,需要先输入数据。并定义了时间的输入格式。如(2013-6-21 22:00)。
显示数据时,会先跟系统时间比较,如果小于系统当前时间,则输出提示“已播放”。
查找时满足要求的按名字查找和按日期查找。找到之后与系统时间比较输出提示,如果没找到,输出提示。
查询时分为按电影名和日期两种查询功能。查询时将会出现界面来供操作者选择。
订票函数中会先给出可预订的提示,这样可以更有效订票。输入之后会先检查是否播放,若播放则给出提示,退出。若未找到,则同样给出提示。如果票卖光了,仍然有提示,如果电影达到预定要求,则先给出现有座位的预订情况,方便用户高效率订票。当客户输入一座位时程序会判断这个作为是否被预订,如果是,则给出提示;如果no就输出用户需要支付的金额,并记录在座位号对应的数组中。方便退票时退款。订票成功后还会输出现有座位的信息方便核实。
退票时,操作者要先输入电影名,若电影名不存在或时间以过,会提示“输入错误”或“电影已播放,无法退票”。若在预定的电影中,还会要求输入退订的座位号,以便进一步确认是否真正该电影。若两道确认都成功通过,就会输出要腿还的金额。
其中订票和退票函数都是用大篇幅(一两百行)来构建起强大而有完善的提示功能,已完成快捷而又便利操作。
第三章:数据模型
3.1相关数据结构和类的说明
struct moive //定义moive结构体,存放数据 {
int year;//年 int month;//月 int day;//日 int hour;//时
};
int minute;//分
int datetime[5];//装电影放映时间,方便比较与系统时间比较 int num;//场次 string name;//电影名 float price;//票价 float discount;//折扣 int rest;//余票
float seat[10][10];//初始值都为0,只在预定后改变其值
class ticket//定义ticket类 {
private:
moive tic[N];//存电影数据的数组 int len;//现有电影数量 public:
ticket();//构造函数 ~ticket();//析构函数
friend void seat(int i);//把seat函数定义为类ticket的友元函数 friend void putout(int i);//把putout函数定义为类ticket的友元函数 void input();//录入 void show();//显示 void search();//查找 void sell();//订票 void refund();//退票;
}tick;
在类中把seat()和putout()函数定义为类的友元函数,实现类外的函数访问类内的成员,这样可以源代码的篇章幅度,实现在一定程度上简化程序。
私有数据成员moive tic[N],便于操作数据。
数据组织结构图:
3.2 程序结构说明,即程序各个部分之间如何协调来完成任务
程序的主要实现过程是在ticket类 中定义的成员函数和友元函数来实现完成,并且在类外实现。这样方便了对数据进行操作。并且定义了一个全局的比较函数timecmp,可以比较两个时间数组的大小;函数seat实现判断某一座位是否被预定;函数putout实现对电影信息的输出。这三个函数在程序中用途很广泛,在整个程序中多次有时间的比较,座位的检索,电影的信息的输出,当用到某一函数时,直接在模块调用即可,不必多次编写,实现程序的简化。
其中程序总很多代码是重复用到的,但是没有写成函数来调用有两点原因。首先如果写成函数调用的话会降低程序的可读性,其次写成函数的话,代码就固定下来了,使得程序不够灵活。所以在程序不必要的地方,就用代码来代替函数调用。举个例子说,在修改,删除,订票,退票中都会用到按电影名查找。可是没有单独把按电影名查找单独写成函数来调用,是因为在按电影名查找会输出很多详细的电影信息和提示信息。这样也不便于调用函数。
第四章:算法的描述
4.1 解题算法的设计思路介绍
timecmp函数是用来比较日期时间函数,它需要先把两个时间装入数组再传进来地址,然后从年月日时分进行比较。如果有大小区分,直接返回。 int timecmp(int a[],int b[],int n) {
int i;
for(i=0;i
if(a[i]>b[i])
}
}
{ }
if(a[i]
return -1; return 1;
if(i==n) { }
return 0;
Seat函数作为检索某一座位是否已被预订,因为seat[m][n]=0,即初始化都为0。二当该座位被预订后就会赋予座位号,所以用两层for循环,把所有的座位都检索了一遍。在输出,就一下子看出那些座位被预定,那些没有。
因为seat函数是类外函数,不能直接操作类ticket的成员,所以要在类中写入“friend voidseat(int i);”即定义为类的友元函数。若不加,编译将会出错。 void seat(int i)
{ for(int m=0;m
{
cout
for(int n=0;n
{
cout
if(tick.tic[i].seat[m][n]!=0) {
cout
} else {
cout
}
cout
} }
putout函数是便于把电影的属性(数据信息)输出,因为tic[]是类中的数据成员且又是结构体moive类型的变量,故要用两层引用。但putout函数也是全局的类外函数,要想访问类ticket中的成员,也需把其定义为类的友元函数。不然编译阶段会出错。 void putout(int i)
{ cout
cout
cout
4.2 主要程序代码和运行结果图
主函数,即选择菜单: char as; while(1) {
cout
cout
cout
cin>>as; switch(as) {
case '1':tick.input();break; case '2':tick.show();break; case '3':tick.search();break; case '4':tick.sell();break;
case '5':tick.refund();break;
default :system("pause"); return;//任意键继续
}
}
录入电影信息: void ticket::input() {
system("cls");//清屏
char ch;//接受日期中的字符-或:
cout
{
cout
cin>>tick.tic[i].year>>ch>>tick.tic[i].month>>ch>>tick.tic[i].day;
cout
cin>>tick.tic[i].hour; cin>>ch; cin>>tick.tic[i].minute; tick.tic[i].datetime[0]=tick.tic[i].year; tick.tic[i].datetime[1]=tick.tic[i].month; tick.tic[i].datetime[2]=tick.tic[i].day; tick.tic[i].datetime[3]=tick.tic[i].hour; tick.tic[i].datetime[4]=tick.tic[i].minute;
cout
cout
cout
cout
cin>>tick.tic[i].discount; tick.tic[i].rest=100; cin>>tick.tic[i].price; cin>>tick.tic[i].name; cin>>tick.tic[i].num;
for(int m=0;m
}
tick.len++;//个数加1
cout
cout>ch; if(ch=='y' || ch=='Y' || ch=='n' || ch=='N') break; else } cout
}
}
显示电影信息:
void ticket::show()
{
system("cls");//清屏 cout
time_t t; struct tm *tim;//时间变量,已包含在头文件库函数ctime中
t=time(NULL);//获取当前系统时间
tim=localtime(&t);
int
array[5]={tim->tm_year+1900,tim->tm_mon+1,tim->tm_mday,tim->tm_hour,tim->tm_min};
int r;
for(int i=0;i
{
r=timecmp(tick.tic[i].datetime,array,5);//与系统时间比较 ,返回值给r putout( i);//调用putout函数
if(r
} cout
}
}
查询电影:
void ticket::search()
{
char flag; int i; int k=0;//标记找到的记录 system("cls");//清屏
cout
while(flag!='1'&&flag!='2')
{
cout
cout
cout
cin>>flag;
if(flag!='1'&&flag!='2')
{
cout
}
【按电影名查询】
if(flag=='1') { string na; int j=1; cout>na; for(i=0;i
if(tick.tic[i].name==na)//找到 { k++;//找到的记录数 if(j=1) { cout
"
cout
} j++; putout( i);//调用putout函数 time_t t; struct tm *tim;
t=time(NULL);//获取当前系统时间
tim=localtime(&t);
int
array[5]={tim->tm_year+1900,tim->tm_mon+1,tim->tm_mday,tim->tm_hour,tim->tm_min};
int r;
r=timecmp(tick.tic[i].datetime,array,5);//与系统时间比较
if(r
}
else { cout
} cout
【按日期查询】
else { char ch; int temp[3]; cout>temp[0]>>ch>>temp[1]>>ch>>temp[2]; int j=1; for(i=0;i
if(timecmp(tick.tic[i].datetime,temp,3)==0)//找到 { k++;//找到的记录数 if(j==1) { cout
"
cout
\t余票"
} j++; putout( i);//调用putout函数 time_t t; struct tm *tim;//时间类型的结构体
t=time(NULL);//获取当前系统时间
tim=localtime(&t);
int
array[5]={tim->tm_year+1900,tim->tm_mon+1,tim->tm_mday,tim->tm_hour,tim->tm_min};
int s;
s=timecmp(tick.tic[i].datetime,array,5);//与系统时间比较
if(s
}
else { cout
} cout
}
cout
}
售票:
void ticket::sell()
{
system("cls");//清屏
cout
cout
cout
"
time_t t;
struct tm *tim;
t=time(NULL);//获取当前系统时间
tim=localtime(&t);
int
array[5]={tim->tm_year+1900,tim->tm_mon+1,tim->tm_mday,tim->tm_hour,tim->tm_min};
int r,i;
int k=0;//标记可供预定的影片数量
for(i=0;i
{
r=timecmp(tick.tic[i].datetime,array,5);//与系统时间比较 if(r>0) { k++; putout( i);//调用putout函数 }
}
if(i==tick.len&&k==0)
{ cout>na; k=0;//再次做标记 for(i=0;i
if(tick.tic[i].name==na)//找到 { k++;//找到的记录数 int j=1; if(j=1) { cout
"
cout
} j++; putout( i);//调用putout函数 time_t t; struct tm *tim;
t=time(NULL);//获取当前系统时间
tim=localtime(&t);
int
array[5]={tim->tm_year+1900,tim->tm_mon+1,tim->tm_mday,tim->tm_hour,tim->tm_min};
int s;
s=timecmp(tick.tic[i].datetime,array,5);//与系统时间比较
if(s
}
cout>seatnum; if(seatnum>100||seatnum
return;
} m=(seatnum-1)/10; n=(seatnum-1)%10; if(tick.tic[i].seat[m][n]==0&&tick.tic[i].rest!=0) { cout>a; if(a!='N'&&a!='n') {
tick.tic[i].seat[m][n]=tick.tic[i].price*tick.tic[i].discount/10;
} else { tick.tic[i].seat[m][n]=tick.tic[i].price;
}
tick.tic[i].rest--; cout
"
cout
"
cout
seat(i);//调用seat函数 cout
return;
}
else
{ if(tick.tic[i].rest==0)
{ cout
return;
}
else if(tick.tic[i].seat[m][n]!=0)
{ cout
system("pause");//任意键继续
return;
} } } } if(i==tick.len&&k==0) { cout
退票:
void ticket::refund()
{
system("cls");//清屏
cout
string na;
int i;
int k=0;//标记修改数量 cout>na; for(i=0;i
k++;//找到的记录数 int j=1; if(j=1) { cout
"
cout
} j++; putout( i);//调用putout函数 time_t t; struct tm *tim;
t=time(NULL);//获取当前系统时间
tim=localtime(&t);
int
array[5]={tim->tm_year+1900,tim->tm_mon+1,tim->tm_mday,tim->tm_hour,tim->t
m_min};
int r;
r=timecmp(tick.tic[i].datetime,array,5);//与系统时间比较 if(r
{ cout
}
else
{ cout>seatnum; if(seatnum>100||seatnum
return;
} m=(seatnum-1)/10; n=(seatnum-1)%10; if(tick.tic[i].seat[m][n]!=0)
{
tick.tic[i].rest++;
"
元。"
cout
}
else
{ cout
\n";
system("pause");//任意键继续
return;
} seat(i);//调用seat函数 cout
return;
} } if(i==tick.len&&k==0) { cout
第五章:设计总结
这次的设计,让我体会深刻,总结如下:
开始拿到题目,感觉好难,因为在课堂上学到的都是关于c++的理论知识,只是对类、构造函数、析构函数、继承和派生、重载、虚函数等的讲解。都没涉及过实例的解析。写起程序根本不知道从何入手。自己就去图书馆找资料,看了一个上午,慢慢有点眉目,就开始写程序。首先,是数据的储存问题。本来打算只定义一个结构体来装载数据就行,其他的都可以变成全局函数,在主函数里调用即可。但慢慢发现这样以来,就对数据的访问带来诸多不变,还有定义大量的变量。不过网上有大量实例参考,最后还是有定义了一个类,在类里间接地引用结构体里的数据,避免了大量的参数之间的数值传递,增加程序的可读性。
在一点就是要大量实践,平常的理论学习,并不代表你会编、会运用。在这次的编写中,特别在构造函数和数据的初始化上没少出错,没法还得回归课本,
看了好几遍,才知道怎样修改。最后设计了一个结构体,一个类,在类中定义5个函数,3个全局函数,实现了基本功能。同时增加了一些修改排序功能。
第六章:附录
#include
#include
#include
#include
#define N 50//可存电影总数
using namespace std;//标准命名空间
struct moive //定义moive结构体,存放数据
{
int year;//年
int month;//月
int day;//日
int hour;//时
int minute;//分
int datetime[5];//装时间 ,方便比较
int num;//场次
string name;//电影名
float price;//票价
float discount;//折扣
int rest;//余票
float seat[10][10];//初始值都为0,只在预定后改变其值
};
//
class ticket//定义ticket类
{
private:
moive tic[N];//存电影的数组
int len;//现有电影数量
public:
ticket();//构造函数
~ticket();//析构函数
friend void seat(int i);//把seat函数定义为类ticket的友元函数
friend void putout(int i);//把putout函数定义为类ticket的友元函数 void input();//录入
void show();//显示
void search();//查找
void sell();//订票
void refund();//退票;
}tick;
//构造函数和析构函数的实现
ticket::ticket(){};
ticket::~ticket(){};
//timecmp函数是用来比较日期时间函数,它需要先把两
//个时间装入数组再传进来地址,然后从年月日时分进行比较。 int timecmp(int a[],int b[],int n)
{
int i;
for(i=0;i
{
if(a[i]>b[i])
{
return 1;
}
if(a[i]
{
return -1;
}
}
if(i==n)
{
return 0;
}
}
//seat函数的功能:查看某一座位是否有人
void seat(int i)
{ for(int m=0;m
{
cout
for(int n=0;n
{
cout
if(tick.tic[i].seat[m][n]!=0)
{
cout
}
else
{
cout
}
cout
}
}
}
//putout函数实现的功能:输出对象tic[i]的数据
void putout(int i)
{ cout
cout
cout
//录入模块
void ticket::input()
{
system("cls");//清屏
char ch;//接受日期中的字符-或:
cout
for(int i=tick.len;i
{
cout
cin>>tick.tic[i].year>>ch>>tick.tic[i].month>>ch>>tick.tic[i].day;
cout
cin>>tick.tic[i].hour;
cin>>ch;
cin>>tick.tic[i].minute;
tick.tic[i].datetime[0]=tick.tic[i].year;
tick.tic[i].datetime[1]=tick.tic[i].month;
tick.tic[i].datetime[2]=tick.tic[i].day;
tick.tic[i].datetime[3]=tick.tic[i].hour;
tick.tic[i].datetime[4]=tick.tic[i].minute;
cout
cin>>tick.tic[i].num;
cout
cin>>tick.tic[i].name;
cout
cin>>tick.tic[i].price;
cout
cin>>tick.tic[i].discount;
tick.tic[i].rest=100;
for(int m=0;m
{
for(int n=0;n
tick.tic[i].seat[m][n]=0;
}
tick.len++;//个数加1
cout
cout
while(1)
{
cin>>ch;
if(ch=='y' || ch=='Y' || ch=='n' || ch=='N')
break;
else
cout
}
if(ch=='n' || ch=='N')
break;
}
}
//显示模块
void ticket::show()
{
system("cls");//清屏
cout
cout
cout
struct tm *tim;//时间变量,已包含在头文件库函数ctime中
t=time(NULL);//获取当前系统时间
tim=localtime(&t);
int
array[5]={tim->tm_year+1900,tim->tm_mon+1,tim->tm_mday,tim->tm_hour,tim->tm_min};
int r;
for(int i=0;i
{
r=timecmp(tick.tic[i].datetime,array,5);//与系统时间比较 ,返回值给r putout( i);//调用putout函数
if(r
{
cout
}
else
{
cout
}
}
}
//查找模块
void ticket::search()
{
char flag;
int i;
int k=0;//标记找到的记录
system("cls");//清屏
cout
while(flag!='1'&&flag!='2')
{
cout
cout
cout
cin>>flag;
if(flag!='1'&&flag!='2')
{
cout
}
if(flag=='1')
{
string na;
int j=1;
cout
cin>>na;
for(i=0;i
{
if(tick.tic[i].name==na)//找到
{
k++;//找到的记录数
if(j=1)
{
cout
cout
}
j++;
putout( i);//调用putout函数
time_t t;
struct tm *tim;
t=time(NULL);//获取当前系统时间
tim=localtime(&t);
int
array[5]={tim->tm_year+1900,tim->tm_mon+1,tim->tm_mday,tim->tm_hour,tim->tm_min};
int r;
r=timecmp(tick.tic[i].datetime,array,5);//与系统时间比较 if(r
{
cout
}
else
{
cout
}
cout
seat(i);//调用seat函数
}
}
if(j!=1)
{
cout
system("pause");//任意键继续
return;
}
if(i==tick.len&&k==0)
{
cout
system("pause");//任意键继续
return;
}
}
else
{
char ch;
int temp[3];
cout
cin>>temp[0]>>ch>>temp[1]>>ch>>temp[2];
int j=1;
for(i=0;i
{
if(timecmp(tick.tic[i].datetime,temp,3)==0)//找到
{
k++;//找到的记录数
if(j==1)
{
cout
cout
}
j++;
putout( i);//调用putout函数
time_t t;
struct tm *tim;//时间类型的结构体
t=time(NULL);//获取当前系统时间
tim=localtime(&t);
int
array[5]={tim->tm_year+1900,tim->tm_mon+1,tim->tm_mday,tim->tm_hour,tim->tm_min};
int s;
s=timecmp(tick.tic[i].datetime,array,5);//与系统时间比较 if(s
{
cout
}
else
{
cout
}
cout
seat(i);//调用seat函数
cout
}
}
if(j!=1)
{
cout
system("pause");//任意键继续
return;
}
if(i==tick.len&&k==0)
{
cout
system("pause");//任意键继续
return;
}
}
}
//售票模块
void ticket::sell()
{
system("cls");//清屏
cout
cout
struct tm *tim;
t=time(NULL);//获取当前系统时间
tim=localtime(&t);
int
array[5]={tim->tm_year+1900,tim->tm_mon+1,tim->tm_mday,tim->tm_hour,tim->tm_min};
int r,i;
int k=0;//标记可供预定的影片数量
for(i=0;i
{
r=timecmp(tick.tic[i].datetime,array,5);//与系统时间比较
if(r>0)
{
k++;
putout( i);//调用putout函数
}
}
if(i==tick.len&&k==0)
{
cout
system("pause");//任意键继续
return;
}
string na;
cout
cin>>na;
k=0;//再次做标记
for(i=0;i
{
if(tick.tic[i].name==na)//找到
{
k++;//找到的记录数
int j=1;
if(j=1)
{
cout
cout
}
j++;
putout( i);//调用putout函数
time_t t;
struct tm *tim;
t=time(NULL);//获取当前系统时间
tim=localtime(&t);
int
array[5]={tim->tm_year+1900,tim->tm_mon+1,tim->tm_mday,tim->tm_hour,tim->tm_min};
int s;
s=timecmp(tick.tic[i].datetime,array,5);//与系统时间比较 if(s
{
cout
return;
}
cout
int m,n;
seat(i);//调用seat函数
cout
int seatnum;
cin>>seatnum;
if(seatnum>100||seatnum
{
cout
return;
}
m=(seatnum-1)/10;
n=(seatnum-1)%10;
if(tick.tic[i].seat[m][n]==0&&tick.tic[i].rest!=0)
{
cout
char a;
cin>>a;
if(a!='N'&&a!='n')
{
tick.tic[i].seat[m][n]=tick.tic[i].price*tick.tic[i].discount/10; }
else
{
tick.tic[i].seat[m][n]=tick.tic[i].price;
}
tick.tic[i].rest--;
cout
"
cout
seat(i);//调用seat函数
cout
system("pause");//任意键继续
return;
}
else
{
if(tick.tic[i].rest==0)
{
cout
system("pause");//任意键继续
return;
}
else if(tick.tic[i].seat[m][n]!=0)
{
cout
system("pause");//任意键继续
return;
}
}
}
}
if(i==tick.len&&k==0)
{
cout
system("pause");//任意键继续
return;
}
}
//退票模块
void ticket::refund()
{
system("cls");//清屏
cout
string na;
int i;
int k=0;//标记修改数量
cout
cin>>na;
for(i=0;i
{
if(tick.tic[i].name==na)//找到
{
k++;//找到的记录数
int j=1;
if(j=1)
{ cout
}
j++;
putout( i);//调用putout函数
time_t t;
struct tm *tim;
t=time(NULL);//获取当前系统时间
tim=localtime(&t);
int
array[5]={tim->tm_year+1900,tim->tm_mon+1,tim->tm_mday,tim->tm_hour,tim->tm_min};
int r;
"
r=timecmp(tick.tic[i].datetime,array,5);//与系统时间比较 if(r>seatnum; if(seatnum>100||seatnum
cout
return;
}
seat(i);//调用seat函数
cout
system("pause");//任意键继续
return;
}
}
}
if(i==tick.len&&k==0)
{ cout
system("pause");//任意键继续
return;
}
}
//主函数
void main()
{ system("cls");//清屏
char as;
while(1)
{
cout
cout
cout
cout
cout
cout
cout
cin>>as;
switch(as)
{
case '1':tick.input();break;
case '2':tick.show();break;
case '3':tick.search();break;
case '4':tick.sell();break;
case '5':tick.refund();break;
default :system("pause"); return;//任意键继续
}
}
}
参考文献
1、 C++程序设计案例精编 孔令德 叶瑶 杨慧炯 编著 中国铁道出版社
2、 张毅. 铸造工艺CAD及其应用[M]. 北京:机械工业出版社.1994,14-15.