c语言Atm的简单实现

c语言Atm的简单实现
c语言Atm的简单实现

信息科学与工程学院《数据结构》

课程设计报告课程设计名称: ATM得设计与实现

专业班级:

学生姓名:

学号: 2

指导教师:

课程设计时间: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开发工具与编程语言 (6)

5详细设计 (6)

5、1主函数 (7)

5、2 录入函数 (8)

5、3加载与存储函数 (8)

5、4 输出流水账函数 (9)

5、5 查瞧ATM使用情况函数 (9)

6程序编码 (10)

7运行结果 (12)

8心得体会 (14)

9参考文献 (14)

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.定义用户类型

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();主界面

void display1();个人用户界面

void display2();用户后台界面

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使用情况

3运行环境

1.硬件环境:PC机内存 8G;硬盘1000G

2.软件环境:操作系统:windows7

4开发工具与编程语言

开发环境:Visual C++

编程语言:C语言

5详细设计

在概要设计得基础上,对每个模块进行内部逻辑处理部分详细设计。下面分别列出各个模块具体实现流程图:

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"

int main()

{

int n,select,k,g,choice,m,t,money;

User us[N];

Bankcard ba[N];

ATM at[M];

Link bk;

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=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(&ba[k]、balance,&at[g]、Total_money);generate1(bk,at[g]、code,ba[k]、cardnumber,money);save2(ba,n);save3(at,m);save4(bk);break;//存款

case 2:money=withdraw(&ba[k],&at[g]);//取款

if(money!=-1)

{generate2(bk,at[g]、code,ba[k]、cardnumber,money);save2(ba,n);save3(at,m);save4(bk);}break;

case 3:seebook(bk,ba[k]、cardnumber);break;//查瞧流水账

case 4:if(us[k]、kind==0)

sort(us,ba,n);

else

printf("权限不足,请重新选择\n");system("pause");t=0;break;//排序

case 5:change(us[k]、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;

}

}

}

7运行结果

以下为排序与查询流水账结果测试:

8心得体会

本学期,当数据结构大作业刚布置下来得时候感觉很难,因为感觉实现得功能比较多并且时间又短,根本完不成这个任务,在写大作业得过程中也并不就是那么顺利,存在着太多得bug,然后就一步步调试,找出错误。写完大作业时,感觉对指针有了更深得理解。在整个过程中对我提升最大得就就是指针得使用与调试了。其实学数据结构,想要掌握它得精髓,就必须自己亲自去实现某一个功能,然后逐步调试,明白它得思想,就能很快地掌握它(实践就是检验真理得唯一标准)。

源代码

ATM.rar

9参考文献

[1]严蔚敏、《数据结构(C语言版)》、北京:清华大学出版社

[2]谭浩强、《C语言程序设计》、(第三版)北京:清华大学出版社

信息科学与工程学院课程设计成绩评价表

课程名称:数据结构课程设计

设计题目:ATM得设计与实现

专业:计算机科学与技术班级:1601 姓名:罗淇学号:2

C语言ATM程序模拟

一、课题要求 1、当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录A TM柜员机系统。 2、查询余额:初始余额为10000元。 3、ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。 4、ATM存款:不能出现负存款。 5、修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确, 新密码符合要求,且两次输入相同的情况下才可以成功修改密码。 二、代码 #include "stdafx.h" #include "stdio.h" #include "windows.h" #include "stdlib.h" #include "conio.h" void gotoxy(int x,int y); //光标位置函数 void enter_ATM(); //账号输入函数 void input_code(); //密码输入函数 void caozuo(); //基本操作界面 void qukuan(); //取款函数 void success(); //操作成功函数 void delay(); //延时函数 void yu_e(); //余额查询函数 void cunkuan(); //存款函数 void panduan(long int z); //判断取款是否合法函数 void exit(); //退出界面函数 void mima(); //密码修改 void zhuangyi(); long int CODE=123456,YU_E=10000; //=========================主函数========================// main() { enter_ATM(); caozuo(); } //======================================================// //==================================柜台机账号输入函数=======================================//

c语言程序设计atm自动取款机实验报告材料

课程设计报告 课程类别:本科 课程名称:程序设计基础(C语言) 课程代号:指导教师: 银行ATM自动取款机系统课程设计 姓名:学号: 姓名:学号: 姓名:学号: 学院: 班级:

