




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 C语言程序设计课程设计报告一目的通过本教学环节的充分编程实践和实际应用,进一步熟悉与巩固C语言语法知识和程序设计的基本方法,通过应用进一步体会数据就够重常用算法的实质,建立算法优劣的概念以及算法评估分析和比较的方法。借助适当题材的程序设计实训,加深体会利用数据结构的算法和C语言程序设计解决实际问题的思维过程。通过一定的文档要求,培养学生良好的程序设计风格,包括程序结构形式,行文格式和程序正文格式等。二内容利用C语言这种程序设计语言设计一个应用程序,实现的题目和具体内容自拟三 实验要求进行简单的需求分析、设计说明,写出程序结构框架,阐明设计思路、用到的原理和方法。程序规模适中,着重于内核功能,
2、对界面无要求。要求采用面向对象的程序设计方法来进行课程设计。四算法思想 该程序为地铁的价格查询系统,用到C语言中的选择结构程序设计,循环控制,函数。其中,选择结构程序设计用到了if语句的嵌套,switch语句;循环控制用到了for,dowhile语句实现循环,还有break语句,循环的嵌套;函数就用到了函数的嵌套调用。该系统难点在于转站问题,不过已经解决了。a) 需求分析:1.该系统主要提供地铁的价格查询功能,外附显示所要乘坐的站数以及经过的地铁站,转站等功能。2.该系统还可以让地铁的乘客清晰地知道自己乘坐所需要的付费,还有知道一共要经过多少个站,经过哪些站等,让乘客对自己的行程有个了解。3.
3、该系统的界面清晰易懂,乘客看着界面可以明白地知道自己所在的位置以及可以轻松地选择目的地。其中,界面如下所示:欢迎使用广州地铁价格查询系统 * * * * 广州地铁一号线 * *_* * 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 * * 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 * * 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 * * 西 坑 花 芳 黄 长 陈 西 公 农 烈 东 杨 体 体 广 * * 湖 口 地 村 沙 寿 家 门 园 讲 士 山 箕 育 育 州 * * 湾 路 祠 口 前 所 陵 口 西 中 东 * * 园
4、 路 心 站 * * * * 广州地铁二号线 * *_* * 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 * * 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 * * 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 * * 琶 新 磨 赤 客 鹭 中 晓 江 市 海 公 纪 越 广 三 远 广 新 江* * 洲 港 碟 岗 村 江 大 港 南 二 珠 园 念 秀 州 元 景 州 市 夏* * 东 沙 西 宫 广 前 堂 公 火 里 体 * * 场 园 车 育 * * 站 馆 * * * *4.
5、对输入数据的格式要求为:只要输入数字就行了,可是输入的数字必需在101106,201220之间,否则输出错误提示,乘客需要继续输入,直到输入正确为止,输出结果后会有提示是否要继续。5.该软件可以在Turbo C/C+ for Windows内测试。 b) 概要设计第一模块:函数调用模块(分两种情况讨论):第一种情况:起点站和输出站都在同一号线if(c/100=d/100)a=max(c,d);b=min(c,d);j=a-b;subway(j); change_line( c, d); name_passed_station( c, d); 第一种情况:起点站和终点站不在同一号线(又分两种情况
6、):(1)起点站在一号线,终点站在二号线在: if(c<200) a=max(109,c)-min(109,c);b=max(212,d)-min(212,d);j=a+b;subway(j); change_line( c, d); name_passed_station( c, d);(2)起点站在二号线,终点站在一号线:else a=max(212,c)-min(212,c);b=max(109,d)-min(109,d);j=a+b; subway(j); change_line( c, d); name_passed_station(c, d);第二模块:函数定义模块把起点站序
7、号跟终点站序号比较,取出较少着:int min(int c,int d) int z; if(c>d) z=d; else z=c; return(z);把起点站跟终点站比较,取出较大者:int max(int c,int d) int z; if(c>d) z=c; else z=d; return(z);输出所要的费用:void subway(int j) switch(j) case 0: printf("Sorry,你已经在本站,不用再乘座了。Thanks! _n");break; case 1: case 2: case 3: printf("
8、;收费2元,Thanks! _n");break; case 4: case 5: case 6: printf("收费3元, Thanks! _n");break; case 7: case 8: case 9: printf("收费4元, Thanks! _n");break; case 10: case 11: case 12: printf("收费5元, Thanks! _n");break; case 13: case 14: case 15: printf("收费6元, Thanks! _n"
9、);break; case 16: case 17: case 18: printf("收费7元, Thanks! _n");break; case 19: case 20: printf("收费8元,Thands! _n"); 该函数检查是否需要转线void change_line(int c,int d) if(c/100=d/100) printf("不需要转线,可直达_n"); else printf("请注意:要到公园前站转线n");输出途径的站名,分两种情况:情况一:不需要转线(1)起点站和终点站都在一
10、号线if(c/100=1&&d/100=1) for(i=c%100;i<=d%100;i+)switch(i)case 1: printf("西湖t");break;case 2: printf("坑口t");break;case 3: printf("花地湾t");break;case 4: printf("芳村t");break;case 5: printf("黄沙t");break;case 6: printf("长寿路t");break;cas
11、e 7: printf("陈家祠t");break;case 8: printf("西门口t");break;case 9: printf("公园前t");break;case 10: printf("农讲所t");break;case 11: printf("烈士陵园t");break;case 12: printf("东山口t");break;case 13: printf("杨箕t");break;case 14: printf("体育西路
12、t");break;case 15: printf("体育中心t");break;case 16: printf("广州东站t");break;(2)起点站和终点站都在二号线if(c/100=2&&d/100=2) for(i=c%100;i<=d%100;i+)switch(i)case 1: printf("琶洲t");break;case 2: printf("新港东t");break;case 3: printf("磨碟沙t");break;case 4:
13、 printf("赤岗t");break;case 5: printf("客村t");break;case 6: printf("鹭江t");break;case 7: printf("中大t");break;case 8: printf("晓港t");break;case 9: printf("江南西t");break;case 10: printf("市儿宫t");break;case 11: printf("海珠广场t");bre
14、ak;case 12: printf("公园前t");break;case 13: printf("纪念堂t");break;case 14: printf("越秀公园t");break;case 15: printf("广州火车站t");break;case 16: printf("三元里t");break;case 17: printf("远景t");break;case 18: printf("广州体育馆t");break;case 19: prin
15、tf("新市t");break;case 20: printf("江夏t");break; 情况二:需要转线分四种情况(1)起点站和终点站都是在公园前站前面if(c<=109&&d<=212&&d>=201) for(i=c%10;i<=9;i+)switch(i)case 1: printf("西湖t");break;case 2: printf("坑口t");break;case 3: printf("花地湾t");break;case
16、 4: printf("芳村t");break;case 5: printf("黄沙t");break;case 6: printf("长寿路t");break;case 7: printf("陈家祠t");break;case 8: printf("西门口t");break;case 9: printf("公园前t");break;for(j=d%100;j<=11;j+)switch(j)case 1: printf("琶洲t");break;c
17、ase 2: printf("新港东t");break;case 3: printf("磨碟沙t");break;case 4: printf("赤岗t");break;case 5: printf("客村t");break;case 6: printf("鹭江t");break;case 7: printf("中大t");break;case 8: printf("晓港t");break;case 9: printf("江南西t");
18、break;case 10: printf("市儿宫t");break;case 11: printf("海珠广场t");break;(2)起点站在公园前站前面,而终点站在公园前站后面if(c<=109&&d>=212) for(i=c%10;i<=9;i+)switch(i)case 1: printf("西湖t");break;case 2: printf("坑口t");break;case 3: printf("花地湾t");break;case 4: p
19、rintf("芳村t");break;case 5: printf("黄沙t");break;case 6: printf("长寿路t");break;case 7: printf("陈家祠t");break;case 8: printf("西门口t");break;case 9: printf("公园前t");break;for(j=13;j<=d%100;j+)switch(j)case 13: printf("纪念堂t");break;case
20、 14: printf("越秀公园t");break;case 15: printf("广州火车站t");break;case 16: printf("三元里t");break;case 17: printf("远景t");break;case 18: printf("广州体育馆t");break;case 19: printf("新市t");break;case 20: printf("江夏t");break; (3)起点站在公园前站后面,终点站在前面i
21、f(c>=109&&d<=212&&d>=201) for(i=9;i<=c%100;i+)switch(i)case 9: printf("公园前t");break;case 10: printf("农讲所t");break;case 11: printf("烈士陵园t");break;case 12: printf("东山口t");break;case 13: printf("杨箕t");break;case 14: printf(&q
22、uot;体育西路t");break;case 15: printf("体育中心t");break;case 16: printf("广州东站t");break;for(j=d%100;j<=11;j+)switch(j)case 1: printf("琶洲t");break;case 2: printf("新港东t");break;case 3: printf("磨碟沙t");break;case 4: printf("赤岗t");break;case 5:
23、printf("客村t");break;case 6: printf("鹭江t");break;case 7: printf("中大t");break;case 8: printf("晓港t");break;case 9: printf("江南西t");break;case 10: printf("市儿宫t");break;case 11: printf("海珠广场t");break; (4)起点站和终点站都在公园前站后面if(c>=109&
24、&d>=212) for(i=9;i<=c%100;i+)switch(i)case 9: printf("公园前t");break;case 10: printf("农讲所t");break;case 11: printf("烈士陵园t");break;case 12: printf("东山口t");break;case 13: printf("杨箕t");break;case 14: printf("体育西路t");break;case 15: pri
25、ntf("体育中心t");break;case 16: printf("广州东站t");break;for(j=13;j<d%100;j+)switch(j)case 13: printf("纪念堂t");break;case 14: printf("越秀公园t");break;case 15: printf("广州火车站t");break;case 16: printf("三元里t");break;case 17: printf("远景t");br
26、eak;case 18: printf("广州体育馆t");break;case 19: printf("新市t");break;case 20: printf("江夏t");break; c)详细设计开始声明函数name_passed_station(),change_line(),subway(),Max(),min(),stull()定义变量a,b,c,d,j,n调用stull()输出界面输入c(101<=c&&c<=116)|(201<=c&&c<=220)输入错误,请重
27、输输入d(101<=d&&d<=117)|(201<=d&&d<=220)输入错误,请重输c/100=d/100a=max(c,d);b=min(c,d); j=a-b;subway(j);change_line( c, d);name_passed_station( c, d);调用函数见附图函数调用部分c<200a=max(c,d);b=min(c,d); j=a-b;subway(j);change_line( c, d);name_passed_station( c, d);调用函数见附图函数调用部分a=max(212,c)
28、-min(212,c);b=max(109,d)-min(109,d);j=a+b; subway(j);change_line( c, d);name_passed_station(c, d);输入nn='Y'返回开始结束附图:max()Int c,d ,zc>dz=cz=dreturn(z)min()Int c,d ,zz=creturn(z)c>dz=dsubway(int j)判断I值输出票价结束change_line(int c,int d)c/100=d/100输出不用转线输出在公元前转线结束name_passed_station(int c,int d
29、)int i,jc/100=1&&d/100=1)c/100=2&&d/100=2i=c%100;i<=d%100;i+c/100=2&&d/100=2输出各站名输出各站名c<=109&&d<=212&&d>=201c<=109&&d>=212c>=109&&d<=212&&d>=201i=c%10;i<=9j=d%100;j<=11输出站点输出站点i=c%10;i<=9j=13;j<=d%
30、100输出站点输出站点i=9;i<=c%100j=d%100;j<=11输出站点输出站点c>=109&&d>=212i=9;i<=c%100输出站点j=13;j<d%100输出站点d)调试分析界面显示为:若输入正确,即在101116和201220范围内,则输出:若输入范围不在101116和201220,则输出错误提示:若要继续查询,则按 “Y”,清除之前的记录,重新执行;若要停止,则按“N”,输出:五总结:在课程设计过程中,我意识到原来编一个程序不是那么简单的,还要考虑到很多问题,比如:你所编的程序有什么功能,主要有什么用途,软件有什么开发潜能等,还有软件有什么改进的思想。虽然有难度,可是我觉得很有挑战性,在程序的设计过程中,我还加深了对C语言数据结构的认识,真的使我受益菲浅。因为C语言知识不是那么好,所以所用的结构都是比较简单的,如只用到for,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数学教学杂志
- 如何发表教师职称论文
- 公共管理学论文题目
- 机电类毕业实习报告
- 浅谈小学生挫折教育论文
- 初一12班班规 七年级班级规章制度
- 养老院项目可行性研究报告
- 材料科学领域中新型复合材料的应用研究
- 社交媒体使用对女性限制性饮食的作用研究
- 文化遗产保护与管理:不变之核心与变化之应对的研究
- 国际商法概述
- 2023年新疆维吾尔自治区石河子市小升初数学试卷(内含答案解析)
- 初中地理七下8.3.2《撒哈拉以南非洲》教学设计
- 铝锭应用行业分析
- 湖北烟草公司招聘考试真题
- 心衰的中西医结合治疗
- 1000道100以内进位退位加减法题
- 公路技术状况检测与评定-公路技术状况评定
- 酒店服务礼仪培训课件
- 乡村医生从业管理条例
- 北京第八十中学英语新初一分班试卷
评论
0/150
提交评论