以振兴民族软件产业为己任.doc

上传人:marr****208 文档编号:155812333 上传时间:2020-12-13 格式:DOC 页数:21 大小:153.50KB
返回 下载 相关 举报
以振兴民族软件产业为己任.doc_第1页
第1页 / 共21页
以振兴民族软件产业为己任.doc_第2页
第2页 / 共21页
以振兴民族软件产业为己任.doc_第3页
第3页 / 共21页
以振兴民族软件产业为己任.doc_第4页
第4页 / 共21页
以振兴民族软件产业为己任.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《以振兴民族软件产业为己任.doc》由会员分享,可在线阅读,更多相关《以振兴民族软件产业为己任.doc(21页珍藏版)》请在金锄头文库上搜索。

1、以振兴民族软件产业为己任,作真实、正值、优秀的科技人员!林锐语数据结构课程设计论文 -微机024班 欧阳锦林、王峰、段静缘一、 设计课题:我们设计的程序有三个,分别是:航空订票系统、24点游戏、旅游交通查询系统,为了用户的方便和更能体现C语言的模块化理念,我们把三个程序放到一个系统中去实现了。二、 设计内容1、 需求分析:在完成课程设计的过程中,我们组合作为主,欧阳锦林主要负责程序设计与调试,王峰和段静缘主要负责资料收集与文档输入。设计完成后交流了各人收获与体会。(1)、航空订票系统: 通过此系统可以实现如下功能: 1) 录入航线信息每条航线信息包括航班号、飞机号、目的地、订票数、余票数共5项

2、。假设现在有3条航线, 目的地分别是北京, 上海, 广州, 飞机上可乘坐100人( 即初始订票数为0, 余票数为100) , 将这3条航线信息存入文件“airline.dat” 中。 2) 订票业务客户信息包括姓名, 航班号, 座位号(初始为0), 假设已有3个客户信息存入文件“customer.dat”中。有新客户订票时, 先输入客户的姓名和他提出的航班号, 查询该航线的订票情况, 若有余票, 则为客户办理订票手续, 分配给客户一个座位号, 然后将新客户的信息添加到文件“customer.dat”中, 并修改文件“airline.dat”中该航线的订票数和余票数。若无余票, 则输出客满信息。

3、进一步可实现如果该航班已经无票,可以提供相关可选择航班信息。 3) 退票业务根据客户提出的航班号, 办理退票, 从文件“customer.dat”中删除该客户的信息, 并修改文件“airline.dat”中相应航线的订票数和余票数。 4) 修改航班信息:当航班信息改变可以修改航班数据文件。 5) 输出全部航线信息和全部客户信息。 6) 退出系统。(2)、24点游戏:基本要求及步骤: 1) 随机产生四个1-13的数,分别代表13张牌。 2) 提示玩家输入算式。 3) 判断玩家输入的表达式是否合法,其中算式中的四个数字只能是程序所给的四个数字,非法则回到1)。 4) 如果玩家认为这四张牌算不出24

4、点(如:1,1,1,1),可只输入?,程序将判断这四张牌是否能得出24点,如果能,则程序将给出算式,如果不能,说明不能,并回到1)。 5) 当用户正确输入算式后,用“堆栈来求表达式的值”的原理 求出结果并判断是否为24,得出用户是输是赢的结果。 6) 询问用户是否继续,是则回到1),否则结束程序。(3)、旅游交通查询系统: 实现功能:火车信息查询、最短路径查询、火车信息编辑、读入修改信息、查看火车信息、查看城市信息。每个功能中又有一些小功能,如火车信息查询中有:按车次查询、按出发地与目的地查询(其中又有最快、最省钱、全部选择)中转站查询、查看火车信息,火车信息编辑又包括:添加火车信息、删除火车

