怎样编写 c语言 银行账户信息管理系统

功能要求:1、具有查询帐户余额的功能2、具有简单的存取款功能3、能够实现帐户的插入、删除和修改4、具有帐户信息的保存功能要求答案准确无误急急急!!!需要帮帮啊速度帮我解决... 功能要求:
1、具有查询帐户余额的功能
2、具有简单的存取款功能
3、能够实现帐户的插入、删除和修改
4、具有帐户信息的保存功能
要求答案准确无误 急急急!!! 需要 帮帮 啊 速度帮我解决啊
展开
 我来答
匿名用户
2015-07-10
展开全部

参考如下:

#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=0;n<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=0;n<strlen(sh)-1;n++)/*判断输入信息是否正确*/
{
   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);
    }
}
钟升哥
2011-06-20 · TA获得超过502个赞
知道小有建树答主
回答量:378
采纳率:0%
帮助的人:169万
展开全部
给你提供个主程序吧 具体的子函数自己补下,锻炼下吧
#include<stdio.h>
#include<string.h>
#include <stdlib.h>
#define N 10
struct student
{
int num;
char name[12];
char sex[4];
char clas[20];
int a,b,c;
double pjf;
};

void main()
{
void shuru(struct student stu[N]);
void chuli(struct student stu[N]);
void xiugai(struct student stu[N]);
void shuchu(struct student stu[N]);
void paixu(struct student stu[N]);
void chaxun(struct student stu[N]);
void tongj(struct student stu[N]);
double pjf(struct student stu[N]);
void bjgkm(struct student stu[N]);
struct student stu[N];
int i=0,j=0,p=0,u=0;
char str[70][500];
FILE *fp1,*fp;
if((fp=fopen("信息.txt","r"))==NULL)
printf("注意:为免出错,第一次使用本程序,请选1 手动输入账户数据. \n");
else
{
for(i=1;i<=N;i++)
{
if(i==1)
fp=fopen("学生信息.txt","r");
fscanf(fp,"%d%s%s%s%d%d%d",&stu[i].num,stu[i].name,stu[i].sex,stu[i].clas,&stu[i].a,&stu[i].b,&stu[i].c);
if(1==N)
fclose(fp);
}
}
int choice;
do{
for(i=0;i<14;i++)
printf("**");
printf("主菜单");
for(j=0;j<14;j++)
printf("**");
printf("\n");
printf("#请选择: 1 账户输入 2 账户数据修改 3 信息处理 4 数据输出 5 退出并保存#\n");
for(i=0;i<20;i++)
printf("***");
printf("**\n");
scanf("%d",&choice);
switch(choice)
{
case 1 :
shuru(stu) ; break;
case 2 :
xiugai(stu) ; break;
case 3 :
chuli(stu) ; break;
case 4 :
shuchu(stu) ; break;
case 5 : break;
default : puts("error"); return;
}

} while(choice!=5);
fp1=fopen("学生信息.txt","w");
for(i=1;i<=N;i++)
{

fprintf(fp1,"%d ",stu[i].num);
fprintf(fp1,"%s ",stu[i].name);
fprintf(fp1,"%s ",stu[i].sex);
fprintf(fp1,"%s ",stu[i].clas);
fprintf(fp1,"%d ",stu[i].a);
fprintf(fp1,"%d ",stu[i].b);
fprintf(fp1,"%d ",stu[i].c);
fprintf(fp1,"\n");
}
puts("账户信息已保存在“信息.txt”中 谢谢!!");
fclose(fp1);
}
追问
求求给我具体答案啊 急用啊 帮帮忙啊
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
苏男男heart
2013-06-18
知道答主
回答量:1
采纳率:0%
帮助的人:1494
展开全部
有答案吗。求答案。现在我们也要做这个联系我841277573@qq.com
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式