| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 673 人关注过本帖
标题:大神来帮我自己编的银行管理系统
只看楼主 加入收藏
shishengfei
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2014-6-22
结帖率:0
收藏
已结贴  问题点数:20 回复次数:6 
大神来帮我自己编的银行管理系统
#include <stdio.h>
#include "stdlib.h"
#include "string.h"
#define rate 0.0035    //银行活期利率
#define STARS "****************************************"

struct yonghu
{
    char number[9];    //用户的身份证号码
    char name[20]; //用户名字
    char secrets[6];   //用户密码
    double money;  //用户余额
    double lixi;   //用户利息
    char kahao[8];     //用户卡号
};
struct yonghu po[100];
int count;
void Register();//用户注册
void service(int b); //用户业务
void enter();   //用户登录
void Change(int c);//用户信息修改
/*void refer();//信息查询声明*/
void Delete();//用户退卡声明

int  reads(struct  yonghu po[100])          //提老用户资料  
{
    FILE *fp;
    int i=0;
    if((fp=fopen("yonghu.dat","r"))==NULL)
    {
        printf("文件打开失败!\n");
        return 0;
    }
    else
    {
        for(i=0;!feof(fp);i++)
            fscanf(fp,"\n%s %s %s %s %lf %lf \n",po[i].name,po[i].kahao,po[i].number,po[i].secrets,&po[i].money,&po[i].lixi);
         
    }
    fclose(fp);
    return i;
}
 void save(struct  yonghu po[100],int n)                                             //保存数据到文件的函数
{
    int i=0;
    FILE *fp;
    if((fp=fopen("yonghu.dat","w"))==NULL)                         //如果需要打开的文件不存在则自动创建
    {
        printf("文件打开失败\n");
        return;
    }
    else
    {
        for (i=0;i<n;i++)
            fprintf(fp,"\n%s %s %s %s %lf %lf \n",po[i].name,po[i].kahao,po[i].number,po[i].secrets,&po[i].money,&po[i].lixi);
    fclose(fp);
    }
}
 
void auther()
{
    printf("\n%s%s\n",STARS,STARS);
    printf("               欢迎使用银行账户管理系统\n");
    printf("                                   作者:  施胜飞\n");
    printf("\n%s%s\n",STARS,STARS);
    printf("按回车键,开始\n");
}
void Register()
{
    FILE *fp;
    struct yonghu po;
    if((fp=fopen("yonghu.dat","a"))==NULL)     //文件存在,追加信息
    {
        if((fp=fopen("yonghu.dat","w"))==NULL) //文件不存在时,创建新文件,输入信息
        {
            printf("用户不存在!\n");
            return;
        }
    }
    printf("请输入你的用户名(20个字符内):\n");
    scanf("%s",po.name);
    while(strlen(po.name)>20)
    {
        printf("你输入的用户名不合标准,请重新输入\n");
        scanf("%s",po.name);
    }
    printf("请输入你的身份证(9位)\n");
    scanf("%s",po.number);
    while(strlen(po.number)>9)
    {
        printf("你输入的身份证不合标准,请重新输入:");
        scanf("%s",po.number);
    }
    printf("请输入存款金额:\n");
    scanf("%d",&po.money);
    printf("请输入你的密码(6位)\n");
    scanf("%s",po.secrets);
    while(strlen(po.secrets)>7)
    {
        printf("你输入的密码不合标准,请重新输入:");
        scanf("%s",po.secrets);
    }
    printf("请输入你想要的卡号(8位)\n");
    scanf("%s",po.kahao);
    fclose(fp);
    count=count+1;
}
void enter()
{
    int i;
    char m[8],h[6];
    count=reads(po);
    printf("\n                       %s\n",STARS);//显示菜单桌面
    printf("请输入你的卡号(8位):         \n");   
    scanf("%s",m);
    printf("请输入你的密码(6位):         \n");
    scanf("%s",h);
    for(i=0;i<count;i++)
        if(strcmp(m,po[i].kahao)==0 && strcmp(h,po[i].secrets)==0)
        break;
           if(i>=count || strcmp(h,po[i].secrets)!=0)
           {
            printf("对不起,你的卡号或者密码错误\n");
            getchar();
            printf("按回车键返回上级界面 \n");
            getchar();
            system("cls");
            return;
           }
           else
           {
            printf("          正确登录          \n");
            system("cls");
            service(i);
           }
}

