c语言Atm的简单实现_第1页
c语言Atm的简单实现_第2页
c语言Atm的简单实现_第3页
c语言Atm的简单实现_第4页
c语言Atm的简单实现_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、信息科学与工程学院数据结构课程设计报告课程设计名称:ATM的设计与实现专业班级:学生姓名:学号:201616010107指导教师:课程设计时间:2016-2017学年第二学期计算机科学与技术专业课程设计任务书学生姓名罗淇专业班级计科1601学号201616010107题目ATM的设计与实现课题性质A课题来源D指导教师同组姓名无主要内容1、 基本功能:1 .定义储户、银行卡、ATMM和流水账等数据类型。2 .实现录入信息功能:录入信息包括储户和银行卡(上述信息都不少于100条)。3 .实现存取款功能:存款时,修改存折余额并将存款明细登记在流水账中,取款时,要判断取款金额是否大于余额以及是否超过限

2、额,同时要判断是否大于ATM机的剩余钱数,取款成功后修改存折余额以及ATMB的总钱数,并将取款明细登记在流水账中。4 .实现查询功能:储户可以查询某时间段内的流水账;银行领导可以查询某时间段内不同地点的ATM勺使用情况(存取款次数、发生额等)。5 .实现排序功能:根据卡内余额对储户进行排序。6 .储户、银行卡、ATMM和流水账等数据存入文件。2、 扩展功能:1 .定义用户类型:用户(用户编号,用户名,密码,类型),其中,类型值为0表示超级用户,为1表示普通用户,超级用户具备所有权限,普通用户只具备浏览(查询)权限。采用顺序表作为存储结构。2 .实现创建用户功能。不少于3个超级用户和是10个普通

3、用户。3 .实现设置密码功能。用户可以修改自己的密码。4 .实现登录系统功能。当用户名和密码输入都正确后才能使用该系统。5.用户数据以文本文件格式存储。任务要求1 .数据类型如下:储户(身份证,户名,密码);银行卡(身份证,余额,开户日期,限额),其中,限额表示当天允许取款的上限;ATMM(机器代码,地址,总钱数);流水账(机器代码,七号,存取款,发生日期,发生额),其中,存取款值为0表示存款为1表示取款。其中,“储户”和、“银行卡”采用顺序表作为存储结构,“流水账”采用单链表作为存储结构。2 .根据需求分析给出概要设计和详细设计,并编程实现相关功能模块,本系统包括以卜功能模块:实现统计功能、

4、实现登录系统功能、实现创建用户功能、实现设置密码功能、实现存取款、查询等。3 .结合课题利用数据结构相关知识,利用C语言实现该系统的所有上述功能,要求界面友善,程序运行正常。4 .提交课程设计报告1份(具体写作要求参考样例),可运行的系统和源代码电子版一套。奔f文献严蔚敏.数据结构(C语言版).北京:清华大学出版社谭浩强.C语言程序设计.(第三版)北京:清华大学出版社审查意见指导教师签字:教研室主任签字:2017年06月15日说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页目录1 需求分析11.1 存款11.2 取款11.3 查看流水账11.4 排序11.5

5、修改密码21.6 查看ATM使用情况21.7 录入信息21.8 恢复限额22 概要设计32.1 数据类型的定义32.2 功能模块结构图43 运行环境64 开发工具和编程语言75 详细设计85.1 主函数85.2 录入函数95.3 加载和存储函数95.4 输出流水账函数105.5 查看ATM使用情况函数106 程序编码117 运行结果148 心得体会159 参考文献161需求分析ATM自助机一一便于储户存钱、取钱。按功能分为两大系统:个人用户系统和银行后台系统;个人用户系统自自自自登录(输入正确的账号或密码才能进入)、存款、取款、查看流水账(查看用户最近存取款情况)、排序(此为超级用户功能,可以

6、查看所有人的余额)、修改密码(修改个人登录密码);银行后台系统atm使用情况(便于银行人员管理atm机)、录入信息(包括录入用户及其银行卡号信息和录入atm信息)、恢复限额(每天6点恢复所有人的取款上限)。1.1 存款输入金额,存入ATM,当前AMT以及自己的余额会增加并且自动生成流水账。1.2 取款输入取款金额,判断它是否小于ATM总金额并且小于当天的限额,当前的ATM金额减少,自己的余额和限额也会减少。1.3 查看流水账输出自己近段时间内的所有操作,发生额,以及时间。1.4 排序此为超级用户功能,实现以余额对所有用户排序并且输出一些信息。1.5 修改密码修改用户登录密码。1.6 查看ATM

