文章目录:
求 visual c++代码写的火车订票系统
C语言:软件课程设计--C语言设计火车票订票系统之源代码(模拟数据库功能)(需求分析+可行性分析)
一.需求设计:
1.每条线路所涉及的信息有:起点、终点、站名、车次、、票价、时间、座位号。
2.作为示意系统,全部数据可以只放在内存中。
3.系统能实现的功能和操作如下:
①.查询路线:根据旅客提出的终点站名输入下列信息:车次、车站名。
②.承办订票业务:根据客户提出的要求查询该车次票额的情况,若尚有余票,则为客户办理订票手续,输出座位号;若已满员或余票额少于订票额,则需重新查询客户要求,若需要可登记排队候补。
③.承办退票业务:根据客户提供的情况(车次、时间、座位号)为客户办理退票手续,然后查询该车次是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他排队候补的客户。
④登记旅客情况:包括旅客姓名,性别,年龄,家庭住址,联系方式等。
⑤统计功能:将每次车的订票,退票结果统计出来。
⑥管理功能:列车管理员可以通过调用函数来查看车票极其用户情况.
⑦.查询功能:用户可以查询自己需要的车辆信息
这类资源挺多的,你在百度一搜“火车订票系统 代码”出来很多
航空公司订票系统源代码 要求要 c++ 来写
#include iostream.h
#include stdio.h
#include string.h
#include conio.h
#define m 4 //3架飞机
#define n 5 //每架飞机5张票
struct node
{
char name[21];
char id[21];
int seat,plane,date;
node *next,*pre;
};
struct wait
{
char name[21];
char id[21];
char phone[8];
int seat,plane,date,count;
wait *next,*pre;
};
struct piao
{
int seat[n+1];
};
void makenull();
void makenull_piao();
void makenull_information();
void list_menu();
void list_piao();
void makenull_wait();
void list_information();
void plane_information(node *head);
void book();
void add_information(node *head,int x,int y);
void add_wait(int x,int y);
void search_delete(int x);
void write_to_file();
void show_wait();
bool comp(node *x,node*y);
node *head1,*head2,*head3,*q;
wait *wait_head,*wait_end;
char c;
piao a[m];
void main()
{
makenull();
do
{ list_menu();
coutendl"choose an operation: ";
cinc;
if (c!='6')
switch(c)
{
case '0' : show_wait();break;
case '1' : {list_piao();book();}break;
case '2' : search_delete(1);break;
case '3' : list_piao();break;
case '4' : list_information();break;
case '5' : search_delete(0);break;
default : break;
}
}while(c!='6');
cout"Exit System ";
}
void makenull()
{
makenull_piao();
makenull_information();
makenull_wait();
}
void list_menu()
{ coutendl"";
coutendl" 菜单";
coutendl" ************************";
coutendl" * 0 . 查看排队情况 *";
coutendl" * 1 . 订票 *";
coutendl" * 2 . 退票 *";
coutendl" * 3 . 查看剩余票 *";
coutendl" * 4 . 查看飞机信息 *";
coutendl" * 5 . 查看乘客信息 *";
coutendl" * 6 . 退出 *";
coutendl" ************************";
coutendl"";
}
void makenull_piao()
{
FILE *fp;
int i;
if((fp=fopen("piao.dat","r")) == NULL )
{
fp=fopen("piao.dat","w");
for (i=1;i=m-1;i++)
fwrite(a[i],sizeof(piao),1,fp);
fclose(fp);
fp=fopen("piao.dat","r");
}
for(i=1;i=m-1;i++)
fread(a[i],sizeof(piao),1,fp);
fclose(fp);
}
void makenull_information()
{
node *r;
FILE *fp;
int i,j,sum;
sum=a[1].seat[0]+a[2].seat[0]+a[3].seat[0];
fp=fopen("information.dat","r");
head1=new node;
head2=new node;
head3=new node;
head1-pre=NULL;
head1-next=NULL;
head2-pre=NULL;
head2-next=NULL;
head3-pre=NULL;
head3-next=NULL;
q=head1;
for(i=1;i=sum;i++)
{
j=0;
r=new node;
fread(r,sizeof(node),1,fp);
q-next=r;
r-pre=q;
r-next=NULL;
q=q-next;
fclose(fp);
if(i==a[1].seat[0]+1) {
head2-next=q;
q-pre-next=NULL;
q-pre=head2;
}
if(i==a[1].seat[0]+a[2].seat[0]+1) {
head3-next=q;
q-pre-next=NULL;
q-pre=head3;
}
}
}
void makenull_wait()
{
wait *tempw;
FILE *fp;
tempw=new wait;
int i;
if((fp=fopen("wait.txt","r")) ==NULL )
{
fp=fopen("wait.txt","w");
fclose(fp);
}
wait_end=new wait;
wait_head=new wait;
wait_end-next=NULL;
wait_end-pre=NULL;
wait_head=wait_end;
wait_head-count=0;
fp=fopen("wait.txt","r");
fread(wait_head,sizeof(wait),1,fp);
for(i=1;i=wait_head-count;i++)
{
fread(tempw,sizeof(wait),1,fp);
wait_end-next=tempw;
tempw-pre=wait_end;
tempw-next=NULL;
wait_end=tempw;
}
}
void list_piao()
{
int i,j;
for(i=1;i=m-1;i++)
{
if(a[i].seat[0]!=n)
{
coutendl"第 "i" 架飞机剩余的票 :"endl;
for(j=1;j=n;j++)
if (a[i].seat[j]==0) cout" "j;
coutendl;
}
else coutendl"The "i" plane is full !"endlendl;
}
}
void list_information()
{
int x;
do {coutendl"显示哪架飞机的信息 ? "; cinx;coutendl;}while(x1 || x=m);
coutendl"第 "x" 架飞机的信息如下 "endl;
if(x==1) plane_information(head1);
if(x==2) plane_information(head2);
if(x==3) plane_information(head3);
}
void plane_information(node *head)
{
node *q;
char ch;
int x=0;
if(head!=NULL head-next!=NULL)
q=head-next;
else {
q=NULL;
cout"飞机空,无预订票 !"endl;
}
while(q!=NULL)
{
coutendl"*******************"endl;
q-date=q-plane;
cout"日期 :"q-dateendl;
cout"座位号 : "q-seatendl;
cout"姓名 : "q-name;
coutendl"ID 号 : "q-id;
q=q-next;x++;
if (x % 3 ==0) ch=getch();
}
coutendl;
}
void book()
{
int i,j,p;
coutendl"请选择地点:(1、2、3) ";
do {
cini;
if (i1 || i=m) {
coutendl"**** 超出范围!****"endl"请重新输入:";
}
else
{coutendl"你要订的是到"i"地的飞机"endl;
coutendl"第 "i" 架飞机剩余的票 :"endl;
for(p=1;p=n;p++)
if (a[i].seat[p]==0) cout" "p;
coutendl;
break;}
}while(1);
coutendl"请选择座位号 : ";
do {
cinj;
if (j1 || jn) {
coutendl"**** 超出范围!****"endl"请重新输入:";
}
else
{
q-date=i;
coutendl"您的订票日期 : "q-dateendl;
break;
}
}while(1);
if (a[i].seat[j]==0) {
a[i].seat[j]=1;
coutendl;
a[i].seat[0]++;
if(i==1) add_information(head1,1,j);
if(i==2) add_information(head2,2,j);
if(i==3) add_information(head3,3,j);
}
else
{
coutendl"**** 对不起,该座位已被预订,您被安排到订票等候队列 ****"endl;
add_wait(i,j);
}
}
void add_wait(int x,int y)
{
wait *tempw;
tempw=new wait;
tempw-next=NULL;
cout"请输入个人信息"endl;
coutendl"*************"endl;
cout"姓名 : ";cintempw-name;
cout"ID号 : ";cintempw-id;
cout"电话 :";cintempw-phone;
tempw-seat=y;
tempw-plane=x;
wait_end-next=tempw;
tempw-pre=wait_end;
wait_end=wait_end-next;
coutendl"**** 正在排队等候 ****"endl;
wait_head-count++;
write_to_file();
}
void show_wait()
{
wait *tempw;
tempw=wait_head-next;
if (tempw==NULL) coutendl"排队中没有人!"endl;
while(tempw!=NULL)
{
couttempw-name" - ";
tempw=tempw-next;
}
}
void add_information(node *head,int x,int y)
{
node *temp;
temp=new node;
temp-pre=NULL;
temp-next=NULL;
cout"请输入个人信息"endl;
coutendl"*************"endl;
cout"姓名 : ";cintemp-name;
cout"ID号 : ";cintemp-id;
temp-seat=y;
temp-plane=x;
temp-next=head-next;
temp-pre=head;
if (head-next!=NULL) head-next-pre=temp;
head-next=temp;
write_to_file();
coutendl"**** 订票成功 ****"endl;
}
void search_delete(int x)
{
node *p,*q,*r;
wait *tempw,*tempw2,*tempw3;
int step=1,t1,t2,i;
char ch;
p=new node;
tempw=new wait;
tempw2=new wait;
tempw3=new wait;
q=head1;
coutendl"请输入个人信息"endl;
cout"*************"endl;
coutendl"姓名 : ";cinp-name;
do{
q=q-next;
if ( (q!=NULL)
(comp(q,p)) )
{
coutendl;
q-date=q-plane;
cout"Located!"endl;
cout"****************";
coutendl"姓名 : "q-name;
coutendl"ID号 : "q-id;
coutendl"座位号 : "q-seat;
coutendl"班机号 : "q-plane;
coutendl"日期 : "q-dateendl;
if (x==1) {
cout"删除该纪录 ? [Y/N] ";
cinch;
if (ch=='Y' || ch=='y') {
t1=q-plane;
t2=q-seat;
a[t1].seat[t2]=0;
a[t1].seat[0]--;
r=q;q=q-pre;
r-pre-next=r-next;
if(r-next!=NULL) r-next-pre=r-pre;
delete(r);
cout"**** 记录删除成功 ! ****";
write_to_file();
tempw=wait_head;
for(i=0;iwait_head-count;i++)
{
tempw=tempw-next;
if(tempw==NULL) break;
if((tempw-plane==t1) (tempw-seat==t2))
{
strcpy(tempw3-name,tempw-name);
strcpy(tempw3-phone,tempw-phone);
coutendl"等候的人中有可以订票的了:"endl;
coutendl"姓名 : "tempw-name;
coutendl"ID号 : "tempw-idendl;
a[t1].seat[0]++;
a[t1].seat[t2]=1;
if(tempw-plane==1) add_information(head1,1,tempw-seat);
if(tempw-plane==2) add_information(head2,2,tempw-seat);
if(tempw-plane==3) add_information(head3,3,tempw-seat);
tempw2=tempw-pre;
tempw2-next=tempw-next;
if(tempw-next==NULL) wait_end=tempw2;
else tempw-next-pre=tempw2;
delete(tempw);
wait_head-count--;
write_to_file();
coutendl"等候的"tempw3-name"已经成功订票,已经由电话"tempw3-phone"通知了"endl;
break;
}
}
}
}continue;
}
else
{
if (q==NULL)
{
step++;
if(step==2) q=head2;
if(step==3) q=head3;
if(step==4) {coutendl"**** 信息检索完毕 ****";break;}
}
}
}while(1);
}
bool comp(node *x,node *y)
{
node *p,*q;
int i,j,k;
p=x;
q=y;
i=j=0;
do
{
while ( (p-name[i] != q-name[j]) (p-name[i] != '\0') ) i++;
if (p-name[i] == '\0') {return(false);break;}
else
{
k=i;
while ( (p-name[k] == q-name[j]) (q-name[j]!='\0') ) {k++;j++;}
if (q-name[j]=='\0') return(true);
else
{
j=0;
i++;
}
}
}while( (q-name[j]!='\0') (p-name[i] != '\0') );
return(false);
}
void write_to_file()
{
FILE *fp;
int i,j;
int x[m];
node *p;
wait *tempw;
tempw=new wait;
tempw=wait_head;
fp=fopen("piao.dat","w");
for (i=1;i=m-1;i++)
{
fwrite(a[i],sizeof(piao),1,fp);
}
fclose(fp);
fp=fopen("information.dat","w");
x[0]=0;x[1]=a[1].seat[0];
for(i=0,j=1;j=m-1;j++) {i=i+a[j].seat[0];x[j]=a[j].seat[0]+x[j-1];}
j=1;p=head1-next;
for(j=1;j=i;j++)
{
if(j==x[1]+1) p=head2-next;
if(j==x[2]+1) p=head3-next;
if(p==NULL)break;
fwrite(p,sizeof(node),1,fp);
p=p-next;
}
fclose(fp);
fp=fopen("wait.txt","w");
for(j=0;j=wait_head-count;j++)
{
if(tempw==NULL)break;
fwrite(tempw,sizeof(wait),1,fp);
tempw=tempw-next;
}
fclose(fp);
}
飞机订票系统的源代码
机票预定系统概要设计说明书1.引言
1.1 编写目的
在本机票预定系统项目的前一阶段,也就是需求分析阶段中,已经将系统用户对本系统的需求做了详细的阐述,这些用户需求已经在上一阶段中对航空公司、各旅行社及机场的实地调研中获得,并在需求规格说明书中得到详尽得叙述及阐明。
本阶段已在系统的需求分析的基础上,对机票预定系统做概要设计。主要解决了实现该系统需求的程序模块设计问题。包括如何把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。在以下的概要设计报告中将对在本阶段中对系统所做的所有概要设计进行详细的说明。
在下一阶段的详细设计中,程序设计员可参考此概要设计报告,在概要设计对机票预定系统所做的模块结构设计的基础上,对系统进行详细设计。在以后的软件测试以及软件维护阶段也可参考此说明书,以便于了解在概要设计过程中所完成的各模块设计结构,或在修改时找出在本阶段设计的不足或错误。 1.2 项目背景 本项目(机票预定系统)时由浙江航空公司委托,由负责开发。
机票预定系统将由两部分组成:置于个旅行社定票点的前台客户程序,以及置于航空公司的数据库服务器。本系统与其他系统的关系如下: 1.3 定义 1.3.1 专门术语
SQL SERVER: 系统服务器所使用的数据库管理系统(DBMS)。
SQL: 一种用于访问查询数据库的语言
事务流:数据进入模块后可能有多种路径进行处理。
主键:数据库表中的关键域。值互不相同。
外部主键:数据库表中与其他表主键关联的域。
ROLLBACK: 数据库的错误恢复机制。
1
1.3.2 缩写
系统:若未特别指出,统指本机票预定系统。
SQL: Structured Query Language(结构化查询语言)。
ATM: Asynchronous Transfer Mode (异步传输模式)。
1.4 参考资料 以下列出在概要设计过程中所使用到的有关资料:
1. 机票预定系统项目计划任务书 浙江航空公司 1999/3 2.机票预定系统项目开发计划 《》软件开发小组 1999/3
3.需求规格说明书 《》软件开发小组 1999/3
4.用户操作手册(初稿) 《》软件开发小组 1999/4
5.软件工程及其应用 周苏、王文等 天津科学技术出版社 1992/1
6.软件工程 张海藩 清华大学出版社 1990/11
7.Computer Network A.S.Tanenbaun Prentice Hall 1996/01
文档所采用的标准是参照《软件工程导论》沈美明著 的“计算机软件开发文档编写指南”。
2.任务概述
系统将由两部分组成:置于个旅行社定票点的前台客户程序,以及置于航空公司的数据库服务器。本系统与其他系统的关系如下: 1.3 定义 1.3.1 专门术语 SQL SERVER: 系统服务器所使用的数据库管理系统(DBMS)。 SQL: 一种用于访问查询数据库的语言