民航订票二级课程设计报告.docx

上传人:b****6 文档编号:3790305 上传时间:2022-11-25 格式:DOCX 页数:35 大小:198.50KB
下载 相关 举报
民航订票二级课程设计报告.docx_第1页
第1页 / 共35页
民航订票二级课程设计报告.docx_第2页
第2页 / 共35页
民航订票二级课程设计报告.docx_第3页
第3页 / 共35页
民航订票二级课程设计报告.docx_第4页
第4页 / 共35页
民航订票二级课程设计报告.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

民航订票二级课程设计报告.docx

《民航订票二级课程设计报告.docx》由会员分享,可在线阅读,更多相关《民航订票二级课程设计报告.docx(35页珍藏版)》请在冰豆网上搜索。

民航订票二级课程设计报告.docx

民航订票二级课程设计报告

石家庄铁道大学课程设计

课程设计题目

 

 

单位电气与电子工程分院(系)

专业电气

学号20122504

学生姓名何英杰

指导教师刘立嘉

 

完成日期2013年7月10日

摘要

在进行程序的设计过程中,必须使用一种计算机作为工具,可供选择的语言中,C语言功能丰富、表达能力强、应用范围广、可直性好,既具有高级语言的优点,又具有低级语言的许多特点,适合编写系统软件,又可方便的用来编写应用软件。

我正是利用C语言的诸多优点来完成民航订票系统的程序编写。

系统设计主要围绕全局变量,系统模块,流程图,函数意义的详细介绍而展开。

最后对民航管理系统进行了实现,并作了详细描述,主要采用注释与代码结合的方式详细地叙述了系统功能实现的过程。

此次课程设计不仅是我对C语言有了更进一步的了解,也增强了自己的动手编程的能力。

关键词:

C语言、民航订票系统

第1章选题的意义

1.1民航,即民用航空,是指使用各类航空器从事除了军事性质(包括国防、警察和海关)以外的所有的航空活动称为民用航空。

20世纪50年代以来,民用航空的服务范围不断扩大,成为一个国家的重要经济部门。

此次民航订票系统课程设计,运用相关函数调用将基本的功能实现,在设计中的指针、结构体变量等知识的联系,是我进一步的掌握了这些功能的用法。

1.2在课程设计过程中,遇到了许多的问题,不得不去查阅资料并且调试来解决,问题解决的同时也是我掌握了更多的相关知识,课外扩展了许多函数的用法和意义。

1.3在设计中,深深体会到了实践的意义,所学知识不能与实际操作更好地结合是学习的弊病,学以致用才是最终的目标。

这次课程设计的实际操作,发现了自己的知识漏洞,进一步完善自己所学的C语言知识,也在一定程度上提高了自己的编程能力。

第2章系统功能需求分析

2.1系统的基本要求

1.航班信息录入功能。

航班信息用文件保存。

2.航班信息的维护功能。

航班信息增加、删除、修改功能。

3.浏览航班信息功能。

4.航班信息查询功能。

根据航班号、终点站、飞行时间等条件查询。

5.订票功能。

对订票信息应该存储在一个数组或链表中,每次进行订票时应该先统计该天该航班的已定人数,如果超过成员定额,则不能订票。

6.统计每个航班某一天的已售(订)出座位数、剩余座位数。

第3章系统设计

charFlightID[10];

charRouteStart[20];/*起点*/

charRouteEnd[20];/*终点*/

charDeparturesTime[20];/*起航时间*/

charArrivalsTime[20];/*抵达时间*/

intLoadlimit;/*载客额定*/

structFlightInfo*next;

intaddFlightInfo();/*航班信息的增加*/

intmenu();/*主菜单*/

voidInputFlightInfo();/*航班信息的录入*/

voidFlightInfoMaintain();/*航班新的维护*/

intMaintainMenu();/*航班信息维护菜单*/

voidDeleteFlight();/*航班信息的删除*/

intReadFlightInfoFile(FlightInfo*flight);

voidSaveFile(FlightInfo*flight);

voidUpdataInfo();

