航空售票系统+C++课程设计源代码

时间:2019-05-14 03:13:42下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《航空售票系统+C++课程设计源代码》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《航空售票系统+C++课程设计源代码》。

第一篇:航空售票系统+C++课程设计源代码

#include #include #define M 5//每种飞机票的总数目 #define N 3//飞机票的总数目 class Plane {private: char name[40];//终点站名

int number;//航班号

int Number;//飞机号

int week;//星期几飞行

int day;//日期

int left;//余票额

int n;//与数组flag一起确定客户订票状态 public:

int flag[20];//订票状态数组,-1为预订票,1为已定票,0为初始化状态

Plane()//构造函数

{

name[0]='';

number=0;

Number=0;

week=0;

day=0;

left=M;

n=0;//数组从0开始计数

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

flag[i]=0;} void init()//初始化每种飞机票

{

cout<<“请输入终点站名:”;

cin>>name;

cout<<“请输入航班号:”;

cin>>number;

cout<<“请输入飞机号:”;

cin>>Number;

cout<<“请输入星期几飞行:”;

cin>>week;

cout<<“请输入航班的日期:”;

cin>>day;} ~Plane(){};//析构函数 char *getname(){return name;}//获得终点站名

int getnumber(){return number;}//获得航班号

int getNumber(){return Number;}//获得飞机号

int getweek(){return week;}//获得星期几飞行

int getday(){return day;}//获得日期

int getleft(){return left;}//获得余票额

int getn(){return n;}//获得旅客数目

void inleft(int n){left=left+n;}//余票额增加函数

void deleft(int n){left=left-n;}//余票额减少函数

void inn(){n++;}//旅客数目增加函数 };Plane pl[N];int showmenu();//菜单函数 void start();//初始化函数 void query();//查询函数 void make();//订票函数 void back();//退票函数 int main(){ cout<<“这是民航售票处的计算机系统程序”<

int choice;

choice=showmenu();

switch(choice)