目录 1.课程设计内容.................................................. 2.课程设计要求.................................................. 3.可行性研究................................................... 4.需求分析..................................................... 5.概要设计...................................................... 5.1 功能模块图............................................... 5.2 功能模块描述............................................. 5.3数据结构 ................................................. 6.详细设计...................................................... 6.1 功能流程图............................................... 6.2 重点设计................................................. 7.测试与调试.................................................... 8.总结.......................................................... 8.1 心得体会.................................................. 8.2 不足与改进................................................ 9.参考文献......................................................

c语言Atm的简单实现Word版

信息科学与工程学院《数据结构》 课程设计报告 课程设计名称: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排序 此为超级用户功能,实现以余额对所有用户排序并且输出一些信息。

C语言ATM机实现

#include //提供了strcmp()函数 #include struct student { char xm[20];//姓名 char mm[10];//密码 int je;//金额 int zh;//帐号 }; void main() { int i; int k=0; int count=1000; int f; student st[10]={"","",0,0}; bool flag=false; do { printf("1--注册2--登录3--取款4--存款5--查询0--退出\n"); scanf("%d",&i); if (i==1) { printf("输入姓名:"); scanf("%s",&st[k].xm); printf("输入密码"); scanf("%s",&st[k].mm); st[k].zh=count++; printf("你的帐号为%d\n",st[k].zh); k++; } else if (i==2) { int zh; char mm[20]; printf("输入卡号"); scanf("%d",&zh); printf("输入密码"); scanf(" %s",&mm);