voidGetFile();/*航班信息的浏览*/

intQueryMenu();/*航班信息的查询菜单*/

voidQueryInfo(char*pValue,inttag);

voidFlightQuery();

intBooking();/*订票*/

intReadBookingInfo(char*flightID,char*flightDate,inttotal,char*returnVal);

voidStatistics();/*统计*/

系统模块

1.主函数

在主函数内部对被调函数进行声明,并且调用menu函数。

2.菜单

在菜单函数中,显示并且选择各下级功能。

3.信息的录入功能

利用循环结构,在屏幕上分别输入航班的相关信息,并且将输入的信息分别存储在结构体变量str[10],在操作者修改信息后,替换源信息,中心存储在文件flightInfo中,并选择下一步。

4.信息的维护功能

进入此功能后,通过输入相关航班信息从flightInfo文件中查找原信息,在修改信息后,替换并重新保存在flightInfo文件中,并选择下一步。

5.信息的浏览功能

信息的浏览:

全部浏览——打开文件flightInfo,输出所有航班信息并选择下一步。

6.信息的查询功能

进入查询功能菜单界面,选择查询方式,输入班次,起航时间等信息后,打开flightInfo文件,查找并显示航班信息,并选择下一步。

7.订票功能

进入订票界面,根据提示输入航班、日期、名字等相关信息,打开flightInfo文件,查找信息,显示订票成功,并显示余票。

订票者的相关信息与所定的航班信息将记录在bookingInfo.txt中,并选择下一步。

8.统计功能

统计每个航班的售票与余票情况。

 

主要框架:

 

航班信息的维护:

航班信息的查询:

第4章系统实现(程序代码)

#include/*标准输入输出函数库*/

#include/*标准函数库*/

#include/*字符串函数库*/

#include

typedefstructFlightInfo

{

charFlightID[10];

charRouteStart[20];/*起点*/

charRouteEnd[20];/*终点*/

charDeparturesTime[20];/*起航时间*/

charArrivalsTime[20];/*抵达时间*/

intLoadlimit;/*载客额定*/

structFlightInfo*next;

}FlightInfo;

 

intaddFlightInfo();/*航班信息的增加*/

intmenu();/*主菜单*/

voidInputFlightInfo();/*航班信息的录入*/

voidFlightInfoMaintain();/*航班新的维护*/

intMaintainMenu();/*航班信息维护菜单*/

voidDeleteFlight();/*航班信息的删除*/

intReadFlightInfoFile(FlightInfo*flight);

voidSaveFile(FlightInfo*flight);

voidUpdataInfo();

voidGetFile();/*航班信息的浏览*/

intQueryMenu();/*航班信息的查询菜单*/

voidQueryInfo(char*pValue,inttag);

voidFlightQuery();

intBooking();/*订票*/

intReadBookingInfo(char*flightID,char*flightDate,inttotal,char*returnVal);

voidStatistics();/*统计*/

 

intaddFlightInfo()

