5
三 设计概要
⑴ 程序概要图
系统中主要函数及功能 信息查询函数 makenull_information() makenull_wait() list_information() plane_information() 查询机票及等候排队信息 信息输入函数 book() add_information() add_wait() 输入订票及排队信息 信息输出函数 list_piao() show_wait() write_to_file() 输出机票及排队信息 信息修改函数 search_delete() 查找及对信息作出修改 图1程序概要
⑵ 主要数据结构[2][3][4]
#include
#define m 4 #define n 5 struct node {
char name[21]; char id[21]; char phone[8];
6
int seat,plane,date; node *next,*pre; };
struct wait {
char name[21]; char id[21]; char phone[13];
int seat,plane,date,count; wait *next,*pre; };
struct piao {
int seat[n+1]; };
⑶ 课程设计所用方法及原理
将订票人输入的信息写入文件,同时系统记录这一信息并对机票信息作出修改,当其他人订票或查询时,输出修改后的信息,当票已被预定完时,输出等候建议。 主要利用了文件的各种操作[1],指针的各项应用等知识[2]。
四 详细设计
⑴ 所需软件环境
Windows 操作系统下的Microsoft Visual C++6.0软件环境
⑵ 部分程序程序源代码
void makenull(); //赵雷 void makenull_piao();///赵雷
void makenull_information();//赵雷 void makenull_wait();//赵雷
void list_menu();//孔旭东,main函数 void show_wait();//孔旭东 void list_piao();//张树建
void list_information();//张树建
void plane_information(node *head);//范林春 void book();//范林春
void add_information(node *head,int x,int y);//杨涛
7
void add_wait(int x,int y);//杨涛 void search_delete(int x);//牛绍海 bool comp(node *x,node*y);//牛绍海 void write_to_file();//牛绍海
////////////////////////////////////////////////////////////////////////////////////////////// node *head1,*head2,*head3,*q; wait *wait_head,*wait_end; piao a[m]; void main() { char choose; makenull(); do{ if (choose!='6') list_menu();
printf(\请输入您的选择: \ scanf(\ switch(choose){
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(choose!='6'); printf(\退出程序\\n\}
void makenull() {
makenull_piao();//票务信息
makenull_information();//客户信息 makenull_wait();//等候人员信息 }
void list_menu() { printf(\
printf(\ 菜单 \\n\ printf(\ ************************\\n\ printf(\ * 0 . 查看排队情况 *\\n\ printf(\ * 1 . 订票 *\\n\ printf(\ * 2 . 退票 *\\n\ printf(\ * 3 . 查看剩余票 *\\n\ printf(\ * 4 . 查看飞机信息 *\\n\
8
printf(\ * 5 . 查看乘客信息 *\\n\ printf(\ * 6 . 退出 *\\n\ printf(\ ************************\\n\ printf(\}
void makenull_piao()//机票信息的文件建立 {
FILE *fp; int i;
if((fp=fopen(\ {
fp=fopen(\ for (i=1;i<=m-1;i++)
fwrite(&a[i],sizeof(piao),1,fp); fclose(fp);
fp=fopen(\ }
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(\ 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);