1、C课程设计地铁价格查询系统样本 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); 第一个情况:起点站和终点站不在同一号线(又分两种情况):(1)起点站在一号线,终点
6、站在二号线在: if(cd) z=d; else z=c; return(z);把起点站跟终点站比较,取出较大者:int max(int c,int d) int z; if(cd) 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(收费2元,Thanks! _n);break; case 4: case 5: case 6: printf(收费3元, T
7、hanks! _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);break; case 16: case 17: case 18: printf(收费7元, Thanks! _n);break; case 19: case 20: printf(收费8元,Thands! _n); 该函数检验是
8、否需要转线void change_line(int c,int d) if(c/100=d/100) printf(不需要转线,可直达_n); else printf(请注意:要到公园前站转线n);输出路径站名,分两种情况:情况一:不需要转线(1)起点站和终点站全部在一号线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;
9、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);break; case 12: printf(东山口t);break; case 13: printf(杨箕t);break; case 14: printf(体育西路t);break; case 15: printf
10、(体育中心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: printf(赤岗t);break; case 5: printf(客村t);break; case 6: printf(鹭江t);break; case 7: printf(中大t);b
11、reak; 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(越秀公园t);break; case 15: printf(广州火车站t);break; case 16: printf(三元里t);break; case 17: printf(远景t);break; case
12、 18: printf(广州体育馆t);break; case 19: printf(新市t);break; case 20: printf(江夏t);break; 情况二:需要转线分四种情况(1)起点站和终点站全部是在公园前站前面if(c=109&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 4: printf(芳村t);break; case 5: printf(黄沙t);break; cas
13、e 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; case 2: printf(新港东t);break; case 3: printf(磨碟沙t);break; case 4: printf(赤岗t);break; case 5: printf(客村t);break; case 6: printf(鹭江t);bre
14、ak; 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; (2)起点站在公园前站前面,而终点站在公园前站后面if(c=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
15、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=109&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
16、 12: printf(东山口t);break; case 13: printf(杨箕t);break; case 14: printf(体育西路t);break; case 15: printf(体育中心t);break; case 16: printf(广州东站t);break; for(j=d%100;j=109&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
17、(东山口t);break; case 13: printf(杨箕t);break; case 14: printf(体育西路t);break; case 15: printf(体育中心t);break; case 16: printf(广州东站t);break; for(j=13;jd%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
18、);break; case 18: printf(广州体育馆t);break; case 19: printf(新市t);break; case 20: printf(江夏t);break; c)具体设计附图:d)调试分析界面显示为:若输入正确,即在101116和201220范围内,则输出:若输入范围不在101116和201220,则输犯错误提醒:若要继续查询,则按 “Y”,清除之前统计,重新实施;若要停止,则按“N”,输出:五总结:在课程设计过程中,我意识到原来编一个程序不是那么简单,还要考虑到很多问题,比如:你所编程序有什么功效,关键有什么用途,软件有什么开发潜能等,还有软件有什么改善思想。即使有难度,可是我认为很有挑战性,在程序设计过程中,我还加深了对C语言数据结构认识,真使我受益菲浅。因为C语言知识不是那么好,所以所用结构全部是比较简单,如只用到for,while,switch等语句,不过对于我来说算是能够了,会比较适合我自己难度_。在编译过程中也碰到难题,因为考虑到转站问题,要分开多个情况来讨论,有时单单用for语句难以实现,不过经过数次调试,最终处理了问题。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1