1.5修改密码
修改用户登录密码。
1.6查看ATM使用情况
查看每一台ATM的使用情况,输出存取款发生额及其次数。
1.7录入信息
能录入用户、银行卡以及ATM的信息。
根据提示一步步输入数据,存入数组中,最后存入文件。
1.8恢复限额
恢复用户一天的限额。
2
概要设计
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];//机器代码
3
2
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();主界面
void display1();个人用户界面 void display2();用户后台界面
4
int Login(User us[],int n);用户登录界面 int Login2();银行后台登录界面
void save1(User us[],int n);存储用户信息
void save2(Bankcard ba[],int n);存储银行卡信息 void 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);输出一个信息 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);更改密码
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 显示界面
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使用情况
5
3
运行环境
1. 硬件环境:PC机内存 8G;硬盘1000G 2. 软件环境:操作系统:windows7
6