c语言Atm的简单实现.docx

上传人:b****1 文档编号:2090577 上传时间:2022-10-26 格式:DOCX 页数:18 大小:230.32KB
下载 相关 举报
c语言Atm的简单实现.docx_第1页
第1页 / 共18页
c语言Atm的简单实现.docx_第2页
第2页 / 共18页
c语言Atm的简单实现.docx_第3页
第3页 / 共18页
c语言Atm的简单实现.docx_第4页
第4页 / 共18页
c语言Atm的简单实现.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

c语言Atm的简单实现.docx

《c语言Atm的简单实现.docx》由会员分享,可在线阅读,更多相关《c语言Atm的简单实现.docx(18页珍藏版)》请在冰豆网上搜索。

c语言Atm的简单实现.docx

c语言Atm的简单实现

信息科学与工程学院

《数据结构》

课程设计报告

课程设计名称:

ATM得设计与实现

专业班级:

学生姓名:

学号:

2

指导教师:

课程设计时间:

2016-2017学年第二学期

计算机科学与技术专业课程设计任务书

学生姓名

罗淇

专业班级

计科1601

学号2

题目

ATM得设计与实现

课题性质

A

课题来源

D

指导教师

同组姓名

主要内容

一、基本功能:

1.定义储户、银行卡、ATM机与流水账等数据类型。

2.实现录入信息功能:

录入信息包括储户与银行卡(上述信息都不少于100条)。

3.实现存取款功能:

存款时,修改存折余额并将存款明细登记在流水账中,取款时,要判断取款金额就是否大于余额以及就是否超过限额,同时要判断就是否大于ATM机得剩余钱数,取款成功后修改存折余额以及ATM机得总钱数,并将取款明细登记在流水账中。

4.实现查询功能:

储户可以查询某时间段内得流水账;银行领导可以查询某时间段内不同地点得ATM得使用情况(存取款次数、发生额等)。

5.实现排序功能:

根据卡内余额对储户进行排序。

6.储户、银行卡、ATM机与流水账等数据存入文件。

二、扩展功能:

1.定义用户类型:

用户(用户编号,用户名,密码,类型),其中,类型值为0表示超级用户,为1表示普通用户,超级用户具备所有权限,普通用户只具备浏览(查询)权限。

采用顺序表作为存储结构。

2.实现创建用户功能。

不少于3个超级用户与就是10个普通用户。

3.实现设置密码功能。

用户可以修改自己得密码。

4.实现登录系统功能。

当用户名与密码输入都正确后才能使用该系统。

5.用户数据以文本文件格式存储。

任务要求

1.数据类型如下:

储户(身份证,户名,密码);银行卡(卡号,身份证,余额,开户日期,限额),其中,限额表示当天允许取款得上限;ATM机(机器代码,地址,总钱数);流水账(机器代码,卡号,存取款,发生日期,发生额),其中,存取款值为0表示存款为1表示取款。

其中,“储户”与、“银行卡”采用顺序表作为存储结构,“流水账”采用单链表作为存储结构。

2.根据需求分析给出概要设计与详细设计,并编程实现相关功能模块,本系统包括以下功能模块:

实现统计功能、实现登录系统功能、实现创建用户功能、实现设置密码功能、实现存取款、查询等。

3.结合课题利用数据结构相关知识,利用C语言实现该系统得所有上述功能,要求界面友善,程序运行正常。

4.提交课程设计报告1份(具体写作要求参考样例),可运行得系统与源代码电子版一套。

参考文献

严蔚敏、《数据结构(C语言版)》、北京:

清华大学出版社

谭浩强、《C语言程序设计》、(第三版)北京:

清华大学出版社

审查意见

指导教师签字:

教研室主任签字:

2017年06月15日

说明:

本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页

1需求分析

ATM自助机——便于储户存钱、取钱。

按功能分为两大系统:

个人用户系统与银行后台系统;

个人用户系统————登录(输入正确得账号或密码才能进入)、存款、取款、查瞧流水账(查瞧用户最近存取款情况)、排序(此为超级用户功能,可以查瞧所有人得余额)、修改密码(修改个人登录密码);

