《《C++程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告訂票系統(tǒng)》由會員分享,可在線閱讀,更多相關(guān)《《C++程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告訂票系統(tǒng)(22頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、課程設(shè)計(jì)
《C++程序設(shè)計(jì)》課程設(shè)計(jì)
設(shè)計(jì)報(bào)告
學(xué)號
姓名
指導(dǎo)教師
題 目
訂票系統(tǒng)
計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院
年
月
日
目錄
1. 需求分析……………………………………………3
1.1輸入形式………………………………………………3
1.2輸出形式………………………………………………3
1.3程序功能………………………………………………3
1.4測試數(shù)據(jù)………………………………………………3
2. 概要設(shè)計(jì)………………………………
2、……………3
2.1流程分析………………………………………………3
2.2具體步驟………………………………………………3
2.3功能模塊………………………………………………4
3. 詳細(xì)設(shè)計(jì)………………………………………………4
3.1流程圖…………………………………………………4
3.2源代碼…………………………………………………5
4. 調(diào)試分析 ………………………………………… 14
4.1調(diào)試……………………………………………………20
4.2驗(yàn)與總結(jié)………………………………………………21
5.參考文獻(xiàn)………………
3、……………………………21
第一章 需求分析
本程序使用visual studio 2010 C++語言編寫,完成訂票系統(tǒng)的錄入,查詢,訂票,退票及增加、刪除、修改航班信息。
1.1 輸入的形式和輸入值的范圍
輸入的形式是數(shù)字、人名及編號。 輸入值的范圍:無。
1.2輸出的形式
輸出為訂票,包含姓名,座位號等。
1.3程序所能達(dá)到的功能
本程序編寫完成后能達(dá)到訂票的生成及修改,退訂,查詢和退出。
1.4測試數(shù)據(jù)
進(jìn)入訂票系統(tǒng)后,選擇訂票,輸入姓名aaa。
再根據(jù)選項(xiàng)依次選擇進(jìn)行測試。
第二章 概要設(shè)計(jì)
2.1 實(shí)現(xiàn)流程分析:
采用類模塊和文件想
4、結(jié)合的方式實(shí)現(xiàn)該操作,首先定義一個(gè)airline類并將一些基本數(shù)據(jù)定義為類的共有成員,同時(shí)設(shè)置成員函數(shù)來設(shè)置數(shù)據(jù)和輸出數(shù)據(jù)。
2.2具體步驟
訂票:運(yùn)用類的成員函數(shù)設(shè)置數(shù)據(jù)并寫到文件中去,然后在后面的程序中讀出。
退票:將文件中的數(shù)據(jù)讀出,用for循環(huán)語句進(jìn)行查找并修改數(shù)據(jù)
查詢:用for循環(huán)語句進(jìn)行查找并讀出,沒有數(shù)據(jù)的顯示錯誤
主函數(shù):用while語句制作菜單,用戶根據(jù)需要進(jìn)行選擇
2.3系統(tǒng)功能模塊
(1)錄入(航班相關(guān)記錄)功能模塊
(2)查詢(航班相關(guān)記錄)功能模塊
(3)訂票功能模塊
(4)退票功能模塊
(4)退出系統(tǒng)功能模塊
第三章 詳細(xì)設(shè)計(jì)
5、
1
訂票
2
退票
3
查詢
4
退出
3.1流程圖
開始訂票
開始退票
按條件查詢
退出系統(tǒng)
3.2 源代碼
#include
#include
#include
#include "conio.h"
#define OK 1 //1.避免幻數(shù)出現(xiàn)(幻數(shù)即諸如0,1,100之類的數(shù)字常量,因?yàn)闊o法從字面上看出該數(shù)字代表的意義,所以通常用宏替換,讓人一看就明白其代表的意義,如ERROR錯誤,OK正確)
#define ERROR 0 /
6、/2.便于修改,如果要更改ERROR或OK的定義只需修改宏定義即可,不用再在編碼中尋找一個(gè)個(gè)修改。
typedef struct airline{
char air_num[8];
char plane_num[8];
char end_place[20];
int total;
int left;
struct airline *next;
}airline;
typedef struct customer{
char name[8];
char air_num[8];
int seat_num;
struct custome
7、r *next;
}customer;
airline *start_air()
{
airline *a;
a=(airline*)malloc(sizeof(airline));
if(a==NULL)
a->next=NULL;
return a;
}
customer *start_cus()
{
customer *c;
c=(customer*)malloc(sizeof(customer));
if(c==NULL)
c->next=NULL;
return c;
}
airline *modefy_a
8、irline(airline *l,char *air_num)
{
airline *p;
p=l->next;
for(;p!=NULL;p=p->next)
{
if(strcmp(air_num,p->air_num)==0)
{
p->left++;
return l;
}
printf("沒有這趟航班!");
return 0;
}
}
int insert_air(airline **p,char *air_num,char *plane_num,char *end_place,int total,in
9、t left)
{
airline *q;
q=(airline*)malloc(sizeof(airline));
strcpy(q->air_num,air_num);
strcpy(q->plane_num,plane_num);
strcpy(q->end_place,end_place);
q->total=total;
q->left=left;
q->next=NULL;
(*p)->next=q;
(*p)=(*p)->next;
return OK;
}
int insert_cus(customer
10、 **p,char *name,char *air_num,int seat_num)
{
customer *q;
q=(customer*)malloc(sizeof(customer));
strcpy(q->name,name);
strcpy(q->air_num,air_num);
q->seat_num=seat_num;
q->next=NULL;
(*p)->next=q;
(*p)=(*p)->next;
return OK;
}
int book(airline *a,char *air_num,customer
11、 *c,char *name)
{
airline *p=a;
customer *q=c->next;
p=a->next;
for(;q->next!=NULL;q=q->next){}
for(;p->next!=NULL;p=p->next)
{
if(p->left>0)
{
printf("您的座位號是:%d",(p->total-p->left+1));
insert_cus(&q,name,air_num,p->total-p->left+1);
p->left--;
return OK;
}
12、 else
{
printf("座位已滿");
return 0;
}
}
}
int del_cus(customer *c,airline *l,char *name)
{
customer *p,*pr;
char air_num[8];
pr=c;
p=pr->next;
while(p!=NULL)
{
if(strcmp(p->name,name)==0)
{
strcpy(air_num,p->air_num);
l=modefy_airline(l,air_num);
pr->
13、next=p->next;
p=pr->next;
printf("完成!");
return OK;
}
pr=pr->next;
p=pr->next;
}
printf("NO the customer!");
return ERROR;
}
int search_air(airline *head)
{
airline *p=head->next;
printf("air_num plane_num end_place total left\n");
for(;p!=NULL;p=p->next)
14、{
printf("%s %-10s %-8s %-8d%-8d\n",p->air_num,p->plane_num,p->end_place,p->total,p->left);
}
return OK;
}
int search_cus(customer *head)
{
struct customer *q=head->next;
printf("name air_num seat_num\n");
for(;q!=NULL;q=q->next)
{
printf("%-8s%-12s%-d\n",q->name,q->air_nu
15、m,q->seat_num);
}
return OK;
}
int creat_air(airline **l)
{
airline *p=*l;
int i=0;
char *air_num[3]={"航班1","航班2","航班3"};
char *plane_num[3]={"plane1","plane2","plane3"};
char *end_place[3]={"北京","上海","天津"};
int total[3]={100,100,100};
int left[3]={52,54,76};
for(i=0
16、;i<3;i++)
insert_air(&p,air_num[i],plane_num[i],end_place[i],total[i],left[i]);
return OK;
}
int creat_cus(customer **l)
{
customer *p=*l;
int i=0;
char *name[3]={"張三","李四","王五"};
char *air_num[3]={"航班1","航班2","航班3"};
int seat_num[3]={2,5,7};
for(i=0;i<3;i++)
insert_cus
17、(&p,name[i],air_num[i],seat_num[i]);
return OK;
}
void main()
{
int t=1;
customer *cus=start_cus();
airline *air=start_air();
char name[8],air_num[8],ch;
creat_air(&air);
creat_cus(&cus);
while(t==1)
{
printf("\n");
printf("*********************************\n");
18、 printf("* 歡迎來到訂票系統(tǒng)! *\n");
printf("* 訂票--------1 *\n");
printf("* 退票--------2 *\n");
printf("* 查詢--------3 *\n");
printf("* 退出--------4 *\n");
printf("*********************************\n");
ch=getch();
if(ch==1)
{
printf("Please input a airline number:");
scanf("%s",a
19、ir_num);
printf("請輸入您的名字:");
scanf("%s",name);
book(air,air_num,cus,name);
}
else
if(ch==2)
{
printf("Please input the cancel name:");
scanf("%s",name);
del_cus(cus,air,name);
}
else
if(ch==3)
{
search_air(air);
printf("\n");
search_cus(cus);
}
20、
else
if(ch==4)
{
t=0;
}
}
}
第四章 調(diào)試分析
4.1調(diào)試
進(jìn)入界面:
選擇功能1:
選擇功能2:
選擇功能3:
4.2經(jīng)驗(yàn)與總結(jié)
通過本次課程設(shè)計(jì),我認(rèn)識到了自己的不足。對平時(shí)所學(xué)內(nèi)容局限于老師講的例子,不思舉一反三,不思融會貫通,所以在需要多個(gè)內(nèi)容課程設(shè)計(jì)時(shí)感到束手無策,手足無措。在上網(wǎng)查找了有關(guān)資料之后,自己也慢慢有了一點(diǎn)想法,根據(jù)課程設(shè)計(jì)的內(nèi)容要求一項(xiàng)一項(xiàng)完成。 C++語言的進(jìn)步讓我深刻的感受到任何所學(xué)的知識都需要實(shí)踐,沒有實(shí)踐就無法真正理解這些知識以及掌握它們,使其成為自己的財(cái)富。
第六章 參考文獻(xiàn)
[1]譚浩強(qiáng) 《C++程序設(shè)計(jì)》 北京:清華大學(xué)出版社,2004.6
[2]譚浩強(qiáng) 《C++程序設(shè)計(jì)題解與上機(jī)指導(dǎo)》 北京:清華大學(xué)出版社,2005.3
[3]CSDN
22