for(int j=0;j<10;j++) { if(st[j].zh==zh && strcmp(st[j].mm,mm)==0) { flag=true; printf("找到了"); f=j; break; } } } else if (i==4) { if (flag!=true) { printf("您还没有登录"); } else { printf("输入存款金额"); int je; scanf("%d",&je); st[f].je=st[f].je+je; printf("存款成功"); } } else if (i==3) { if (flag!=true) { printf("您还没有登录"); } else { printf("输入取款金额"); int je; scanf("%d",&je); if (je>st[f].je) { printf("余额不足"); } else { st[f].je=st[f].je-je;

C语言课程设计ATM机模拟操作附源码

C语言-ATM机模拟操作 程序实现功能点: a.查询:查询帐户的存款余额。按任意键返回主菜单; b.取款:输入100、500、1000、2000、5000、其它金额为取款金额,取 款金额不超过帐户余额,操作后帐户余额应相应减少,之后可返回主菜单; c.存款:输入100、500、1000、2000、5000、其它金额为存款金额,存 款金额不超过20000元,操作后帐户余额应相应增加。之后可返回主菜单; d.转帐:输入一个帐户号,程序判断与文件信息是否相符,储户确认无 误后,再输入100、500、1000、2000、5000、其它金额为转帐金额,转帐金额不得超过帐户余额,操作后帐户余额应相应减少。之后可返回主菜单; e.修改密码:连续输入两次新密码(两次输入结果完全相同)后,新密码 取代旧密码,并存放到帐户信息文件中。之后可返回主菜单; f.退出:退出系统; g.帮助:增加趣味性; h.存款时,可正可负,正表示存款,负表示取款; i.帐户信息存放在文件,储户存取款记录保存在中;(在目录下创建这两

个文件) j.采用模块化程序设计方法来实现,即main()显示主菜单、调用相关函数实现相应功能,起主控作用; k.储户一天内输错密码的次数不能超过3次,否则无法进入系统; l.有效避免输入存款金额、取款金额为负数等异常情况的出现。 较为突出的功能是注册、登录时账号密码的核对验证;存款转出转入金额的核对。是否超过余额,是否不符合格式,是否为冲突操作。 (2)程序运行截图及说明(每图限50到100字); 进入程序,menu1可选择登录、注册功能。 选择登录,输入账号密码,通过输入内容与文件的匹配,判断是否成功登录。若登录失败,则重新选择。

C语言模拟ATM机

一、实验目的 通过设计一个ATM机模拟操作的程序,全面运用课程的主要知识点,巩固对模块化程序设计、文件操作的理解,提高软件编程能力。 二、实验要求 要求每人独立完成设计,编写一个ATM机模拟操作程序。提交实验报告、源程序、程序运行截图。 1.程序具有以下功能: 1)登录系统: 输入卡号(16位)、密码(6位),只有卡号、密码同时正确(帐户信息存放在文件中)才能进入系统; 2)操作功能: ●查询:查询帐户的存款余额。按任意键返回主菜单; ●修改密码:连续输入两次新密码(两次输入结果完全相同)后,新密码取代旧密码,并存放到 帐户信息文件中。之后可返回主菜单; ●取款:输入50或100的倍数模拟为取款金额,请注意:取款金额不得超过帐户余额,操作后 帐户余额应相应减少。之后可返回主菜单; ●存款:输入50或100的倍数模拟为存款金额,现假设存款金额不得超过20000元,操作后 帐户余额应相应增加。之后可返回主菜单; ●转帐:先输入一个帐户号(已保存在帐户信息文件中),然后显示一部分用户名(如:张*山), 储户确认无误后,再输入50或100的倍数模拟为转帐金额,请注意:转帐金额不得超过帐户余额,操作后帐户余额应相应减少。之后可返回主菜单; ●退出:退出系统。 2.定义如下结构体类型: ●“日期”结构体Date:成员有:year(年)、month(月)、day(日); ●“帐户”结构体Account:成员有:no(帐户号)、name(姓名)、balance(余额) ●“存取款记录”结构体Record,:成员有:no(帐户号)、date(日期)、number(数量,可正可负, 正表示存款,负表示取款)

C语言课程设计ATM机模拟操作附源码

C语言课程设计A T M机模拟操作附源码 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】

C语言-ATM机模拟操作 程序实现功能点: a.查询:查询帐户的存款余额。按任意键返回主菜单; b.取款:输入100、500、1000、2000、5000、其它金额为取款金额,取 款金额不超过帐户余额,操作后帐户余额应相应减少,之后可返回主菜单; c.存款:输入100、500、1000、2000、5000、其它金额为存款金额,存 款金额不超过20000元,操作后帐户余额应相应增加。之后可返回主菜单; d.转帐:输入一个帐户号,程序判断与文件信息是否相符,储户确认无 误后,再输入100、500、1000、2000、5000、其它金额为转帐金额,转帐金额不得超过帐户余额,操作后帐户余额应相应减少。之后可返回主菜单; e.修改密码:连续输入两次新密码(两次输入结果完全相同)后,新密码 取代旧密码,并存放到帐户信息文件中。之后可返回主菜单; f.退出:退出系统; g.帮助:增加趣味性; h.存款时,可正可负,正表示存款,负表示取款; i.帐户信息存放在文件,储户存取款记录保存在中;(在目录下创建这

两个文件) j.采用模块化程序设计方法来实现,即main()显示主菜单、调用相关函数实现相应功能,起主控作用; k.储户一天内输错密码的次数不能超过3次,否则无法进入系统; l.有效避免输入存款金额、取款金额为负数等异常情况的出现。 较为突出的功能是注册、登录时账号密码的核对验证;存款转出转入金额的核对。是否超过余额,是否不符合格式,是否为冲突操作。 (2)程序运行截图及说明(每图限50到100字); 进入程序,menu1可选择登录、注册功能。 选择登录,输入账号密码,通过输入内容与文件的匹配,判断是否成功登录。若登录失败,则重新选择。

c语言程序设计atm自动取款机实验报告

程设计报告课程类别:本科 课程名称:程序设计基础(C语言) 课程代号:指导教师: 银行ATM自动取款机系统课程设计姓名:学号: 姓名:学号: 姓名:学号: 学院: 班级:

目录 1. 课程设计内容....................... 2. 课程设计要求....................... 3.可行性研究........................ 4.需求分析......................... 5. ...................................................................... 概要设计. 5.1 功能模块图 ..................... 5.2 功能模块描述 ..................... 5.3 数据结构 ...................... 6. ...................................................................... 详细设计. 6.1 功能流程图 ..................... 6.2 重点设计 ...................... 7. 测试与调试........................ 8. 总结. ....................................................... 8.1 心得体会 ....................... 8.2 不足与改进 ...................... 9. 参考文献. ................................................. 1. 课程设计内容

C语言程序设计报告模拟ATM取款机

仲恺农业工程学院工程实训报告 ATM取款机 课程名称C语言程序设计工程实训 姓名林少烈 院(系)计算机科学与工程学院 专业班级计算机113班 学号201110214317 指导教师王成 仲恺农业工程学院教务处制

目录 1 需求分析 (1) 2 系统总框图和功能模块说明 (1) 2.1 系统总框图 (1) 2.2 功能模块说明 (1) 3 系统设计 (2) 3.1 主要结构体 (2) 3.2主要功能函数 (2) 3.3 关键函数的流程图 (3) 4 系统调试 (12) 5 总结 (25) 6 源程序清单 (28) 6.1头文件 (28) 6.2主程序 (29) 6.3 解除被冻结用户 (64) 6.4 用户注册 (66)

1 需求分析 所设计的ATM取款机应具备以下功能: ●插入银行卡(用账号输入的方式代替); ●密码的输入; ●用户信息查询; ●用户余额查询; ●取款; ●转账; ●修改密码; ●退卡。 2 系统总框图和功能模块说明 2.1 系统总框图 图1 系统总框图 2.2 功能模块说明 ?输入用户账号模块:在运行时,完成用户账号的输入(代替插卡);

?输入账号密码模块:①在输入账号之后,完成用户密码的输入;②在修改密码的过程中,完成用户输入旧密码的功能; ?信息读取功能模块:完成用户信息的读取; ?冻结账号功能模块:当输入密码3次错误时,冻结用户账号: ?查询用户信息模块:完成用户的信息查询(不包括余额查询); ?查询余额功能模块:完成用户余额的查询; ?取款功能模块:完成取款功能模块: ?转账功能模块:完成转职功能; ?修改密码功能模块:完成用户修改密码功能; ?退卡功能模块:完成退卡功能(即:退出程序功能)。 3 系统设计 3.1 主要结构体 用户账号、、密码、余额 struct User //用户数据 { char num[20]; //用户账号 char name[10]; // char password[7]; //密码 float balance; //余额 }; 3.2主要功能函数 void read_info(); //用户信息读取 void input_num(char * num); //输入账号

C语言课程设计报告(银行存取款管理设计)

错误!未找到目录项。 C程序课程设计报告 题目车票管理系统 院别数学与计算机学院班级 姓名学号 指导教师邓永江 二○一五年六月

预习报告 一:设计题目 银行存取款管理设计 二:功能要求 ①能够添加和修改以及删除客户文件。(在客户文件中,每个客户是一条记录,包括编号、客户姓名、支取密码、客户地址、客户电话、账户总金额)。 ②能够输入和查询客户存款取款记录。(在存取款文件中,每次存取款是一条记录,包括编号、日期、类别、存取数目、经办人。类别分为取款和存款两种)。 ③能够给程序提供运行提示。 三:设计要求 ①、用C 语言实现系统; ②、函数功能要划分好(结构化程序设计); ③、界面友好(良好的人机交互),加必要的注释; ④、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能 运行起来,不能运行的程序是没有价值的。 四:设计目的 ①、通过这次课程设计,使我们更加深入地理解和掌握C 语言基本概念,切身体会用结构化程序设计的工程思想,感受C 语言的魅力。 ②、通过这次课程设计,培养我们独立思考、勇于探索、积极创新、严谨求实、有过必改的工作态度以及较熟的上级操作能力,同时加强我们团结友爱,协作攻关的团队合作意识。 五:设计框架图

void main():在里面写了“功能选择”的SWITCH函数; void kehu();客户资料添加与操作主菜单;void kehu1(struct cou p[],char *re,long *h); 客户资料查询函数; void kehu2(struct cou *p,char *re,long h);客户资料添加函数; void kehu3(struct cou *p,char *re,long h); 客户资料修改函数; void kehu4(struct cou *p,char *re,long h); 客户资料清楚函数; void kehup(struct cou *p,char *re,long *h); 客户资料打印函数; void cunq1(); 存取款办理选择主菜单; void cunq11(struct cou *p,char *re,long h);客户存款资料的键入; void cunq12(struct cou *p,char *re,long h); 客户取款资料的键入; void cunq2();存取款选择查询主菜单; void cunq211(struct cou p[],char *re,long *h);把顾客存款资料从文件读到缓冲 区; void cunq212(struct cou *p,char *re,long *h);打印存款资料; void cunq221(struct cou p[],char *re,long *h);把顾客取款资料从文件读到缓冲 区; void cunq222(struct cou *p,char *re,long *h);打印取款资料; void help(); 使用说明模块。 ㈡变量 ①全局的结构体型数组w(用来存放200多个结构体变量): extern struct cou { long b; char x[20]; long m;

ATM机C语言程序

直接运行没有错误的代码c----- 本银行卡管理系统有五个账号和其对应的密码: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 账号: 1:10001 2:10002 3:10003 4:10004 5:10005 对应账号的密码和其账号相同 代码如下: #include #include #include main(){ int a,b,n,c,i,zh[5],mm[5],e,f,j,m,zz,kk; float y,zj,ck[5]={0.00,0.00,0.00,0.00,0.00},jf[5]={0.00,0.00,0.00,0.00,0.00}; n=1; y=0.00; for(e=0;e<5;e++) zh[e]=mm[e]=e+10001; while(n!=0){ printf("\n\n- - - - - - - - - - - - - - -欢迎登陆ATM 操作系统!- - - - - - - - - - - - - - - \n"); for(i=1;i<=80;i++) printf("="); while(n!=0){ printf("\n 1 ==> 新账号注册款项交易及其他业务<== 2\n\n"); for(i=1;i<=80;i++) printf("="); scanf("%d",&kk); if(kk==2){ system("cls"); printf("\n"); for(i=1;i<=80;i++) printf("="); printf("\n ==> 请输入账号:"); scanf("%d",&f); printf("\n ==>==> 请输入密码:"); scanf("%d",&a); for(m=0;m<5;m++){ if(f==zh[m] && a==mm[m]) break;}

C语言程序设计报告(模拟ATM取款机)

C语言程序设计报告(模拟ATM 取款机)

仲恺农业工程学院工程实训报告 ATM取款机 课程名称C语言程序设计工程实训 姓名林少烈 院(系)计算机科学与工程学院 专业班级计算机113班 学号201110214317 指导教师王成 仲恺农业工程学院教务处制

目录 1 需求分析 (1) 2 系统总框图和功能模块说明 (1) 2.1 系统总框图 (1) 2.2 功能模块说明 (1) 3 系统设计 (2) 3.1 主要结构体 (2) 3.2主要功能函数 (3) 3.3 关键函数的流程图 (3) 4 系统调试 (11) 5 总结 (21) 6 源程序清单 (23) 6.1头文件 (23) 6.2主程序 (23) 6.3 解除被冻结用户 (40) 6.4 用户注册 (41)

1 需求分析 所设计的ATM取款机应具备以下功能: ●插入银行卡(用账号输入的方式代替); ●密码的输入; ●用户信息查询; ●用户余额查询; ●取款; ●转账; ●修改密码; ●退卡。 2 系统总框图和功能模块说明 2.1 系统总框图 图1 系统总框图 2.2 功能模块说明 输入用户账号模块:在运行时,完成用户账号的

输入(代替插卡); 输入账号密码模块:①在输入账号之后,完成用户密码的输入;②在修改密码的过程中,完成用户输入旧密码的功能; 信息读取功能模块:完成用户信息的读取; 冻结账号功能模块:当输入密码3次错误时,冻结用户账号: 查询用户信息模块:完成用户的信息查询(不包括余额查询); 查询余额功能模块:完成用户余额的查询; 取款功能模块:完成取款功能模块: 转账功能模块:完成转职功能; 修改密码功能模块:完成用户修改密码功能; 退卡功能模块:完成退卡功能(即:退出程序功能)。 3 系统设计 3.1 主要结构体 用户账号、姓名、密码、余额 struct User //用户数据 { char num[20]; //用户账号 char name[10]; //姓名 char password[7]; //密码

C语言模拟ATM机

C语言模拟A T M机 The latest revision on November 22, 2020

一、实验目的 通过设计一个ATM机模拟操作的程序,全面运用课程的主要知识点,巩固对模块化程序设计、文件操作的理解,提高软件编程能力。 二、实验要求 要求每人独立完成设计,编写一个ATM机模拟操作程序。提交实验报告、源程序、程序运行截图。 1.程序具有以下功能: 1)登录系统: 输入卡号(16位)、密码(6位),只有卡号、密码同时正确(帐户信息存放在文件中)才能进入系统; 2)操作功能: 查询:查询帐户的存款余额。按任意键返回主菜单; 修改密码:连续输入两次新密码(两次输入结果完全相同)后,新密码取代旧密码,并存放到帐户信息文件中。之后可返回主菜单; 取款:输入50或100的倍数模拟为取款金额,请注意:取款金额不得超过帐户余额,操作后帐户余额应相应减少。之后可返回主菜单; 存款:输入50或100的倍数模拟为存款金额,现假设存款金额不得超过20000元,操作后帐户余额应相应增加。之后可返回主菜单; 转帐:先输入一个帐户号(已保存在帐户信息文件中),然后显示一部分用户名(如:张*山),储户确认无误后,再输入50或100的倍数模拟为转帐金额,请注意:转帐金额不得超过帐户余额,操作后帐户余额应相应减少。之后可返回主菜单; 退出:退出系统。 2.定义如下结构体类型: “日期”结构体Date:成员有:year(年)、month(月)、day(日); “帐户”结构体Account:成员有:no(帐户号)、name(姓名)、balance(余额) “存取款记录”结构体Record,:成员有:no(帐户号)、date(日期)、number(数量,可正可负,正表示存款,负表示取款)