银行后台系统————atm使用情况(便于银行人员管理atm机)、录入信息(包括录入用户及其银行卡号信息与录入atm信息)、恢复限额(每天6点恢复所有人得取款上限)。

1、1存款

输入金额,存入ATM,当前AMT以及自己得余额会增加并且自动生成流水账。

1、2取款

输入取款金额,判断它就是否小于ATM总金额并且小于当天得限额,当前得ATM金额减少,自己得余额与限额也会减少。

1、3查瞧流水账

输出自己近段时间内得所有操作,发生额,以及时间。

1、4排序

此为超级用户功能,实现以余额对所有用户排序并且输出一些信息。

1、5修改密码

修改用户登录密码。

1、6查瞧ATM使用情况

查瞧每一台ATM得使用情况,输出存取款发生额及其次数。

1、7录入信息

能录入用户、银行卡以及ATM得信息。

根据提示一步步输入数据,存入数组中,最后存入文件。

1、8恢复限额

恢复用户一天得限额。

2

概要设计

2、1数据类型得定义

1.定义用户类型

typedefstructnodetypedefstruct

{

charnumber[5];//用户编号

charUser_name[11];//用户名

charpassword[7];//密码

intkind;//用户类型

}User;

2.定义时间类型

typedefstruct

{

intyear;

intmonth;

intday;

}Data;

3.定义银行卡类型

typedefstruct

{

charcardnumber[20];//银行卡号

charIdcard[19];//身份证号

intbalance;//余额

Dataopen;//开户时间

intquota;//限额

}Bankcard;

4.定义ATM类型

typedefstruct

{

charcode[5];//机器代码

charaddress[30];//地址

intTotal_money;//取款机总金额

}ATM;

5、定义流水账类型

typedefstructnode

{

charcode[5];//机器代码

charcardnumber[20];//银行卡号

intaccess;//存取,0存款,1取款

Dataoccurrence;//发生日期

intmoney;//发生额

structnode*next;

}Book,*Link;

2、2功能模块结构图

根据需求分析,为了满足用户得功能需求,按照软件开发方法学中得模块划分原则,我将本系统主要划分为两个子系统:

个人用户系统与银行后台系统。

个人用户系统有如下功能:

存款,取款,排序,流水账,密码;银行后台系统有如下功能:

ATM使用情况,录入信息,恢复限额。

各模块之间得关系如图1所示。

图1模块结构图

为了实现上述功能模块,因此定义多个函数以及包含多个头文件便于实现,本系统定义得函数与功能如下:

1、函数

voidload1(Userus[],int*n);加载用户信息

voidload2(Bankcardba[]);加载银行卡信息

voidload3(ATMat[]);加载Atm信息

voidload4(Linkhead);加载流水账

voiddisplay();主界面

voiddisplay1();个人用户界面

voiddisplay2();用户后台界面

intLogin(Userus[],intn);用户登录界面

intLogin2();银行后台登录界面

voidsave1(Userus[],intn);存储用户信息

voidsave2(Bankcardba[],intn);存储银行卡信息

voidsave3(ATMat[],intm);存储Atm信息

voidsave4(Linkhead);存储流水账信息

voidadd(Userus[],Bankcardba[],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);取款

intfindAtm(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(Linkhead,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查找ATM

generateBook、h

change_password、h修改密码

recovery_quota、h恢复限额

seebook、h查瞧现在

seeAtm、h。

查瞧ATM使用情况

3运行环境

1.硬件环境:

PC机内存8G;硬盘1000G

2.软件环境:

操作系统:

windows7

4开发工具与编程语言

开发环境:

VisualC++

编程语言:

C语言

5详细设计

在概要设计得基础上,对每个模块进行内部逻辑处理部分详细设计。

下面分别列出各个模块具体实现流程图:

5.1主函数

5、2录入函数

5、3加载与存储函数

5、4输出流水账函数

5、5查瞧ATM使用情况函数

6程序编码

根据详细设计得流程图转化为如下代码,下面列出主函数代码:

#include"define、h"

#include"save、h"

#include"display、h"

#include"load、h"

#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"

#include"seeAtm、h"

intmain()

{

intn,select,k,g,choice,m,t,money;

Userus[N];

Ban

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 教育学

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

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