C语言课程设计ATM取款机.docx
《C语言课程设计ATM取款机.docx》由会员分享,可在线阅读,更多相关《C语言课程设计ATM取款机.docx(13页珍藏版)》请在冰点文库上搜索。
C语言课程设计ATM取款机
一、课程设计目的
1、掌握C语言数组、函数、指针、结构体的综合应用。
2、掌握使用C语言,进行应用性的开发。
3、掌握系统数据结构与算法的设计。
二、课程设计内容
1、数据结构。
(1)客户账户(custmer):
账户ID…
(2)客户账户数据库(CustmerDB):
2、实现查询、取款、转账等业务操作算法。
三、课程设计过程
1、系统的总体设计
使用数据结构定义用户空间,存储着用户的卡号、密码、和金额。
在使用其他函数去访问该空间,实现查询、取款、转账等操作。
(1)定义用户存储空间:
包含用户的卡号、密码、和金额
typedefstructlnode{
intID;
intmima;
intdata;
structlnode*next;
}lnode,*linklist;
(2)添加新用户
voidnewlist(linklistl,intx,inty,intz){
linklistp,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)查询函数
voidchaxun(linklistl){
printf("你当前的余额为:
");
printf("%d",l->data);
printf("元\n");
}
(4)取款函数
voidqukuan(linklistl){
intx;
printf("输入要取款的金额\n");
scanf("%d",&x);
if(x>l->data)
printf("余额不足\n");
else
{
l->data=l->data-x;
printf("请收好你的钱\n");
}
}
(5)转账函数
voidzhuanzhang(linklistl,linklisthead){
inta,b;
intflag=1;
linklistz;
printf("请输入要转入的账户\n");
scanf("%d",&a);
z=find(head,a);
if(z!
=NULL)
{
while(flag)
{
printf("请输入要转入的金额\n");
scanf("%d",&b);
if(b>l->data)
printf("余额不足\n");
else
{
l->data=l->data-b;
z->data=z->data+b;
printf("转账成功\n");
flag=0;
}
}
}
else
printf("请输入正确的卡号\n");
}
2、系统的数据结构设计、算法设计(画出算法流程图)
3、程序清单
#include"stdio.h"
#include"malloc.h"
#include"stdlib.h"
#include"string.h"
typedefstructlnode{
intID;
intmima;
intdata;
structlnode*next;
}lnode,*linklist;
linklistinitlist(){
linklisthead;
head=(linklist)malloc(sizeof(lnode));
head->next=NULL;
returnhead;
}
voidnewlist(linklistl,intx,inty,intz){
linklistp,r;
r=l;
p=(linklist)malloc(sizeof(lnode));
p->ID=x;
p->mima=y;
p->data=z;
p->next=r->next;
r->next=p;
}
linklistfind(linklistl,intx)
{
l=l->next;
while(l!
=NULL)
{
if(x==l->ID)
break;
else
l=l->next;
}
if(l!
=NULL)
returnl;
else
returnNULL;
}
voidchaxun(linklistl){
printf("你当前的余额为:
");
printf("%d",l->data);
printf("元\n");
}
voidqukuan(linklistl){
intx;
printf("输入要取款的金额\n");
scanf("%d",&x);
if(x>l->data)
printf("余额不足\n");
else
{
l->data=l->data-x;
printf("请收好你的钱\n");
}
}
voidzhuanzhang(linklistl,linklisthead){
inta,b;
intflag=1;
linklistz;
printf("请输入要转入的账户\n");
scanf("%d",&a);
z=find(head,a);
if(z!
=NULL)
{
while(flag)
{
printf("请输入要转入的金额\n");
scanf("%d",&b);
if(b>l->data)
printf("余额不足\n");
else
{
l->data=l->data-b;
z->data=z->data+b;
printf("转账成功\n");
flag=0;
}
}
}
else
printf("请输入正确的卡号\n");
}
voidmain()
{
inti,flag=1;
intx,y;
linklistl,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",&x);
temp=find(l,x);
if(temp!
=NULL)
flag=0;
else
printf("您输入的卡号不存在\n");
}
flag=1;
while(flag)
{
printf("请输入你的密码\n");
scanf("%d",&y);
if(temp->mima==y)
flag=0;
else
printf("密码错误\n");
}
flag=1;
while(flag)
{
printf("╔══════════════╗\n");
printf("║请选择你要的操作║\n");
printf("║※1-->查询余额║\n");
printf("║※2-->取款║\n");
printf("║※3-->转账║\n");
printf("║※4-->退出║\n");
printf("╚══════════════╝\n");
scanf("%d",&i);
switch(i)
{
case1:
chaxun(temp);
break;
case2:
qukuan(temp);
break;
case3:
zhuanzhang(temp,l);
break;
case4:
printf("请收好你的磁卡\n");
flag=0;
break;
}
}
flag=1;
}
}
4、系统运行结果截图
开始登入界面,显示现在的时间日期,并要求输入卡号:
卡号不存在时,提示输入的卡号不存在:
卡号存在时,提示输入密码:
密码输入错误时,提示密码错误,继续输入密码:
密码输入正确,显示操作界面,包含查询,取款,转账功能:
查询操作:
取款操作:
取款金额大于卡内余额时,提示余额不足:
转账操作:
退出系统:
四、课程设计体会
通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,本次课程设计让我掌握C语言数组、函数、指针、结构体的综合应用。
掌握使用C语言,进行应用性的开发。
掌握系统数据结构与算法的设计。