{

case 1:query();break;

case 2:make();break;

case 3:back();break;

case 0:return 0;

default:cout<<“你敲错了!n”;

} } return 0;} int showmenu(){ int ch;cout<>ch;return ch;} void start(){ for(int i=0;i

pl[i].init();

cout<>name;for(i=0;i<=N;i++)

if(strcmp(name,pl[i].getname())==0)

{

num++;

cout<<“航班号:”<

cout<<“飞机号:”<

cout<<“星期:”<

cout<<“航班日期:”<

cout<<“余票额:”<

break;

}

if(num==0)

cout<<“没有此航班”<>number;cout<<“请输入订票数额:”;cin>>n;for(int i=0;i

if(number==pl[i].getnumber())

{

num++;

if(n<=pl[i].getleft())

{

cout<<“此航班有票”<

pl[i].deleft(n);

pl[i].inn();

pl[i].flag[pl[i].getn()]=1;

for(i=0;i

{

cout<<“座位号”;

cin>>sitnumber;

}

}

else

{

cout<<“余票额少于订票额,请重新输入订票数额,”<<“订票数额应该少于或等于”<

cin>>nu;

if(nu<=pl[i].getleft())

{

cout<<“此航班有票”<

pl[i].deleft(nu);

pl[i].inn();

pl[i].flag[pl[i].getn()]=1;

for(i=0;i

{

cout<<“座位号”;

cin>>sitnumber;

}

}

else

{

cout<<“是否需要预约”<

cout<<“是(1)

否(2)”<

cin>>ch;

switch(ch)

{

case 1:pl[i].inn();pl[i].flag[pl[i].getn()]=-1;break;

case 2:break;

default:cout<<“你敲错了!”<

}

}

}

}

if(num==0)

cout<<“没有此航班”<

cout<<“请输入日期:”;cin>>day;cout<<“请输入航班:”;cin>>number;for(int i=0;i

if((day==pl[i].getday())&&(number==pl[i].getnumber()))//日期与航班是否满足

{

num++;//日期与航班满足

cout<<“输入退票数目”;

cin>>n;

cout<<“退票成功”<

pl[i].inleft(n);//该种飞机票增加,即已退票

for(int j=0;j<=pl[i].getn();j++)//顺序查询客户订票状态

{

if(pl[i].flag[j]==-1)//客户是否为预定状态

{

cout<<“有预约订票,请输入订票数额:”;

cin>>nu;

if(nu<=pl[i].getleft())//余票额是否满足要求

{

cout<<“此航班有票”<

pl[i].flag[j]=1;

cout<<“订票成功”<

pl[i].deleft(nu);

for(int k=0;k

{

}

cout<<“座位号”<<“ ”;

cin>>sitnumber;

}

cout<<“余票额为”<

}

}

else

cout<<“没有预约订票!”<<“余票额为”<

第二篇:C++课程设计 教职工信息管理系统源代码

教职工信息管理系统源码

#include #include #include #include

#define maxsize 100 fstream iofile;//文件指针

class Time //时间类 {

public:

int year;

int month;

int day;};

class Telem //个人信息 {

public:

char name[20];

char sex[10];

Time birthtime;//组合Time类

char num[20];

char wage[20];

Time worktime;

int year;

char department[20];

friend istream& operator>>(istream& input,Telem& T);

friend ostream& operator<<(ostream& output,Telem& T);

friend int operator-(Time & t1,Time & t2);};

class People:virtual public Telem //雇员类 {

public:

People();

virtual void AddF()=0;//添加

virtual void Addall()=0;

virtual void Add()=0;

virtual void Display();//输出数组的内容

virtual void Displaypart(char p[]);

virtual void Findname(char n[]);

virtual void Findyear(int);

virtual void Del(char n[])=0;

virtual void Del(int);protected:

Telem data[maxsize];

Time now;

int length;};

class Teacher:virtual public People //派生虚基类 {

public:

virtual void AddF();

virtual void Addall();

virtual void Add();

virtual void Display();

virtual void Del(int i);

virtual void Del(char n[]);};

class worker:virtual public People //派生虚基类 {

public:

virtual void AddF();

virtual void Addall();

virtual void Add();

virtual void Display();

virtual void Del(int i);

virtual void Del(char n[]);};

People::People()//系统自动生成的构造函数 {

length=0;

now.year=2010;

now.month=7;

now.day=6;}

void People::Display()//引用 {

int i;

for(i=0;i

cout<

void People::Displaypart(char p[])//引用数组

{

int i,c;

for(i=0;i

if(strcmp(data[i].wage,p)==0)

{

cout<<“输出选择姓名1 性别2 编号3 工资4 出生日期5 工作时间6 年龄7 系别8 退出选择9”<

while(cin>>c)

{

switch(c)

{

case 1: cout<<“姓名:”<

case 2: cout<<“性别:”<

case 3: cout<<“编号:”<

case 4: cout<<“工资:”<

case 5: cout<<“出生日期:”<

case 6: cout<<“工作时间:”<

case 7: cout<<“年龄:”<

case 8: cout<<“系别:”<

case 9: goto loop;

default:cout<<“操作错误......”<

}

}

loop:;

} }

void People::Findname(char n[])//引用 {

int i;

for(i=0;i

if(strcmp(data[i].name,n)==0)//对象引用

cout<

void People::Findyear(int y){

int i;

for(i=0;i

if(data[i].year==y)

cout<

void People::Del(int i){

int j;

if(i<1||i>length)

cout<<“不存在第”<

for(j=i;j

data[j-1]=data[j];

length--;}

void worker::AddF(){

int flag=0;

iofile.open(“worker_information.txt”,ios::in|ios::binary);//文件的打开与关闭

while(iofile.seekg(ios::cur))

{

iofile.seekg(length*sizeof(data[length]),ios::beg);

iofile.read((char*)&data[length],sizeof(data[length]));//文件的随机访问

length++;

if(length==maxsize)

{

flag=1;

goto loop;

}

}

People::Del(length);

cout<<“添加人员信息成功......”<

loop:

if(1==flag)

cout<<“人员信息储存空间已满......”<

iofile.close();}

void worker::Addall(){

char ans;

int flag=0;

iofile.open(“worker_information.txt”,ios::out|ios::binary);

do

{

cin>>data[length];

data[length].year=now-data[length].birthtime;

iofile.write((char*)&data[length],sizeof(data[length]));

cout<<“添加人员信息成功......”<

length++;

if(length==maxsize)

{

flag=1;

goto loop;

}

cout<<“contine(Y|N)?”;

cin>>ans;

}while('y'==ans||'Y'==ans);loop:

if(1==flag)

cout<<“人员信息储存空间已满......”<

iofile.close();}

void worker::Add(){

int flag=0;

iofile.open(“worker_information.txt”,ios::app|ios::out|ios::binary);

if(length==maxsize)

{

flag=1;

goto loop;

}

cin>>data[length];

data[length].year=now-data[length].birthtime;

iofile.write((char*)&data[length],sizeof(data[length]));

cout<<“添加人员信息成功......”<

length++;

loop:

if(1==flag)

cout<<“人员信息储存空间已满......”<

iofile.close();}

void worker::Display(){

cout<<“ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆工人信息 ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆”<

if(0==length)

cout<<“无......”<

int i;

for(i=0;i

cout<

int i,j,k;

for(i=0;i

if(strcmp(data[i].name,n)==0){

k=i+1;break;}

if(k<1)

cout<<“不存在姓名”<

for(j=k;j

data[j-1]=data[j];

length--;

cout<<“删除人员信息成功......”<

void worker::Del(int i){

int j;

if(i<1||i>length)

cout<<“不存在第”<

for(j=i;j

data[j-1]=data[j];

length--;

cout<<“删除成功......”<

}

void Teacher::AddF(){

int flag=0;

iofile.open(“Teacher_information.txt”,ios::in|ios::binary);

while(iofile.seekg(sizeof(data[length]),ios::cur))

{

if(iofile.seekg(length*sizeof(data[length]),ios::beg))

iofile.read((char*)&data[length],sizeof(data[length]));

else

break;

length++;

if(length==maxsize)

{

flag=1;

goto loop;

}

}

People::Del(length);

cout<<“添加人员信息成功......”<

if(1==flag)

cout<<“人员信息储存空间已满......”<

iofile.close();}

void Teacher::Addall(){

char ans;

int flag=0;

iofile.open(“Teacher_information.txt”,ios::in|ios::out|ios::binary);

do

{

cin>>data[length];

data[length].year=now-data[length].birthtime;

iofile.write((char*)&data[length],sizeof(data[length]));

cout<<“添加人员信息成功......”<

length++;

if(length==maxsize)

{

flag=1;

goto loop;

}

cout<<“contine(Y|N)?”;

cin>>ans;

}while('y'==ans||'Y'==ans);loop:

if(1==flag)

cout<<“人员信息储存空间已满......”<

iofile.close();}

void Teacher::Add(){

int flag=0;

iofile.open(“Teacher_information.txt”,ios::app|ios::out|ios::binary);

if(length==maxsize)

{

flag=1;

goto loop;

}

cin>>data[length];

data[length].year=now-data[length].birthtime;

iofile.write((char*)&data[length],sizeof(data[length]));

cout<<“添加人员信息成功......”<

length++;loop:

if(1==flag)

cout<<“人员信息储存空间已满......”<

iofile.close();}

void Teacher::Display(){

cout<<“ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆教师信息 ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆”<

if(0==length)

cout<<“无......”<

int i;

for(i=0;i

cout<

void Teacher::Del(char n[]){

int i,j,k;

for(i=0;i

if(strcmp(data[i].name,n)==0)

{

k=i+1;break;

}

if(k<1)cout<<“不存在姓名”<

for(j=k;j

data[j-1]=data[j];

length--;

cout<<“删除人员信息成功......”<

void Teacher::Del(int i){

int j;

if(i<1||i>length)

cout<<“不存在第”<

for(j=i;j

data[j-1]=data[j];

length--;

cout<<“删除成功......”<

istream& operator>>(istream& input,Telem& T){

int y,m,d;

cout<<“请输入姓名(以*结尾):”<

input.getline(T.name,20,'*');

cout<<“请输入性别(以*结尾 男或女):”<

input.getline(T.sex,10,'*');

cout<<“编号(以*结尾):”<

input.getline(T.num,20,'*');

cout<<“工资(以*结尾):”<

input.getline(T.wage,20,'*');

cout<<“请输入出生日期:”<

input>>y>>m>>d;

T.birthtime.year=(y>=1900&&y<=2100)?y:1900;

T.birthtime.month=(m>=1&&m<=12)?m:1;

T.birthtime.day=(d>=1&&d<=31)?d:1;

cout<<“请输入系别(以*结尾):”<

input.getline(T.department,20,'*');

cout<<“参加工作时间:”<

input>>y>>m>>d;

T.worktime.year=(y>=1900&&y<=2100)?y:1900;

T.worktime.month=(m>=1&&m<=12)?m:1;

T.worktime.day=(d>=1&&d<=31)?d:1;

return input;}

ostream& operator<<(ostream& output,Telem& T){

cout<<“姓名:”;

output<

cout<<“性别:”;

output<

cout<<“编号:”;

output<

cout<<“工资:”;

output<

cout<<“出生日期:”;

output<

cout<<“系别:”;

output<

cout<<“参加工作时间:”;

output<

cout<<“年龄:”;

output<

return output;}

int operator-(Time & t1,Time & t2){

return t1.year-t2.year;}

void Showmenu(){

cout<

cout<<“

欢 迎 进 入 教 职 工 信 息 管 理 系 统”<

cout<<“

2010 年7月7日发布”<<“

版权所有: swa”<

cout<<“

★ ☆ ★ ☆ ★ ☆ ★ ☆ ★人员信息管理系统★ ☆ ★ ☆ ★ ☆ ★ ☆ ★”<

cout<<“

1-从键盘录入全部人员记录

☆ ”<

cout<<“

☆ 2-增加一位人员记录

★”<

cout<<“

3-显示全部人员记录

☆”<

cout<<“

☆ 4-按系别输出人员信息(可选)★ ”<

cout<<“

5-按姓名或年龄检索所有信息☆ ”<

cout<<“

☆ 6-显示菜单目录

★ ”<

cout<<“

7-结束程序运行

☆ ”<

cout<<“

★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆”<

int main(){

Teacher tea;

worker stu;

People *pt=&tea;

People *ps=&stu;

int c=0,k=0,l=0,i=0;

char nam[20],part[20];Showmenu();

for(;;)

{

cout<<“请根据菜单执行相应操作: ”;

cin>>c;

switch(c)

{

case 1:

{

cout<<“ ★ ☆ ★ ☆ ★ ☆ ★录入全部人员记录 ★ ☆ ★ ☆ ★ ☆ ★”<

cout<<“ ★ ☆ ★ ☆ ★从键盘输入教师信息 ☆ ★ ☆ ★ ☆”<

pt->Addall();

cout<<“ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆从键盘输入工人信息 ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆”<

ps->Addall();

break;

}

case 2:

{

cout<<“ ★ ☆ ★ ☆ ★ ☆ ★ ☆从键盘增加一位人员记录 ★ ☆ ★ ☆ ★ ☆ ★ ☆”<

cout<<“ ★ ☆ ★ ☆ ★ ☆ ★ ☆教师操作请按1 工人操作请按2 ★ ☆ ★ ☆ ★ ☆ ★ ☆”<

cin>>k;

if(1==k)

pt->Add();

else if(2==k)

ps->Add();

else

cout<<“操作错误...”<

break;

}

case 3:

{

cout<<“ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆显示全部人员记录 ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆”<

pt->Display();

ps->Display();

break;

}

case 4:

{

cout<<“ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆按部门输出人员信息(可选)★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆”<

cout<<“ ★ ☆ ★ ☆ ★ ☆教师操作请按1 工人操作请按2 ★ ☆ ★ ☆ ★ ☆”<

cin>>k;

if(1==k)

{

cout<<“请输入要输出人员的系别(以*结尾):”<

pt->Displaypart(part);

}

else if(2==k)

{

cout<<“请输入要输出人员的系别(以*结尾):”<

ps->Displaypart(part);

}

else

cout<<“操作错误......”<

break;

}

case 5:

{

cout<<“ ★ ☆ ★ ☆ ★ ☆ ★按姓名或年龄检索所有信息 ★ ☆ ★ ☆ ★ ☆ ★”<

cout<<“ ★ ☆ ★ ☆ ★ ☆ ★按姓名查找1 按年龄查找2 ★ ☆ ★ ☆ ★ ☆ ★”<

cin>>k;

if(1==k)

{

cout<<“按姓名查找1 按年龄查找2”<>l;

if(1==l)

{

cout<<“请输入要查找人员的姓名(以*结尾):”<

pt->Findname(nam);

}

else if(2==l)

{

cout<<“请输入要查找人的年龄:”<>i;

pt->Findyear(i);

}

else

cout<<“操作错误......”<

}

else if(2==k)

{

cout<<“按姓名查找1 按年龄查找2”<>l;

if(1==l)

{

cout<<“请输入要查找人员的姓名(以*结尾):”<

ps->Findname(nam);

}

else if(2==l)

{

cout<<“请输入要查找人的年龄:”<>i;

ps->Findyear(i);

}

else

cout<<“操作错误......”<

}

else

cout<<“操作错误......”<

break;

}

case 6:

{

cout<<“ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆显示菜单目录 ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆”<

Showmenu();

break;

}

case 7:

{

cout<<“ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆结束程序运行 ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆”<

exit(0);

}

default:cout<<“操作错误......”<

}

}

return 0;}

第三篇:c++课程设计:教务管理系统源代码

#include #include using namespace std;class Person { public: Person(string n):name(n){} virtual void show(){} ~Person(){} protected:

string name;};class Student:public Person { public:

Student(string n,int num,string ss):Person(n),number(num),address(add),str1(ss){}

virtual void show();

void input_stu();

void display_stu();

void display_qu();

~Student(){} protected:

string str1;

int number;

string address;};void Student::show(){ cout<<“向老师提出的问题是:”;cin>>str1;}

void Student::display_qu(){ cout<

void Student::input_stu(){ cin>>Student::name;cin>>Student::number;cin>>Student::address;} void Student::display_stu(){

add,string cout<<“姓名:”<

Teacher(string n,string sub,string sdf):Person(n),subject(sub),str2(sdf){}

virtual void show();

void input_t();

void display_t();

void display_an();

~Teacher(){} protected:

string subject;

string str2;};void Teacher::display_an(){ cout<

void Teacher::show(){ cout<<“我的回答是:”;cin>>str2;} void Teacher::input_t(){ cin>>Teacher::name;cin>>Teacher::subject;} void Teacher::display_t(){ cout<<“姓名:”<

Admin(string n,int tel,string ssfs):Person(n),telphone(tel),str3(ssfs){}

virtual void show();

void input_ad();

void display_ad();

void display_gg();

~Admin(){} protected:

int telphone;

string str3;};void Admin::display_gg(){ cout<<“公告:”;cout<

void Admin::show(){

cout<<“公告是:”;cin>>str3;} void Admin::input_ad(){ cin>>Admin::name;cin>>Admin::telphone;} void Admin::display_ad(){ cout<<“姓名是:”<

int main(){ int z,h,m;z=0;h=0;m=0;

Student stu(“guochun”,20150311,“qlu”,“sdss”);

Teacher tea(“cuiyu”,“math”,“dsdf”);

Admin ad(“steve jobs”,178641,“sdfs”);

while(1)

{

int x;

cout<<“*******************”<

cout<<“1.学生”<

cout<<“2.教师”<

cout<<“3.管理员”<

cout<<“*******************”<

cout<<“选择你的身份”<

cin>>x;

if(x<=0||x>3)

cout<<“输入错误!”<

else

{

switch(x)

{

case 1:

cout<<“请选择你要干什么”<>y;if(y<=0||y>3)cout<<“发生错误!”;else { switch(y){

case 1:stu.display_stu();break;

case 2:stu.input_stu();

} cout<<“修改后的个人信息为:”<

{

stu.Student::show();

z=1;} break;

}

break;

case 2:

cout<<“请选择你要干什么”<

cout<<“学生有问题提问”<

ad.display_gg();} cout<<“___________________”<>q;if(q<=0||q>3)

cout<<“发生错误!”;else {

switch(q)

{

case 1:tea.display_t();break;

case 2:tea.input_t();

cout<<“修改后的个人信息为:”<

tea.display_t();break;

case 3:

{

if(z==1)

{

cout<<“学生的问题是:”;

stu.display_qu();

tea.Teacher::show();

h=1;

}

}

break;

}

}

break;

case 3:

cout<<“请选择你要干什么”<

cout<<“___________________”<

cout<<“1.显示个人信息”<>l;if(l<=0||l>3)

cout<<“发生错误!”;

else

{

switch(l)

{

case 1:ad.display_ad();break;

case 2:ad.input_ad();

cout<<“修改后的个人信息为:”<

ad.display_ad();break;

case 3:

{

ad.Admin::show();

m=1;

}

break;

}

}

break;

}

}

}

return 0;}

第四篇:飞机售票系统源代码

#include #include #include #include #define MAXSIZE 3 /*定义航线量的最大值*/

typedef struct wat_ros { char name[10];/*姓名*/ int req_amt;/*订票量*/ struct wat_ros *next;}qnode,*qptr;

typedef struct pqueue { qptr front;/*等候替补客户名单域的头指针*/ qptr rear;/*等候替补客户名单域的属指针*/ }linkqueue;

typedef struct ord_ros { char name[10];/*客户姓名*/ int ord_amt;/*订票量*/ int grade;/*舱位等级*/ struct ord_ros *next;}linklist;

struct airline { char ter_name[10];/*终点站名 */ char air_num[10];/*航班号*/ char plane_num[10];/*飞机号*/ char date[7];/*飞行日期(星期几)*/ int tkt_amt;/*乘员定额*/ int tkt_sur;/*余票量*/ linklist *order;/*乘员名单域,指向乘员名单链表的头指针*/ linkqueue wait;/*等候替补的客户名单域,分别指向排队等候名单队头队尾的指针*/ }lineinfo;struct airline *start;struct airline air[MAXSIZE]={{“beijing”,“1”,“B8571”,“SUN”,3,1}, {“shanghai”,“2”,“S1002”,“MON”,2,5}, {“london”,“3”,“L1003”,“FRI”,1,3}};;

void display(struct airline *info)/*打印每条航线的基本信息*/ {printf(“%8st%3st%st%4stt%3dt%10dn”,info->ter_name,info->air_num,info->plane_num,info->date,info->tkt_amt,info->tkt_sur);}

void list()/*打印全部航线信息*/ { struct airline *info;int i=0;info=start;printf(“终点站名t航班号t飞机号t飞行日期t乘员定额t余票量n”);while(i

void search()/*根据客户提出的终点站名输出航线信息*/ { struct airline *info,*find();char name[10];int i=0;info=start;printf(“请输入终点站名:”);scanf(“%s”,name);while(iter_name))break;info++;i++;} if(i>=MAXSIZE)printf(“对不起,该航线未找到!n”);else { printf(“终点站名t航班号t飞机号t飞行日期t乘员定额t余票量n”);display(info);} }

struct airline *find()/*根据系统提出的航班号查询并以指针形式返回*/ { struct airline *info;char number[10];int i=0;info=start;printf(“请输入航班号:”);scanf(“%s”,number);while(iair_num))return info;info++;i++;} printf(“对不起,该航线末找到!n”);return NULL;}

void prtlink()/*打印订票乘员名单域的客户名单信息*/ { linklist *p;struct airline *info;info=find();p=info->order;if(p!=NULL){ printf(“客户姓名 订票数额 舱位等级n”);while(p){ printf(“%stt%dt%dn”,p->name,p->ord_amt,p->grade);p=p->next;} } else printf(“该航线没有客户信息!n”);}

linklist *insertlink(linklist *head,int amount,char name[],int grade)/*增加订票乘员名单域的客户信息*/ { linklist *p1,*new1;p1=head;new1=(linklist *)malloc(sizeof(linklist));if(!new1){printf(“nOut of memory!n”);return NULL;} strcpy(new1->name,name);new1->ord_amt=amount;new1->grade=grade;new1->next=NULL;if(head==NULL)/*若原无订票客户信息*/ {head=new1;new1->next=NULL;} else head=new1;new1->next=p1;return head;}

linkqueue appendqueue(linkqueue q,char name[],int amount)/*增加排队等候的客户名单域*/ { qptr new1;new1=(qptr)malloc(sizeof(qnode));strcpy(new1->name,name);new1->req_amt=amount;new1->next=NULL;if(q.front==NULL)/*若原排队等候客户名单域为空*/ q.front=new1;else q.rear->next=new1;q.rear=new1;return q;}

void order()/*办理订票业务*/ { struct airline *info;int amount,grade;char name[10];info=start;if(!(info=find()))return;/*根据客户提供的航班号进行查询,如为空,退出该模块*/ printf(“请输入你订票所需要的数量:”);scanf(“%d”,&amount);if(amount>info->tkt_amt)/*若客户订票额超过乘员定票总额,退出*/ { printf(“n对不起,您输入的票的数量已经超过乘员定额!”);return;} if(amount<=info->tkt_sur)/*若客户订票额末超过余票量,订票成功并等记信息*/ { int i;printf(“请输入您的姓名(订票客户):”);scanf(“%s”,name);printf(“请输入%s票的舱位等级:”,name);scanf(“%d”,&grade);info->order=insertlink(info->order,amount,name,grade);/*在订票乘员名单域中添加客户信息*/ for(i=0;i

号是:%dn”,name,info->tkt_amt-info->tkt_sur+i+1);info->tkt_sur-=amount;/*该航线的余票量应减掉该客户的订票量*/ printf(“n祝您乘坐愉快!n”);} else /*若满员或余票额少于订票额,询问客户是否需要进行排队等候*/ { char r;printf(“n已经没有更多的票,您需要排队等候吗?(Y/N)”);r=getch();printf(“%c”,r);if(r=='Y'||r=='y'){ printf(“n请输入您的姓名(排队订票客户):”);scanf(“%s”,name);info->wait=appendqueue(info->wait,name,amount);/*在排队等候乘员名单域中添加客户信息*/ printf(“n注册成功!n”);} else printf(“n欢迎您下次再次订购!n”);} }

void return_tkt()/*退票模块*/ { struct airline *info;qnode *t,*back,*f,*r;int grade;linklist *p1,*p2,*head;char cusname[10];if(!(info=find()))return;/*调用查询函数,根据客户提供的航线进行搜索*/ head=info->order;p1=head;printf(“请输入你的姓名(退票客户):”);scanf(“%s”,cusname);while(p1!=NULL){/*根据客户提供的姓名到订票客户名单域进行查询*/ if(!strcmp(cusname,p1->name))break;p2=p1;p1=p1->next;} if(p1==NULL){ printf(“对不起,你没有订过票!n”);return;}/*若未找到,退出本模块*/ else {/*若信息查询成功,删除订票客户名单域中的信息*/ if(p1==head)head=p1->next;else p2->next=p1->next;info->tkt_sur+=p1->ord_amt;grade=p1->grade;printf(“%s成功退票!n”,p1->name);free(p1);}

info->order=head;/*重新将航线名单域指向订票单链表的头指针 */ f=(info->wait).front;/*f指向排队等候名单队列的头结点*/ r=(info->wait).rear;/*r指向排队等候名单队列的尾结点*/ t=f;/*t为当前满点条件的排队候补名单域*/ while(t){ if(info->tkt_sur=info->wait.front->req_amt){/*若满足条件者为头结点*/ int i;info->wait.front=t->next;printf(“%s订票成功!n”,t->name);for(i=0;ireq_amt;i++)/*输出座位号*/ printf(“%s的座位号是:%dn”,t->name,(info->tkt_sur)-i);info->tkt_sur-=t->req_amt;

info->order=insertlink(info->order,t->req_amt,t->name,grade);/*插入到订票客户名单链表中*/ free(t);break;} back=t;t=t->next;if((info->tkt_sur)>=(t->req_amt)&&t!=NULL)/*若满足条件者不为头结点*/ { int i;back->next=t->next;printf(“%s订票成功!n”,t->name);for(i=0;ireq_amt;i++)/*输出座位号*/ printf(“<%s>'s is:%dn”,t->name,(info->tkt_sur)-i);info->tkt_sur-=t->req_amt;info->order=insertlink(info->order,t->req_amt,t->name,grade);/*

seat

number 插入到订票客户名单链表中*/ free(t);break;} if(f==r)break;} }

void sort_tkt(){/*按剩余票数排序*/ int j;struct airline t,*info,*p,*q;

p=info=air;for(p=info;(p+1)->tkt_sur;p++){

} printf(“终点站名t航班号t飞机号t飞行日期t乘员定额t余票量if(p->tkt_surtkt_sur){

} t=*p;*p=*q;*q=t;for(q=p+1;q->tkt_sur;q++)n”);for(j=0;j

int menu_select()/*菜单界面*/ { int c;char s[20];printf(“ntt航空客运订票系统n”);printf(“******************************************n”);printf(“ 1.浏览航线信息n”);printf(“ 2.浏览已订票客户信息n”);printf(“ 3.查询航线n”);printf(“ 4.办理订票业务n”);printf(“ 5.办理退票业务n”);printf(“ 6.查看剩余票数并排序n”);printf(“ 0.退出系统n”);printf(“*******************************************n”);do{ printf(“请选择:”);scanf(“%s”,s);c=atoi(s);}while(c<0||c>7);return c;}

void main(){ start=air;for(;;){ switch(menu_select()){ case 1:list();break;case 2:prtlink();break;case 3:search();break;case 4:order();break;case 5:return_tkt();break;case 6:sort_tkt();break;case 0:printf(“n欢迎使用本系统,再见!n”);exit(0);} printf(“nPress any key to continue!n”);getch();} }

第五篇:航空售票管理系统

#include #include #include #include #include #define N 100 using namespace std;

typedef struct node//定义信息结构体 {

char num[10];// 航班号

int hour;//起飞时间小时

int minitues;//起飞时间分钟

char start[10];//起始

char end[10];//终点

float prize;//经济舱票价

int last;//剩余座位 }FLIGHT;

typedef struct Order//订单信息 {

char name[10];//乘客姓名

char num[10];//航班号

int count;//订票数量 }Order;

class flight//定义类 {

private: FLIGHT stu[N];//每个元素对应一条信息

Order psg[N];//订单

int len;//航班总数

int lenp;//订票者总数 public:

flight();

~flight();void input();//录入信息

void show();//浏览

void sall();//售票

void back();//退票

void search();// 信息查询

void search2();// 信息查询(起点终点)

char menu();//菜单

};

flight stud;

char filename[]=“flight.txt”;

flight::flight(){}//构造函数 flight::~flight(){}//析构函数

bool CheckTime(int h1,int m1,int h2,int m2)//判断两个时间前后

{ if(h1

return true;else if(h1==h2){

if(m1

return true;

else

return false;} else

return false;} void flight::show()//浏览 {

system(“cls”);//清屏

cout<<“

所有航班信息如下:”<

起飞时间

起点

终点

经济舱票价

剩余座位

备注”<

for(int i=0;i

printf(“%-10s%-2.2d:%-2.2d

%-10s%-10s%-12.2f%-10d”,stu[i].num,stu[i].hour,stu[i].minitues,stu[i].start,stu[i].end,stu[i].prize,stu[i].last);

time_t t;

struct tm *tm;

t=time(NULL);//获取当前系统时间

tm=localtime(&t);

if(CheckTime(stud.stu[i].hour,stud.stu[i].minitues,tm->tm_hour,tm->tm_min)==true)//如果起飞时间在当前时间之前 输出此次航班已发出

cout<<“此次航班已发出”<

else

cout<

} cout<<“_______________________________________________________________________________”<

void flight::back()//退票 {

char name[20];

char s[20];

system(“cls”);//清屏

cout<<“请输入退票的航班编号:”;cin>>s;

for(int i=0;i

if(strcmp(stud.stu[i].num,s)==0)

break;//存在 结束循环

if(i==stud.len)//这二者相等说明查找完所有信息也没找到输入信息,说明输入航班编号不存在{

cout<<“对不起!没有你输入航班编号的相关信息。n”;

system(“pause”);//任意键继续

return;}

time_t t;

struct tm *tm;

t=time(NULL);//获取当前系统时间

tm=localtime(&t);if(CheckTime(stud.stu[i].hour,stud.stu[i].minitues,tm->tm_hour,tm->tm_min)==true)

{

cout<<“对不起!该航班已经起飞。不能退票。n”;

system(“pause”);//任意键继续

return;} int j=i;

cout<<“请输入您的姓名:”;cin>>name;for(i=0;i

if(strcmp(stud.psg[i].name,name)==0 && strcmp(stud.psg[i].num,s)==0)//查询这个名字是否相同

{

stud.stu[j].last+=stud.psg[i].count;//退票

stud.psg[i]=stud.psg[stud.lenp-1];///删除这个订单

stud.lenp--;//订单数减一

cout<<“退票成功!n”;

system(“pause”);//任意键继续

return;

} } cout<<“对不起!您没有定该航班的票。n”;

system(“pause”);//任意键继续

}

void flight::sall()//售票 {

char s[20];

system(“cls”);//清屏

cout<<“请输入要购买的航班编号:”;cin>>s;

for(int i=0;i

if(strcmp(stud.stu[i].num,s)==0)

break;//存在 结束循环

if(i==stud.len)//这二者相等说明查找完所有信息也没找到输入信息,说明输入航班编号不存在{

cout<<“对不起!没有你输入航班编号的相关信息。n”;

system(“pause”);//任意键继续

return;}

if(stud.stu[i].last<=0)//没有票了

{

cout<<“对不起!该航班票已售完。n”;

system(“pause”);//任意键继续

return;}

time_t t;

struct tm *tm;

t=time(NULL);//获取当前系统时间

tm=localtime(&t);if(CheckTime(stud.stu[i].hour,stud.stu[i].minitues,tm->tm_hour,tm->tm_min)==true)

{

cout<<“对不起!该航班已经起飞。n”;

system(“pause”);//任意键继续

return;}

int j=i;i=stud.lenp;strcpy(stud.psg[i].num,stud.stu[i].num);cout<<“请输入购票数量:”;cin>>stud.psg[i].count;

while(stud.psg[i].count>stud.stu[i].last){

cout<<“余票不足,请重新输入:”;

cin>>stud.psg[i].count;

} cout<<“请输入您的姓名:”;cin>>stud.psg[i].name;

stud.stu[j].last-=stud.psg[i].count;//剩余票数

stud.lenp++;cout<<“购票成功!n”;system(“pause”);//任意键继续 }

void flight::input()//录入信息 {

system(“cls”);//清屏

for(int i=stud.len;i

{

cout<<“请输入航班号:”;

cin>>stud.stu[i].num;

cout<<“请输入起飞时间(格式: 12:30):”;

char ch;

cin>>stud.stu[i].hour>>ch>>stud.stu[i].minitues;

cout<<“请输入起点:”;

cin>>stud.stu[i].start;

cout<<“请输入终点:”;

cin>>stud.stu[i].end;

cout<<“请输入经济舱票价:”;

cin>>stud.stu[i].prize;

cout<<“请输入剩余座位:”;

cin>>stud.stu[i].last;

stud.len++;//个数加1

cout<<“一条航班信息录入完成,是否继续录入?(y/n):”;

while(1)

{

cin>>ch;

if(ch=='y' || ch=='Y' || ch=='n' || ch=='N')

break;

else

cout<<“输入错误请重新输入:”;

}

if(ch=='n' || ch=='N')

break;

} }

void flight::search()// 信息查询 {

char s[20];

system(“cls”);//清屏

cout<<“请输入要查询的航班编号:”;cin>>s;

for(int i=0;i

if(strcmp(stud.stu[i].num,s)==0)

break;//存在 结束循环

if(i==stud.len)//这二者相等说明查找完所有信息也没找到输入信息,说明输入航班编号不存在{

cout<<“对不起!没有你输入航班编号的相关信息。n”;

system(“pause”);//任意键继续

return;}

cout<<“

查询结果如下:”<

起飞时间

起点

终点

经济舱票价

剩余座位

备注”<

printf(“%-10s%-2.2d:%-2.2d

%-10s%-10s%-12.2f%-10d”,stu[i].num,stu[i].hour,stu[i].minitues,stu[i].start,stu[i].end,stu[i].prize,stu[i].last);

time_t t;

struct tm *tm;

t=time(NULL);//获取当前系统时间

tm=localtime(&t);

if(CheckTime(stud.stu[i].hour,stud.stu[i].minitues,tm->tm_hour,tm->tm_min)==true)//如果起飞时间在当前时间之前 输出此次航班已发出

cout<<“此次航班已发出”<

else

cout<

cout<<“_______________________________________________________________________________”<

void flight::search2()// 信息查询(按线路){

char s1[20],s2[20];

system(“cls”);//清屏

cout<<“请输入要查询的线路起点:”;cin>>s1;

cout<<“请输入要查询的线路终点:”;cin>>s2;

for(int i=0;i

if(strcmp(stud.stu[i].start,s1)==0 && strcmp(stud.stu[i].end,s2)==0)

break;//存在 结束循环

if(i==stud.len)//这二者相等说明查找完所有信息也没找到输入信息,说明输入航班编号不存在{

cout<<“对不起!没有你输入线路的相关信息。n”;

system(“pause”);//任意键继续

return;}

cout<<“

查询结果如下:”<

起飞时间

起点

终点

经济舱票价

剩余座位

备注”<

for(i=0;i

if(strcmp(stud.stu[i].start,s1)==0 && strcmp(stud.stu[i].end,s2)==0)

{

printf(“%-10s%-2.2d:%-2.2d

%-10s%-10s%-12.2f%-10d”,stu[i].num,stu[i].hour,stu[i].minitues,stu[i].start,stu[i].end,stu[i].prize,stu[i].last);

time_t t;

struct tm *tm;

t=time(NULL);//获取当前系统时间

tm=localtime(&t);

if(CheckTime(stud.stu[i].hour,stud.stu[i].minitues,tm->tm_hour,tm->tm_min)==true)//如果起飞时间在当前时间之前 输出此次航班已发出

cout<<“此次航班已发出”<

else

cout<

} cout<<“_______________________________________________________________________________”<

char flight::menu()//菜单 { char c;

system(“cls”);//清屏

cout<<“nnnn

╔═══════════════════════════╗n”;cout<<“

1、录入航班信息

║n”;

cout<<“

╠═══════════════════════════╣n”;cout<<“

2、浏览航班信息

║n”;cout<<“

╠═══════════════════════════╣n”;

cout<<“

3、查询路线(按编号)

║n”;

cout<<“

╠═══════════════════════════╣n”;cout<<“

4、查询路线(按线路)

║n”;

cout<<“

╠═══════════════════════════╣n”;cout<<“

5、售票

║n”;

cout<<“

╠═══════════════════════════╣n”;cout<<“

6、退票

║n”;

cout<<“

╠═══════════════════════════╣n”;cout<<“

0、退出系统

║n”;

cout<<“

╚═══════════════════════════╝n”;cout<<“

请选择:”;

cin>>c;

return c;}

int main(){

while(1)

{

char ch;

ch=stud.menu();//获取选择

switch(ch)

{

case '1': stud.input();break;//录入航班信息

case '2': stud.show();break;//浏览航班信息

case '3': stud.search();break;// 查询路线

case '4': stud.search2();break;// 查询路线(按线路)

case '5': stud.sall();break;// 售票

case '6': stud.back();

break;// 退票

case '0': exit(0);//退出

}

}

return 0;}

下载航空售票系统+C++课程设计源代码word格式文档
下载航空售票系统+C++课程设计源代码.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    基于java航空售票系统(范文)

    public FlightBook //构造函数 { super("航空订票"); this.setSize(600,400); this.setLocation(300,240); this.setResizable(false); this.setVisible(true); this.s......

    航空售票系统系统实施报告

    航 空 售 票 管 理 系 统 实 施 报 告 组员: 目录 第一章 引言 ··················································......

    C++大作业_职工信息管理系统源代码

    #include #include #include using namespace std; const N=5000; // 定义系统可录入的职工最大数值string Ename[N]; long Enum[N]; char Esex[N]; int Eage[N];......

    课程设计一:火车售票系统

    数据结构与算法课程实验报告 班级:学号: 课程设计一:火车售票系统设计及实现姓名: cll 一、实验内容: 火车售票系统在现实中的应用已经非常普遍,目前通常使用可视化的方法实现,例......

    航空售票系统数据库分析表

    flight 1.用户表:user 用户编号:userid int 自动增长 主键 用户名 username varchar(20) 密码password varchar(20) 类型usertype varchar(10) 登录时间 logintime datetime 2.......

    C++课程设计公司人事管理系统

    C++程序设计实践教学环节任务书 承接的项目额(10%)提成,业务经理既拿固定月薪(2000元)也领取提成,财务人员固定工资(2000元),文秘为固定工资(1500元)。 (4) 可按姓名显示、查找、......

    C++课程设计(简单图书管理系统)

    课 程 设 计 课程名称C++课程设计 题目名称图书管理系统 2016 年6 月 29 日目录 一.设计内容与要求 .......................................................................

    C++课程设计学生信息管理系统

    C++程序设计实践教学环节任务书 一、题目:学生信息管理系统 二、目的与要求 1. 目的: (1) 掌握面向对象程序设计的基本思路和方法; (2) 了解系统开发的需求分析、类层次设计、......