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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

公交IC卡管理系统实验报告.docx

1、公交IC卡管理系统实验报告公交IC卡管理系统一 目的运用所学课程的知识来研究、解决一些具有一定综合性问题的专业课题。通过课程设计提高学生综合运用所学知识来解决实际问题及进行科学实验或技术设计的初步能力。对于本课程设计而言重点在熟悉C语言基本语法规范以及灵活运用C语言编程解决实际问题。二 需求分析1、该程序主要为实现某公交公司关于公交IC卡的管理,首先应包括基本卡号及其相关信息(如卡号所对应的初始金额)的录入系统;2、应拥有用户乘车处理系统,即记录用户乘车明细(如乘车日期,所称车辆)并实现将乘车费用在相应卡上进行扣除;3、当某卡余额不足时,用户可对其进行充值以实现长久使用;4、应具有查询功能,即

2、输入某一卡号,便可对该卡内余额,扣费明细进行查询;5、以上功能以菜单方式出现并执行。三 概要设计1、主函数模块定义一个结构体组,用来储存IC卡信息typedef struct information char cardnumber11; /*卡号*/ float balance; /*余额*/ long dateN; /*乘车日期*/ int busnumberN; /*所乘车*/ float expensesN; /*费用*/INFORMATION;main()定义变量及对其进行初始化;利用do-while循环执行菜单;将调用函数插入菜单中;由键盘录入来确定循环是否继续;2、被调用函数模块i

3、nt InputInformation(INFORMATION inf)/*函数功能:基本信息包括卡号(只允许录入十位卡号)和初始金额的录入函数参数:inf为结构体组函数返回值:录入卡号个数*/定义变量及其初始化;利用do-while进行基本信息即卡号(只允许录入十位)及初始金额的录入,并记录每位卡号所对应的下标值;由键盘录入的字符来确定是否停止对该函数的调用;返回录入的卡号个数; int ProcessingService(INFORMATION inf,int i,float *p)/*函数功能:乘车明细输入以及对帐户进行扣费处理,若余额不足则进行提示函数参数:inf为结构体组,i为所输卡

4、号对应下标值,*p为账户余额地址函数返回值:乘车次数*/定义变量及其初始化;在主函数中输入卡号并调用查找函数找到该卡号所对应下标值传值给该函数;记录该卡号的扣费明细;当卡内余额不足时不予以扣费并提示尽快充值;由键盘录入的字符来确定是否停止对该函数的调用;void Recharge(INFORMATION infN,int n,float *p)/*函数功能:输入用户卡号及充值金额进行充值函数参数:inf为结构体组,n为录入卡号总数,*p为账户余额地址函数返回值:无*/定义变量及其初始化;在主函数中输入卡号并调用函数找到该卡号对应余额地址传值给该函数;由键盘录入用户想要充值的金额并进行充值;vo

5、id InquiryBusiness(INFORMATION inf,int n,int m)/*函数功能:性息查询,用户输入卡号,程序打印相关信息函数参数:inf为结构体组,n为录入卡号总数,m为乘车次数函数返回值:无*/定义变量及其初始化;输入卡号并调用查找函数找到该卡号所对应下标值;打印出有关该卡号的信息; int Linsearch(INFORMATION infN,char x,int n)/*函数功能:运用线性查找法查找用户输入的卡号函数参数:inf为结构体组,x为用户输入的卡号,n为录入卡号总数函数返回值:若找到则返回其下标值,找不到则返回-1*/定义变量及其初始化;输入卡号并调

6、用查找函数找到该卡号所对应下标值并返回给调用函数;int InputInformationTwo(INFORMATION inf,int n)/*函数功能:第二次及其以后再次录入基本信息函数参数:inf为结构体组, n为录入卡号总数函数返回值:录入卡号个数*/定义变量及其初始化;利用do-while进行基本信息即卡号(只允许录入十位)及初始金额的录入,并记录每位卡号所对应的下标值;由键盘录入的字符来确定是否停止对该函数的调用;返回录入的卡号个数;整个程序的流程图如下所示: order不等于5四 详细设计/*主题:公交IC卡管理系统 功能:基本信息包括卡号,初始金额的录入;输入卡号进行乘车扣费,

7、充值,乘车明细答应 编程语言:C*/#include #include #include #define N 100typedef struct information char cardnumber11; /*卡号*/ float balance; /*余额*/ long dateN; /*乘车日期*/ int busnumberN; /*所乘车*/ float expensesN; /*费用*/INFORMATION;int InputInformation(INFORMATION inf);int InputInformationTwo(INFORMATION inf,int n);vo

8、id Recharge(INFORMATION inf,int n,float *p);int Linsearch(INFORMATION infN,char x,int n);void InquiryBusiness(INFORMATION inf,int n,int m);int ProcessingService(INFORMATION inf,int i,float *p);int main() int order; int n; /*录入卡号的个数*/ int i; /*用户输入查找卡号的返回下标值*/ int j; /*某卡号记载的乘车明细的下标值*/ char x11; INFO