ATMC语言编程源代码

#include/*引用库函数*/ #include #include #include #include #define ZHANGHUSHU 10 #define JIAOYISHU 20 int caidan();/*登录注册菜单*/ void zhuce(); void denglu(); void baocunshuju(); int menu();/*主菜单*/ void cunkuan(); void qukuan(); void zhuanzhang(); void chaxun(); void xiugaimima(); struct JiaoYi /*定义交易结构体*/ { char shijian[50];/*时间*/ char leixing[3];/*类型*/ float jine; /*金额*/ float yue;/*余额*/ }; struct ZhangHu /*定义账户结构体*/ { char xingming[17];/*姓名*/ char zhanghao[12];/*账号*/ char shenfenzheng[19]; /*身份证*/ char mima[7]; /*密码*/ float yue; /*余额*/ struct JiaoYi jiaoyi[JIAOYISHU]; /*在账户的结构体中在定义交易的结构体*/ int jiaoyishu; }; struct ZhangHu zhanghu[ZHANGHUSHU]; /*定义账户数来确定账户这一结构体中有多少个体*/ int j; /*当前账户*/ int zhanghushu; int k;/*交易帐号*/ int jiaoyishu;

C语言课程设计ATM机模拟操作附源码

C语言?ATM机模拟操作 程序实现功能点: a.査询:查询帐户的存款余额。按任意键返回主菜单; b.取款:输入100> 500、1000、2000、5000、其它金额为取款金额,取款 金额不超过帐户余额,操作后帐户余额应相应减少,之后可返回主菜单; C.存款:输入100、500、1000、2000、5000、其它金额为存款金额,存款 金额不超过20000元,操作后帐户余额应相应增加。之后可返回主菜单; d.转帐:输入一个帐户号,程序判断与文件信息是否相符,储户确认无 误后,再输入100、500、1000、2000、5000、其它金额为转帐金额, 转帐金额不得超过帐户余额,操作后帐户余额应相应减少。之后可返回主菜单; e.修改密码:连续输入两次新密码(两次输入结果完全相同)后,新密码 取代旧密码,并存放到帐户信息文件中。之后可返回主菜单; f.退出:退出系统; g.帮助:增加趣味性; h.存款时,可正可负,正表示存款,负表示取款; i.帐户信息存放在文件,储户存取款记录保存在中;(在目录下创建这两

个文件) j.采用模块化程序设计方法来实现,即mainO显示主菜单、调用相关函数实现相应功能,起主控作用; k.储户一天内输错密码的次数不能超过3次,否则无法进入系统; l.有效避免输入存款金额、取款金额为负数等异常情况的出现。 较为突出的功能是注册、登录时账号密码的核对验证;存款转出转入金额的核对。是否超过余额,是否不符合格式,是否为冲突操作。 (2)程序运行截图及说明(每图限50到100字); 进入程序,menul可选择登录、注册功能。 选择登录,输入账号密码,通过输入内容与文件的匹配,判断是否成功登录。若登录失败,则重新选择。

