飞机订票管理系统C语言课程设计.docx

上传人:b****4 文档编号:5955892 上传时间:2023-05-09 格式:DOCX 页数:19 大小:36.83KB
下载 相关 举报
飞机订票管理系统C语言课程设计.docx_第1页
第1页 / 共19页
飞机订票管理系统C语言课程设计.docx_第2页
第2页 / 共19页
飞机订票管理系统C语言课程设计.docx_第3页
第3页 / 共19页
飞机订票管理系统C语言课程设计.docx_第4页
第4页 / 共19页
飞机订票管理系统C语言课程设计.docx_第5页
第5页 / 共19页
飞机订票管理系统C语言课程设计.docx_第6页
第6页 / 共19页
飞机订票管理系统C语言课程设计.docx_第7页
第7页 / 共19页
飞机订票管理系统C语言课程设计.docx_第8页
第8页 / 共19页
飞机订票管理系统C语言课程设计.docx_第9页
第9页 / 共19页
飞机订票管理系统C语言课程设计.docx_第10页
第10页 / 共19页
飞机订票管理系统C语言课程设计.docx_第11页
第11页 / 共19页
飞机订票管理系统C语言课程设计.docx_第12页
第12页 / 共19页
飞机订票管理系统C语言课程设计.docx_第13页
第13页 / 共19页
飞机订票管理系统C语言课程设计.docx_第14页
第14页 / 共19页
飞机订票管理系统C语言课程设计.docx_第15页
第15页 / 共19页
飞机订票管理系统C语言课程设计.docx_第16页
第16页 / 共19页
飞机订票管理系统C语言课程设计.docx_第17页
第17页 / 共19页
飞机订票管理系统C语言课程设计.docx_第18页
第18页 / 共19页
飞机订票管理系统C语言课程设计.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

飞机订票管理系统C语言课程设计.docx

《飞机订票管理系统C语言课程设计.docx》由会员分享,可在线阅读,更多相关《飞机订票管理系统C语言课程设计.docx(19页珍藏版)》请在冰点文库上搜索。

飞机订票管理系统C语言课程设计.docx

飞机订票管理系统C语言课程设计

飞机订票管理系统-C语言课程设计

设计报告

题目:

飞机订票管理系统

学院:

工商管理学院

专业:

信息管理与信息系统专业

班级:

050507

姓名:

赵伟宏

指导教师:

张守伟

设计日期:

2006年12月14日——12月17日

题目:

飞机订票管理系统

一、选题背景:

问题提出:

在以往的机订票系统过程中~由于订票系统过于复杂~往往给订票工作人员带来了很多的不便~工作人员要知道是否还有多余的空座以及航班都十分困难~依次也给乘客带来了很多的麻烦~飞机订票系统提供的功能过于烦琐~而且有些程序并不提供订票的功能。

为此,这里用C语言编制了几个函数,用于程序中时,可达到让工作人员准确订票的目的.

二、设计思路:

飞机订票系统是对中国民航订票系统的管理~即对为的方便乘客~对工作人员输入和删除航班信息~乘客浏览和查找航班信息以及订票和退票的系统管理。

本程序是通过简单的C语言的基本函数来管理运行的~来实现飞机订票系统管理的基本功能。

在实现过程中~应用循环来判断运行相应的函数~即可达到方便查找和管理的功能。

三:

设计分析:

应用技术点及主要解决问题阐述

通过飞机订票系统管理函数~来实现对飞机订票的管理~通过调用输入模块~调用打印模块~调用修改模块~调用查找模块~调用删除模块~调用订票模块~调用退票模块~来输出飞机订票系统的程序~从而来是工作人员和乘客方便的打印和查询飞机航班的系统。

技术关键

飞机订票系统管理主要运用了调用函数~其中包括输入函数,voidinput()),输出函数,voidprint()),保存函数,voidsave()),读取函数,voidread()),查找函数,void

search()),删除函数,voidshanchu()),订票函数,voiddingpiao()),退票函数~voidtuipiao(),

修改(voidxiugai())。

四:

程序流程图

主函数

输入函数修改函数函数函数函数函数输出查找订票删除

voidinput()voidprint()xiugai()search()dingpiao()shuanch()

