1、该论文是本团队为同学做过的案例 需要完整程序源代码,答辩PPT或者更多毕业论文联系799523222基于C+民航售票管理系统的设计和实现学 生 姓 名:学 号:专 业 名 称:班 级:指导教师姓名:系 (部):职 称:程序设计基础课程设计任务书一、题目:民航售票系统二、设计要求(1)两人或三人组成课程设计小组.(2)小组成员分工协作完成.要求每个成员有自己相对独立的模块,同时要了解其他组员完成的内容.(3)查阅相关资料,自学具体课题中涉及到的新知识.(4)采用结构化、模块化程序设计方法设计,功能要完善,界面美观。(5)按要求写出课程设计报告,并于设计结束后1周内提交。其主要内容包括:封皮、课程
2、设计任务书,指导教师评语与成绩、目录、概述、软件需求分析、总体设计、详细设计、程序的调试与测试、总结与体会、结束语、程序清单(带中文注释)、参考文献等。报告一律用A4纸打印,正文的中文字体为宋体,西文字体用Time New Roma,一律用小四号字,行距采用“固定值18磅,首行缩进2字符。1级标题中文字体为黑体,西文字体为Time New Roma,采用三号字;段落为居中、段前18磅、段后12磅、行距采用“固定值”18磅,首行缩进:无,段中不分页,与下段同页.仅一级标题上目录。三、课程设计工作量由于是设计小组团结协作完成设计任务,一般每组独立完成的程序量在400行有效程序行以上,不得抄袭.四、
3、课程设计工作计划2008年6月16日,指导教师讲课,学生根据题目准备资料,需求分析;2008年6月17日,设计小组进行总体方案设计和任务分工;2008年6月18日2008年6月24日,每人完成自己承担的程序模块并通过独立编译;2008年6月25日,将各模块集成为一个完整的系统,并录入足够的数据进行调试运行;2008年6月26日2008年6月27日,验收、开始撰写课程设计报告;2008年7月4日前,提交课程设计报告和软件. 指导教师签章: 教研室主任签章面向对象程序设计课程设计指导教师评语与成绩指导教师评语:课程设计表现成绩:课程设计验收成绩:课程设计报告成绩:课程设计总成绩: 指导教师签章 2
4、008年 7月 日目 录一概述6二总体方案设计7三详细设计8四程序的调试与运行结果说明13五课程设计总结15六后记15七附录16参考文献73一 概述1. 课程设计的目的1使学生更深入地理解和掌握该课程中的有关基本概念,程序设计思想和方法。2培养学生综合运用所学知识独立完成课题的能力。3培养学生勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。4提高学生对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。5培养学生从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力.6对学生掌
5、握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核。7。这个程序是对编程基本功的一个训练,对于初学C+语言的人,将分支、循环、数组、函数综合应用,而不仅限于编制独立的小程序,能够大大提高编程水平。2. 课程设计的要求要求掌握C+语言程序设计的基本理论知识和熟练运用C+语言基本知识,熟悉C+语言的编程、编译、调试和运行过程,了解模块各部分的理论知识并能熟练的运用.同时查找并参照其他书籍对程序设计进行创新,运行环境美化。3. 课程设计的主要设计思想我们这个小组设计了民航售票系统,用了一个主函数和两个类和自定义函数,在这个程序里,主要用到了C+语言课程中学到的
6、类,文件等。我们设计的系统主要包含以下功能:1. 用户登录界面(包括管理员和用户)2. 管理员操作界面(功能:对航班的添加,删除,对用户信息的修改,注销和退出)5。 用户操作界面(功能:对个人信息的查询,修改密码,订票,退票,用户注销和退出)二 总体方案设计民航售票系统是一个方便顾客查询航班,订票,退票的系统.实现了民航售票系统的基本功能。功能的模块化设计,方便对其系统的完善,提高了程序的可读性.算法的整体思路:运用switch语句实现菜单式选择,每种选择调用其相应函数实现其功能。整体框图管理员登录用户登录用户注册民航售票系统查询航班订票退票注销修改密码注销修改用户ID修改用户密码删除用户添加
7、删除航班三 详细设计以下是我承担的设计工作。下面是我负责的模块的代码和UML图/用户注册/void people:zhuce()char key120,r_name20,q_name20;int k;system(”cls”);/清屏cout 用户注册n;coutnnn”;sisi:cout” 请输入用户名:”;cinr_name;strcpy(q_name,r_name);strcat(r_name,txt);ifstream www(r_name);www.close();if(www) cout” 该用户已存在,请重新输入用户名!n”;goto sisi;else strcpy(name
8、,q_name);cout 请输入密码:”; for(int i = 0;i 10; i+) key1i = getch(); if(key1i = r) key1i=0; break; if(key1i = b) cout”b b”; else cout”flush;/星号密码coutn 请再次输入密码”; for(int j = 0;j 10; j+) keyj = getch(); if(keyj = r) keyj=0; break; if(keyj = b) coutb b”; else cout”flush;while(strcmp(key1,key)cout”n 两次密码输入不同
9、!n”;cout” 请输入密码:; for(int i = 0;i 10; i+) key1i = getch(); if(key1i = r) key1i=0; break; if(key1i = b) cout”b b”; else cout”flush; cout”n 请再次输入密码”; for(int j = 0;j 10; j+) keyj = getch(); if(keyj = r) keyj=0; break; if(keyj = b) coutb b; else cout”id;if(strlen(id)=18)k=0;else k=1;while(k)cout”n 身份证号
10、错误!!!n”;coutid;if(strlen(id)=18)k=0;strcpy(fly_id,”nobook);ofstream pfile(r_name);pfilename id” ”key” fly_idendl;pfile.close();system(”cls”);/清屏cout”nnnnnnnn 注册成功!;cout +people_list():voidflyfly_num10:char-first10:char-f_time10:charlast10:charl_time10:char-num:intsheng:int+addfly():void+delfy():void
11、+administ():void+delpeople():void+adminpw():void+changeid():void+searchnum():void+search_num():voidfriend+admin_list:void四 程序的调试与运行结果说明 这几个模块基本完成了各自的功能,以下是运行结果:五 课程设计总结两周的课程设计很快过去了,通过教师的指导及查阅相关的资料,基本完成了课程设计的题目,也达到了老师的要求,但由于自己的水平有限,考虑问题不十分全面,完成的程序仍存在许多不足之处,希望老师给予指正。本次课程设计,不仅使在教材中所学的基础知识得到了加深和巩固;同时,设计
12、中涉及到了许多新知识,通过查阅许多课外的书籍及资料,学到了许多教材学不到的知识。在这次的课程设计中,我们充分发挥了我们的团队精神。编程是一个集体的工作,所以我们需要有充分地交流,并且要虚心的听取意见,只有这样才能把我们的各自的思想最晚整的表达出来并融合在一起.六 后记同学们自己发挥想象七 附录全部代码及注释附录includeiostreamincludefstream#includecstringinclude cstdlib include time.hincludeconio。hincludewindows。husing namespace std;int z=0,x=0,g=0;char
13、 txt5=。txt;char dat5=。dat”;char nametxt20;char NAME20;char name120;char name220;char mon10=”ab”;void intt();class fly/航班累private:char fly_num10;/航班号char first10;/起点char f_time10;/起飞时间char last10;/终点char l_time10;/到达时间int num;/乘客限额int sheng;/剩余票数public:void addfly();/添加航班void delfly();/删除航班void admin
14、list();/管理员菜单void delpeople();/删除用户 void adminpw();/管理员修改密码void changeid();/管理员修改用户身份证号 void searchnum();/按航班号查询friend void search_num()/声明友元函数 fly cc; cc.searchnum();friend admin_list() fly bb; bb。adminlist();class people :public fly/乘客类private:char name20;/姓名char id20;/身份证char key8;/登录密码char fly_i
15、d10;/机票数据public:void zhuce();/注册用户void denglu();/用户登录void save();/保存void read();/读void peoplelist();/用户列表void changepw();/用户修改密码void admin();/管理员登陆void book();/订票void return_piao();/退票void mibao();friend void people_list() people pp; pp。peoplelist();;/第一菜单/void intmenu()people aa;system(”cls);/清屏sys
16、tem(color 64”); cout”nnn”;cout” -endl;cout” Welcome to film! endl;cout” 欢迎您进入民航订票系统 ”endl;cout” 在此我们将为您提供最优质的服务 ”endl;cout endl;cout -”endlendl;cout”nnn;cout” 1。用户登录 n;cout 2。用户注册 n;cout用户注册n”;coutr_name;strcpy(q_name,r_name);strcat(r_name,txt);ifstream www(r_name);www.close();if(www) cout” 该用户已存在,请
17、重新输入用户名!n”;goto sisi;else strcpy(name,q_name);cout 请输入密码:”; for(int i = 0;i 10; i+) key1i = getch(); if(key1i = r) key1i=0; break; if(key1i = b) coutb b; else cout”flush;/星号密码cout”n 请再次输入密码”; for(int j = 0;j 10; j+) keyj = getch(); if(keyj = r) keyj=0; break; if(keyj = b) coutb b; else cout*”flush;w
18、hile(strcmp(key1,key)coutn 两次密码输入不同!!!n”;cout” 请输入密码:”; for(int i = 0;i 10; i+) key1i = getch(); if(key1i = r) key1i=0; break; if(key1i = b) coutb b”; else cout”flush; cout”n 请再次输入密码”; for(int j = 0;j 10; j+) keyj = getch(); if(keyj = r) keyj=0; break; if(keyj = b) coutb b”; else cout”*”flush; cout”
19、n 请输入18位身份证号:”;cinid;if(strlen(id)=18)k=0;else k=1;while(k)cout”n 身份证号错误!!n”;coutid;if(strlen(id)=18)k=0;strcpy(fly_id,”nobook);ofstream pfile(r_name);pfilename ”id key” fly_idendl;pfile.close();system(”cls”);/清屏cout”nnnnnnnn 注册成功!”;cout”nnnn 按任意键返回主菜单!”;getch();intmenu();/注销后初始化用户/void intt()char f
20、l20=”0”;strcpy(NAME,fl);z=0;x=0;/用户登录/void people::denglu() int ki=0; char re10=r”;char a_name20,q_name20;char a_key20;char x_name10=admin;back:system(cls”);/清屏cout用户登录a_name;strcpy(name1,a_name);strcpy(name2,a_name);if(strcmp(a_name,x_name)=0)admin();strcpy(q_name,a_name);strcat(q_name,txt);ifstrea
21、m pfile(q_name);if(!pfile) cout”nnn 该用户不存在 ”; cout”nn 注册(r) 重新输入(h)”; cina_name; if(!strcmp(a_name,re)=0) goto back;else zhuce();intmenu();pfilenameidkeyfly_id;pfile.close();loopkey:cout” 密 码:”;for(int i = 0;i 10; i+)a_keyi = getch();if(a_keyi = r)a_keyi=0;break;if(a_keyi = b) cout”b b;else cout”flu
22、sh;if(!strcmp(a_key,key)=0)cout”密码输入错误,请重新输入:n”;if(ki=3) cout”对不起,您的密码输入错误超过3次,即将推出系统!!!n;getch();exit(1);ki+;goto loopkey;strcpy(NAME,a_name);strcpy(nametxt,q_name);peoplelist();getch();intmenu();/用户列表/void people::peoplelist()system(”cls”);/清屏coutnn ”NAME的菜单:nnn”;cout” 1。航班查询n;cout” 2。订票n”;cout” 3
23、。退票n”;cout 4。修改密码n;cout 5。注销登录n”;coutkey1;ifstream ww(nametxt);wwnameidkeyfly_id;ww.close();ofstream tt(nametxt);ttname ”id” ”key1 ”fly_idendl;tt。close();coutnn 成功!n”;getch();peoplelist();/管理员口令卡/void people:mibao()int m01=5,m02=5,m03=2,m04=1,n01,n02;int ji=0;int key1010=814,624,651,675,186,472,667,
24、610,382,473,999,771,788,364,305,771,993,805,240,131,991,174,504,654,234,238,295,372,564,336,168,810,385,499,156,351,787,906,484,929,679,506,565,886,638,365,835,323,934,850,957,152,798,171,776,330,645,173,251,480,836,995,490,942,319,260,788,285,216,833,900,529,796,368,736,866,484,419,651,843,421,321,
25、449,422,737,420,263,743,532,610,719,300,879,364,284,516,161,184,788,708,;time_t t;srand(unsigned) time(t); mb:system(cls”);/清屏m01=rand() % 10;/产生10以下随机数m02=rand() % 10;m03=rand() 10;m04=rand() 10;cout”nnn 请输入口令卡密码nnnn;cout 【”;switch(m01)case 0 :cout”A;break;case 1 :coutB”;break;case 2 :cout”C;break;
26、case 3 :coutD”;break;case 4 :coutE;break;case 5 :cout”F;break;case 6 :coutG;break;case 7 :coutH;break;case 8 :cout”I;break;case 9 :cout”J;break;coutm02+1n01;cout”n 【”;switch(m03)case 0 :coutA”;break;case 1 :cout”B”;break;case 2 :cout”C;break;case 3 :cout”D”;break;case 4 :cout”E”;break;case 5 :cout”F
27、;break;case 6 :cout”G”;break;case 7 :cout”H”;break;case 8 :cout”I”;break;case 9 :coutJ”;break;coutm04+1n02;if(keym02m01=n01keym04m03=n02)admin_list();elsecout” 口令卡密码错误,请重新输入!n;ji+;if(ji=3) cout口令卡密码错误超过3次,您将退出系统!;exit(1);goto mb;/管理员登录/void people:admin()char men10=c”,ch10=”pass”;char z_key10;int hk
28、=0;nood:system(”cls);/清屏strcat(mon,men);strcpy(ch,mon);cout管理员登录nnn”;cout请输入管理员密码:”;for(int i = 0;i 10; i+)z_keyi = getch();if(z_keyi = r)z_keyi=0;break;if(z_keyi = b) coutb b”;else cout”flush;if(!strcmp(z_key,ch)=0)if(hk=2) cout输入密码错误超过3次!、;getch();intmenu();system(”cls);/清屏cout”nnnnn 管理员密码错误!按任意键重新输入!n;hk+;getch();goto nood;mibao();/管理员菜单/void fly:: adminlist()system(”cls”);/清屏coutnnn