C语言ATM程序设计

令狐采学创作 C语言程序实践 令狐采学 实验报告 令狐采学创作

一、实验目的 1.函数的调用 2.结构体的使用 3.文件的应用:打开、关闭、输入、输出等 4.宏定义 二、实验内容与实验步骤 实验内容、原理分析 1.给出数据结构或函数定义 结构体: struct clients { longintcard_number,card_password; char name[20]; float money; }yonghu[3]; card_number:银行卡号 card_password:密码 name:用户名 money:卡内金额 自定义函数: voidfuction(float,int); 用于登陆后的操作 2.用流程图表示出来程序设计的思想

#include #define N 3 /*用户人数*/ struct clients { longintcard_number,card_password; char name[20]; float money; }yonghu[N]; FILE *fp; inti; voidfuction(float,int); void main() {

int j,number,password,times1=3,times2=3; printf(" 欢迎使用中国建设银行自动取款机!\n"); fp = fopen("clients.txt","a+"); if(getw(fp)==EOF) { printf("用户文件未设置!\n"); for(i=0;i

用C语言模拟ATM取款机

分析: 1.识别银行卡。 2.输入密码,正确继续,分支为密码不正确,则返回! 3.选择:账户查询、取钱、转账。查询时,需要调用一个子函数,返回一个钱数常量 取钱时,输入金额,金额要大于0,输入以后调用查询子函数,如果输入金额大于查询返回的数,则报错;如果正常,则修改数据库的钱数。 程序: #include #include #include void password(); void MainMenu(); void Query(float*); void Deposite(float*); void WithDraw(float*); float a=3000; void password() { int a,b; b=1234; printf("================"); printf(" 请输入密码"); printf("================\n"); lp1: scanf("%d",&a); if(a==b) { printf("请选择服务种类,按1进入\n");goto lp2; } else printf("密码错误,请重新输入\n");goto lp1; lp2: switch(getch()) { case'1':MainMenu();break; default:break; } } void MainMenu() { system("cls");

printf("1 查询余额\n"); printf("2 存款\n"); printf("3 取款\n"); printf("4 退出\n"); switch(getch()) { case '1':Query(&a);break; case '2':Deposite(&a);break; case '3':WithDraw(&a);break; default: system("cls");return; } } void Query(float *p) { system("cls"); printf("此账户中钱数为:¥%-.2f",*p); printf("请按任意键继续..."); switch(getch()) { case'0':system("cls");break; default:MainMenu();break; } getch(); } void Deposite(float *p) { float mon; printf("请输入您要存入的钱数:¥"); scanf("%f",&mon); *p += mon; printf("存款成功,请按任意键继续..."); switch(getch()) { case'0':system("cls");break; default:MainMenu();break; } } void WithDraw(float *p) { float mon;

C语言课程设计ATM机模拟操作附源码

C语言-ATM机模拟操作 程序实现功能点: a.查询:查询帐户的存款余额。按任意键返回主菜单; b.取款:输入100、500、1000、2000、5000、其它金额为取款金额,取款金额不超过 帐户余额,操作后帐户余额应相应减少,之后可返回主菜单; c.存款:输入100、500、1000、2000、5000、其它金额为存款金额,存款金额不超过 20000元,操作后帐户余额应相应增加。之后可返回主菜单; d.转帐:输入一个帐户号,程序判断与文件信息是否相符,储户确认无误后,再输入10 0、500、1000、2000、5000、其它金额为转帐金额,转帐金额不得超过帐户余额,操作后帐户余额应相应减少。之后可返回主菜单; e.修改密码:连续输入两次新密码(两次输入结果完全相同)后,新密码取代旧密码,并存放 到帐户信息文件中。之后可返回主菜单; f.退出:退出系统; g.帮助:增加趣味性; h.存款时,可正可负,正表示存款,负表示取款; i.帐户信息存放在accounts.txt文件,储户存取款记录保存在records.txt中;(在目录下 创建这两个文件) j.采用模块化程序设计方法来实现,即main()显示主菜单、调用相关函数实现相应功能,起主控作用; k.储户一天内输错密码的次数不能超过3次,否则无法进入系统; l.有效避免输入存款金额、取款金额为负数等异常情况的出现。

较为突出的功能是注册、登录时账号密码的核对验证;存款转出转入金额的核对。是否超过余额,是否不符合格式,是否为冲突操作。 (2)程序运行截图及说明(每图限50到100字); ●进入程序,menu1可选择登录、注册功能。 ●选择登录,输入账号密码,通过输入内容与文件的匹配,判断是否 成功登录。若登录失败,则重新选择。 ●选择注册,输入账号密码,写入文件中。 ●进入menu2,有五大功能选择,输入对应的序列号进入。

相关文档
最新文档