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

下载本文档

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

文档简介

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

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

3、存储结构。2. 实现创建用户功能。不少于3个超级用户和是10个普通用户。3. 实现设置密码功能。用户可以修改自己的密码。4. 实现登录系统功能。当用户名和密码输入都正确后才能使用该系统。精品.5. 用户数据以文本文件格式存储。任务要求1. 数据类型如下:储户(身份证,户名,密码);银行卡(卡号,身份证,余额,开户日期,限额),其中,限额表示当天允许取款的上限;atm机(机器代码,地址,总钱数);流水账(机器代码,卡号,存取款,发生日期,发生额),其中,存取款值为0表示存款为1表示取款。其中, “储户”和、“银行卡”采用顺序表作为存储结构, “流水账”采用单链表作为存储结构。2. 根据需求分析给

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

5、文)首页 精品. 目录1需求分析11.1存款11.2取款11.3查看流水账11.4排序11.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参考文献16精品.1 需求分析atm自助机便于储户存钱、取钱。按功能分为两大系统:个人用户系统和银行后台系统;个人用户系统登录(输入正确的账号或密码才能进入)、存款、取款、查看流

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

7、改用户登录密码。1.6查看atm使用情况 查看每一台atm的使用情况,输出存取款发生额及其次数。1.7录入信息能录入用户、银行卡以及atm的信息。根据提示一步步输入数据,存入数组中,最后存入文件。1.8恢复限额恢复用户一天的限额。精品.概要设计2.1数据类型的定义1. 定义用户类型 typedef struct node typedef struct char number5;/用户编号char user_name11;/用户名 char password7;/密码int kind;/用户类型user;2. 定义时间类型 typedef struct int year; int month;

8、int day;data;3. 定义银行卡类型 typedef struct char cardnumber20;/银行卡号 char idcard19;/身份证号 int balance;/余额 data open;/开户时间 int quota;/限额bankcard;4. 定义atm类型 typedef struct char code5;/机器代码 char address30;/地址 int total_money;/取款机总金额atm;5.定义流水账类型typedef struct node char code5;/机器代码精品. char cardnumber20;/银行卡号 i

9、nt access;/存取,0存款,1取款 data occurrence;/发生日期 int money;/发生额 struct node *next;book,*link;2.2功能模块结构图根据需求分析,为了满足用户的功能需求,按照软件开发方法学中的模块划分原则,我将本系统主要划分为两个子系统:个人用户系统和银行后台系统。个人用户系统有如下功能:存款,取款,排序,流水账,密码;银行后台系统有如下功能:atm使用情况,录入信息,恢复限额。各模块之间的关系如图1所示。图 1模块结构图为了实现上述功能模块,因此定义多个函数以及包含多个头文件便于实现,本系统定义的函数和功能如下:1.函数void

10、 load1(user us,int *n);加载用户信息void load2(bankcard ba);加载银行卡信息void load3(atm at);加载atm信息void load4(link head);加载流水账void display();主界面精品.void display1();个人用户界面void display2();用户后台界面int login(user us,int n);用户登录界面int login2();银行后台登录界面void save1(user us,int n);存储用户信息void save2(bankcard ba,int n);存储银行卡信息v

11、oid save3(atm at,int m);存储atm信息void save4(link head);存储流水账信息void add(user us,bankcard ba,atm at,int *n,int *m);录入用户和银行卡信息void inputrecord(user us,bankcard ba,int i);录入一个信息void inputatm(atm at,int i);录入一个atm信息void output(user us,bankcard ba,int n);输出排序后的用户信息void printrecord(user *u,bankcard *b);输出一个信

12、息void sort(user us,bankcard ba,int n);用户排序int deposit(int *p,int *a);存款int withdraw(bankcard *p,atm *a);取款int findatm(atm at,int m);查找atm是否存在void generate1(link head,char code,char cardnumber,int money);生成流水账void generate2(link head,char code,char cardnumber,int money);生成流水账void change(user *u);更改密码

13、void recovery(bankcard ba,user us,int n);恢复限额void seebook(link head,char cardnumber);查看流水账int printbook(link p);输出一个流水账void seeatm(link head,atm at,int m);查看atm使用情况printatm(atm at,int number1,int number2,int money1,int money2);输出所有atm使用情况。2.头文件define.h 定义结构体类型、包含系统头文件、以及函数声明save.h 存储数据到文件display.h 显

14、示界面load.h 加载文件到数组或链表add.h 录入信息output.h 输出排序后的信息sort.h 排序(按余额)deposit.h 存款withdraw.h 取款findatm.h 查找atmgeneratebook.h change_password.h 修改密码recovery_quota.h 恢复限额seebook.h 查看现在seeatm.h。 查看atm使用情况精品.2 运行环境1. 硬件环境:pc机内存 8g;硬盘1000g2. 软件环境:操作系统:windows7精品.3 开发工具和编程语言开发环境:visual c+编程语言:c语言精品.4 详细设计在概要设计的基础上

15、,对每个模块进行内部逻辑处理部分详细设计。下面分别列出各个模块具体实现流程图:精品.4.1 主函数 精品.5.2 录入函数5.3加载和存储函数精品.5.4 输出流水账函数5.5 查看atm使用情况函数精品.5 程序编码根据详细设计的流程图转化为如下代码,下面列出主函数代码:#includedefine.h#includesave.h#includedisplay.h#includeload.h#includeadd.h#includeoutput.h#includesort.h#includedeposit.h#includewithdraw.h#includefindatm.h#includ

16、egeneratebook.h#includechange_password.h#includerecovery_quota.h#includeseebook.h#includeseeatm.hint main() int n,select,k,g,choice,m,t,money; user usn; bankcard ban; atm atm; link bk; bk=(link)malloc(sizeof(book);bk-next=null; load1(us,&n); load2(ba); load3(at,&m); load4(bk); while(1) system(cls);

17、display(); scanf(%d,&select); if(select=1) g=findatm(at,m); if(g!=-1) k=login(us,n); if(k!=-1) 精品. while(1) system(cls); display1(); t=0; scanf(%d,&choice); switch(choice) case 1:money=deposit(&bak.balance,&atg.total_money);generate1(bk,atg.code,bak.cardnumber,money);save2(ba,n);save3(at,m);save4(bk

18、);break;/存款 case 2:money=withdraw(&bak,&atg);/取款 if(money!=-1) generate2(bk,atg.code,bak.cardnumber,money);save2(ba,n);save3(at,m);save4(bk);break; case 3:seebook(bk,bak.cardnumber);break;/查看流水账 case 4:if(usk.kind=0) sort(us,ba,n); else printf(权限不足,请重新选择n);system(pause);t=0;break;/排序 case 5:change(u

19、sk.password);save1(us,n);break;/修改密码 case 6:t=1;break; if(t=1)break; else if(select=9) if(login2()=1) while(1) system(cls); display2();scanf(%d,&choice);switch(choice) case 1:seeatm(bk,at,m);break;/atm使用情况精品. case 2:add(us,ba,at,&n,&m);break;/录入信息 case 3:recovery(ba,us,n);break;/恢复限额 case 4: return 0;/退出 else printf(由于您的恶意输入,您的银行卡已被没收,请前往银行找回!n); system(pause); return 0; 精品.6 运行结果以下为排序和查询流水账结果测试:精品.心得体会本学期,当数据结构大作业刚布置下来的时候感觉很难,因为感觉实现的功能比较多并且时间又短,根本完不成这个任务,在写大作业的过程中也并不是那么顺利,存在着

温馨提示

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

评论

0/150

提交评论