任务书.docx

上传人:b****0 文档编号:17300867 上传时间:2023-07-23 格式:DOCX 页数:29 大小:95.73KB
下载 相关 举报
任务书.docx_第1页
第1页 / 共29页
任务书.docx_第2页
第2页 / 共29页
任务书.docx_第3页
第3页 / 共29页
任务书.docx_第4页
第4页 / 共29页
任务书.docx_第5页
第5页 / 共29页
任务书.docx_第6页
第6页 / 共29页
任务书.docx_第7页
第7页 / 共29页
任务书.docx_第8页
第8页 / 共29页
任务书.docx_第9页
第9页 / 共29页
任务书.docx_第10页
第10页 / 共29页
任务书.docx_第11页
第11页 / 共29页
任务书.docx_第12页
第12页 / 共29页
任务书.docx_第13页
第13页 / 共29页
任务书.docx_第14页
第14页 / 共29页
任务书.docx_第15页
第15页 / 共29页
任务书.docx_第16页
第16页 / 共29页
任务书.docx_第17页
第17页 / 共29页
任务书.docx_第18页
第18页 / 共29页
任务书.docx_第19页
第19页 / 共29页
任务书.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

任务书.docx

《任务书.docx》由会员分享,可在线阅读,更多相关《任务书.docx(29页珍藏版)》请在冰点文库上搜索。

任务书.docx

任务书

课程设计报告

课程名称C语言程序设计

课题名称飞机订票系统

专业计算机科学与技术

班级0901

学号

姓名

指导教师李珍辉邓作杰郭芳

2010年7月10日

湖南工程学院

课程设计任务书

 

课程名称C语言程序设计

课题飞机订票系统

 

专业班级计算机科学与技术

学生姓名

学号

指导老师李珍辉邓作杰郭芳

审批

 

任务书下达日期2010年6月10日

任务完成日期2010年7月11日

一、设计内容与设计要求

1.设计内容

1)问题描述:

假设某航空公司只有M架N个座位的飞机,每架飞机每天飞行一趟。

通过该系统来实现机票的订购问题。

2)功能要求:

1、本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:

起飞地、目的地、航班号、座次号码、座次订出与否标记、订座者的姓名和订座者的身份证号码。

2、本系统显示这样的菜单:

(1)输入航班信息

(2)输出航班信息

(3)查找航班信息

a.显示空座的数量

b.显示空座的信息

c.显示已订座的信息

d.起飞时间

(4)订票预约

(5)删除订票预约

(6)退出系统

1、本系统成功执行菜单的每个信息,选项4)和5)将要求额外的输入,并且它们都允许用户收回其输入。

2、查找航班信息既可按线路查,也可按目的地查。

4、在两次运行之间,数据被保存于一个文件里,当本程序重新开

始的时候,它首先从该文件读入数据

3)算法提示:

1、数据结构:

结构体类型数组

2、数据库结构:

下表构成该系统的基本数据库

航班号

起飞时间

起飞地

目的地

座次号

座次订出与否的标记

订票者姓名

订票者身份证号码

int

char

char

Char

int

char

char

char

 

4)测试数据:

航班M4.

座位N100.

5)其它:

对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其它功能。

根据自己对应的课题完成以下主要工作:

①完成系统需求分析:

包括系统设计目的与意义;系统功能需求;输入输出的要求。

②完成系统概要设计:

程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系;每个模块的功能;课题涉及的数据结构和数据库结构;即要存储什么数据,这些数据是什么样的结构,它们之间有什么关系等。

③完成系统详细设计:

包括采用C语言定义相关的数据类型;写出各模块的类C码算法;画出函数的调用关系图。

④调试分析、设计体会、测试数据:

准备典型的测试数据和测试方案,包括正确的输入及输出结果和含有错误的输入及输出结果;程序调试中遇到的问题以及解决问题的方法;课程设计过程经验教训、心得体会。

2.设计要求

1).设计正确,方案合理。

2).界面友好,使用方便。

3).程序精炼,结构清晰。

4).设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。

5).上机演示。

二、进度安排

第19周星期一上午课题讲解查阅资料

星期二下午系统需求分析、总体设计

星期三上午详细设计

星期三下午系统调试

星期四上午答辩

目录

 

一、需求分析7

1、程序的功能7

2、输入输出的要求7

二、概要设计8

三、详细设计8

1、数据类型8

2、模块分析9

3、函数的调用关系10

四、调试分析以及设计体会10

1、测试数据10

2、调试分析10

3、心得体会10

五、使用说明10

六、附录11

1、参考书目11

2、源程序清单(带注释)11

七、计算机科学与技术系课程设计评分表37

一、需求分析

1、程序的功能

这个程序的主要功能是对航班的基本信息和具体信息的查询(包括航班号,起飞时间,起飞地点,目的地,订票客户的姓名,身份证号还有座位号等),自动查询航班票是否已售完,还有航班的预订和取消预订功能,做完每次选项都会自动返回主菜单。

2、输入输出的要求

本程序要求输入订票客户,姓名(字符型),身份证(字符型),航班(整型),起飞地(字符型),目的地(字符型),系统自动给客户分配,空座位(整型)起飞时间(字符型),。

该程序会输出每一个输入的订票客户的信息,并返回主菜单,直到退出程序。

输入时类型一定要正确。

 

二、概要设计

1、

 

2、需要存取的数据有:

航班号(整型),航班起飞的时间(字符型)地点(字符型)和目的地(字符型),还有订票客户的姓名(字符型),身份证号(字符型),航班号(整型)和座位号(整型),他们之间用结构体结合起来。

三、详细设计

1、数据类型

采用C语言定义相关的数据类型。

 

2、模块分析

主菜单

1航班基本信息查询

 

2.航班

具体信息查询

 

3.预约

订票

 

4.取消

预约

 

5.退出

系统

输入航班号

1.按航班查询

2按路线查询

3按目的地查询

1.是

2.

输入错误

1.

2

输入错误

退出

系统

显示信息

输入航班

输入起飞地和目的地

输入目的地

输入航班

退出系统

重新输入

再预订

再预定

重新输入

返回主菜单

显示信息

显示信息

显示信息

输入姓名身份证

取消

预订

不预订

预订

返回主菜单

返回主菜单

返回主菜单

1取消

2不取消

返回主菜单

…………

返回主菜单那

…………

再预定

再预订

取消

预订

不预定

预定

返回主菜单

…………

返回主菜单

…………

3、函数的调用关系

↗取消预约函数

主函数↘订票函数→再次预约函数→取消预约函数→再次预约函数(循环)

↘保存文件函数

↘查看文件函数

四、调试分析以及设计体会

1、测试数据

航班输入(646,747,848,949),订票:

预约-取消-不再预约,预约-取消-再预约-不再预定第二张,预约-再预约一张-取消第二张-不再预约。

预约-预约第二张-预约第三张。

2、调试分析

缺分号,缺花括号,语法错误,函数调用错误,未定义,未赋值,死循环等等。

3、心得体会

这次的课程设计给我很大的震撼,这是之前从来没接触的的领域,最初困难重重,混乱,没有一点思路,但是我知道这是一次挑战,因此硬是狠下心,全身心的投入,不断的编写,不断的调试,发现错误就改正,实在不懂就请教高手,直到把问题解决掉,当运行成功是,前所未有的轻松扑面而来,舒服,后来就剩下程序的优化了,把程序设计的更合理化,直到功能完善,界面优美。

五、使用说明

用户使用手册:

进入界面之后请按照菜单显示的去做,必须按跪着输入,否则出错,要求输入数字就是数字,输入字符就只能是字符,不可交叉输入。

如:

在菜单界面让你输入相应的数字,以实现相应的功能查询,吃食只能输入1~5的数字,不可输入字符等其他类型的字符。

六、附录

1、参考书目

C程序设计

2、源程序清单(带注释)

#include"stdio.h"

#include"conio.h"

#include"string.h"

#include"stdlib.h"

#defineM4

#defineN100

inti,j;

structnumber//*座位结构体*//

{

intnum;

charflag[30];

charname[30];

charcard[30];

}zuo[N];

structhangban//*航班机构体*//

{

inthang;

charqifei[30];

charmudi[30];

chartime[30];

structnumberzuo[N];//*潜嵌套使用结构体*//

}han[M];

voidmain()//*主函数*//

