您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页C语言课程设计--ATM取款机

C语言课程设计--ATM取款机

来源:爱go旅游网


一、 课程设计目的

1、掌握C语言数组、函数、指针、结构体的综合应用。 2、掌握使用C语言,进行应用性的开发。 3、掌握系统数据结构与算法的设计。 二、课程设计内容 1、数据结构。

(1)客户账户(custmer):账户ID… (2)客户账户数据库(CustmerDB): 2、实现查询、取款、转账等业务操作算法。 三、课程设计过程

1、系统的总体设计

使用数据结构定义用户空间,存储着用户的卡号、密码、和金额。在使用其他函数去访问该空间,实现查询、取款、转账等操作。

(1)定义用户存储空间:包含用户的卡号、密码、和金额 typedef struct lnode{ int ID; int mima; int data;

struct lnode *next; }lnode,*linklist; (2)添加新用户

void newlist(linklist l,int x,int y,int z){

linklist p,r; r=l;

p=(linklist)malloc(sizeof(lnode)); p->ID=x; p->mima=y; p->data=z; p->next=r->next; r->next=p; }

(3)查询函数 void chaxun(linklist l){ printf(\"你当前的余额为:\"); printf(\"%d\ printf(\"元\\n\"); }

(4)取款函数 void qukuan(linklist l){ int x;

printf(\"输入要取款的金额\\n\"); scanf(\"%d\

if(x>l->data)

printf(\"余额不足\\n\");

else { } }

(5)转账函数

void zhuanzhang(linklist l,linklist head){ int a,b; int flag=1; linklist z;

printf(\"请输入要转入的账户\\n\"); scanf(\"%d\ z=find(head,a); if(z!=NULL) {

while(flag) {

printf(\"请输入要转入的金额\\n\"); l->data=l->data-x; printf(\"请收好你的钱\\n\");

scanf(\"%d\

if(b>l->data) } else }

2、系统的数据结构设计、算法设计(画出算法流程图)

printf(\"请输入正确的卡号\\n\"); }

printf(\"余额不足\\n\"); else {

l->data=l->data-b; z->data=z->data+b; printf(\"转账成功\\n\"); flag=0; }

3、程序清单 #include\"stdio.h\" #include\"malloc.h\" #include \"stdlib.h\" #include \"string.h\" typedef struct lnode{

查询 1 1. 2. 3. 4. 错误 不存在 开始 输入卡号 存在 输入密码 密码正确 查询 取款 转账 退出 2 取款 3 4 退出 转账

int ID; int mima; int data;

struct lnode *next; }lnode,*linklist; linklist initlist(){ linklist head;

head=(linklist)malloc(sizeof(lnode)); head->next=NULL; return head; }

void newlist(linklist l,int x,int y,int z){ linklist p,r; r=l;

p=(linklist)malloc(sizeof(lnode)); p->ID=x; p->mima=y; p->data=z; p->next=r->next; r->next=p; }

linklist find(linklist l,int x) {

l=l->next; while(l!=NULL) { if(x==l->ID) break;

else

l=l->next;

}

if(l!=NULL)

return l; else return NULL;

}

void chaxun(linklist l){ printf(\"你当前的余额为: printf(\"%d\ printf(\"元\\n\"); }

void qukuan(linklist l){

\");

int x;

printf(\"输入要取款的金额\\n\"); scanf(\"%d\ if(x>l->data)

printf(\"余额不足\\n\");

else { } }

void zhuanzhang(linklist l,linklist head){ int a,b; int flag=1; linklist z;

printf(\"请输入要转入的账户\\n\"); scanf(\"%d\ z=find(head,a); if(z!=NULL) {

while(flag) {

l->data=l->data-x; printf(\"请收好你的钱\\n\");

printf(\"请输入要转入的金额\\n\"); scanf(\"%d\

if(b>l->data) } else }

void main() {

int i,flag=1; int x,y;

printf(\"请输入正确的卡号\\n\"); }

printf(\"余额不足\\n\"); else {

l->data=l->data-b; z->data=z->data+b; printf(\"转账成功\\n\"); flag=0; }

linklist l,temp; l=initlist();

newlist(l,1001,1,1100); newlist(l,2002,2,2200); newlist(l,3003,3,3300); newlist(l,4004,4,4400); newlist(l,5005,5,5500); while(1) {

system(\"date /T\"); system(\"TIME /T\");

printf(\"╔══════════╗\\n\"); printf(\"║欢迎光临中国世界银行║\\n\"); printf(\"╚══════════╝\\n\"); while(flag) {

printf(\"请输入你的卡号\\n\");

scanf(\"%d\

temp=find(l,x); if(temp!=NULL)

flag=0;

else

}

printf(\"您输入的卡号不存在\\n\");

flag=1; while(flag) {

printf(\"请输入你的密码\\n\");

scanf(\"%d\ } flag=1; while(flag) {

printf(\"╔══════════════╗\\n\"); if(temp->mima==y)

flag=0;

else

printf(\"密码错误\\n\");

printf(\"║ 请选择你要的操作 ║\\n\");

printf(\"║ ※1-->查询余额 ║\\n\");

printf(\"║ ※2-->取款 ║\\n\"); printf(\"║ ※3-->转账 ║\\n\"); printf(\"║ ※4-->退出 ║\\n\");

printf(\"╚══════════════╝\\n\"); scanf(\"%d\ switch(i)

{

case 1:

chaxun(temp); break;

case 2:

qukuan(temp); break;

case 3:

zhuanzhang(temp,l); break;

case 4:

printf(\"请收好你的磁卡\\n\"); flag=0; break;

} } flag=1; } }

4、系统运行结果截图

开始登入界面,显示现在的时间日期,并要求输入卡号:

卡号不存在时,提示输入的卡号不存在:

卡号存在时,提示输入密码:

密码输入错误时,提示密码错误,继续输入密码:

密码输入正确,显示操作界面,包含查询,取款,转账功能:

查询操作:

取款操作:

取款金额大于卡内余额时,提示余额不足:

转账操作:

退出系统:

四、课程设计体会

通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,本次课程设计让我掌握C语言数组、函数、指针、结构体的综合应用。掌握使用C语言,进行应用性的开发。掌握系统数据结构与算法的设计。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务