5、信息、查看火车信息、保存火车信息功能。2、 概要设计:(1)、航空订票系统: 1)、抽象数据类型定义如下(C语言下的): typedef struct airlinechar line_num8;/航班号char plane_num8;/飞机号char end_place20;/目的的int total;/座位总数int left;/剩余座位struct airline *next;/下一个结点airline;typedef struct customerchar name9;/顾客名char line_num8;/航班号int seat_num;/座位号struct customer *ne

6、xt;/下一个结点customer;/*链表操作模块*/airline *init_airline(); /初始化链表customer * init_customer(); /初始化链表status insert_airline(airline *p,char *line_num,char *plane_num,char *end_place,int total,int left); /airline链表插入操作/插入航班status insert_customer(customer *p,char *name,char *line_num,int seat); /customer链表插入操作

7、status creat_airline(airline *l);/创建airline单链表status creat_customer(customer *l);/创建customer单链表/*链表操作模块*/2)、其它模块的实现函数声明如下:/*信息修改*/airline *modefy_airline(airline *l,char *line_num);/修改airline链表中的数据status delete_airline(airline *h,char *line_num);/删除航班status delete_customer(customer *h,char *line_num

8、);/删除顾客status delete_cus(customer *h,airline *l,char *name);/顾客退票status increase_air(airline *l,char *line_num,char *plane_num,char *end_place,int total);/增加航线/*信息修改*/*文件操作模块*/status save_airline(airline const *l);/保存airline.datstatus save_customer(customer const *l);/保存顾客信息 customer.dat/*文件操作模块*/in

9、t changStrInt(char *ch);/把字符串转化为整型status book(airline const *l,char *line_num,customer *c,char *name);/订票status print_airline(airline const *l);/打印航线信息status print_customer(customer const *l);/打印顾客信息status air_main();/执行函数 (2)、24点游戏: 1)抽象数据类型定义如下(C语言下的): int number24;enumeNumber = 0,/操作数eOperator =

10、1/算子;typedef struct sqlistint bol;/bol is 0 when num_ch is a number;bol is 1 when the num_ch is a opraterint num_ch;struct sqlist *next;sqlist;typedef struct sqstack int *base;int *top;int stacksize;sqstack;/*链表操作模块*/status init_sq(sqlist *l);/初始化链表status insert_sq(sqlist *p,int e,int bl); /链表插入操作/由

11、于这里要求修改外部指针,因此要用指向指针的指针/将插入到链表的末尾/*链表操作模块*/2)、其它模块的实现函数声明如下:/*用栈进行表达式计算模块*/int check(sqlist l);/保证输入的数字是给出的四个数字int chang(char *s,sqlist *l); /将用户的输入转化为单链表int Operate(int a,int theta, int b); /计算a theta bint ReturnOpOrd(char op,char* TestOp); /被char precede(char Aop, char Bop)所调用来求优先级char precede(cha

12、r Aop, char Bop); /返回优先级 status initstack(sqstack *s); /栈初始化int gettop(sqstack *s); /取栈顶元素status push(sqstack *s,int e); /把 e 压栈status pop(sqstack *s,int *e); /出栈,用e 保存int EvaluateExpression(char* MyExpression);/*链表操作模块*/int randomm();/产生四个随机数/*计算机计算模块*/int CalcOneExpress(int expression2);int Equal2

13、4(int n);int CalcArray1(int iNumInput24);/ a * b * c * d/7 numberint CalcArray2(int iNumInput24);/ (a * b) * c * d/9 numberint CalcArray3(int iNumInput24);/ (a * b * c) * d/9 numberint CalcArray4(int iNumInput24);/ (a * b * c) * d/9 numberint CalcArray5(int iNumInput24);/ (a * b) * (c * d)/11 numberint CalcArray6(int iNumInput24);/ (a * b) * c) * d/11 numberint CalcArray7(int iNumInput24);/ (a * b * c) * d/9 numberint Calc24(int number24);/括号的几种情况/1无括号/2 (a b) c d同a b (c d), 下省略

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号