C语言银行管理系统

C语言银行管理系统,第1张

#include <conio.h>

#include <string.h>

#include <stdio.h>

#include <stdlib.h>

char cFile[] = "date.txt"

struct bank

{

char id[10+1]

char psw[6+1]

double money

}

welcome1()

{

printf("\n\n\t\丛中芹t欢迎使用虚拟银行自动取款机服务!\t\t\n\n")

printf("请选渗毕择功能:\n")

printf("\n=================================================\n")

printf(" ||请输入序号 ||\n")

printf(" || 1.新用户开户。 ||\n")

printf(" || 2.老用户登陆。 ||\n")

printf(" || 3.退出系统。 ||\n")

printf("=================================================\n")

}

welcome2()

{

printf("\n\n\t\t注册须知\n\n")

printf("**************************************************\n")

printf("*1.请填写您的真实资料! *\n")

printf("*2.开户首期必须存入100元以上 *\n")

printf("**************************************************\n")

}

welcome3()

{

printf("\n\n\t\t\3 欢迎进入虚拟银行系统 \3\n\n")

printf("\1\1\1\1\1\1\培蔽1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\n")

printf("\1\1\t 请选择功能:1.取款(最多透资2000)\1\1\n")

printf("\1\1\t 2.存款 \1\1\n")

printf("\1\1\t 3.查询余额 \1\1\n")

printf("\1\1\t 4.修改密码 \1\1\n")

printf("\1\1\t 5.返回主页面\1\1\n")

printf("\1\1\t 任意键退出. \1\1\n")

printf("\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\n")

}

int search(char* user, char* pwd, char* real_pwd)/*判断帐号是否相同,不相同返回1*/

{

FILE* file

char user_buff[256], pwd_buff[256]

file = fopen(cFile, "r")

if (!file) return 0

while (!feof(file))

{

if (fscanf(file, "%s%s\n", user_buff, pwd_buff) == EOF) return 0

if (!strcmp(user_buff, user))

{

if (real_pwd) strcpy(real_pwd, pwd_buff)

return 1

}

}

fclose(file)

return 0

}

int add(char* user, char* pwd, double coin_n)

{

FILE* file

file = fopen(cFile, "a")

if (!file) return 0

fprintf(file, "%s %s %.2lf\n", user, pwd, coin_n)

fclose(file)

return 0

}

int wenjian(char* user, char* pwd,double coin)

{

if (search(user, pwd, NULL)) return 0

else add(user, pwd, coin)

return 1

}

zhuce()/*注册*/

