c语言Atm的简单实现
信息科学与工程学院《数据结构》
课程设计报告
课程设计名称: ATM的设计与实现
专业班级:
学生姓名:
学号: 201616010107
指导教师:
课程设计时间:2016-2017学年第二学期
计算机科学与技术专业课程设计任务书
说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页
目录
1 需求分析 (1)
1.1存款 (1)
1.2取款 (1)
1.3查看流水账 (1)
1.4排序 (1)
1.5修改密码 (2)
1.6查看ATM使用情况 (2)
1.7录入信息 (2)
1.8恢复限额 (2)
2 概要设计 (3)
2.1数据类型的定义 (3)
2.2功能模块结构图 (4)
3 运行环境 (6)
4 开发工具和编程语言 (7)
5 详细设计 (8)
5.1 主函数 (8)
5.2 录入函数 (9)
5.3加载和存储函数 (9)
5.4 输出流水账函数 (10)
5.5 查看ATM使用情况函数 (10)
6 程序编码 (11)
7 运行结果 (14)
8 心得体会 (15)
9 参考文献 (16)
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.1数据类型的定义
1.定义用户类型
typedef struct node typedef struct {
char number[5];//用户编号
char User_name[11];//用户名
char password[7];//密码
int kind;//用户类型
}User;
2.定义时间类型
typedef struct
{
int year;
int month;
int day;
}Data;
3.定义银行卡类型
typedef struct
{
char cardnumber[20];//银行卡号
char Idcard[19];//身份证号
int balance;//余额
Data open;//开户时间
int quota;//限额
}Bankcard;
4.定义ATM类型
typedef struct
{
char code[5];//机器代码
char address[30];//地址
int Total_money;//取款机总金额
}ATM;
5.定义流水账类型
typedef struct node
{
char code[5];//机器代码
char cardnumber[20];//银行卡号
int access;//存取,0存款,1取款
Data occurrence;//发生日期
int money;//发生额
struct node *next;
}Book,*Link;
2.2功能模块结构图
根据需求分析,为了满足用户的功能需求,按照软件开发方法学中的模块划分原则,我将本系统主要划分为两个子系统:个人用户系统和银行后台系统。个人用户系统有如下功能:存款,取款,排序,流水账,密码;银行后台系统有如下功能:ATM使用情况,录入信息,恢复限额。各模块之间的关系如图1所示。
图 1模块结构图
为了实现上述功能模块,因此定义多个函数以及包含多个头文件便于实现,本系统定义的函数和功能如下:
1.函数
void load1(User us[],int *n);加载用户信息
void load2(Bankcard ba[]);加载银行卡信息
void load3(ATM at[]);加载Atm信息
void load4(Link head);加载流水账
void display();主界面