c语言写银行交易明细

Python027

c语言写银行交易明细,第1张

c语言写银行交易明细方法如下

首先打开VC++文件》》》新建

创建一个C++空白文档先声明头文件#include

声明变量char *p[10]={"零","一","二","三","四","五","六","七","八","九"}

由于用到了自定义函数,所以先声明void PrintInterger(char a[], int len)/*输出整数部分 */void PrintDecimal(char a[],int len)/*输出小数部分 */

函数1,用于输出整数部分,主要是用switch case进行匹配转换void PrintInterger(char a[], int len)。

#include<math.h>

#include<stdio.h>

main(){

int a,c,d,e

float b=10000

int f

int num=1

printf("\t\t\t CHNIA BANK ATM\nplease input your secret code:\n")

scanf("%d",&a)

if(a==num){

printf(" welcome you to use your count,you have %.2f RMB!\n",b)

printf(" how much money do you want? please input the numbers: ")

scanf("%d",&e)

printf("\n")

c=b-e

printf(" you till have : %d ,please choose exit or choose function ! \n",c)

scanf("%c",&d)

printf("\n")

}

else if(a!=num){

printf("your secret code is wrong,please input the correct secret code!\n")

}

printf("\t\t \tHELLO,WELCOME TO USE ATM\nplease choose you want function\n")

printf("\n\n")

printf("\t\t-----------------------------------\n")

printf("\t\t|\t\t|\t\t |\n")

printf("\t\t| 1. check\t| 2. withdraw money\t |\n")

printf("\t\t|\t\t|\t\t |\n")

printf("\t\t-----------------------------------\n")

printf("\t\t|\t\t|\t\t |\n")

printf("\t\t| 3. transfer account\t| 4. midify secret code|\n")

printf("\t\t|\t\t|\t\t |\n")

printf("\t\t-----------------------------------\n")

printf("\t\t|\t\t\t\t |\n")

printf("\t\t|\t 0. exit \t\t |\n")

printf("\t\t|\t\t\t\t |\n")

printf("\t\t-----------------------------------\n")

printf("please choose function:\n ")

scanf("%d",&f)

switch(f)

{ case 0:printf("exit")break

case 1:printf("check")break

case 2:printf("withdraw money")break

case 3:printf("transfer account")break

case 4:printf("midify secret code")break

default :printf("it's wrong,please choose in 0~4!")

}

getch()

}

#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("请输入您的身份证号码:")

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("您输入的身份证号码不全!\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("您输入的身份证号码非法!\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("您输入的身份证号码非法!\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("身份证号码:")

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)

}

}

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