《程序设计基础》课程设计报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《程序设计基础》课程设计报告

一、订票系统

【需求分析】

本订票系统要能够实现航班情况的录入功能、航班的查询功能、订票功能、退票功能以及管理本系统的功能即能够修改航班信息。

具体分析如下:

1、录入功能

可以录入航班信息,如录入航班号,到达城市,起飞时间,飞机票数。

2、查询功能

可以查询航班的各项信息,如可以查询时间,起飞抵达城市,确定航班是否满仓,航班号。

3、订票功能

可以订票,所订航班的航班号以及所订的票数。

4、退票功能

可以退票。

5、修改功能

可以根据需要由管理员对航班信息进行修改更正。

【概要设计】

1、算法设计:每个模块的算法设计说明如下:

(1)录入模块:

在数组允许范围内,将无意义的“0”数据修改为有意义的信息。

(2)查询模块:

提供四种查方式:按航号、按时间和按终点站查询,1代表按航号查询,2代表按终点站查询,3 代表按时间查询,4 浏览全部。0则表示退出查询。

按数组查找,如果与航班号(航线)一致,输出相关信息,否则,查询不成功。

(3)订票模块:

查找乘客要订的航班号,判断此航班是否有空位,有则输入订票数,订票数小于剩余票数,订票成功,否则失败。

(4)退票模块:

输入要退票的座位号,查找乘客资料的链表中是否有这位乘客,有则用下一行数组覆盖该行,循环到最后不为“0”的行数或到最大航班号,并在空位加上1,无则退票失败。

(5)修改模块:

在航班信息数组中查找要修改的数据,进行修改,否则不能修改。

2.存储结构设计:

航班的信息:为了便于查找和修改,航班的情况存储结构采用数组,每个元素表示一个航班的情况,包括序号、航班号、时间、终点站、票数以及剩余票数六个数据项:

数据结构

C语言描述如下:

struct flightstruct

{

char flightnumber[20];//航班号

char finishingline[20];//终点站

char date[20]; //日期

unsigned maxamount;//总票数

unsigned remainders;//剩余票数

unsigned seatstate[SEATAMOUNT];//座位数组,贮存座位信息}flight[FLIGHTAMOUNT];

【详细设计】

本系统源程序如下:

#include

#include

#include

#define FLIGHTAMOUNT 200//最大航班数

#define SEATAMOUNT 500//最大座位数

struct flightstruct

{

char flightnumber[20];//航班号

char finishingline[20];//终点站

char date[20]; //日期

unsigned maxamount;//总票数

unsigned remainders;//剩余票数

unsigned seatstate[SEA TAMOUNT];//座位数组,贮存座位信息}flight[FLIGHTAMOUNT];

void open(FILE *fp);//打开文件函数

void save(FILE *fp);//保存信息函数

void built(FILE *fp);//建立文件函数

void manage();//输入、管理信息函数

void insert(FILE *fp);//插入信息函数

void remend(FILE *fp);//修改信息函数

void delet(FILE *fp);//删除信息函数

void delet_all(FILE *fp);//删除所有信息函数

void scan();//浏览信息函数

void select();//查询信息函数

void booktickets();//订票函数

void print_info(unsigned);//输出打印信息函数

void sendbacktickets();//退票函数

int main()

{

int times;//用于控制输入密码次数

char flag;//提供选择菜单的变量

char password[20];//用于存贮密码

printf("\n-->飞机订票系统\n");

times=3;

//验证密码。三次错误后,就自动退出程序。

do

{

times--;

printf("请输入密码:");

scanf("%s",password);

if(strcmp(password,"2009")==0)

{

times=-1;

break;

}

else if(times>0)

printf(" 密码错误!\n 剩余%d 次机会!\n",times);

}while(times>0);

if(times!=-1)

{

printf(" 对不起!\n 您不是管理员! 不能使用此系统!\n");

return 0;

}

//主菜单

do

{

printf("\n\t************************飞机订票系统****************************\n");

printf("\n\t---------------------------主菜单-------------------------------\n");

printf("\t**************-1--信息管理信息浏览--2-****************\n");

printf("\t**************-3--信息查询订票系统--4-****************\n");

printf("\t**************-5--退票系统退出--0-****************\n");

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

相关文档
最新文档