用C语言编一个程序,建立一个简单的银行帐户管理系统

用C语言编一个程序,建立一个简单的银行帐户管理系统,第1张

#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} 没有写完,楼主可以参考一下!

参考如下:

#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)

    }

}


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存