




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 题目: 公交卡管理系统 第一章 绪 论1.1 绪论C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛,不仅仅是在软件开发上,而且各类科研都需要用到C语言,具体应用比如单片机以及嵌入式系统开发。 C语言发展如此迅速,而且成为最受欢迎的语言之一,主要因为它具有强大的功能。许多著名的系统软件,如DBASE 都是由C 语言编写的。用C 语言加上一些汇编语言子程序,就更能显示C 语言的优势了,像PC- DOS 、WORDSTAR等就是用这种方法编写
2、的。归纳起来C 语言具有下列特点:1. C是中级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。2.C是结构式语言。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。3.C语言功能齐全。具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。另外C语言也具有强大的图形功能,支持多种显
3、示器和驱动器。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。4. C语言适用范围大。适合于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。C语言对编写需要硬件进行操作的场合,明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言。5.C语言文件由数据序列组成,可以构成二进制文件或文本文件常用的C语言IDE(集成开发环境)有Microsoft Visual C+,Dev-C+,Code:Blocks,Borland C+,
4、Watcom C+ ,Borland C+ Builder,GNU DJGPP C+ ,Lccwin32 C Compiler 3.1,High C,Turbo C,C-Free, win-tc 等等对于一个初学者,Microsoft Visual C+是一个比较好的软件。界面友好,功能强大,调试也很方便。它的优点如下:1. 简洁紧凑、灵活方便C语言一共只有32个关键字,9种控制语句,程序书写形式自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。 C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。2. 运算符丰富C语言的运算符
5、包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。3. 数据结构丰富C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能,支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。4. C是结构式语言结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使
6、用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。5. C语法限制不太严格,程序设计自由度大虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。6. C语言允许直接访问物理地址,可以直接对硬件进行操作由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可用来写系统软件。7. 生成目标代码质量高,程序执行效率高一般只比汇编程序生成的目标代码效率低1020%。
7、8. C语言适用范围大,可移植性好C语言有一个突出的优点就是适合于多种操作系统,如DOS、UNIX;也适用于多种机型。C语言具有强大的绘图能力,可移植性好,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画,它也是数值计算的高级语言。 第二章 问题定义2.1 功能需求: 用C语言设计程序,实现公交公司的公交IC卡管理系统。要求功能:1,公交IC卡录入录入公交IC卡信息。包括公交卡编号、姓名、和初始金额。2,为公交IC卡充值3,注销公交IC卡4,挂失公交IC卡挂失后,暂时冻结,不能操作金额。5,查询公交IC卡信息查询信息时,包括卡号,姓名和当前余额。系统以菜单方式工作,要求界面
8、友好,易于操作。2.2开发环境 本次设计使用的开发环境是Turbo C 2.0集成开发环境,Turbo C2.0的主菜单在Turbo C 2.0主屏幕顶上一行, 显示下列内容:File Edit Run Compile Project Options Debug Break/watch 除Edit外, 其它各项均有子菜单, 只要用Alt加上某项中第一个字母(即大写字母), 就可进入该项的子菜单中。 File (文件)菜单 -按Alt+F可进入File菜单, 该菜单包括以下内容:.Load (加载) 装入一个文件, 可用类似DOS的通配符(如*.C)来进行列表选择。也可装入其它扩展名的文件, 只
9、要给出文件名(或只给路径)即可。该项的热键为F3, 即只要在主菜单中按F3即可进入该项, 而不需要先进入File菜单再选此项。 .Pick (选择) 将最近装入编辑窗口的8个文件列成一个表让用户选择, 选择后将该程序装入编辑区, 并将光标置在上次修改过的地方。其热健为Alt-F3。 .New (新文件) 说明文件是新的, 缺省文件名为NONAME.C, 存盘时可改名。 .Save (存盘) 将编辑区中的文件存盘, 若文件名是NONAME.C时, 将询问是否更改文件名, 其热键为F2。 .Write to (存盘) 可由用户给出文件名将编辑区中的文件存盘, 若该文件已存在, 则询问要不要覆盖。
10、.Directory (目录) 显示目录及目录中的文件, 并可由用户选择。 .Change dir (改变目录) 显示当前目录, 用户可以改变显示的目录。 .Os shell (暂时退出) 暂时退出Turbo C 2.0到DOS提示符下, 此时可以运行DOS 命令, 若想回到Turbo C 2.0中, 只要在DOS状态下键入EXIT即可。 .Quit (退出) 退出Turbo C 2.0, 返回到DOS操作系统中, 其热键为Alt+X。 说明: 以上各项可用光标键移动色棒进行选择, 回车则执行。也可用每一项的第一个大写字母直接选择。若要退到主菜单或从它的下一级菜单列表框退回均可用Esc键,Tu
11、rbo C 2.0所有菜单均采用这种方法进行操作, 以下不再说明。 Edit (编辑)菜单-按Alt+E可进入编辑菜单, 若再回车, 则光标出现在编辑窗口, 此时用户可以进行文本编辑。编辑方法基本与wordstar相同, 还可以用F1键获得有关编辑方法的帮助信息。与编辑有关的功能键如下: F1 获得Turbo C 2.0编辑命令的帮助信息 F5 扩大编辑窗口到整个屏幕 F6 在编辑窗口与信息窗口之间进行切换 F10 从编辑窗口转到主菜单 第三章 总体设计与详细设计3.1总体设计1.总体模块设计 总体设计为实现系统功能,本程序主要分为以下几个模块。它们分别为:公交IC卡录入,为公交IC卡充值,注
12、销公交IC卡,挂失公交IC卡,查询公交IC卡信息。这几个模块函数再通过主函数调用分别得以实现。主函数,首先提供了程序运行时的友好界面(菜单),列出了菜单选项,提供用户做出选择,以便决定使用管理系统的哪种功能。然后,通过执行多分支选择语句if语句,分别实现其它各个函数的调用功能。2、数据结构设计 对于公交卡管理中各项详细信息的记录用了结构数组的形式typedef struct /*定义数据结构*/ char NO10; /*编号*/ char name20; /*姓名*/ double money; /*金额*/ int ok;IC;下图为公交IC卡管理系统的总体设计模块图:公交IC卡录入公交I
13、C卡充值公交IC卡注销公交IC卡挂失公交IC卡查询退出系统主菜单 图3-1-1 公交IC卡管理系统总体设计模块图3.2详细设计1.主菜单设计 在结构体类型定义中,该结构体由4个成员组成,其中包括NO,name,money,和ok.主函数中定义整型变量n,op,n的初始值为0,实型变量p,字符数组s,数组s共有20个元素。进入公交卡管理系统,执行while循环语句,输入1,2,3,4,5,0时,分别进入公交卡录入,充值,注销,挂失,查询系统及退出系统。2.录入设计当输入op等于1时,进入公交卡录入系统,执行if语句,输出“请输入新录入公交IC卡信息”和 “编号:”输入数组编号输出“姓名:”输入姓
14、名输出“初始金额:”输入金额ok=1录入成功,n自加输出“新卡录入成功,当前共有%d个公交IC卡” 图3-2-1 录入流程图3. 充值设计 当输入op等于2时,进入公交卡充值系统,输入相关信息后,进入for循环语句,利用strcmp字符串比较函数,如果,ai.N=0,跳出该循环,将充值金额与历史金额相加,从而得到当前金额,若如下图是充值系统的基本流程图: 图3-2-1 公交卡充值系统4.注销和挂失设计 运用嵌套循环语句。嵌套时外层循环执行一次,内层循环执行一个周期,完成IC卡的注销和挂失。5.查询设计 当输入op等于5时,进入公交卡查询系统,如下图是查询系统的基本流程图: 图3-2-2 公交卡
15、查询系统6.退出 退出系统成功欢迎下次使用 第四章 编码实现4.1程序实现1.欢迎界面进入IC卡录入系统 ,输入编号,姓名和初始金额,后通过自加,得出IC卡总数量。 printf("请输入新录入公交IC卡信息:n"); printf("编号:"); scanf("%s",an.NO); printf("姓名:"); scanf("%s",); printf("初始金额:"); scanf("%lf",&an.money); an.ok
16、 = 1; n +; printf("新卡录入成功,当前共有%d个公交IC卡n",n); 2. 充值 进入公交卡的充值系统,代码如下: else if(op = 2) printf("请输入需要充值的公交IC卡的编号以及金额n"); printf("公交IC卡的编号:"); scanf("%s",s); printf("金额:"); scanf("%lf",&p); for(i = 0;i < n;i +) if(strcmp(s,ai.NO) = 0) bre
17、ak; if(i = n) printf("查无此卡n"); else if(ai.ok = 1) printf("充值成功!n"); printf("公交IC卡的编号:%sn姓名:%sn初始金额:%.2lf 当前金额:%.2lfn",ai.NO,,ai.money,ai.money+p); ai.money += p; else printf("此卡挂失中,无法操作!n"); 3.注销当输入op等于3时,进入公交卡注销系统,"请输入需要注销的公交IC卡的编号:"进入for循环语句
18、若i=n,则“查无此卡”;否则输出“注销成功,还剩余%d公交IC卡” printf"请输入需要注销的公交IC卡的编号:" scanf("%s",s); for(i = 0;i < n;i +) if(strcmp(s,ai.NO) = 0) break; if(i = n) printf("查无此卡n"); else for(;i <n-1;i +) ai = ai+1; n -; printf("注销成功,还剩余%d公交IC卡n",n); 4.挂失 当输入op等于4时,进入公交卡挂失系统,“请输入需要
19、挂失的公交IC卡的编号:”进入for循环,i的初始值为0若i=n查无此卡!挂失成功 printf("请输入公交IC卡的编号:"); scanf("%s",s); for(i = 0;i < n;i +) if(strcmp(s,ai.NO) = 0) break; if(i = n) printf("查无此卡n"); else ai.ok = 0; printf("挂失成功n"); 第五章 调试与测试 5.1调试 程序编写完成之后,输入TC中,之后开始编译。在编译的过程中出现错误,出现如下图所示的界面。 图
20、5-1-1编译出错 该界面说明所编写的程序有错误,无法运行,经过对所编程序进行检查之后,发现错误并改正,直至编译后出现图5-1-2所示界面,编译没有出现错误。调试完成。 图 5-1-2 编译成功5.2测试 在调试完成后,程序没有错误,在TC中运行该程序。1. 首先进入欢迎界面,显示操作菜单如下图: 图 5-2-1 公交卡操作菜单2. 根据操作菜单的提示,选择将要办理的业务,分别输入相应的选项进行办理,输入数字“1”后,进入公交卡录入系统,如图: 图5-2-2 录入界面 进入此状态之后,根据提示,输入相应的有关信息,如编号、姓名和初始金额等。以编号为12345,姓名为baoyingchun ,初
21、始金额为100为例,得到界面如下: 图5-2-3 录入公交卡信息 3. 输入“2”和“3”,分别进入充值系统和注销系统,得到的页面如下图: 图5-2-4 公交卡的充值和注销3.输入4,5进入挂失和查询系统,输入0,退出 图5-2-5 公交卡的挂失、查询和退出 第六章 总结与心得通过此次课程设计,使我更加扎实的掌握了有关C语言程序设计的一般过程,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识再是纸上谈兵。过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,
22、不断改正,不断领悟,不断获取。最终的进行编译环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。课程设计诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思,给了我莫大的空间。同时,验设计我感触很深。是我对抽象的理论有了具体的认识。对我而言,知识上的收获重要,精神上的丰收更加可喜。让我知道了学无止境的道理。我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。挫折是一份财富,经历是一份拥有。这次课程设计必将成为
23、我人生旅途上一个非常美好的回忆!回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。 此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手
24、实践,就没有弄不懂的知识,此次设计不仅提高了我的专业知识,也提高了我的专业对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!附录一:源代码#include<stdio.h>#include<string.h>typedef struct char NO10; char name20; double money; int ok;IC;IC a1000;int main() int n = 0,i; int op; char s20; double p; printf("欢迎进入公交卡管理系统n"); while(1) printf("
25、*操作菜单*n"); printf(" 1 公交IC卡录入n"); printf(" 2 公交IC卡充值n"); printf(" 3 公交IC卡注销n"); printf(" 4 公交IC卡挂失n"); printf(" 5 公交IC卡查询n"); printf(" 0 退出系统n"); scanf("%d",&op); if(op = 1) printf("请输入新录入公交IC卡信息:n"); printf(&qu
26、ot;编号:"); scanf("%s",an.NO); printf("姓名:"); scanf("%s",); printf("初始金额:"); scanf("%lf",&an.money); an.ok = 1; n +; printf("新卡录入成功,当前共有%d个公交IC卡n",n); else if(op = 2) printf("请输入需要充值的公交IC卡的编号以及金额n"); printf("公交I
27、C卡的编号:"); scanf("%s",s); printf("金额:"); scanf("%lf",&p); for(i = 0;i < n;i +) if(strcmp(s,ai.NO) = 0) break; if(i = n) printf("查无此卡n"); else if(ai.ok = 1) printf("充值成功!n"); printf("公交IC卡的编号:%sn姓名:%sn初始金额:%.2lf 当前金额:%.2lfn",ai.NO,,ai.money,ai.money+p); ai.money += p; else printf("此卡挂失中,无法操作!n"); else if(op = 3) printf("请输入需要注销的公交IC卡的编号:"); scanf("%s",s); for(i = 0;i < n;i +) if(strcmp(s,ai.NO) = 0) break; if(i = n) printf("查无此卡n"); else for(;i <n-1;i +) ai =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 未来家居家具设计中的可持续材料选择策略试题及答案
- 实验室化学仪器使用试题及答案
- 未来电动汽车技术挑战试题及答案
- 教师教学反思与改进方案试题及答案
- 数字与形状拼图的互动体验题试题及答案
- 施工现场安全检查重点分析试题及答案
- 新能源技术解决方案考试题及答案
- 德州学院美术史试题及答案
- 未来汽车设计理念2025年试题及答案
- 基层医疗卫生机构信息化建设中的信息化与医疗信息化服务模式创新报告2025
- 第三单元整本书阅读《朝花夕拾》“鲁迅心中的那些情”主题交流课 教学设计 2024-2025学年统编版语文七年级上册
- 2025年驾照C1证考试科目一必考题库740题及答案(包过版)
- 气候变化适应成本-深度研究
- 第2课《风铃》课件 花城版音乐三年级下册
- R245fa螺旋管内分液冷凝特性实验研究
- 【营销方案】2025小红书平台营销通案
- 应急疏散的标识与规范
- 光伏项目服务承诺书
- 人教版三年级下册数学口算题题卡1000道带答案可打印
- 竣工结算审计服务投标方案(2024修订版)(技术方案)
- 《健康成年人身体活动能量消耗参考值》
评论
0/150
提交评论