ImageVerifierCode 换一换
格式:DOCX , 页数:51 ,大小:150.16KB ,
资源ID:23280321      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23280321.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(公交一卡通系统.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

公交一卡通系统.docx

1、公交一卡通系统 公交一卡通系统学生姓名: 邹世祥 专 业: 计算机网络 班 级: 10网络智能化应用 学 期: 2010-2011学年第二学期 任课教师: 顾亚丽 漳州职业技术学院计算机工程系目 录目 录 1一.项目背景及需求分析 3二.项目概述 3三.项目总设计 43.1用户类设计 3.2用户管理类设计 5四.项目实施方案 54.1工作任务一 系统框架和主菜单 54.1.1解决方案 64.1.2运行情况 74.1.3归纳分析 74.2工作任务二 文件读取与保存 74.2.1解决方案 74.2.2归纳分析 94.3工作任务三 添加新卡 94.3.1解决方案 94.3.2运行情况 104.3.3

2、归纳分析 104.4工作任务四 坐车读卡 114.4.1解决方案 114.4.2运行情况 124.4.3归纳分析 134.5工作任务五 修改卡信息 134.5.1解决方案 134.5.2运行情况 154.5.3归纳分析 154.6工作任务六 浏览卡信息 164.6.1解决方案 164.6.2运行情况 174.6.3归纳分析 174.7工作任务七 注销旧卡 184.7.1解决方案 184.7.2运行情况 194.7.3归纳分析 194.8工作任务八 查找续钱 194.8.1解决方案 194.8.2运行情况 204.8.3归纳分析 21小组分工 21附录: 程序源代码 21bus.h文件: 21b

3、us.cpp文件: 23 一.项目背景及需求分析在信息技术飞速发展的今天,计算机技术一直以来都有着重要的地位。自从微软创建完成了Windows操作系统后,计算机的技术得到了更广大的应用,这种应用体现在了各个领域之中。根据当前社会的需要,制定了一个功能简洁,容易操作的公交一卡通系统,主要实现了用户的添加模块,删除模块,浏览模块,修改模块,坐车读卡模块和查找续钱模块,本系统的前端开发工具选用VC+6.0。界面简洁大方,为用户提供了人性化的操作方式。目前很多城市有运用了公交一卡通系统,但是,对于本次的实训任务,不需要大型的数据库系统,只需要一个操作方便,功能实用,能满足本中心对数据的管理及需求的系统

4、就可以。本项目的目标就是开发一个功能实用,操作方便,简单明了的公交一卡通系统。二.项目概述该项目主要实现了用户的录入、删除、浏览及修改的基本功能,还包括了用户的坐车读卡和查找并续钱的功能。系统功能模块结构图如图2-1所示。图2-1 系统结构模块图系统各模块的功能说明如下:2.1添加功能:能够添加一张新卡,卡号按照自然数列向下自动产生,而用户姓名和卡内所需金额由键盘输入,此时卡内余额就是户输入的所续金额。如果整个系统中的卡号之间出现了被注销过的卡标记,则先将此卡号分配给新卡使用,以便尽量保证该系统中卡号的连续性。2.2. 坐车读卡功能:假设公交票价的规定是10站以内1元,1115站2元,1620

5、站3元,2125站4元,2630站5元,每趟车不超过30站。在乘公交车时,由用户输入自己的卡号和将要坐的站数。如果该卡存在,并且该卡没有被注销,则系统根据票价的规定,从该卡的余额中扣除相应的票价。在扣除票价时,如果卡内余额不足,则提示用户支付现金。2.3. 修改功能:由用户输入自己的卡号,如果存在该卡,并且该卡没有被注销,则弹出一个小菜单列出允许修改的选项。根据用户的选择让用户进行修改。2.4. 浏览功能:由用户输入卡号,浏览功能分为用户信息的简表及用户信息的详表,根据用户的选择进行浏览。2.5. 删除功能:判断该卡号是否存在,若存在并且该卡没有注销标记,则将该卡的余额退给用户,同时对该卡做注

6、销标记。2.6. 查找续钱功能:由用户输入自己卡号和要续金额,如果该卡存在,并且该卡没有被注销,则系统将所续金额 和卡内的余额之和作为最终卡内余额。找出目前所有卡内最多的金额。三.项目总设计3.1用户类设计用户类分为用户信息简表类和用户信息详表类,用户信息简表是对应用户的姓名及性别的应用,用户信息详表类是对用户的电话及初始金额的应用。class bus1 /用户信息简表 char name20; /用户姓名 char sex10; /用户性别public: bus1(char,char ); void setname(char ); char *getname(); void setsex(c

7、har ); char *getsex(); virtual void display();class bus2:public bus1 /用户信息详表 char tel13; /用户电话 int money; /初始金额public: bus2(char sex,char name,char tel,int money); void settel(char t); char *gettel(); void setmoney(int m); int getmoney(); void display();3.2用户管理类设计class bus_Manage /用户的管理类 static int

8、buscount; /用户的编号 static int mancount; /用户的人数 bus1 *bt; bus2 *bw; /指向用户的数组public: bus_Manage(); void savecard(); /储存用户信息 void readcard(); /读取用户信息 void addcard(); /添加新卡 void deletecard(); /注销旧卡 void showcard(); /浏览用户信息 void changecard(); /修改卡信息 void playcard(); /坐车读卡 void maxcard(); /续钱并查找余额最多的用户 void

9、 menucard(); /系统主菜单 bus_Manage();另设计并重载printer()函数,以便用来根据实际对象输出他们的内容。void printer(bus1 *); /输出某用户的信息四.项目实施方案4.1工作任务一 系统框架和主菜单首先询问是否要运用系统内用户的信息,在main函数中由于要跟主菜单中的各模块相对应,我们要用一个switch()语句来控制我们的选择。4.1.1解决方案/主函数void main() int choose; bus_Manage bs;coutch; if (ch=y|ch=Y) bs.readcard(); while(1) system(cls

10、); bs.menucard(); coutchoose; switch(choose) case 1:bs.addcard();bs.savecard();break; /添加新卡 case 2:bs.deletecard();bs.savecard();break; /注销旧卡 case 3:bs.changecard();bs.savecard();break; /修改卡信息 case 4:bs.playcard();bs.savecard();break; /坐车读卡 case 5:bs.maxcard();bs.savecard();break; /续钱并查找续钱最多的用户 case

11、 6:bs.showcard();break; /浏览用户信息 case 0:exit(0); /结束系统运行 void bus_Manage:menucard() system(cls); coutendl; cout tt|*|endl; cout tt| 公交一卡通系统 |endl; cout tt|*|endl; cout tt| 1-添加新卡 |endl; cout tt| 2-注销旧卡 |endl; cout tt| 3-修改卡信息 |endl; cout tt| 4-坐车读卡 |endl; cout tt| 5-续钱并查找续钱最多的 |endl; cout tt| 6-浏览用户信

12、息 |endl; cout tt| 0-退出 |endl; cout tt|*|endl; coutendl;4.1.2运行情况程序运行结果如图:图1-1 引用用户的信息 主菜单运行结果如图2-2图1-2 系统主菜单4.1.3归纳分析1. system(cls);语句的功能是清屏。system函数包含在stdlib.h头文件中。2.利用switch函数来进行选择功能。3.在进入主菜单前要先判断是否使用旧的数据。4.注意对象的定义。5.在建主菜单界面图的时候注意Tab键及空格之间的运用。6.注意及时的调用保存函数,不让数据流失。4.2工作任务二 文件读取与保存在保存文件的时候是先要注明一个文件,

13、且在储存的时候是从临时空间读取一个,就储存一个。在读取的时候,是利用碰到空格跳过来读取的,注意保存时标明的前面几行不是我们所要的信息。4.2.1解决方案/用户基本信息的储存和读取/保存用户信息void bus_Manage:savecard() ofstream feio(用户基本信息.txt,ios:ate); if (!feio) cerr打开文件错误!endl; else for (int i=1;i=buscount;i+) if(i=1) feiont-现有学生基本信息详表-endl; feiont姓名t性别t电话t余额; feiontgetname()tgetsex()tgette

14、l()tgetmoney(); /读取用户信息void bus_Manage:readcard() ifstream rfile(用户基本信息.txt); char name20; /姓名 char sex6; /性别 char tel15; /电话号码 int money; /余额 int i=1; char line400; while (!rfile.eof() if(i=1) rfile.getline(line,400); rfile.getline(line,400); rfile.getline(line,400); rfile.getline(line,400); rfilen

15、ame; rfilesex; rfiletel; rfilemoney; bti+=new bus1(name,sex); /把从文件中读取的信息按顺序放到bt空间中 bwi+=new bus2(name,sex,tel,money); /把从文件中读取的信息按顺序放到bw空间中 buscount=+i; rfile.close(); buscount=(buscount/2+1); 4.2.2归纳分析1.注意ios:ate和ios:app的使用。2.由于储存时在具体内容前有几行介绍,所以我们在读取时应注意把这几行读了并丢掉。4.3工作任务三 添加新卡添加新卡,卡号按照自然数列向下自动产生,姓

16、名、电话、性别初始金额由用户输入。4.3.1解决方案bus_Manage:bus_Manage() bt=new bus1*SIZE; bw=new bus2*SIZE; /临时变量,存储当前输入的用户信息/添加新卡void bus_Manage:addcard() int m;/充值金额 char x10,s30,t13;/职工的姓名s和职工的性别x和电话t char ch; ch=y; while(ch=y|ch=Y) system(cls); coutendl; couts; coutendl; coutx; coutendl; coutt; coutendl; coutm; coute

17、ndl; btbuscount=new bus1(s,x); bwbuscount=new bus2(s,x,t,m); coutntt您的新卡帐号为: buscountendl; coutch; if(ch=y|ch=Y) buscount+; mancount+; else break; return;4.3.2运行情况程序运行结果如图:图3-1 录入用户信息界面4.3.3归纳分析1.注意静态变量的使用。2.要先分配新的空间。4.4工作任务四 坐车读卡完成坐车读卡扣费的功能,先输入用户的卡号,查询用户的卡内余额,然后再输入坐车的站数,完成相应的扣费。4.4.1解决方案/坐车读卡void b

18、us_Manage:playcard() int m=0; int er=1; int j=0,k=10; system(cls); while(er) coutj; if(j=buscount) coutn卡内余额为:getmoney()endl; coutk; if(k0)&(kgetmoney(); if(m=0) cout卡内余额不足,请您支付现金!endl; else m=m-1; coutn卡内余额为:msetmoney(m); else if(k=11)&(kgetmoney(); if(m2) cout卡内余额不足,请您支付现金!endl; else m=m-2; coutn卡

19、内余额为:msetmoney(m); else if(k=16)&(kgetmoney(); if(m3) cout卡内余额不足,请您支付现金!endl; else m=m-3; coutn卡内余额为:msetmoney(m); else if(k=21)&(kgetmoney(); if(m4) cout卡内余额不足,请您支付现金!endl; else m=m-4; coutn卡内余额为:msetmoney(m); else if(k=26)&(kgetmoney(); if(m5) cout卡内余额不足,请您支付现金!endl; else m=m-5; coutn卡内余额为:msetmon

20、ey(m); else cout站数不存在endl; couter; return;4.4.2运行情况程序运行结果如图:图4-1 坐车读卡界面4.4.3归纳分析1.注意输二级指针的使用。2.注意控制循环的次数。4.5工作任务五 修改卡信息完成修改用户信息的功能,先输入用户的账号,判断该卡是否存在,如果存在则输出用户的信息,然后询问是否修改用户的信息。4.5.1解决方案/修改卡信息void bus_Manage:changecard() int m,i;/用户初始化金额 char x10,s30,t13;/职工的姓名s和职工的性别x和电话t int n; char ch=y; while(ch=

21、y)|(ch=Y) system(cls); coutnt *修改卡信息*nendl; coutn; if(nbuscount) cout要修改的用户不存在!nendl; break; for(i=1;i=buscount;i+) if(i=n) coutnt 要修改的用户信息如下:nendl; coutsetw(10)姓名setw(10)性别setw(10)电话setw(10)余额endl; printer(bwi); /调用显示用户完整信息 break; coutnt 确定修改吗?(y/n)nch; if(ch=y)|(ch=Y) system(cls); cout请进行修改!nendl;

22、 coutntt 用户的帐号: nendl; couts; coutx; coutt; coutm; coutch; if (ch=y|ch=Y) bti=new bus1(s,x); bwi=new bus2(s,x,t,m); break; else continue; coutch; return;4.5.2运行情况程序运行结果如图:图5-1修改卡信息图5-2修改卡信息图5-3修改卡信息验证4.5.3归纳分析 1.注意格式控制,界面要清晰。2.注意修改后的值该怎么传。4.6工作任务六 浏览卡信息完成浏览用户信息的功能,浏览用户信息分为用户信息的祥表和用户信息的简表,输入生成表的相应编号,输出用户的信息。4.6.1解决方案/浏览用户信息void bus_Manage:showcard() int i; int s; /定义表示选择的参数 while(1) system(cls); coutendl; cout |*|endl; cout | 浏览用户信息子菜单 |endl; cout |*|endl; cout | 1-生成信息简表 |endl; cout | 2-生成信息详表 |endl; cout | 0-退出 |endl; cout |*|endl; couts; switch(

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1