C语言及程序设计初步例程-47 小小型应用系统开发指导(二)

来源:互联网 发布:服装纸样软件下载 编辑:程序博客网 时间:2024/06/05 09:36

贺老师教学链接  C语言及程序设计初步 本课讲解


简单银行系统的初步框架

#include <stdio.h>#include <stdlib.h>int main(){    int iPass;    int iChoice;    printf("欢迎您光临CSDN银行\n");    printf("请输入密码:");    scanf("%d", &iPass);    if(iPass!=123456)    {        printf("不要着急,想好了再输入……\n");        exit(0);    }    do    {        printf("\n您可以办理下面的业务:\n");        printf("  1.查询\n");        printf("  2.取款\n");        printf("  3.存款\n");        printf("  4.改密码\n");        printf("  0.退出\n");        printf("请输入(0-4):");        scanf("%d", &iChoice);        switch(iChoice)        {        case 1:            printf("您的余额有100W. \n");            break;        case 2:            printf("理智消费. \n");            break;        case 3:            printf("勤俭持家. \n");            break;        case 4:            printf("请牢记你的密码. \n");            break;        case 0:            printf("欢迎您再来. \n");        }    }    while(iChoice);    return 0;}

完整程序
/*说明:    本程序在学习者仅掌握了基本数据类型和控制结构的前提下设计,模拟银行储蓄系统的基本功能。    在运行前,请建立文件password.txt,其中存储一个整数,表示密码。    建立文件balance.dat,其中存储一个数,表示余额。    运行结束后,对数据所做的所有修改均可以利用文件保存下来。本程序进一步的改进:    1、银行应该是多用户,而绝不可以是单个的用户    2、应该要记录详细的业务过程    3、增加转帐、挂失等功能    4、密码的加密存储以及密码输入隐藏    5、在程序的结构方面,100多行程序放在main函数中,已经显得复杂了。    随着课程进展,我们将继续完善这个程序。*/#include <stdio.h>#include <stdlib.h>int main(){    int iPass;  //用户验证时输入的密码    int iPassInFile;  //记录正确的密码    int iTry=0;   //进入系统时尝试的次数    int iNewPass1, iNewPass2;   //用于修改密码    int iChoice;   //用于选择系统功能    double dBalance;  //账户余额    double dMoney;  //存取款金额    FILE *fp;  //用于文件操作    printf("欢迎您光临CSDN银行\n");    //密码保存在文件中,先取出    if ((fp=fopen("password.txt", "r"))==NULL)    {        printf("password file cannot open!");        exit(0);    }    fscanf(fp, "%d", &iPassInFile);    fclose(fp);    //进入系统,密码三次不对将退出    do    {        iTry++;        printf("请输入密码:");        scanf("%d", &iPass);        if(iPass==iPassInFile)            break;        else        {            if(iTry<3)                printf("超过3次将退出,你已经尝试%d次!\n", iTry);            else            {                printf("对不起,你不能进入系统\n");                exit(0);            }        }    }    while(1);    //从文件中取出余额    if ((fp=fopen("balance.dat", "r"))==NULL)    {        printf("data file cannot open!");        exit(0);    }    fscanf(fp, "%lf", &dBalance);    fclose(fp);    //办理业务    do    {        printf("\n您可以办理下面的业务:\n");        printf("  1.查询\n");        printf("  2.取款\n");        printf("  3.存款\n");        printf("  4.改密码\n");        printf("  0.退出\n");        printf("请输入(0-4):");        scanf("%d", &iChoice);        switch(iChoice)        {        case 1:            printf("您的余额有%.2lf元. \n",dBalance);            break;        case 2:            printf("输入取款额: ");            scanf("%lf", &dMoney);            if(dBalance>dMoney)            {                dBalance-=dMoney;                printf("取款后,您还有%.2lf元. \n",dBalance);            }            else                printf("余额不足,取款失败. \n");            break;        case 3:            printf("输入存款额: ");            scanf("%lf", &dMoney);            dBalance+=dMoney;            printf("存款后,您有%.2f元. \n",dBalance);            break;        case 4:            printf("请输入新密码:");            scanf("%d", &iNewPass1);            printf("再输入新密码:");            scanf("%d", &iNewPass2);            if(iNewPass1==iNewPass2)            {                iPassInFile = iNewPass1;                printf("密码修改成功,请注意保密.\n");            }            else                printf("两次输入不一致,密码修改失败.\n");            break;        case 0:            printf("欢迎您再来. \n");        }    }    while(iChoice);    //保存余额    if ((fp=fopen("balance.dat", "w"))==NULL)    {        printf("data file cannot open!");        exit(0);    }    fprintf(fp, "%f", dBalance);    fclose(fp);    //保存密码(可能修改过)    if ((fp=fopen("password.txt", "w"))==NULL)    {        printf("password file cannot open!");        exit(0);    }    fprintf(fp, "%d", iPassInFile);    fclose(fp);    return 0;}


2 0