9、RMATION infN; printf(Enter 1 to input the basic informationn); printf(Enter 2 to enter to processing servicen); printf(Enter 3 to rechargen); printf(Enter 4 to inquiry businessn); printf(Enter 5 to stop the programn); do printf(Input the number which you choosen); scanf(%d,&order); while(order!=1&or

10、der!=2&order!=3&order!=4&order!=5); if(order=1) n=InputInformation(inf); printf(There are %d cardsn,n); else if(order=2|order=3|order=4) do printf(Please choose 1 and input the basic informationn); scanf(%d,&order); while(order!=1); n=InputInformation(inf); printf(There are %d cardsn,n); else exit(0

11、); do printf(Enter 1 to input the basic informationn); printf(Enter 2 to enter to processing servicen); printf(Enter 3 to rechargen); printf(Enter 4 to inquiry businessn); printf(Enter 5 to stop the programn); do printf(Input the number which you choosen); scanf(%d,&order); while(order!=1&order!=2&o

12、rder!=3&order!=4&order!=5); if(order=1) n=InputInformationTwo(inf,n); printf(There are %d cardsn,n); if(order=2) do printf(input your card numbern); scanf(%s,x); i=Linsearch(inf,x,n); while(i=-1); j=ProcessingService(inf,i,&infi.balance);/*j为乘车次数*/ if(order=3) do printf(input your card numbern); sca

13、nf(%s,x); i=Linsearch(inf,x,n); while(i=-1); Recharge(inf,n,&infi.balance); if(order=4) InquiryBusiness(inf,n,j); while(order!=5); return 0;/*输入用户卡号及充值金额进行充值,无返回值*/void Recharge(INFORMATION infN,int n,float *p) float money; printf(your cards balance is %.2fn,*p); do printf(How much money do you want

14、 to recharge?n); scanf(%f,&money); while(money=0&infi.cardnumberj=9) digit+; else ; while(digit!=10); do printf(Input initial moneyn); scanf(%f,&infi.balance); while(infi.balance0); printf(Do you want to continue?n); printf(enter yis continue,and nis stopn); scanf( %c,&reply); while(reply=y|reply=Y)

15、; a=i+1;return a;/*运用线性查找法查找用户输入的卡号,若找到则返回其下标值,找不到则返回-1*/int Linsearch(INFORMATION infN,char x,int n) int i; for(i=0;in;i+) if(strcmp(x,infi.cardnumber)=0) return i; else; return -1;/*性息查询,用户输入卡号,程序打印相关信息,无返回值*/void InquiryBusiness(INFORMATION inf,int n,int m) char x11; int i; int j; do printf(input

16、 your card numbern); scanf(%s,x); i=Linsearch(inf,x,n); while(i=-1); printf(the information is :n); printf(the card number is %sn,infi.cardnumber); printf(the balance is %.2fn,infi.balance); for(j=0;j=m;j+) printf(the date is %ldn,infi.datej); printf(the bus number is %dn,infi.busnumberj); printf(th

17、e expenses is %.2fn,infi.expensesj); /*乘车明细输入以及对帐户进行扣费处理,若余额不足则进行提示,返回值为乘车次数*/int ProcessingService(INFORMATION inf,int i,float *p) int j=-1; int flag=1; char reply; do j+; do printf(Input the date,bus number and expensesn); scanf(%ld,&infi.datej); scanf(%d,&infi.busnumberj); scanf(%f,&infi.expenses

18、j); while(infi.datej=0|infi.busnumberj=0|infi.expensesj=0); *p=*p-infi.expensesj; if(*p=0&infi.cardnumberj=9) digit+; else ; while(digit!=10); do printf(Input initial moneyn); scanf(%f,&infi.balance); while(infi.balance0); printf(Do you want to continue?n); printf(enter yis continue,and nis stopn);

19、scanf( %c,&reply); while(reply=y|reply=Y); a=i+1;return a;五 调试分析1、应使用循环以确保录入的初始金额,充值金额,乘车费用均不为负值;2、应使用循环以确保录入卡号位数的正确性;3、由于有从键盘录入字符环节,则应防止缓冲区中回车符的误入而影响程序;4、由于程序信息没有用文件进行保存,因此每次程序运行都要进行初始信息的录入。六 测试结果1、录入卡号及初始金额;2.、输入用户卡号录入乘车明细并对其进行扣费处理;3、输入卡号并进行充值;4、输入卡号进行相关信息的查询。七 用户使用说明1、该程序可在VC环境中运行;2、程序开始运行后,会以菜单的方式展开,用户可通过由键盘输入相应的数字进入需要的功能系统;3、本程序只允许位数为十位的卡号;八 课程设计总结程序使用结构体组,函数调用,多种循环以及选择结构基本完成设计要求。

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

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