您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 《C++程序设计》课程设计报告
课程设计1《C++程序设计》课程设计设计报告学号姓名指导教师题目订票系统计算机科学与技术学院年月日课程设计2目录1.需求分析……………………………………………31.1输入形式………………………………………………31.2输出形式………………………………………………31.3程序功能………………………………………………31.4测试数据………………………………………………32.概要设计……………………………………………32.1流程分析………………………………………………32.2具体步骤………………………………………………32.3功能模块………………………………………………43.详细设计………………………………………………43.1流程图…………………………………………………43.2源代码…………………………………………………54.调试分析…………………………………………144.1调试……………………………………………………204.2验与总结………………………………………………215.参考文献……………………………………………21课程设计3第一章需求分析本程序使用visualstudio2010C++语言编写,完成订票系统的录入,查询,订票,退票及增加、删除、修改航班信息。1.1输入的形式和输入值的范围输入的形式是数字、人名及编号。输入值的范围:无。1.2输出的形式输出为订票,包含姓名,座位号等。1.3程序所能达到的功能本程序编写完成后能达到订票的生成及修改,退订,查询和退出。1.4测试数据进入订票系统后,选择订票,输入姓名aaa。再根据选项依次选择进行测试。第二章概要设计2.1实现流程分析:采用类模块和文件想结合的方式实现该操作,首先定义一个airline类并将一些基本数据定义为类的共有成员,同时设置成员函数来设置数据和输出数据。2.2具体步骤订票:运用类的成员函数设置数据并写到文件中去,然后在后面的程课程设计4序中读出。退票:将文件中的数据读出,用for循环语句进行查找并修改数据查询:用for循环语句进行查找并读出,没有数据的显示错误主函数:用while语句制作菜单,用户根据需要进行选择2.3系统功能模块(1)录入(航班相关记录)功能模块(2)查询(航班相关记录)功能模块(3)订票功能模块(4)退票功能模块(4)退出系统功能模块第三章详细设计3.1流程图1订票2退票3查询4退出课程设计5开始订票开始退票按条件查询退出系统3.2源代码#includestdio.h#includestring.h#includemalloc.h#includeconio.h#defineOK1//1.避免幻数出现(幻数即诸如0,1,100之类的数字常量,因为无法从字面上看出该数字代表的意义,所以通常用宏替换,让人一看就明白其代表的意义,如ERROR错误,OK正确)#defineERROR0//2.便于修改,如果要更改ERROR或OK的定义只需修改宏定义即可,不用再在编码中寻找一个个修改。typedefstructairline{charair_num[8];课程设计6charplane_num[8];charend_place[20];inttotal;intleft;structairline*next;}airline;typedefstructcustomer{charname[8];charair_num[8];intseat_num;structcustomer*next;}customer;airline*start_air(){airline*a;课程设计7a=(airline*)malloc(sizeof(airline));if(a==NULL)a-next=NULL;returna;}customer*start_cus(){customer*c;c=(customer*)malloc(sizeof(customer));if(c==NULL)c-next=NULL;returnc;}airline*modefy_airline(airline*l,char*air_num){课程设计8airline*p;p=l-next;for(;p!=NULL;p=p-next){if(strcmp(air_num,p-air_num)==0){p-left++;returnl;}printf(没有这趟航班!);return0;}}intinsert_air(airline**p,char*air_num,char*plane_num,char*end_place,inttotal,intleft){课程设计9airline*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-left=left;q-next=NULL;(*p)-next=q;(*p)=(*p)-next;returnOK;}intinsert_cus(customer**p,char*name,char*air_num,intseat_num){customer*q;课程设计10q=(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;returnOK;}intbook(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){}课程设计11for(;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--;returnOK;}else{printf(座位已满);return0;}}课程设计12}intdel_cus(customer*c,airline*l,char*name){customer*p,*pr;charair_num[8];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;课程设计13printf(完成!);returnOK;}pr=pr-next;p=pr-next;}printf(NOthecustomer!);returnERROR;}intsearch_air(airline*head){airline*p=head-next;printf(air_numplane_numend_placetotalleft\n);for(;p!=NULL;p=p-next){课程设计14printf(%s%-10s%-8s%-8d%-8d\n,p-air_num,p-plane_num,p-end_place,p-total,p-left);}returnOK;}intsearch_cus(customer*head){structcustomer*q=head-next;printf(nameair_numseat_num\n);for(;q!=NULL;q=q-next){printf(%-8s%-12s%-d\n,q-name,q-air_num,q-seat_num);}returnOK;}课程设计15intcreat_air(airline**l){airline*p=*l;inti=0;char*air_num[3]={航班1,航班2,航班3};char*plane_num[3]={plane1,plane2,plane3};char*end_place[3]={北京,上海,天津};inttotal[3]={100,100,100};intleft[3]={52,54,76};for(i=0;i3;i++)insert_air(&p,air_num[i],plane_num[i],end_place[i],total[i],left[i]);returnOK;}intcreat_cus(customer**l)课程设计16{customer*p=*l;inti=0;char*name[3]={张三,李四,王五};char*air_num[3]={航班1,航班2,航班3};intseat_num[3]={2,5,7};for(i=0;i3;i++)insert_cus(&p,name[i],air_num[i],seat_num[i]);returnOK;}voidmain(){intt=1;customer*cus=start_cus();airline*air=start_air();课程设计17charname[8],air_num[8],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')课程设计18{printf(Pleaseinputaairlinenumber:);scanf(%s,air_num);printf(请输入您的名字:);scanf(%s,name);book(air,air_num,cus,name);}elseif(ch=='2'){printf(Pleaseinputthecancelname:);scanf(%s,name);del_cus(cus,air,name);}else课程设计19if(ch=='3'){search_air(air);printf(\n);search_cus(cus);}elseif(ch=='4'){t=0;}}}第四章调试分析课程设计204.1调试进入界面:选择功能1:选择功能2:课程设计21选择功能3:4.2经验与总结通过本次课程设计,我认识到了自己的不足。对平时所学内容局限于老师讲的例子,不思举一反三,不思融会贯通,所以在需要多个内容课程设计时感到束手无策,手足无措。在上网查找了有关资料之后,自己也慢慢有了一点想法,根据课程设计的内容要求一项一项完成。C++语言的进步让我深刻的感受到任何所学的知识都需要实践,没有实践就无法真正理解这些知识以及掌握它们,使其成为自己的财富。第六章参考文献[1]谭浩强《C++程序设计》北京:清华大学出版社,2004.6[2]谭浩强《C++程序设计题解与上机指导》北京:清华大学出版社,2005.3[3]CSDN
本文标题:《C++程序设计》课程设计报告
链接地址:https://www.777doc.com/doc-3750632 .html