7、使用情况查看每一台ATM的使用情况,输出存取款发生额及其次数。1.7 录入信息能录入用户、银行卡以及ATM的信息。根据提示一步步输入数据,存入数组中,最后存入文件。1.8 恢复限额恢复用户一天的限额。202概要设计2.1 数据类型的定义1. 定义用户类型typedefstructnodetypedefstructcharnumber5;/用户编号charUser_name11;/用户名charpassword7;/密码intkind;/用户类型User;2. 定义时间类型typedefstructintyear;intmonth;intday;Data;3. 定义银行卡类型typedefstr

8、uctcharcardnumber20;/银行卡号charIdcard19;/身份证号intbalance;/余额Dataopen;/开户时间intquota;/限额Bankcard;4. 定义ATM类型typedefstructcharcode5;/机器代码charaddress30;/地址intTotal_money;/取款机总金额ATM;5. 定义流水账类型typedefstructnodecharcode5;/机器代码charcardnumber20;?艮行卡号intaccess;/存取,0存款,1取款Dataoccurrence;/发生日期intmoney;/发生额structnod

9、e*next;Book,*Link;2.2 功能模块结构图根据需求分析,为了满足用户的功能需求,按照软件开发方法学中的模块划分原则,我将本系统主要划分为两个子系统:个人用户系统和银行后台系统。个人用户系统有如下功能:存款,取款,排序,流水账,密码;银行后台系统有如卜功能:ATM使用情况,录入信息,恢复限额。各模块之间的关系如图1所示。用广利银 打卡佐用Almi :x-图1模块结构图为了实现上述功能模块,因此定义多个函数以及包含多个头文件便于实现,本系统定义的函数和功能如下:1 .函数void10adi(Userus口,int*n);加载用户信息void10ad2(Bankcardba);加载银

10、行卡信息void10ad3(ATMat);加载Atm信息void10ad4(Linkhead);加载流水账voiddisplay。;主界面voiddisplay1();个人用户界面voiddisplay2();用户后台界面intLogin(Userus,intn);用户登录界面intLogin2();银行后台登录界面voidsave1(Userus,intn);存储用户信息voidsave2(Bankcardba,intn);存储银行卡信息voidsave3(ATMat,intm);存储Atm信息voidsave4(Linkhead);存储流水账信息voidadd(Userus,Bankcar

11、dba,ATMat,int*n,int*m);录入用户和银行卡信息voidinputRecord(Userus,Bankcardba,inti);录入一个信息voidinputATM(ATMat,inti);录入一个Atm信息voidoutput(Userus,Bankcardba,intn);输出排序后的用户信息voidPrintRecord(User*u,Bankcard*b);输出一个信息voidsort(Userus,Bankcardba,intn);用户排序intdeposit(int*p,int*a);存款intwithdraw(Bankcard*p,ATM*a);取款intfin

12、dAtm(ATMat,intm);查找atm是否存在voidgenerate1(Linkhead,charcode,charcardnumber,intmoney);生成流水账voidgenerate2(Linkhead,charcode,charcardnumber,intmoney);生成流水账voidchange(User*u);更改密码voidrecovery(Bankcardba,Userus,intn);恢复限额voidseebook(Linkhead,charcardnumber);查看流水账intPrintbook(Linkp);输出一个流水账voidseeAtm(Linkhe

13、ad,ATMat,intm);查看Atm使用情况PrintAtm(ATMat,intnumber1,intnumber2,intmoney1,intmoney2);输出所有Atm使用情况。2 .头文件define.h定义结构体类型、包含系统头文件、以及函数声明save.h存储数据到文件display.h显示界面load.h加载文件到数组或链表add.h录入信息output.h输出排序后的信息sort.h排序(按余额)deposit.h存款withdraw.h取款findAtm.h查找ATMgenerateBook.hchange_password.h修改密码recovery_quota.h恢复