{

intb=0,g,s=0,t,a,T=0,h;

charc[30],d[30],e[30];

charw[30]="有";//*已订票*//

charo[30]="否";//*未订票*//

voiddingpiao();//*订票函数*//

voidquxiao();//*取消预订函数*//

voidzeng();//*增加航班函数*//

voidsan();//*删除航班函数*//

for(i=0;i

{

s=1;

for(j=0;j

{

han[i].zuo[j].num=s;

s++;//*给每个航班每个座位赋初值*//

strcpy(han[i].zuo[j].flag,o);//*座位未售出赋空值*//

strcpy(han[i].zuo[j].name,"无");//*订票客户名字赋空值*//

strcpy(han[i].zuo[j].card,"无");//*订票客户身份证号赋空值*//

}

}

//*以下为航班号的初赋值*//

han[0].hang=747;

han[1].hang=848;

han[2].hang=949;

han[3].hang=646;

//*以下为起飞地的初赋值*//

strcpy(han[0].qifei,"长沙");

strcpy(han[1].qifei,"北京");

strcpy(han[2].qifei,"南京");

strcpy(han[3].qifei,"重庆");

//*以下为目的地的初赋值*//

strcpy(han[0].mudi,"上海");

strcpy(han[1].mudi,"广州");

strcpy(han[2].mudi,"南宁");

strcpy(han[3].mudi,"武汉");

//*以下为起飞时间的初赋值*//

strcpy(han[0].time,"7:

30");

strcpy(han[1].time,"8:

00");

strcpy(han[2].time,"8:

30");

strcpy(han[3].time,"9:

00");

//*菜单*//

loop:

printf("*******************欢迎进入航班查询系统*********************\n\n\n");

printf("|1.输入航班查询.|\n");

printf("|2.航班具体信息查询.|\n");

printf("|3.订票预约.|\n");

printf("|4.取消预约.|\n");

printf("|5.增加或删除航班.(次选项为航空公司专用)|\n");

printf("|6.退出系统.|\n\n\n");

printf("*************************谢谢使用***************************\n\n\n");

printf("请输入对应的选项数字\n");

scanf("%d",&h);

switch(h)

{

case1:

system("cls");//*刷屏*//

printf("请输入航班号(646/747/848/949)__");//*航班信息查询*//

scanf("%d",&a);

for(i=0;i

if(han[i].hang==a)

printf("航班号:

%d\n起飞地:

%s\n目的地:

%s\n起飞时间:

%s\n",han[i].hang,han[i].qifei,han[i].mudi,han[i].time);

gotoloop;

case2:

system("cls");/*刷屏*/

printf("*****************查找航班具体信息********************\n\n\n");

printf("|1.按航班查询。

|\n");

printf("|2.按线路查询。

|\n");

printf("|3.按目的地查询。

|\n\n\n");

printf("**********************************************************\n");

printf("请输入查询方式的代表数字:

\n");

scanf("%d",&g);

switch(g)

{

case1:

system("cls");

printf("------按航班查询------\n");

printf("请输入航班号(646/747/848/949)__");

scanf("%d",&a);

for(i=0;i

if(han[i].hang==a)

{

for(j=0;j

if(strcmp(han[i].zuo[j].flag,o)==0)

b++;//*空座位统计*//

}

printf("空座位的数量为:

");

printf("%d\n",b);

printf("\n");

for(i=0;i

if(han[i].hang==a)

{

printf("航班起飞时间为:

%s\n",han[i].time);

printf("\n");

printf("空座位的信息为:

\n");

printf("\n");

for(j=0;j

if(strcmp(han[i].zuo[j].flag,o)==0)

printf("航班号:

%d起飞地:

%s目的地:

%s起飞时间:

%s座位号:

%d\n",han[i].hang,han[i].qifei,han[i].mudi,han[i].time,han[i].zuo[j].num);

}

printf("\n");

for(i=0;i

if(han[i].hang==a)

for(j=0;j

if(strcmp(han[i].zuo[j].flag,w)==0)

T++;//*检查票是否已售完*//

if(T!

=0)

{

for(i=0;i

if(han[i].hang==a)

{

printf("已订座位的信息为:

\n");

printf("\n");

for(j=0;j

if(strcmp(han[i].zuo[j].flag,w)==0)

printf("航班号:

%d起飞地:

%s目的地:

%s起飞时间:

%s座位号:

%d姓名:

%s身份证号码:

%s\n",han[i].hang,han[i].qifei,han[i].mudi,han[i].time,han[i].zuo[j].num,han[i].zuo[j].name,han[i].zuo[j].card);

}

}

break;

case2:

system("cls");//*刷屏*//

printf("------按线路查询------\n");

printf("长沙-上海\n");

printf("北京-广州\n");

printf("南京-南宁\n");

printf("重庆-武汉\n");

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

printf("请输入起飞地点:

");

scanf("%s",c);

printf("请输入目的地:

");

scanf("%s",d);

for(i=0;i

if(strcmp(c,han[i].qifei)==0&&strcmp(d,han[i].mudi)==0)

{

for(j=0;j

if(strcmp(han[i].zuo[j].flag,o)==0)

b++;//*空座位数统计*//

}

printf("空座位的数量为:

");

printf("%d\n",b);

printf("\n");

for(i=0;i

if(han[i].hang==a)

{

printf("航班起飞时间为:

%s\n",han[i].time);

printf("\n");

printf("空座位的信息为:

\n");

printf("\n");

for(j=0;j

if(strcmp(han[i].zuo[j].flag,o)==0)

printf("航班号:

%d起飞地:

%s目的地:

%s起飞时间:

%s座位号:

%d\n",han[i].hang,han[i].qifei,han[i].mudi,han[i].time,han[i].zuo[j].num);

}

printf("\n");

for(i=0;i

if(han[i].hang==a)

for(j=0;j

if(strcmp(han[i].zuo[j].flag,w)==0)

T++;//*检查票是否已售完*//

if(T!

=0)

{

for(i=0;i

if(han[i].hang==a)

{

printf("已订座位的信息为:

\n");

printf("\n");

for(j=0;j

if(strcmp(han[i].zuo[j].flag,w)==0)

printf("航班号:

%d起飞地:

%s目的地:

%s起飞时间:

%s座位号:

%d姓名:

%s身份证号码:

%s\n",han[i].hang,han[i].qifei,han[i].mudi,han[i].time,han[i].zuo[j].num,han[i].zuo[j].name,han[i].zuo[j].card);

}

}

break;

case3:

system("cls");

printf("------按目的地查询------\n");

printf("上海\n");

printf("广州\n");

printf("南宁\n");

printf("武汉\n");

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

printf("请输入目的地:

");

scanf("%s",e);

for(i=0;i

if(strcmp(han[i].mudi,e)==0)

{

for(j=0;j

if(strcmp(han[i].zuo[j].flag,o)==0)

b++;//*空座位数统计*//

}

printf("空座位的数量为:

");

printf("%d\n",b);

printf("\n");

for(i=0;i

if(strcmp(han[i].mudi,e)==0)

{

printf("航班起飞时间为:

%s\n",han[i].time);

printf("\n");

printf("空座位的信息为:

\n");

printf("\n");

for(j=0;j

if(strcmp(han[i].zuo[j].flag,o)==0)

printf("航班号:

%d起飞地:

%s目的地:

%s起飞时间:

%s座位号:

%d\n",han[i].hang,han[i].qifei,han[i].mudi,han[i].time,han[i].zuo[j].num);

}

printf("\n");

for(i=0;i

if(han[i].hang==a)

for(j=0;j

if(strcmp(han[i].zuo[j].flag,w)==0)

T++;//*检查票是否已售完*//

if(T!

=0)

{

for(i=0;i

if(han[i].hang==a)

{

printf("已订座位的信息为:

\n");

printf("\n");

for(j=0;j

if(strcmp(han[i].zuo[j].flag,w)==0)

printf("航班号:

%d起飞地:

%s目的地:

%s起飞时间:

%s座位号:

%d姓名:

%s身份证号码:

%s\n",han[i].hang,han[i].qifei,han[i].mudi,han[i].time,han[i].zuo[j].num,han[i].zuo[j].name,han[i].zuo[j].card);

}

}

break;

}

gotoloop;

case3:

system("cls");//*刷屏*//

printf("****************订票预约***********************\n");

printf("是否定票:

1.是.\n");

printf("2.否.\n");

printf("输入对应的数字:

");

scanf("%d",&t);

switch(t)

{

case1:

system("cls");//*刷屏*//

printf("欢迎订票,下面请填入你的具体信息\n");

dingpiao();//*调用订票函数*//

break;

case2:

printf("谢谢使用,再见。

\n");break;

}

gotoloop;

case4:

system("cls");

quxiao();//*调用取消预约函数*//

gotoloop;

case5:

system("cls");

J=666666;

print

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

当前位置:首页 > 人文社科 > 广告传媒

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

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