{

FlightInfoflight;

charstr[10],flightInfo[10];

inttotal=0;

FILE*fp=NULL;

printf("请输入航班信息:

(航班号、固定航线(起始站和终点站)、飞行时间(起飞时间和到达时间)和载客定额)\n");

printf("航班号:

");

memset(flight.FlightID,0,10);

scanf("%s",flight.FlightID);

printf("航线起始站:

");

memset(flight.RouteStart,0,20);

scanf("%s",flight.RouteStart);

printf("航线终点站:

");

memset(flight.RouteEnd,0,20);

scanf("%s",flight.RouteEnd);

printf("起飞时间:

");

memset(flight.DeparturesTime,0,20);

scanf("%s",flight.DeparturesTime);

printf("到达时间:

");

memset(flight.ArrivalsTime,0,20);

scanf("%s",flight.ArrivalsTime);

printf("载客额定:

");

scanf("%d",&flight.Loadlimit);

flight.next=NULL;

if((fp=fopen("flightInfo.txt","a+"))==NULL)

{

printf("openfilefail!

\n");

return1;

}

fclose(fp);

total=GetPrivateProfileInt("航班数量","总数",0,"./flightInfo.txt");

total++;

sprintf(flightInfo,"航班信息%d",total);

memset(str,0,10);

itoa(total,str,10);

WritePrivateProfileString("航班数量","总数",str,"./flightInfo.txt");

WritePrivateProfileString(flightInfo,"航班号",flight.FlightID,"./flightInfo.txt");

WritePrivateProfileString(flightInfo,"航线起始站",flight.RouteStart,"./flightInfo.txt");

WritePrivateProfileString(flightInfo,"航线终点站",flight.RouteEnd,"./flightInfo.txt");

WritePrivateProfileString(flightInfo,"起飞时间",flight.DeparturesTime,"./flightInfo.txt");

WritePrivateProfileString(flightInfo,"到达时间",flight.ArrivalsTime,"./flightInfo.txt");

memset(str,0,10);

itoa(flight.Loadlimit,str,10);

WritePrivateProfileString(flightInfo,"载客额定",str,"./flightInfo.txt");

printf("文件保存成功!

\n");

system("pause");

return0;

}

 

voidInputFlightInfo()

{

inttatol=0,i=0;

printf("请输入要录入的航班个数:

");

scanf("%d",&tatol);

for(i=0;i

{

addFlightInfo();

}

}

voidFlightInfoMaintain()

{

while

(1)

{

switch(MaintainMenu())

{

case1:

addFlightInfo();

break;

case2:

UpdataInfo();

break;

case3:

DeleteFlight();

break;

case4:

return;

break;

default:

printf("输入有误!

\n");

break;

}

}

}

 

voidFlightQuery()

{

charstr[20];

while

(1)

{

memset(str,0,20);

switch(QueryMenu())

{

case1:

printf("请输入航班号:

");

scanf("%s",str);

QueryInfo(str,1);

break;

case2:

printf("请输入终点站:

");

scanf("%s",str);

QueryInfo(str,2);

break;

case3:

printf("请输入航班起飞时间:

");

scanf("%s",str);

QueryInfo(str,3);

break;

case4:

printf("请输入航班抵达时间:

");

scanf("%s",str);

QueryInfo(str,4);

break;

case5:

return;

break;

default:

printf("输入有误!

\n");

break;

}

}

}

 

intmenu()

{

intnumber=0;

system("cls");

printf("\

╭═══════════════╮\n\

║民航订票系统║\n\

╭══════┤中国民航欢迎您├══════╮\n\

║║║║\n\

║╰═══════════════╯║\n\

║║\n\

║1.航班信息录入║\n\

║2.航班信息的维护║\n\

║3.浏览航班信息║\n\

║4.航班信息查询║\n\

║5.订票║\n\

║6.统计║\n\

║7.退出║\n\

║║\n\

║║\n\

║中国民航欢迎您!

║\n\

║║\n\

║║\n\

║║\n\

║╭───────────────────────╮║\n\

╰══┤课程设计├══╯\n\

╰───────────────────────╯\n");

printf("请选择:

");

scanf("%d",&number);

returnnumber;

}

intMaintainMenu()

{

intnumber=0;

system("cls");

printf("\

╭═══════════════╮\n\

║民航订票系统║\n\

╭══════┤中国民航欢迎您├══════╮\n\

║║║║\n\

║╰═══════════════╯║\n\

║║\n\

║1.航班信息增加║\n\

║2.航班信息修改║\n\

║3.航班信息删除║\n\

║4.退出║\n\

║║\n\

║║\n\

║中国民航欢迎您!

║\n\

║║\n\

║║\n\

║║\n\

║╭───────────────────────╮║\n\

╰══┤课程设计├══╯\n\

╰───────────────────────╯\n");

printf("请选择:

");

scanf("%d",&number);

returnnumber;

}

intQueryMenu()

{

intnumber=0;

system("cls");

printf("\

╭═══════════════╮\n\

║民航订票系统║\n\

╭══════┤中国民航欢迎您├══════╮\n\

║║║║\n\

║╰═══════════════╯║\n\

║║\n\

║1.按航班号查询║\n\

║2.按终点站查询║\n\

║3.按起飞时间查询║\n\

║4.按抵达时间查询║\n\

║5.退出║\n\

║║\n\

║║\n\

║中国民航欢迎您!

║\n\

║║\n\

║║\n\

║║\n\

║╭───────────────────────╮║\n\

╰══┤课程设计├══╯\n\

╰───────────────────────╯\n");

printf("请选择:

");

scanf("%d",&number);

returnnumber;

}

voidDeleteFlight()

{

intdele=0;

charstr[20]={0};

FlightInfo*p,*q;

FlightInfo*flight=(FlightInfo*)malloc(sizeof(FlightInfo));

flight->next=NULL;

ReadFlightInfoFile(flight);

printf("请输入要删除的航班信息:

");

scanf("%s",str);

p=flight;

while(p->next!

=NULL)

{

if(memcmp(p->next->FlightID,str,strlen(str))==0)

{

dele=1;

q=p->next;

if(q->next!

=NULL)

{

p->next=q->next;

}

free(q);

}

p=p->next;

}

p->next=NULL;

if(dele==1)

{

SaveFile(flight);

printf("删除成功!

\n");

}

else

{

printf("航班信息输入错误!

\n");

}

system("pause");

}

 

intReadFlightInfoFile(FlightInfo*flight)

{

charstr[20]={0};

intflightNO=0,i=0;

FlightInfo*q=NULL,*p=NULL;

p=flight;

printf("航班号航线起始站航线终点站起飞时间到达时间载客额定\n");

flightNO=GetPrivateProfileInt("航班数量","总数",0,"./flightInfo.txt");

for(i=0;i

{

q=(FlightInfo*)malloc(sizeof(FlightInfo));

memset(str,0,20);

sprintf(str,"航班信息%d",i+1);

GetPrivateProfileString(str,"航班号","",q->FlightID,10,"./flightInfo.txt");

GetPrivateProfileString(str,"航线起始站","",q->RouteStart,20,"./flightInfo.txt");

GetPrivateProfileString(str,"航线终点站","",q->RouteEnd,20,"./flightInfo.txt");

GetPrivateProfileString(str,"起飞时间","",q->DeparturesTime,20,"./flightInfo.txt");

GetPrivateProfileString(str,"到达时间","",q->ArrivalsTime,20,"./flightInfo.txt");

q->Loadlimit=GetPrivateProfileInt(str,"载客额定",0,"./flightInfo.txt");

printf("%-10s%-15s%-17s%-13s%-14s%d\n",q->FlightID,q->RouteStart,q->RouteEnd,q->DeparturesTime,q->ArrivalsTime,q->Loadlimit);

p->next=q;

p=q;

}

p->next=NULL;

returni;

}

voidSaveFile(FlightInfo*flight)

{

inttatol=0,i=1;

FILE*fp;

charstr[10]={0};

charflightInfo[10]={0};

FlightInfo*p;

p=flight->next;

tatol=GetPrivateProfileInt("航班数量","总数",0,"./flightInfo.txt");

fp=fopen("flightInfo.txt","w+");

fclose(fp);

itoa(tatol-1,str,10);

WritePrivateProfileString("航班数量","总数",str,"./flightInfo.txt");

while(p!

=NULL)

{

memset(flightInfo,0,10);

sprintf(flightInfo,"航班信息%d",i);

WritePrivateProfileString(flightInfo,"航班号",p->FlightID,"./flightInfo.txt");

WritePrivateProfileString(flightInfo,"航线起始站",p->RouteStart,"./flightInfo.txt");

WritePrivateProfileString(flightInfo,"航线终点站",p->RouteEnd,"./flightInfo.txt");

WritePrivateProfileString(flightInfo,"起飞时间",p->DeparturesTime,"./flightInfo.txt");

WritePrivateProfileString(flightInfo,"到达时间",p->ArrivalsTime,"./flightInfo.txt");

memset(str,0,10);

itoa(p->Loadli

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

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1