《《C++程序设计》课程设计报告.doc》由会员分享,可在线阅读,更多相关《《C++程序设计》课程设计报告.doc(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C+程序设计课程设计设计报告学号姓名指导教师题 目订票系统计算机科学与技术学院年月日目录1. 需求分析3 1.1输入形式3 1.2输出形式3 1.3程序功能3 1.4测试数据32. 概要设计3 2.1流程分析3 2.2具体步骤3 2.3功能模块43. 详细设计4 3.1流程图4 3.2源代码54. 调试分析 14 4.1调试20 4.2验与总结215.参考文献21第一章 需求分析本程序使用visual studio 2010 C+语言编写,完成订票系统的录入,查询,订票,退票及增加、删除、修改航班信息。1.1 输入的形式和输入值的范围输入的形式是数字、人名及编号。 输入值的范围:无。1.2输出
2、的形式输出为订票,包含姓名,座位号等。1.3程序所能达到的功能本程序编写完成后能达到订票的生成及修改,退订,查询和退出。1.4测试数据进入订票系统后,选择订票,输入姓名aaa。再根据选项依次选择进行测试。第二章 概要设计2.1 实现流程分析:采用类模块和文件想结合的方式实现该操作,首先定义一个airline类并将一些基本数据定义为类的共有成员,同时设置成员函数来设置数据和输出数据。2.2具体步骤订票:运用类的成员函数设置数据并写到文件中去,然后在后面的程序中读出。 退票:将文件中的数据读出,用for循环语句进行查找并修改数据查询:用for循环语句进行查找并读出,没有数据的显示错误主函数:用wh
3、ile语句制作菜单,用户根据需要进行选择2.3系统功能模块(1)录入(航班相关记录)功能模块(2)查询(航班相关记录)功能模块(3)订票功能模块(4)退票功能模块(4)退出系统功能模块第三章 详细设计1订票2退票3查询4 退出3.1流程图开始订票开始退票按条件查询退出系统3.2 源代码#include #include #include #include conio.h#define OK 1 /1.避免幻数出现(幻数即诸如0,1,100之类的数字常量,因为无法从字面上看出该数字代表的意义,所以通常用宏替换,让人一看就明白其代表的意义,如ERROR错误,OK正确) #define ERROR
4、0 /2.便于修改,如果要更改ERROR或OK的定义只需修改宏定义即可,不用再在编码中寻找一个个修改。typedef struct airline char air_num8; char plane_num8; char end_place20; int total; int left; struct airline *next;airline;typedef struct customer char name8; char air_num8; int seat_num; struct customer *next;customer;airline *start_air() airline *
5、a; a=(airline*)malloc(sizeof(airline); if(a=NULL) a-next=NULL; return a;customer *start_cus() customer *c; c=(customer*)malloc(sizeof(customer); if(c=NULL) c-next=NULL; return c;airline *modefy_airline(airline *l,char *air_num) airline *p; p=l-next; for(;p!=NULL;p=p-next) if(strcmp(air_num,p-air_num
6、)=0) p-left+; return l; printf(没有这趟航班!); return 0; int insert_air(airline *p,char *air_num,char *plane_num,char *end_place,int total,int left) airline *q; q=(airline*)malloc(sizeof(airline); strcpy(q-air_num,air_num); strcpy(q-plane_num,plane_num); strcpy(q-end_place,end_place); q-total=total; q-lef
7、t=left; q-next=NULL; (*p)-next=q; (*p)=(*p)-next; return OK; int insert_cus(customer *p,char *name,char *air_num,int seat_num) customer *q; q=(customer*)malloc(sizeof(customer); strcpy(q-name,name); strcpy(q-air_num,air_num); q-seat_num=seat_num; q-next=NULL; (*p)-next=q; (*p)=(*p)-next; return OK;i
8、nt book(airline *a,char *air_num,customer *c,char *name) airline *p=a; customer *q=c-next; p=a-next; for(;q-next!=NULL;q=q-next) for(;p-next!=NULL;p=p-next) if(p-left0) printf(您的座位号是:%d,(p-total-p-left+1); insert_cus(&q,name,air_num,p-total-p-left+1); p-left-; return OK; else printf(座位已满); return 0;
9、 int del_cus(customer *c,airline *l,char *name) customer *p,*pr; char air_num8; pr=c; p=pr-next; while(p!=NULL) if(strcmp(p-name,name)=0) strcpy(air_num,p-air_num); l=modefy_airline(l,air_num); pr-next=p-next; p=pr-next; printf(完成!); return OK; pr=pr-next; p=pr-next; printf(NO the customer!); return
10、 ERROR;int search_air(airline *head) airline *p=head-next; printf(air_num plane_num end_place total leftn); for(;p!=NULL;p=p-next) printf(%s %-10s %-8s %-8d%-8dn,p-air_num,p-plane_num,p-end_place,p-total,p-left); return OK;int search_cus(customer *head) struct customer *q=head-next; printf(name air_
11、num seat_numn); for(;q!=NULL;q=q-next) printf(%-8s%-12s%-dn,q-name,q-air_num,q-seat_num); return OK;int creat_air(airline *l) airline *p=*l; int i=0; char *air_num3=航班1,航班2,航班3; char *plane_num3=plane1,plane2,plane3; char *end_place3=北京,上海,天津; int total3=100,100,100; int left3=52,54,76; for(i=0;i3;i
12、+) insert_air(&p,air_numi,plane_numi,end_placei,totali,lefti); return OK;int creat_cus(customer *l) customer *p=*l; int i=0; char *name3=张三,李四,王五; char *air_num3=航班1,航班2,航班3; int seat_num3=2,5,7; for(i=0;i3;i+) insert_cus(&p,namei,air_numi,seat_numi); return OK;void main() int t=1; customer *cus=sta
13、rt_cus(); airline *air=start_air(); char name8,air_num8,ch; creat_air(&air); creat_cus(&cus); while(t=1) printf(n); printf(*n); printf(* 欢迎来到订票系统! *n); printf(* 订票-1 *n); printf(* 退票-2 *n); printf(* 查询-3 *n); printf(* 退出-4 *n); printf(*n); ch=getch(); if(ch=1) printf(Please input a airline number:);
14、 scanf(%s,air_num); printf(请输入您的名字:); scanf(%s,name); book(air,air_num,cus,name); else if(ch=2) printf(Please input the cancel name:); scanf(%s,name); del_cus(cus,air,name); else if(ch=3) search_air(air); printf(n); search_cus(cus); else if(ch=4) t=0; 第四章 调试分析41调试进入界面:选择功能1:选择功能2:选择功能3:4.2经验与总结通过本次课程设计,我认识到了自己的不足。对平时所学内容局限于老师讲的例子,不思举一反三,不思融会贯通,所以在需要多个内容课程设计时感到束手无策,手足无措。在上网查找了有关资料之后,自己也慢慢有了一点想法,根据课程设计的内容要求一项一项完成。 C+语言的进步让我深刻的感受到任何所学的知识都需要实践,没有实践就无法真正理解这些知识以及掌握它们,使其成为自己的财富。第六章 参考文献1谭浩强 C+程序设计 北京:清华大学出版社,2004.62谭浩强 C+程序设计题解与上机指导 北京:清华大学出版社,2005.33CSDN