[教程]自己用C语言写的“银行模拟系统“欢迎纠正!
2013/5/6 17:07:00 人气 355 怀旧国机论坛 哎~~
学得越多,不会的也越多!!
不过老师说了,有问题是正常的!
没有问题才是最大的问题!
坚持下去吧,XL
不管别人的眼光!!
Come On!!
/* 主程序 */
#include“stdio.h“
#include“windows.h“
#include“stdlib.h“
void main()
{
void savemoney();/*存钱模块*/
void changekey();/*改密码模块*/
void *money();/*查询模块*/
void getmoney();/*取钱模块*/
void mune();/*菜单模块*/
void next();/*声明副程序1*/
char read;
char door;
int be=0;/*作为标识,用于判断*/
FILE*fp;/*账户*/
FILE*key;/*密码*/
FILE*money;/*金额*/
fp=fopen(“user.bb“,“rt“);
if(fp==NULL)/*没有账户,建立一个*/
{
system(“cls“);/*清屏程序*/
printf(“检测到你没有账户,是否创建一个??\n“);
printf(“Y_是 N_否\n“);
door=getchar();
if(door==‘Y‘)
{ be=1;fp=fopen(“user.bb“,“wt+“);}
else if(door==‘N‘)
{
system(“cls“);
printf(“谢谢使用!\n“); return;}
}
else {next();}/*账户已有,登陆账户*/
if(be==1)
{
fp=fopen(“user.bb“,“at+“);
system(“cls“);
printf(“请输入你的用户名(英文)!\n按回车键结束!\n“);
read=getch();
while (read!=13)
{
putch(read);
fputc(read,fp);
read=getch();
}
fputc(‘.‘,fp);
fclose(fp);/*关闭数据流*/
key=fopen(“key.bb“,“wt+“);
system(“cls“);
printf(“\n请输入你的用户名密码(英文)!\n按回车键结束!\n“);
read=getch();
while (read!=13)
{
putch(read);
fputc(read,key);
read=getch();
}
fputc(‘.‘,key);/*以.为文件数据的标示*/
fclose(key);/*关闭数据流*/
money=fopen(“money.bb“,“wt+“);
fputc(‘0‘,money);
fclose(money);/*关闭数据流*/
system(“cls“);
printf(“\n用户创建成功!\n“);
next();
mune();
}
}
/*副程序1*/
void next()
{
FILE*key;
char key1[25];
char key2[25];
int i=0; int door=0;/*炮灰*/
int z;/*用来当做炮灰*/
key=fopen(“key.bb“,“rt“);
system(“cls“);
printf(“\n检测到你已有账户!\n请输入登陆密码(按回车键结束):\n“);
for(i=0;;i++)
{
key1=fgetc(key);/*将外部数据存储到相应数组*/
if(key1==‘.‘)
break;
}
for(i=0;;i++)
{
z=i;
key2=getch();
putch(key2);
if(key2==13)
{break;}
}
for(i=0;i<=z;i++)/*对输入密码的判断*/
{if(key2!=key1)
{
system(“cls“);
printf(“\n密码错误!\n“);break;}
else {door=1;break;}
}
if(door)
{
system(“cls“);
mune();/*跳到菜单*/
}
}
/*菜单程序*/
void mune()
{
int door;
loop:
system(“cls“);
printf(“请选择你所需要的服务\n“);
printf(“1:存钱\t2:取钱\n3:查询\t4修改密码\n5:退出\n“);
scanf(“%d“,&door);
switch(door)
{
case 1: savemoney(); break;
case 2: getmoney(); break;
case 3: *money(); break;
case 4: changekey(); break;
case 5: system(“cls“);printf(“感谢使用!“);return;break;
default : system(“cls“);printf(“输入有误!\n“);goto loop;
}
}
/*存钱程序*/
void savemoney()
{
FILE*fp;
char money[18];
int money2;
int i;
int num;/*输入的数量*/
system(“cls“);
printf(“请输入你要存进的金额\n“);
scanf(“%d“,&num);
fp=fopen(“money.bb“,“rt+“);/*只读*/
for(i=0;;i++)
{
money=getc(fp);
if(money==EOF)
{break;}
}
fclose(fp);/*关闭数据库流*/
money2=atoi(money);
money2=money2+num;
fp=fopen(“money.bb“,“rt+“);/*只写*/
fprintf(fp,“%d“,money2);/*保存*/
fclose(fp);/*关闭数据流*/
system(“cls“);
printf(“存取成功!\n存进金额:%d\n余额:%d\n“,num,money2);
printf(“按任意键退出!“);
}
/*取钱程序*/
void getmoney()
{
FILE*fp;
char money[15];
int num;
int i;
int money2;
system(“cls“);
printf(“请输入你要取出的金额!\n“);
scanf(“%d“,&num);
fp=fopen(“money.bb“,“rt+“);/*打开数据流*/
for(i=0;;i++)
{money=fgetc(fp);
if(money==EOF)
{break;}
}
fclose(fp);/*关闭数据流*/
money2=atoi(money);
money2=money2-num;/*对金额的处理*/
fp=fopen(“money.bb“,“rt+“);/*打开数据流*/
fprintf(fp,“%d“,money2);/*存入数据*/
fclose(fp);/*关闭数据流*/
system(“cls“);
printf(“取钱成功!\n取出:%d\n余额:%d\n“,num,money2);
printf(“按任意键退出!“);
}
/*查询余额*/
void *money()
{
FILE*fp;
int i;
int money2;
char money[15];
fp=fopen(“money.bb“,“rt+“);
for(i=0;;i++)
{
money=fgetc(fp);
if(money==EOF)
{break;}
}
money2=atoi(money);
system(“cls“);
printf(“你好!你的余额为:%d\n“,money2);
printf(“按任意键退出!\n“);
}
/*修改密码*/
void changekey()
{
FILE*fp;
char key[15];
char key2[15];
int i;
int z;
fp=fopen(“key.bb“,“rt+“);/*打开文件*/
loop:
system(“cls“);
printf(“请输入登陆密码(按回车键结束):\n“);
for(i=0;;i++)
{
key=fgetc(fp);/*将外部数据存储到相应数组*/
if(key==‘.‘)
break;
}
for(i=0;;i++)
{
z=i;
key2=getch();
putch(key2);
if(key2==13)
{break;}
}
for(i=0;i<=z;i++)/*对输入密码的判断*/
{if(key2!=key)
{
system(“cls“);
printf(“密码错误!\n“);printf(“请重新输入\n“);goto loop;}
else {break;}
}
printf(“密码正确!\n“);
printf(“请输入你的新密码\n(按回车键结束)\n“);
fp=fopen(“key.bb“,“rt+“);/*打开文件*/
for(i=0;;i++)
{
key=getch();
putch(key);
fputc(key,fp);
if(key==13)
{ putch(‘.‘,fp); fclose(fp);break;}
}
system(“cls“);
printf(“密码修改成功!\n按任意键退出!\n“);
}

[center][bbs=0_10_1]
发表回复