((()

shanchu()vo

idshanchu()

退票函数tuipiao()

开始

do

while

输出管理的

程序(1-7)

关于调用函数

I

输入j的计算值

选择

j=7j=5j=6j=1j=2j=3j=4

dingpiao()input()print()xiugai()search()Shunchu()dingpiao()tuipiao()

dingpiao()breakbreakbreakbreakbreakbreakbreak

五、程序清单:

一,

二(

#include/*标准输入、输出头文件*/#include/*包含字符串函数处理头文件*/#include/*包含动态存储与释放函数头文件*/

#defineN1000

structair/*定义结构体数组*/{

intnum;

charstart[20];

charover[20];

chartime[10];

intcount;

}s[N];

inti;

intm=0;

#definePRINT"%-d%12s%12s%10s%12d\n",s[i].num,s[i].start,s[i].over,s[i].time,s[i].count

/*定义输出格式*/

voidinput();/*输入航班信息*/

voidprint();/*输出航班信息*/

voidsave();/*保存航班信息*/

voidread();/*读取航班信息*/

voidsearch();/*查找航班信息*/

voidshanchu();/*删除航班信息*/

voiddingpiao();/*订票信息*/

voidtuipiao();/*退票信息*/

voidxiugai();/*修改信息*/

voidmain()

{

intj;

printf("?

---您好,欢迎进入中国民航管理系统~---?

\n");

printf("================================================================

================\n");

do

{

printf("--------?

1.输入航班信息?

--------\n\n"

"--------?

2.浏览航班信息?

--------\n\n"

"--------?

3.修改航班信息?

--------\n\n"

"--------?

4.查找航班信息?

--------\n\n"

"--------?

5.删除航班信息?

--------\n\n"

"--------?

6.订票信息?

--------\n\n"

"--------?

7.退票信息?

--------\n\n"

"--------?

0.退出?

--------\n\n");

printf("================================================================

================\n");

printf("请在0-7中选择以回车键结束:

\n\n");

scanf("%d",&j);

switch(j)

{

case1:

input();/*调用输入模块*/

break;

case2:

print();/*调用打印模块*/

break;

case3:

xiugai();/*调用修改模块*/

break;

case4:

search();/*调用查找模块*/

break;

case5:

shanchu();/*调用删除模块*/

break;

case6:

dingpiao();/*调用订票模块*/

break;

case7:

tuipiao();/*调用退票模块*/

break;

case0:

;

break;

}

}while(j!

=0);/*判断结束*/

printf("谢谢使用,再见~\n");

}/*主函数结束*/

voidinput()/*打印模块程序*/

{

charf[]="2008china";/*设置密码*/

inty;

printf("请输入密码并以回车键结束:

\n\n");

scanf("%s",f);/*读取密码*/

if(strcmp(f,"2008china")==0)

{

printf("请依次输入航班信息(机票数位0结束输入):

\n\n"

"完成输入信息请键入w以回车键结束\n\n");/*打印提示信息*/

printf("--------------------------------------------------------------------------\n");

for(i=0;i

{

printf("请输入航班号:

\n");

scanf("%d",&s[i].num);/*读取航班号*/

printf("请输入起始站:

\n");

scanf("%s",s[i].start);/*读取起始站*/

printf("请输入终点站:

\n");

scanf("%s",s[i].over);/*读取终点站*/

printf("请输入时间:

\n");

scanf("%s",s[i].time);/*读取时间*/

printf("请输入机票数(机票数为0结束输入):

\n",m);

scanf("%d",&s[i].count);/*读取机票数*/

m++;

printf("第%d个信息已经输完是否继续?

按任意键继续,按0结束",m);

scanf("%d",&y);

if(y==0)

{

save();/*将结构体信息存盘*/

print();/*输出输入的航班信息*/

break;

}

}

}

else

printf("输入密码错误!

请检查您的密码是否正确!

谢谢!

再见!

\n\n");

}

voidsave()/*保存模块程序*/

{

FILE*fp,*fp1;/*定义文件指针*/

if((fp=fopen("chen.dat","wb"))==NULL)/*打开文件并判断是否出错*/

{

printf("创建文件失败!

\n\n");/*打印出错提示*/

getchar();

return;

}

if((fp1=fopen("hao.dat","wb"))==NULL)/*打开文件并判断是否出错*/

{

printf("创建文件失败!

\n\n");/*打印出错提示*/

getchar();

return;

}

for(i=0;i

if(fwrite(&s[i],sizeof(structair),1,fp)==0)/*向文件写入数据,并判断是否出错*/

printf("向文件输入数据失败!

\n\n");

fprintf(fp1,"%d",m);

fclose(fp);/*关闭文件*/

fclose(fp1);/*关闭文件*/

}

voidread()/*从文件读取信息模块*/

{

FILE*fp,*fp1;/*定义文件指针*/

if((fp=fopen("chen.dat","rb"))==NULL)/*打开文件,并判断是否出错*/

{

printf("出错,请检查文件是否存在,按任意键返回住菜单");/*打印出错提示*/

getchar();

}

if((fp1=fopen("hao.dat","rb"))==NULL)/*打开文件并判断是否出错*/

{

printf("创建文件失败!

\n\n");/*打印出错提示*/

getchar();

return;

}

fscanf(fp1,"%d",&m);

fclose(fp1);/*关闭文件*/

for(i=0;i

{

fread(&s[i],sizeof('air'),1,fp);/*从文件中读取信息*/

}

fclose(fp);/*关闭文件*/

}

voidprint()/*打印模块*/

{

charw[10];

read();/*调用读取文件函数*/

printf("航班号起始站终点站时间机票数\n");

for(i=0;i

{

printf(PRINT);/*打印信息*/

}

printf("请按任意键回车键结束返回上层菜单以:

\n");

scanf("%s",w);}

voidsearch()/*查询模块*/

{

charname1[20];

charname2[20];

charii[10];

intn,no;

do

{

printf("请选择查找方式:

\n\n");/*打印查询方式菜单*/

printf("1.按航班号查找\n\n"

"2.按终点站查找\n\n"

"3.按航线查找\n\n"

"0.返回\n\n");

printf("请在0-3中选择:

\n\n"

"按其他键以回车键结束返回主菜单:

\n\n");

scanf("%d",&n);/*读取查找方式*/

if(n==0)

break;

switch(n)

{

case1:

printf("请输入航班号:

\n");

scanf("%d",&no);/*航班号*/

break;

case2:

printf("请输入终点站名称:

\n");

scanf("%s",name2);/*读取终点站*/

break;

case3:

printf("请输入起始站名称:

\n");

scanf("%s",name1);/*读取起始站*/

printf("请输入终点站名称:

\n");

scanf("%s",name2);/*终点站*/

break;

}

read();/*用读取函数*/

for(i=0;i

{

if(strcmp(s[i].over,name1)==0||strcmp(s[i].over,name2)==0)/*终点站起始站判断输出条件*/

{

printf("\n查找航班信息成功!

\n");

printf("航班号起始站终点站时间机票数\n");

printf(PRINT);/*印信息*/

break;

}

if(s[i].num==no)/*按航班号判断输出条件*/

{

printf("\n查找航班信息成功!

\n");

printf("航班号起始站终点站时间机票数\n");

printf(PRINT);/*打印信息*/

break;

}

}

no=0;/*将航班号赋值为0*/

printf("没有您需要的信息或查找完毕:

\n\n"

"是否继续查找?

请键入yes或no以回车键结束\n");

scanf("%s",ii);}while(strcmp(ii,"yes")==0);/*判断结束*/}

voidshanchu()/*删除模块*/

{

charname1[20];

charname2[20];

charii[10];

charf[]="2008china";/*设置密码*/

intno,n;

printf("请输入密码并以回车键结束:

\n\n");

scanf("%s",f);/*读取密码*/

if(strcmp(f,"2008china")==0)/*判断密码是否正确*/

{

do

{

printf("请选择删除以方式回车键结束:

\n\n");/*打印删除方式菜单*/

printf("*1.按航班号删除\n\n"

"*2.按航线删除\n\n"

"*0.返回\n\n");

printf("请在0-2中选择以回车键结束:

\n");

scanf("%d",&n);/*读取删除方式*/

if(n==0)

break;/*跳出循环*/

switch(n)

{

case1:

printf("请输入航班号:

\n");

scanf("%d",&no);/*读取航班号*/

read();/*调用读取函数*/

break;/*跳出循环*/

case2:

printf("请输入起始站名称:

\n");

scanf("%s",name1);/*读取起始站*/

printf("请输入终点站名称:

\n");

scanf("%s",name2);/*读取终点站*/

read();/*调用读取函数*/

break;/*跳出循环*/

}

for(i=0;i

{

if(s[i].num==no||strcmp(s[i].start,name1)==0&&strcmp(s[i].over,name2)==0)/*判断输入信

息是否存在*/

{

s[i]=s[m-1];

m--;

}

}

printf("查找完毕或没有这个信息\n\n");

printf("是否继续删除\n");

printf("请键入yes或no以回车键结束\n");

scanf("%s",ii);/*读取是否继续信息*/

save();/*调用读取函数*/

if(!

strcmp(ii,"yes"))/*判断是否继续删除*/

printf("请按任意键以回车键结束返回上层菜单:

\n");

break;

}while(n!

=1&&n!

=2&&n!

=3&&n!

=4&&n!

=0);/*判断结束*/

}

else

printf("对不起密码错误!

您不是管理员,不能使用此项功能!

谢谢!

再见!

\n\n");

}

voiddingpiao()/*订票模块*/

{

intn;

chara[10];

do

{

search();/*调用查询模块*/

printf("请输入您要订的机票数以回车键结束:

\n");

scanf("%d",&n);/*读取所订机票数*/

if(n<0)

{

printf("请输入有效的机票数~\n");/*判断机票数是否出错*/

break;

}

if(s[i].count!

=0&&s[i].count>=n)/*判断是否出错*/

{

s[i].count=s[i].count-n;

save();/*调用保存函数*/

printf("订票成功!

\n\n");

break;

}

if(s[i].count

{

printf("请输入有效的机票数:

\n");

break;

}

printf("是否继续,请输入yes或no以回车键结束:

\n");/*判断是否继续订票*/

scanf("%s",a);

}while(!

strcmp(a,"yes"));/*判断结束*/

}

voidtuipiao()/*退票模块*/

{

intn;

chara[10];

do

{

search();/*调用查询模块*/

printf("请输入您要退的机票数目:

\n");

scanf("%d",&n);/*输入所退票数*/

if(n<0)/*判断票数是否有效*/

printf("请输入有效的机票数~\n");

s[i].count=s[i].count+n;

save();/*调用保存模块*/

printf("退票成功!

\n\n");

printf("是否继续,请键入yes或no以回车键结束:

\n\n");/*判断是否继续退票*/

scanf("%s",a);

}while(!

strcmp(a,"yes"));/*判断并跳出循环*/

getchar();

}

voidxiugai()/*修改模块*/

{

structxiu/*定义结构体*/

{

intno;

charname1[20];

charname2[20];

chartime[20];

intcount;

}x[1];

charj[10];

charf[]="2008china";/*设置密码*/

intn;

printf("请输入密码并以回车键结束:

\n\n");

scanf("%s",f);/*读取密码*/

if(strcmp(f,"2008china")==0)/*判断是否出错*/

{

read();/*调用读取模块*/

do

{

printf("请选择修改方式:

\n\n"

"*1,按航班号修改:

\n\n"

"*2,按航线修改:

\n\n");

printf("请在1---2中修改以回车键结束:

\n\n");

scanf("%d",&n);/*读取修改方式*/

switch(n)

{

case1:

printf("请输入航班号:

\n");

scanf("%d",&x[0].no);/*读取航班号*/

break;

case2:

printf("请输入起始站:

\n");

scanf("%s",x[0].name1);/*读取起始站*/

printf("请输入终点站:

\n");

scanf("%s",x[0].name2);/*读取终点站*/

break;

}

for(i=0;i

{

if(strcmp(s[i].over,x[0].name1)==0&&strcmp(s[i].over,x[0].name2)==0)/*判断输出条件*/

{

printf("航班号起始站终点站时间机票数\n");

printf(PRINT);

break;

}

if(s[i].num==x[0].no)/*判断输出条件*/

{

printf("航班号起始站终点站时间机票数\n");

printf(PRINT);

break;

}

}

x[0].no=0;/*将结构体中的号为零*/

printf("请输入新航班号、起始站、终点站、时间(星期几)、机票数:

\n");

scanf("%d%s%s%s%d",&x[0].no,x[0].name1,x[0].name2,x[0].time,&x[0].count);/*定义输入格式*/

s[i].num=x[0].no;/*替换航班号*/

strcpy(s[i].start,x[0].name1);/*替换其始站*/

strcpy(s[i].over,x[0].name2);/*替换终点站*/

strcpy(s[i].time,x[0].time);/*替换时间*/

s[i].count=x[0].count;/*替换机票数*/

save();/*调用保存模块*/

printf("是否继续,请键入yes或no以回车键结束:

\n\n");

scanf("%s",j);

}while(strcmp(j,"yes")==0);/*判断结束*/

}

else

printf("对不起密码错误!

您不是管理员,不能使用此项功能!

谢谢!

再见!

\n\n");}

六、设计自评:

1~设计优点:

该程序的最大特点是设计思路简单~语言简练、通俗易懂。

全篇没有较难的C语言语句~而且操作简单~实用性强~可以对任意一组输入的数据信息进行分析统计。

程序中每个函数在实现同一功能时~都尽量用不相近的方法来实现~而在一些用到重复功能的地方~这里仅用一种较具代表性的方式来一代

而过。

因此~用户可以根据需要~任意拓展每个函数的功能~进而完善本程序增强实用性~这里为读者留下了足够的自我构思的思维空间。

2~设计缺点:

函数利用单一~没有利用不同形式的占据空间较小的函数实现不同功能~所以占据的空间较大。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 互联网

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2