一、 课程设计目的
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
本站由北京市万商天勤律师事务所王兴未律师提供法律服务