{

struct bank *p

int i=0,k=0,judge1,judge2

char name[30]

char sex,ch

char sh[18]

int n

p=(struct bank*)malloc(sizeof(struct bank))/*给p分配内存*/

welcome2()

printf("请输入您的名字(纯英文):")

gets(name)

printf("请输入您的性别(男:1 女2):")

fflush(stdin)

scanf("%c",&sex)

fflush(stdin)

printf("请输入您的身份z号码:")

gets(sh)

for(n=0n<strlen(name)n++)/*判断输入信息是否正确*/

{

if(name[n]>='0'&&name[n]<='9')

{

printf("您输入的名字有误!\n")

printf("\n请选择:按1返回主页面. 按任意键退出:")

fflush(stdin)

scanf("%c",&ch)

fflush(stdin)

if(ch=='1'){system("cls")main()}

else exit(0)

}

}

if(sex!='1'&&sex!='2')/*判断输入信息是否正确*/

{

printf("您输入的性别不对!\n")

printf("\n请选择:按1返回主页面. 按任意键退出:")

fflush(stdin)

scanf("%c",&ch)

fflush(stdin)

if(ch=='1'){system("cls")main()}

else exit(0)

}

if(strlen(sh)!=18)/*判断输入信息是否正确*/

{

printf("您输入的身份z号码不全!\n")

printf("\n请选择:按1返回主页面. 按任意键退出:")

fflush(stdin)

scanf("%c",&ch)

fflush(stdin)

if(ch=='1'){system("cls")main()}

else exit(0)

}

for(n=0n<strlen(sh)-1n++)/*判断输入信息是否正确*/

{

if(sh[n]<48||sh[n]>57)

{

printf("您输入的身份z号码非法!\n")

printf("\n请选择:按1返回主页面. 按任意键退出:")

fflush(stdin)

scanf("%c",&ch)

fflush(stdin)

if(ch=='1'){system("cls")main()}

else exit(0)

}

else

{

if(sh[18]!='x'&&sh[18]<48&&sh[18]>57)

{

printf("您输入的身份z号码非法!\n")

printf("\n请选择:按1返回主页面. 按任意键退出:")

fflush(stdin)

scanf("%c",&ch)

fflush(stdin)

if(ch=='1'){system("cls")main()}

else exit(0)

}

}

}

printf("请输入您的帐号(10位纯数字):\n")

fflush(stdin)

scanf("%s",p->id)

fflush(stdin)

while(i <strlen(p->id))

{

if((p->id[i] <48) || (p->id[i] >57))

{

judge1=0

}

i++

}

while(strlen(p->id)!=10 ||judge1==0)/*判断帐号的正确性*/

{

printf("您输入的帐号不正确,必须为10位纯数字!")

printf("请重新输入(10位纯数字):")

fflush(stdin)

scanf("%s",p->id)

fflush(stdin)

}

printf("请输入您的密码(6位纯数字):\n")

fflush(stdin)

scanf("%s",p->psw)

fflush(stdin)

while(k <strlen(p->psw))

{

if((p->psw[k] <48) || (p->psw[k] >57))

{

judge2=0

}

k++

}

while(strlen(p->psw)!=6 ||judge2==0)/*判断密码形式的正确性*/

{

printf("您输入不正确!密码必须为6位纯数字!\n")

printf("请重新输入密码(6位纯数字):")

fflush(stdin)

scanf("%s",p->psw)

fflush(stdin)

}

printf("请输入您的首期存款:")

fflush(stdin)

scanf("%lf",&p->money)

fflush(stdin)

while((p->money)<100)

{

printf("您必须存入100元以上,请重新输入:")

fflush(stdin)

scanf("%lf",&p->money)

fflush(stdin)

}

if (wenjian(p->id,p->psw,p->money))/*存入文件并输出基本信息*/

{

system("cls")

printf("注册成功!")

printf("您的注册信息如下,请牢记:\n")

printf("名字:")

puts(name)

printf("性别代码:%c\n",sex)

printf("身份z号码:")

puts(sh)

printf("帐号:")

puts(p->id)

printf("密码:")

puts(p->psw)

printf("您帐户里的余额为:%.2lf\n",p->money)

printf("请选择:按1返回主页面. 按任意键退出:")

fflush(stdin)

scanf("%c",&ch)

fflush(stdin)

if(ch=='1'){system("cls")main()}

else exit(0)

}

else/*如有相同帐号,注册失败*/

{

system("cls")

printf("您输入的帐号已经存在!注册失败!\n")

printf("请选择:按1返回主页面. 按任意键退出:")

scanf("%c",&ch)

if(ch=='1'){system("cls")main()}

else exit(0)

}

}

gongneng(char Account[10+1],char Password[6+1],double Money)/*登陆成功后的功能界面*/

{

FILE *ps

struct bank xin[1000]

int k=0,b=0

char mima[6+1],Chiose,x

char count[10+1],word[6+1]

double inmoney,outmoney,addmoney

welcome3()

fflush(stdin)

scanf("%c",&Chiose)

fflush(stdin)

ps=fopen(cFile,"r")

if (!ps)

{

printf("不能打开文件!按任意键退出!")

fflush(stdin)

scanf("%c",&x)

fflush(stdin)

exit(0)

}

if(Chiose=='1')

{

printf("输入您的取款金额:")

fflush(stdin)

scanf("%lf",&outmoney)

fflush(stdin)

while(!feof(ps))

{

fscanf(ps, "%s %s %lf",&xin[k].id,&xin[k].psw,&xin[k].money)

k++

}

fclose(ps)

ps=fopen(cFile,"wb")

if (!ps)

{

printf("不能打开文件!按任意键退出!")

fflush(stdin)

scanf("%c",&x)

fflush(stdin)

exit(0)

}

while(!feof(ps))

{

//printf("%s %s %.2lf\n",xin[b].id,xin[b].psw,xin[b].money)

if ((strcmp(Account, xin[b].id)==0)&&(strcmp(Password, xin[b].psw)==0))

{

xin[b].money=xin[b].money-outmoney

}

printf("%.2lf\n",xin[b].money)

fprintf(ps, "%s %s %.2lf\n", xin[b].id, xin[b].psw, xin[b].money)

b++

}

}

}

denglu()/*登陆*/

