c++电影院管理系统的设计 - 范文中心

c++电影院管理系统的设计

09/24

内蒙古科技大学 课程设计论文

题 目: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.


相关内容

  • 写给计算机专业的大学生
    写给计算机专业的大学生(转) 252538746 偶尔在网上看见了这样的一篇文章,希望正在学习计算机的大家可以认真的把它看完 1416718715 "首先说一说进入计算机专业的目的,我个人是因为十分喜欢IT业,很喜欢折腾电脑,所以 ...
  • 计算机世界最具影响力的20人
    转自: 计算机世界最具影响力的20人 1.约翰•冯•诺依曼 (John Von Neuman, 1903- 1957) 被誉为"电子计算机之父".他对人类的最大贡献是对计算机科学.计算机技术和数值分析的开拓性工作,194 ...
  • 文件类型大全
    文件类型大全 A A:对象代码库文件 AAM:Authorwareshocked文件 AAS:Authorwareshocked包 ABF:Adobe二进制屏幕字体 ABK:CorelDRAW自动备份文件 ABS:该类文件有时用于指示一个摘 ...
  • 测绘程序设计课程实习报告模板
    一.实习目的 <测绘程序设计>是一门理论与实践并重的课程,课程设计是测量数据处理理论学习的一个重要实践环节,可以看做是在学习了专业基础理论课<误差理论与测量平差基础>课程后进行的一门实践课程,其目的是增强学生对测量平 ...
  • 逆向 C -- 识别类及其构造函数 - FISH 的专栏 - CSDNBlog
    逆向 C++ 这些年来,逆向工程分析人员一直是凭借着汇编和 C 的知识对大多数软件进行逆向工程的,但是,现在随着越来越多的应用程序和恶意软件转而使用 C++语言进行开发,深入理解 C++ 面向对象方式开发的软件的反汇编技术就显得越发的必要. ...
  • 操作系统 磁盘管理 实验报告
    实 验 报 告 课程名称:院 系:专业班级:姓 名:指导老师: 操作系统 信息与控制工程学院 计算机0801 2010年 12月 31日 目录 一.实验目的 ......................................... ...
  • 学生籍贯信息记录簿
    <学生籍贯信息记录簿> 程 序 设 计 基 础 课 程 设 计 报 告 专业: 电子信息工程 班级:2班 姓名:左磊 学号:2006081992 指导老师:常耀辉 二00八年7月3日 目 录 1 程序设计的目的--------- ...
  • 俄罗斯方块
    程序设计实践设计报告 课题名称: 学生姓名: 班 学 日 级: 号: 期: 班内序号: 双人俄罗斯方块游戏程序 陈宸 2013211113 12 2 0 1 3 21 0 3 75 2015.6.13 1.课题概述 1.1 课题目标和主要内 ...
  • 大学生创新项目个人总结
    个人总结与思考 时光荏苒,一年的创新项目如期就要结束.能够参加这次项目,我感到非常荣幸,过程中的点点滴滴依然历历在目.因为是第一次参加创新项目,我也从中学习到了很多在日常学习中很难学习到的"知识",也让我感受到实践带来的 ...