14、限额seebook.h查看现在seeAtm.h。查看ATM8用情况3运行环境1 .硬件环境:PC机内存8G;硬盘1000G2 .软件环境:操作系统:windows74开发工具和编程语言开发环境:VisualC+编程语言:C语言5详细设计在概要设计的基础上,对每个模块进行内部逻辑处理部分详细设计。下面分别列出各个模块具体实现流程图:5.1主函数5.2录入函数|始Oiartsi:3viniselect;HxMT.四周录入用户酊桀打卡后思函数FIfsrIe亡32+JH爱人联TMe总由依5.3 加载和存储函数rniiKanf函敝出以加再入坟机度曾表调用MintflE数据写到文件5.4 输由流水账函数5

15、.5查看ATM使用情况函数71Wjnit4fi'Hiir1p|4Mi/一Fcnw?minilwrI|中ldIINJa/N,|kiho-hejbd-n芷Kt;/X.->«£>cJaX,I.ip-E*nu*liw”“*4:mn,v'1rLi-ennc窜I*p-j-monev;6程序编码根据详细设计的流程图转化为如下代码,下面列出主函数代码:#include"define.h"#include"save.h"#include"display.h"#include"load.h&quo

16、t;#include"add.h"#include"output.h"#include"sort.h"#include"deposit.h"#include"withdraw.h"#include"findAtm.h"#include"generateBook.h"#include"change_password.h"#include"recovery_quota.h"#include"seebook.h&

17、quot;#include"seeAtm.h"intmain()intn,select,k,g,choice,m,t,money;UserusN;BankcardbaN;ATMatM;Linkbk;bk=(Link)malloc(sizeof(Book);bk->next=NULL;load1(us,&n);load2(ba);load3(at,&m);load4(bk);while(1)system("cls");display();scanf("%d",&select);if(select=1)g=f

18、indAtm(at,m);if(g!=-1)k=Login(us,n);if(k!=-1)while(1)system("cls");display1();t=0;scanf("%d",&choice);switch(choice)case1:money=deposit(&bak.balance,&atg.Total_money);generate1(bk,atg.code,bak.cardnumber,money);save2(ba,n);save3(at,m);save4(bk);break/款case2:money=with

19、draw(&bak,&atg);/取款if(money!=-1)generate2(bk,atg.code,bak.cardnumber,money);save2(ba,n);save3(at,m);save4(bk);break;case3:seebook(bk,bak.cardnumber);break;森看流水账case4:if(usk.kind=0)sort(us,ba,n);elseprintf("权限不足,请重新选择n");system("pause");t=0;break;/用F序case5:change(usk.passw

20、ord);save1(us,n);brea淄改密码case6:t=1;break;if(t=1)break;elseif(select=9)if(Login2()=1)while(1)system("cls");display2();scanf("%d",&choice);switch(choice)case1:seeAtm(bk,at,m);break;atm£用情况case2:add(us,ba,at,&n,&m);break;展入信息case3:recovery(ba,us,n);break;诙复限额case4:r

21、eturn0;/退出elseprintf("由于您的恶意输入,您的银行卡已被没收,请前往银行找回!n");system("pause");return0;7运行结果以下为排序和查询流水账结果测试:办迎莅用白丁mW助系统.清蜀入H区的数字进行操作1进入用户系统9进入银行后台系统清输入该MM的机器代码(白TN右上角,例如1111)1111请喻入您的账号123H36T890清输入您的密码fC:UscrminktrtjrDktopATMDebugSATM.axefl1存款2取款3查询4排序5修改密码6退也CUeriXAdminishatorKDeiktopAIM

22、Debug1存款工穹,款3查询4排序5修改密码6退出用户编号:0119月户名:1234567890用户奚型:0银行卡号:123i+5&789101113141S身杨证或125673910111311余额;19500偏题:1EI600用户编号;0017用户名:23WST8Bie用户类型:1银行f号:1223e5H?89551023574安杪证号2459B74563214T5SG2桑赖:会的阪软:1白0Q请接任意键继续.-(TAUsersAdministretorVDesktoDXAT1存欷2取款3查讹4排序5修改密码6退出3以下为存取记录:机器代码为:1111操作为:存款发生曰期为:201T-9G-26发生额为:5州以下为存取记录;机

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论