{

FILE *fp

char account[10+ 1],password[6 + 1],h

int m=0

char real_account[10+ 1]/* 帐号缓存 */

char real_password[6 + 1]/* 密码缓存*/

double real_money_o=0.0 /*存款缓存*/

printf("请输入您的帐号(10位纯数字):")

gets(account)

printf("请输入您的密码(6位纯数字):")

gets(password)

fp = fopen(cFile, "r")

if (!fp)

{

printf("不能打开文件!按任意键退出!")

fflush(stdin)

scanf("%c",&h)

fflush(stdin)

exit(0)

}

while (m<=2) /*判断是否输入错3次了*/

{

while(fscanf(fp, "%s %s %lf", &real_account, &real_password,&real_money_o) != EOF) /*循环判断帐号密码*/

{

if ((strcmp(real_account, account)==0)&&(strcmp(real_password, password)==0))

{

system("cls")

printf("登陆成功!")

gongneng(real_account,real_password,real_money_o)

fclose(fp)

return 0

}

}

rewind(fp)/*重新打开文件,进行新一轮的密码验证*/

printf("您输入的帐号不存在或密码不正确!\n请重新输入:\n")

m++

printf("请输入您的帐号(10位纯数字):")

fflush(stdin)

gets(account)

fflush(stdin)

printf("请输入您的密码(6位纯数字):")

fflush(stdin)

gets(password)

fflush(stdin)

}

fclose(fp)

printf("您输入帐号密码不正确已经3次,您被强制退出系统(按任意键退出)!")

fflush(stdin)

scanf("%c",&h)

fflush(stdin)

exit(0)

}

int main()

{

char chiose

welcome1()

scanf("%c",&chiose)

getchar()

if(chiose <='0' ||chiose>='4')

{

while(chiose <='0' || chiose>='4')

{

printf("您的输入有误,请重新输入:")

scanf("%c",&chiose)

getchar()

}

}

if(chiose=='1')

{

system("cls")

zhuce()/*注册*/

}

if(chiose=='2')

{

system("cls")

denglu()/*登陆*/

}

if(chiose=='3')

{

printf("谢谢您的使用!")

exit(0)

}

}

打字不易,如满意,望采纳。

#include <stdio.h>#include <string.h>struct information { char account[20]char IDcardNumchar workUintchar homeAddressfloat moneychar cardNumlong int password}void openAccount(){ cardNum++user[cardNum].cardNum = cardNumprintf("请输入您的姓名:")gets(user[cardNum].account)printf("请输入您的身份z号:")gets(user[cardNum].IDcardNum)printf("请输入您的工作单位:")gets(user[cardNum].workUnit)print("请输入您的家庭住址:")gets(user[cardNum].homeAddress)printf("请输入您的密码:")gets(user[cardNum].password)printf("请输入您要存入的金拍慎闷额:")scanf("%d",user[cardNum].money)//写入文件out.txt中,写入后,光标移至下一行 read()//读取孝派文件 write()//写入文件 cardNum++} void deposit(){ int moneyprintf("请输入您的卡号:")scanf("%d",&cardNum)printf("请输入您要存入的金额:")scanf("%f",money)user[cardNum].money = user[cardNum].money + moneyprintf("您现在账户中的余额是¥%f",user[cardNum].money)} void withdraw(){ int moneyprintf("请输入您的卡号:")scanf("%d",&cardNum)printf("请输入您要存入的金额:")scanf("%f",money)user[cardNum].money = user[cardNum].money - moneyprintf("您现在账户中的余额是¥%f",user[cardNum].money) } void changeInformation(){ printf("请输入您的卡号:")scanf("%d",&cardNum)user[cardNum].cardNum = cardNumprintf("请输入您的姓名:")gets(user[cardNum].account)printf("请输入您的身份z号:袭弯")gets(user[cardNum].IDcardNum)printf("请输入您的工作单位:")gets(user[cardNum].workUnit)print("请输入您的家庭住址:")gets(user[cardNum].homeAddress)printf("请输入您的密码:")gets(user[cardNum].password)printf("请输入您要存入的金额:")scanf("%d",user[cardNum].money)//写入文件out.txt中,写入后,光标移至下一行 read()//读取文件 write()//写入文件 } void reportLoss(){ } void closeAccount(){ } void read(){ } void write(){ } int main() { int iunsigned long int cardNum = 00001information user[cardNum]printf("请您选择要进行的 *** 作:\n")printf("------------------------------------------------------\n")printf("1、开户/办卡 2、存款 3、取款 4、修改信息 5、挂失 6、销户\n")printf("------------------------------------------------------\n")scanf("%d",&i)if(i <1 || i >6) printf("ERROR!\n")else { switch(i) { case 1 : openAccount()breakcase 2 : deposit()breakcase 3 : withdraw()breakcase 4 : changeInformation()breakcase 5 : reportLoss()breakcase 6 : closeAccount()break} } return 0} 没有写完,楼主可以参考一下!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12296662.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存