void service(int b)
{
    int code,choice;
    double cmoney;
    double qmoney;
    do
    {
        printf("\n                       %s\n",STARS);//显示菜单桌面
        printf("               *请选择你要的业务:   *\n");
        printf("               **[1]查询余额         *\n");   
        printf("               **[2]存钱             *\n");
        printf("               **[3]取钱             *\n");
        printf("               **[4]查询利息         *\n");
        printf("               **[5]密码修改         *\n");
        printf("               **[6]返回             *\n");
        printf("\n                       %s\n",STARS);   
        while((choice=scanf("%d",&code))!=1||(code<1||code>6))
        {
            if(choice!=1)
            scanf("%*s");
                printf("请输入一个整数从1到6\n");
        }
        system("cls");
        switch(code)
        {
        case 1:
             printf("您的账户余额:%lf      按Enter键返回上一层\n",po[b].money);
             getchar();
             getchar();
             break;
        case 2:
             printf("请输入你要存的钱\n");
             scanf("%lf",&cmoney);
             printf("恭喜你存钱成功\n");
             po[b].money=(po[b].money+cmoney);
             printf("现在你的账户上还有:  %lf元\n",po[b].money);
             break;

        case 3:
             printf("请输入你要取的钱\n");
             scanf("%lf",&qmoney);
             while (qmoney<=0)
             {
            
                 printf ("请输入正确的数字:");
                 scanf("%lf",&qmoney);
             }
             if (qmoney >po[b].money)
             printf("余额不足");
             else
             {
                po[b].money=po[b].money-qmoney;
                 printf ("操作成功,请收好钱!");
             }
             printf("按Enter返回上一层\n");
             break;

        case 4:
             printf("您目前账户利息:%lf   \n",(po[b].money*rate));
             break;
        case 5:
             Change(b);
             break;
        }
    }
    while(code!=6);
    return;
}
/*void refer()
{
    printf("\n****************************************\n");
    printf("用户名       余额       利息  \n);
    printf("%-9s%-20d%-10.2lf\n",po[i].name,pot[i].money,po[i].lixi);
    printf("\n****************************************\n");
    getchar();
    system("cls");
}*/


void Delete()
{
    struct yonghu po[100];
    char s[20],t[20];
    int i,j;
    printf("\n 请输入要删除储户卡号,密码,用空格隔开:");
    scanf("%s %s",s,t);
    for (i=0;i<count;i++)
        if (strcmp(s,po[i].kahao)==0 && strcmp(t,po[i].secrets)==0)break;
        if (i>=count || strcmp(t,po[i].secrets)!=0)
        {
            printf("没有找到该储户信息!\n");
            return;
        }
        else
        {
            for(j=i+1;j<count;j++)
                po[j-1]=po[i];
        }
        save (po,count-1);
        printf("销户成功!\n");
}

void Change(int c)
{
    printf("\n 请输入更改后密码,按Enter确认:\n");
    scanf("%s",po[c].secrets);
    save(po,c);
    printf("\n 修改成功");
}
   
int main()
{
    count=0;
    system("cls");
    int code,choice;
    auther();
    getchar();
    system("cls");   
    do
    {
        printf("\n                       %s\n",STARS);//显示菜单桌面
        printf("               *请选择你的种类:      *\n");
        printf("               **[1]新用户注册        *\n");   
        printf("               **[2]老用户            *\n");
        printf("               **[3]取消本卡          *\n");
        printf("               **[4]退出              *\n");
        printf("\n                       %s\n",STARS);   
        while((choice=scanf("%d",&code))!=1 || (code<1 || code>4))
        {
            if(choice!=1)
                scanf("%*s");
                printf("请输入一个整数从从1到4");
        }
        system("cls");
        switch(code)
        {
        case 1:
        Register();
            break;
        case 2:
        enter();
            break;
        case 3:
        Delete();
            break;
        case 4:
            printf("感谢您再次使用,再见!\n");
            break;
        }
    }
    while(code!=4);
    return 0;
}
   
为什么每次新用户注册好的,再次登录都是卡号和密码是错的。
搜索更多相关主题的帖子: 身份证号码 银行管理 service include double 
2014-06-22 00:14
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:7 
那就专门看密码比较函数的判断条件,把读入的数据打出来看看,是否多了或者少了字符

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2014-06-22 07:30
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:7 
回复 楼主 shishengfei
新用户注册后没有保存呐

总有那身价贱的人给作业贴回复完整的代码
2014-06-22 07:33
砖家的谎言
Rank: 12Rank: 12Rank: 12
等 级:禁止访问
威 望:30
帖 子:693
专家分:3898
注 册:2013-12-6
收藏
得分:7 
那就是你没有保存成功,所以比对错误

我不是砖家,要努力成为砖家。
2014-06-22 08:15
shishengfei
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2014-6-22
收藏
得分:0 
回复 2 楼 pauljames
怎么改,跪求,很急/
2014-06-22 09:47
shishengfei
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2014-6-22
收藏
得分:0 
回复 4 楼 砖家的谎言
可以教教我吗?很急。我马上要去验收了。
2014-06-22 09:48
shishengfei
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2014-6-22
收藏
得分:0 
回复 2 楼 pauljames
求指导。很急。
2014-06-22 09:59
快速回复:大神来帮我自己编的银行管理系统
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015110 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved