1、 更多企业学院:...../Shop/ 《中小企业管理全能版》 183套讲座+89700份资料 ...../Shop/40.shtml 《总经理、高层管理》 49套讲座+16388份资料 ...../Shop/38.shtml 《中层管理学院》 46套讲座+6020份资料 ...../Shop/39.shtml 《国学智慧、易经》 46套讲座 ...../Shop/41.shtml 《人力资源学院》 56套讲座+27123份资料 ...../Shop/44.shtml 《各阶段职员培训学院》 77套讲座+
2、 324份资料 ...../Shop/49.shtml 《职员管理企业学院》 67套讲座+ 8720份资料 ...../Shop/42.shtml 《工厂生产管理学院》 52套讲座+ 13920份资料 ...../Shop/43.shtml 《财务管理学院》 53套讲座+ 17945份资料 ...../Shop/45.shtml 《销售经理学院》 56套讲座+ 14350份资料 ...../Shop/46.shtml 《销售人员培训学院》 72套讲座+ 4879份资料 ...../Shop/47.shtml
3、 目 录 一,试验概述 - 2 - (一)试验目标及要求 - 2 - (二)试验原理 - 2 - (三)试验环境 - 2 - 二,试验内容 - 2 - (一)试验方案设计 - 2 - ⑴方案介绍 - 2 - ⑵模块说明 - 3 - (二)试验过程 - 4 - ⑴对代码具体介绍: - 4 - ⑵部分模块运行结果: - 11 - (三)结论 - 14 - 一,试验概述 (一)试验目标及要求 应用所学C语言编程知识设计银行卡管理系统,应用到函数、数组、指针、结构等内容,利用模块化程序设计方法实现数据创建、查找、排序、删除等功效。 (二
4、试验原理 结构体,函数嵌套调用,数组,指针,选择结构。 (三)试验环境 Visual C++ 6.0 二,试验内容 (一)试验方案设计 ⑴方案介绍 作为一名大学生,生活中对于银行卡使用很常见,依据日常经验,我设计了以下银行卡管理系统,包含:“卡管理”、“存取管理”、“查询”、“管理员”“退出系统”等五大块功效,具体以下: Bank Card(银行卡系统) 1. Card Management Module(卡管理) a.Application for a c
5、ard(卡申请) b.Entry(登录) c.Change Code(修改密码) 2. Saving and Drawing Management Module(存取管理) a.Saving(存款) b.Drawing(取款) c.Transfer(转账)
6、 3. Inquire Module(查询) Balance Inquire(余额查询) 4. Manager Log in(管理员登陆) 5. Exit(退出系统) ⑵模块说明 ① 系统初始化以下,共储存了4张卡信息。包含账号、余额和密码。 struct card { char num[80]; /*银行卡账号*/ float balance; /*银行卡余
7、额*/ char cipher[80]; /*银行卡密码*/ }; 银行卡号 余额 密码 10246001 0 abc10246001 10246002 5000 def10246002 10246003 4000 ghi10246003 10246004 jkl10246004 ② 为完成各项功效设计函数以下: void read(struct card inf[],int m); 实施"读卡"功效函数 void CMM();
8、 实施"卡管理"功效函数 void SDMM(); 实施"存取管理"功效函数 void IM(); 实施"查询"功效函数 void change(); 实施"修改密码"功效函数 void Manager(); 实施系统管理员职能函数 void bubble(struct card *p); 冒
9、泡排序法
void menu();
菜单函数
void exit();
退出系统函数
(二)试验过程
⑴对代码具体介绍:
#include
10、 char cipher[80]; /*银行卡密码*/ }; void read(struct card inf[],int m); /*申明实施"读卡"功效函数*/ void CMM(); /*申明实施"卡管理"功效函数*/ void SDMM(); /*申明实施"存取管理"功效函数*/ void IM(); /*申明实施"查询"功效函数*/ void change();
11、 /*申明"修改密码"函数*/ void Manager(); /*申明系统管理员职能函数*/ void bubble(struct card *p); /*申明冒泡排序法*/ void menu(); /*申明菜单函数*/ void exit(); //退出系统函数 struct card *p ; card inf[10]={ {"10246001
12、",0,"abc10246001"}, /*"银行卡信息"结构变量初始化*/ {"10246002",5000,"def10246002"}, {"10246003",4000,"ghi10246003"}, {"10246004",,"jkl10246004"}}; int main() { menu(); return 0; } void menu() //定义菜单函数 { int choice1; printf("*******************************
13、\n"); printf("-----------欢迎使用中国银行长城借记卡------------\n"); printf("*************************************************\n"); printf(" Bank Card(银行卡系统) \n"); printf(" 1. Card Management Module(卡管理) \n"); printf(" a.Application for a c
14、ard(卡申请) \n"); printf(" b.Entry(登录) \n"); printf(" c.Change Code(修改密码) \n"); printf(" 2. Saving and Drawing Management Module(存取管理)\n"); printf(" a.Saving(存款) \n"); printf(" b.Drawi
15、ng(取款) \n"); printf(" c.Transfer(转账) \n"); printf(" 3. Inquire Module(查询) \n"); printf(" Balance Inquire(余额查询) \n"); printf(" 4.Manager Log in(管理员登陆) \n"); prin
16、tf(" 5.Exit(退出系统) \n"); printf("*************************************************\n"); printf("\n"); printf("请选择您所需要服务:\n"); scanf("%d",&choice1); switch(choice1){ 菜单函数中switch语句实现对任务选择 case 1:CMM();break; case 2:SDMM();break; case 3:I
17、M();break; case 4:Manager();break; case 5: printf("您已经成功退出系统!\n");break; } } void bubble(struct card *p) //定义“冒泡法”排序函数 { int i,j; card t; for(i=0;i<4;i++) for(j=1;j<4-i;j++) { if((*(p+j-1)).balance>(*(p+j)).balance) { t=*(p+j-1);
18、 *(p+j-1)=*(p+j);
*(p+j)=t;
}
}
printf("账户余额从小到大排序以下:\n");
for(p=inf;p
19、"__________________________________________________\n"); printf(" \n"); printf("请选择:\n"); printf("1.返回菜单\n"); printf("2.退出系统\n"); scanf("%d",&k); if(k==1) menu(); else { printf("您已经成功退出系统。\n"); } } void read(struct card in
20、f[],int m) /*定义实施"读卡"功效函数*/ { char number[80],code[80]; int i,k; /*定义i是循环变量,k是密码输入错误后作出选择*/ printf("请登录您个人中国银行长城借记卡系统\n"); printf("------------------------------------------------------------\n"); printf("请输入您银行卡号:\n"); scanf("%s",&number); for(i=0;
21、i<4;i++){ if(strcmp(inf[i].num,number)==0){ printf("请输入您银行卡密码: #温馨提醒:请注意保护好您个人信息。#\n"); do{ scanf("%s",&code); if(strcmp(inf[i].cipher,code)==0){ j=i; printf("您已经成功登陆,欢迎使用中国银行为您提供各项服务...\n"); } else{
22、 printf("您输入密码有误,请重新输入或退出...\n"); printf("1.重输密码\n"); printf("2.退出系统\n"); scanf("%d",&k); if(k==1) continue; else{ printf("您已经成功退出系统。\n");break; } } }while(strcmp(inf[i].cipher,code)!=0); } } } void change()
23、 //定义实施“修改密码”功效函数 { int m = 10; read(inf,m); printf("请输入您新密码:\n"); getchar(); gets(inf[j].cipher); printf("修改密码成功!\n"); exit(); } void CMM() /*定义实施"卡管理"功效函数*/ { char choice2; char code1[10],code2[10]; printf(" Card Mana
24、gement Module(卡管理): \n"); printf(" a.Application for a card(卡申请) \n"); printf(" b.Entry(登录) \n"); printf(" c.Change Code(修改密码) \n"); getchar(); printf("请选择您所需要服务:\n"); choice2=getchar();getchar();
25、 switch(choice2) { case 'a': 申请卡号 printf("系统为您生成银行卡账号是10246005.\n"); printf("您现在账户余额为0.\n"); printf("____________________________________________________\n"); do{ printf("请设置您密码并妥善保管:\n"); scanf("%s",&code1); printf("请再次确定您密码.\n")
26、 scanf("%s",&code2); if(strcmp(code1,code2)==0) 使用字符串比较函数 { printf("恭喜您已经成功申请中国银行长城借记卡,感谢你支持!\n"); break; } else { printf("密码设置失败!请重新设置!\n"); printf("***********************************************\n"); } }while(strcmp(code1,code2))
27、 break; case 'b':read(inf,10);break; 调用“登录”函数 case 'c':change();break; 调用“修改密码”函数 } exit(); } void SDMM() /*定义实施"存取管理"功效函数*/ { char choice2; float bank=10000; /*设置用于转账银行账户*/ float *p1=
28、bank; float money; read(inf,10); printf(" 2. Saving and Drawing Management Module(存取管理)\n"); printf(" a.Saving(存款) \n"); printf(" b.Drawing(取款) \n"); printf(" c.Transfer(转账) \n");
29、getchar(); printf("请选择您所需要服务:\n"); choice2=getchar(); switch(choice2){ switch语句实现选择功效 case 'a': 使用指针实现对金额增减改变 printf("请输入您存款金额:\n"); 存款 scanf("%f",&money); inf[j].balance+=money; printf("您已经成功存款。"); break; case 'b':
30、 printf("请输入您取款金额:\n"); 取款 scanf("%f",&money); if(money<=inf[j].balance){ inf[j].balance-=money; printf("您已经成功取款。\n");} else printf("您账户余额不足!\n"); break; case 'c': printf("请输入您转账金额:\n"); 转账 scanf("%f",&money);
31、 inf[j].balance+=money; *p1-=money; break; } printf("感谢您对中国银行支持!\n"); exit(); } void IM() /*定义实施"查询"功效函数*/ { read(inf,10); printf("你账户余额是:\n"); 查询余额 printf("%10.2f",inf[j].balance); printf(" \n"); printf("感
32、谢您对中国银行支持!\n"); exit(); } void Manager() //定义实施“管理员”功效函数 { char managercode0[10]="manager"; char managercode1[20]; int m,k; do{ printf("请输入密码:\n"); scanf("%s",&managercode1); if(strcmp(managercode0,managercode1)==0) { printf("************
33、\n"); printf("--------------系统管理员,欢迎进入!-------------\n"); printf("*************************************************\n"); printf("您能够实施任务: \n"); printf("1.对现在各账户进行余额数目从小到大排序; \n"); printf("2.清除余额为零账户.
34、 \n"); printf("请选择您要实施任务:\n"); scanf("%d",&m); if(m==1) { bubble(inf); “冒泡排序法”实现对账户余额排序 } else { int num=4; 查询余额为零账户并清除 for(int i=0;i<4;i++) { if(inf[i].balance==0) { for(int j=i+1;j
35、<4;j++)
{ inf[j-1]=inf[j];
}
num--;
i--;
}
}
for(int r=0;r 36、ntf("1.重输密码\n");
printf("2.退出系统\n");
scanf("%d",&k);
if(k==1)
continue;
else
{
printf("您已经成功退出系统。\n");
break;
}
}
}while(strcmp(managercode0,managercode1)!=0);
}
⑵部分模块运行结果:
Ⅰ修改密码
Ⅱ取款功效
Ⅲ余额查询
Ⅳ管理员功效
Ⅴ卡申请功效
(三)结论
经过这次对银行卡管理系统程序编写,我对结构,指针,函数调用和数组使用了解更进了一步。该银行卡系统功效相对较为完善,涵盖了日常生活中对银行卡使用登录、存取款、转账、修改密码、余额查询等功效。不过还有很多不够完善地方,比如该系统实施过程中无法记住已登录账户,返回菜单实施其它功效时还需要重新登录;实施各项功效时仍然采取是较为简易模型,仅包含简单数据增减和增加数组元素等。即使如此,不过对于自己独立编写并完善银行卡管理系统还是比较满意,因为它表现了我C语言学习应用结果,而且增添了我对本身专业(信息管理和信息系统)学习爱好。






