1、内蒙古科技大学 本科生课程设计论文 题 目:C+课程设计 复数类的设计 姓 名:汤晓峰 学 号:1167119202 专 业:通信工程 班 级: 通信11-2班 指导教师: 刘立新老师 目 录 目录 1 前言 2 第一章 C+简介 3 第二章 需求分析 .4 第三章 设计分析 7 2.1 功能模块 8 2.2 流程图 8 第四章 运行及测试结果 .10 第五章 课程设计总结 .14 附录(程序源代码) .15 参考文献 40 前言 随着科技的发展和人们生活水平的日益提高,人们在不断追求更加快捷的交通 方式以满足人们快节奏的生活方式,航空系统在交通系统中已扮演着一个越来 越重要的角色,那么航空售
2、票系统还能像以前一样人工管理吗?我们可以想象那 将是一项多么烦重的任务,因此人们会寻求一种更加便捷、高效的方法,这时我 们的计算机就会显的格外重要了!当然也离不开计算机语言的编写。 随着计算机技术的飞速发展和普及,人们的生活方式也发生了巨大的改 变,计算机在代替和延伸我们的脑力劳动方面发挥着越来越重要的作用。在交 通系统中,有大量的数据需要被处理,而这些工作如果由人来完成几乎是不可 能的,但交给计算机处理,就可以既快捷,又高效的完成我们所期待的任务了 。 航空售票管理系统可以根据乘客和管理人员的要求,进行方便快捷的信 息保存、查询、以及购票、退票和管理等工作。本文主要介绍了简易航空售票 管理系
3、统用C+程序设计语言进行编写和实现的过程。 第一章 C+简介 C+是一种使用非常广泛的电脑程序设计语言。它是一种静态数据类型检查的 ,支持多范型的通用程序设计语言。C+支持过程化程序设计、数据抽象化、 面向对象程序设计、范型程序设计、基于原则设计等多种程序设计风格。 C+语言发展大概可以分为三个阶段:第一阶段从80年代到1995年。这一 阶段C+语言基本上是传统类型上的面向对象语言,并且凭借着接近C语言的效 率,在工业界使用的开发语言中占据了相当大份额;第二阶段从1995年到2000 年,这一阶段由于标准模板库(STL)和后来的Boost等程序库的出现,泛型程序 设计在C+中占据了越来越多的比
4、重性。当然,同时由于Java、C#等语言的出 现和硬件价格的大规模下降,C+受到了一定的冲击;第三阶段从2000年至今 ,由于以Loki、MPL等程序库为代表的产生式编程和模板元编程的出现,C+出 现了发展历史上又一个新的高峰,这些新技术的出现以及和原有技术的融合, 使C+已经成为当今主流程序设计语言中最复杂的一员。 第二章 需求分析 要实现的功能 1.1该航空售票管理系统必须用C+语言进行设计,要能体现C+语言的特 性。 1.2该系统至少要能提供下列服务: (1) 录入航班信息,格式为: 航班号 起始 终点 起飞时间 经济舱票价 剩余座位 mu2164 包头 北京 20:30 610 87
5、可不定时地增加航班数据。 (2)浏览航班信息:可显示出所有航班,如果当前系统时间超过了某航 班的起飞时间,则显示“此次航班已发出”的提示信息。 (3)查询航班信息:可按航班编号查询,可按起始站,终点站查询。 (4)订票和退票功能 A:查询航班编号或站点。当剩余座位数大于0,并且当前系统时间小于起 飞时间时才能售票,售票后自动更新剩余座位数。 B:退票时,输入退票的班次,当本班航班未发出时才能退票,退票后自 动更新剩余座位数。 设计思路 分析其功能要求,该系统主要要实现四个功能,即航班信息输入功能、浏览航 班信息功能、查询航班信息功能、订票和退票功能。那么我应该定义一个航班 系统类(flight
6、_system ),该类的应该成员函数应该包含航班所有的信息,因 此我要定义的成员函数:航班信息航班号(hangban)、时间(time)、起始站( start)、终点站( end)、票价(price)、剩余票数(leftseat) ,这些信息的 录入函数都定义好后,那么我就要定义主函数了,主函数应该要声明这四项功 能,然后再分别编写功能函数,比如定义航班信息输入功能函数,我就可以调 用类中的成员函数来实现,同理浏览航班信息的功能函数也应调用类的成员函 数来进行信息的输出,这样就可以达到简易的航空售票系统基本要求了,即当 我把信息录入成功以后,就可以进行信息的浏览,信息的查询以及订票的售票 的
7、简单操作了,所以我首先应该做的就是编写成员函数,那么接下来的工作就 会很容易的解决了! 课程名称 C+语言课程设计 设计题目 航空售票管理系统的设计 指导教师 余金林老师 时间 2011-2012春学期 第17、 18周 一、设计资料及参数 用C+设计一个系统,能提供下列服务: (1)录入航班信息,格式为: 航班号 起飞时间 起始 终点 经济舱票价 剩余座位 mu2164 20:30 包头 北京 610 87 可不定时地增加航班数据。 (2)浏览航班信息,可显示出所有航班,如果当前系统时间超过了某航班的起飞时间 ,则显示“此次航班已发出”的提示信息。 (3)查询路线:可按航班编号查询,可按起始
8、站,终点站查询 (4)售票和退票功能 A:查询航班编号或站点。当剩余座位数大于0,并且当前系统时间小于起飞时间时才 能售票,售票后自动更新剩余座位数。 B:退票时,输入退票的航班编号和数量,当本班航班未发出时才能退票,退票后自动 更新剩余座位数。 二、设计要求及成果 根据系统功能要求,可以将问题解决分为以下步骤: (1)分析系统中的各个实体之间的关系及其属性和行为; (2)根据问题描述,设计系统的类层次; (3)完成类层次中各个类的描述(包括属性和力一法); (4)完成类中各个成员函数的定义; (5)完成系统的应用模块; (6)功能调试; (7)提交课程设计报告:完成系统总结报告以及系统使用说
9、明书 第三章 设计分析 主菜单显示函数的设计分析 通过分析问题需求,那么主菜单须显示如下 1.管理航班信息2. 浏览航班信息 3. 查找航班信息4. 订票退票信息5. 刷新系统信息0.退出系统,但如果是要进行信息的管理,就必须要通过密码的 认证。其分析框图如下: 信息管理的操作 如果信息都保存好,要进行信息浏览和信息查询操作 主函数 密码验证 认证通过 未通过 选择功能 录入信息 删除信息 选择功能1 按提示选择 返回主菜单 ,则可以直接进入其相应的操作界面。其分析框图如下: 如果想进行订票和退票的操作,即可直接选择相应的功能序号就可以进入操作 界面了,其设计流程图如下: 主函数 选择功能 信
10、息浏览 调用信息输出函数 显示所有航班信息 返回主菜单 主函数 选择功能 查询信息 选择查询方式 按站点查询航班号查询 调用信息输出函数 显示所有航班信息 刷新系统时间操作,进入操作系统后,直接选择相应功能序号即可执行该 操作了,退出系统也是一样的,按数字0后系统会提醒按任意退出。以上就是 设计航空售票系统简易程框图,有了设计流程图就可以根据流程图一步步编写 程序,思路将会非常清晰。 第四章 运行及测试结果 当进入系统后,会看到如下界面: 返回主菜单界面 主函数 选择功能 进入订票退票界面 继续选择功能 进行订票操作 进行退票操作 返回主菜单 首先演示功能一(管理航班信息):输入数字1,系统会
11、提示你输入密码, 默认密码为1234,如果密码输入错误也会有提示,输入密码后,即进入了管理 界面如下界面: 当进入这一界面,你可以选择添加航班信息和删除航班信息,根据界面提示,可 以选择响应的功能,这里不再演示。 信息浏览功能: 在主界面中,输入数字2,即进入该功能界面,如下图: 信息查询功能: 同理进入主菜单后,输入数字3,即可进入该功能界面,进入后系统会提示你 选择查询的方式,先演示按航班号查询的方式,输入数字2,即可进入如下界 面: 订票退票操作:和如上操作一样,在主菜单界面输入数字4,进入该界面,系 统会提示你如何显示信息,然后询问你是订票还是退票操作,从而完成你想要 的功能,如下图:
12、 同理退票也是一样,如下: 如果没有信息的录入,当输入功能序号时,会出现如下提示: 第五章 课程设计总结 此课程设计我完成了对航线查询、订票、退票及删除等功能的设计操作 ,此课程设计还包含了提示功能以及退出功能。对程序在运行时输入错误操作 的修改,提供了一定的方便条件,基本上能安全的运行,自我感觉能够符合题 目的要求。程序写的还算简练,结构清晰,各个模块的分工和功能明确。 通过两周的C+课程设计,使我对C+程序设计有了更全面的认识,让我感 觉到将课堂上老师讲的知识运用到实际操作中的重要性(即动手的能力)。我 这次课程设计的题目是航空订票系统,在开始阶段,根本无从下手,后来通过 老师的耐心讲解和
13、自己查阅有关资料,最终成功完成整个程序的设计。在这次 课程设计中我对C+语言中的类的定义、成员函数的调用等知识有了进一步的 理解,对流程图的画法更加熟练,对程序的开发思路有了一定的理解,我想这 在以后的学习和工作中都会有帮助的,因为当今世界是离不开计算机的,用计 算机会节省我们很多时间的,同时也使我意识到了学习C+语言的重要性。 在调试程序的过程中,让我感觉到不管做什么事情,我们都应该有耐心, 不能知难而退,如果老是半途而废的话,我们将一事无成,当然在调试过程中 使我的读程序能力,纠错能力都有了提高,我将继续努力,争取会有更大的进 步! 附录(源程序代码) #include“iostream.
14、h“ #include“string.h“ #include static int num=0; /定义全局变量控制航班总数 class flight_system private : char hangban10; char start10; char end10; /定义航班属性 int timehour; int timeminiute; int price; int leftseat; public : void hangban_output()/输出航班信息 couthangban; void start_input()/录入起始站 cinstart; void end_input(
15、)/录入终点站 cinend; void timehour_input()/录入时 couttimeminiute; void price_input()/录入票价 cinprice; void leftseat_input()/录入剩余座位数 cinleftseat; void shou()/售票后剩余票数自动减一 leftseat=leftseat-1; void tui()/退票后剩余票数自动加一 leftseat=leftseat+1; ; flight_system *hangkong=new flight_system15; /分配动态存储空间 void main() void f
16、oundation_1(); void foundation_2(); void foundation_3(); /声明基础功能模块 void foundation_4(); void foundation_5(); while(1) struct tm *local; char s1128; time_t t; /获取系统时间 t=time(NULL); local=localtime( strftime(s1,128,“%Y-%m-%d %H:%M “,local); cout 欢迎进入航空票务系统 n; while(!(n = 1 | n = 2 | n = 3 | n = 4 | n
17、= 5|n = 0) cout miyue; if(miyue!=mima) coutn; while(!(n=1|n=2|n=3) cout x; while(!(x=1|x=2) cout x; int t=0,y; for(t=0;ts; while(!(s!=1|s!=2) cout s; /实现循环操作 switch(s) case 1:hangkongt=hangkongt-1;num-; couts; while(!(s!=1|s!=2) cout s; while(!(s!=1|s!=2) cout a; return ; if (num0) couta; return ; /
18、*功能模块三* */ void foundation_3() couta; return ; if(num0) couta; /选择查询方式 while(!(a=1|a=2|a=3) cout x; for(t=0;tb; while(!(b=1|b=2) cout b; /循环操作 switch(b) case 1:foundation_3();break; case 2:return ;break;break; /*按起始终点站检索*/ case 1:coutx; for(t=0;tb; while(!(b=1|b=2) cout b; /循环操作 switch(b) case 1:fou
19、ndation_3();break; case 2:return ;break;break; /*功能模块四* */ void foundation_4() /*/ struct tm *local; char s1128; time_t t; t=time(NULL); /获取系统时间 local=localtime( strftime(s1,128,“%Y-%m-%d %H:%M “,local); /*/ couta; return ; if(num0) couta; while(!(a=1|a=2|a=3) cout x; for(t=0;t0 hangkongt.hangban_ou
20、tput();coute; while(!(e=1|e=2) cout e; switch(e) case 1:coutp; if(p=y) coutp; if(p=y) couthangkongt.timehour_output() |(local- tm_hour=hangkongt.timehour_output() else coutx; for(t=0;t0 hangkongt.hangban_output();couta; while(!(a=1|a=2) cout p; if(p=y) coutp; if(p=y) couthangkongt.timehour_output() |(local- tm_hour=hangkongt.timehour_output() else coutd; /*功能模块五*/ void foundation_5() /刷新系统时间 参考文献: 1C+面向对象程序设计吴敏、杨国林 主编,内蒙古大学出版社 118页,170页,174页,236页 2C+语言程序设计(第三版),郑莉,清华大学出版社