用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - c代码库

网络

2014-05-24 作者: 夏夏弥弥举报

[c]代码库

#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
#define N 200
 
void zhanghao();                 //账号
void xuanzhe();                  //选择函数
void enter_ATM();                //账号输入函数 
void input_code();               //密码输入函数
void caozuo();                   //基本操作界面
void qukuan();                   //取款函数
void success();                  //操作成功函数
void delay();                    //延时函数
void YU_E();                     //余额查询函数
void cunkuan();                  //存款函数
void panduan(double z);          //判断取款是否合法函数
void exit();                     //退出界面函数
void mima();                     //密码修改
void zhuanzhang();               //转账函数
void read();                     //文件写入函数
void write();                    //文件读取函数
void guanli();                   //管理员函数
void tequancode();               //管理员密码
void hu();                       //户
void xinxi();                    //信息
void gmima();                   //管理员改密
void CAOZUO();                   //管理员操作函数
void yinghang();                 //银行账户查询函数
void jia();                      //账户添加函数
void shanchu();                  //账户删除函数
typedef struct
{
    long int zhanghao;
    int mima;
    double yu_e;
}atm;
atm guan[N];
int k;
////////////////////////////////////////////////////////////主函数
void main()
{
    xuanzhe();
}
////////////////////////////////////////////////////////////功能选择函数
void xuanzhe()
{
    system("cls");
    printf("*          请选择功能       *\n");
    printf("*     1.管理员    2.用户    *\n");
    switch (getch())
    {
    case '1':tequancode(); break;
    case '2':enter_ATM(); break;
    default:{
                printf("\a非法输入");
                delay();
                system("cls");
                xuanzhe();
    }; break;
    }
}
 
///////////////////////////////////////////////////////////柜台机账号输入函数
void enter_ATM()
{
    delay();
    system("cls");
    read();
    printf("*     欢迎使用 ATM 柜台机     *\n");
    printf("*          请输入卡号         *\n");
    long int user;
    scanf("%d", &user);
    if (user == 0)
    {
        printf("*        账号错误       *\n");
        enter_ATM();
    }
    else if (user != (guan[k].zhanghao))
    {
        for (k = 1; k<N; k++)
        {
            if (user == (guan[k].zhanghao))
                input_code();
        }
        system("cls");
        printf("*    账户不存在,请从新输入    *\n");
        enter_ATM();
    }
    else
        input_code();
 
}
////////////////////////////////////////////////////////////////密码输入函数
void input_code()
{
    long int code;
    int temp = 3;
    read();
    system("cls");
    printf("*          请输入密码          *\n");
    scanf("%d", &code);
    while (code != guan[k].mima)
    {
        temp--;
        system("cls");
        printf("*     密码错误,请重新输入     *\n");
        printf("*        您还有 ");
        printf("%d", temp);
        printf(" 次机会       *\n");
        scanf("%d", &code);
 
        if (temp == 1)
        {
            system("cls");
            printf("*      您已经 3 次输入密码     *\n");
            printf("*         系统将退出操作       *\n");
            delay();
            enter_ATM();
        }
    }
    caozuo();
}
//////////////////////////////////////////////////////////////////主操作界面函数
void caozuo()
{
    system("cls");
    printf("********************************\n");
    printf("*         请选择一下业务       *\n");
    printf("*          1.修改密码          *\n");
    printf("*          2.查询余额          *\n");
    printf("*          3.取款              *\n");
    printf("*          4.存款              *\n");
    printf("*          5.转账              *\n");
    printf("*          6.退出              *\n");
    printf("********************************\n");
    switch (getch())
    {
    case '1': mima();     break;
    case '2': YU_E();    break;
    case '3': qukuan();  break;
    case '4': cunkuan(); break;
    case '5': zhuanzhang(); break;
    case '6': exit();    break;
    default:{
                printf("\a非法操作\n");
                caozuo();
    };
    }
}
//////////////////////////////////////////////////////////////////////密码修改函数
void mima()
{
    long int mm1, mm2, mm3;
    int temp;
    system("cls");
    printf("旧密码:");
    scanf("%d", &mm1);
    printf("\n");
    if (mm1 != guan[k].mima)
    {
        system("cls");
        printf("旧密码错误,请重新输入\n");
        delay();
        mima();
    }
    printf("新密码:");
    scanf("%d", &mm2);
    if (mm2<100000 || mm2>999999)
    {
        system("cls");
        printf("        密码必须等于6位数  \n");
        printf("           请重新输入!    \n");
        delay();
        mima();
    }
    temp = mm2 % 111111;
    if (temp == 0)
    {
        system("cls");
        printf("          密码过于简单       \n");
        printf("           请重新输入!      \n");
        delay();
        mima();
    }
    printf("\n");
    printf("确认新密码:");
    scanf("%d", &mm3);
    if (mm2 != mm3)
    {
        system("cls");
        printf("确认密码不一致,请重新输入\n");
        delay();
        mima();
    }
 
    if (mm3 = mm2)
    {
        guan[k].mima = mm3;
        write();
        success();
    }
}
 
////////////////////////////////////////////////////////////////////余额查询函数
void YU_E()
{
    read();
    system("cls");
    printf("你的余额为:%lf\n", (guan[k].yu_e));
    printf("1.返回      2.退出     \n");
    switch (getch())
    {
    case '1': caozuo(); break;
    case '2': exit();   break;
    }
}
/////////////////////////////////////////////////////////////////////////取款函数
void qukuan()
{
    double temp;
    system("cls");
    printf("     请选择您要取款的金额     \n");
    printf("        1.100    2.200        \n");
    printf("        3.500    4.800        \n");
    printf("        5.1000   6.其它       \n");
    printf("                              \n");
    printf("        7.返回   8.退出       \n");
    switch (getch())
    {
    case '1': panduan(100);   break;
    case '2': panduan(200);   break;
    case '3': panduan(500);   break;
    case '4': panduan(800);   break;
    case '5': panduan(1000);  break;
    case '6':
        system("cls");
        printf("请输入您要取款的金额:");
        scanf("%lf", &temp);
        panduan(temp);      break;
    case '7':caozuo();      break;
    case '8':exit();        break;
    }
}
///////////////////////////////////////////////////////////////////判断取款是否合法函数
void panduan(double z)
{
    int beishu;
    if (z>(guan[k].yu_e))
    {
        system("cls");
        printf("           余额不足!         \n");
        printf("          请重新操作          \n");
        printf("     1.返回       2.退出      \n");
        switch (getch())
        {
        case '1': qukuan();
        case '2': exit();
        }
    }
    beishu = (int)z % 100;
    if (beishu != 0)
    {
        system("cls");
        delay();
        printf("  本ATM机只支持 100 的人民币  \n");
        printf("           请重新操作         \n");
        printf("                              \n");
        printf("     1.返回        2.退出     \n");
        switch (getch())
        {
        case '1': qukuan();
        case '2': exit();
        }
    }
    if (z == 5000.00 || z>5000.00)
    {
        system("cls");
        printf("    每次取款不能超过 5000 元  \n");
        printf("           请重新操作         \n");
        printf("                              \n");
        printf("     1.返回        2.退出     \n");
        switch (getch())
        {
        case '1': qukuan();
        case '2': exit();
        }
    }
    (guan[k].yu_e) -= z;
    write();
    success();
}
/////////////////////////////////////////////////////////////////存款函数
void cunkuan()
{
    double cun;
    system("cls");
    printf(" 请放入人民币:");
    scanf("%lf", &cun);
    while (cun<0)
    {
        system("cls");
        printf("            非法存款          \n");
        printf("        请重新放入人民币      \n");
        scanf("%lf", &cun);
    }
    (guan[k].yu_e) += cun;
    write();
    success();
}
/////////////////////////////////////////////////////////////////转账号函数
void zhuanzhang()
{
    int i, hao;
    double money;
    long int a = 2109999999;
    system("cls");
    delay();
    read();
    printf("*       请输入账号      *\n");
    scanf("%d", &hao);
    printf("*       请输入金额      *\n");
    scanf("%lf", &money);
    if (hao<1000000000 || hao>a)
    {
        printf("*     账号错误,操作取消    *\n");
        delay();
        delay();
        caozuo();
    }
    else if (money>guan[k].yu_e || money<0)
    {
        printf("*     金额错误,操作取消    *\n");
        delay();
        delay();
        caozuo();
    }
    else
    {
        read();
        for (i = 1; i<N; i++)
        {
            if (guan[i].zhanghao == hao)break;
        }
        guan[k].yu_e -= money;
        guan[i].yu_e += money;
        write();
        success();
    }
}
///////////////////////////////////////////////////////延时函数
void delay()
{
    long int bl1;
    int bl2;
    for (bl1 = 600000; bl1>0; bl1--)
    {
        for (bl2 = 300; bl2>0; bl2--);
    }
}
/////////////////////////////////////////////////操作成功函数
void success()
{
    system("cls");
    printf("           操作已成功         \n");
    printf("                              \n");
    printf("     1.返回        2.退出     \n");
    switch (getch())
    {
    case '1':caozuo();     break;
    case '2':exit();  break;
    }
}
//////////////////////////////////////////////系统退出函数
void exit()
{
    system("cls");
 
    printf("*        欢迎您的再次使用      *\n");
    printf("*         系统正在退出...      *\n");
    delay();
    xuanzhe();
}
////////////////////////////////////////////////////文件读取函数
void read()
{
    int i;
    FILE *fp;
    fp = fopen("xinxi.txt", "r");
    if (fp == NULL)
    {
        printf("打开文件失败\n");
        return;
    }
    for (i = 0; i<N; i++)
    {
 
        fscanf(fp, "%d  ", &(guan[i].zhanghao));
        fscanf(fp, "%d   ", &(guan[i].mima));
        fscanf(fp, "%lf\n", &(guan[i].yu_e));
    }
    fclose(fp);
}
 
/////////////////////////////////////////////////////////////文件写入函数
void write(int i)
{
    FILE *fp;
    fopen_s(fp,"用户信息.dat", "ab+");
    if (fp == NULL)
    {
        printf("打开文件失败\n");
        return;
    }
    fprintf(fp, "%d  ", guan[i].zhanghao);
    fprintf(fp, "%d  ", guan[i].mima);
    fprintf(fp, "%lf\n", guan[i].yu_e);
    fclose(fp);
}
 
void tequancode()
{
    long int code;
    int temp = 2;
    read();
    system("cls");
    printf("*       请输入管理员密码          *\n");
    scanf("%d", &code);
    while (code != guan[0].mima)
    {
 
        system("cls");
        printf("*     密码错误,请重新输入     *\n");
        printf("*        您还有 ");
        printf("%d", temp);
        printf(" 次机会       *\n");
        scanf("%d", &code);
        temp--;
        if (temp == 0)
        {
            system("cls");
            printf("*\a    您已经 3 次输入密码     *\n");
            printf("*         系统将退出操作       *\n");
            delay();
            xuanzhe();
        }
    }
    guanli();
}
////////////////////////////////////////////////////////////////管理员函数
void guanli()
{
    system("cls");
    delay();
    printf("*           1.信息查询          *\n");
    printf("*           2.操作              *\n");
    printf("*           3.退出              *\n");
    switch (getch())
    {
    case '1':zhanghao(); break;
    case '2':CAOZUO(); break;
    case '3':exit(); break;
    default:{
                printf("\a非法操作");
                guanli();
    };
    }
}
/////////////////////////////////////账号
void zhanghao()
{
    system("cls");
    read();
    printf("           请输入账号         \n");
    long int user;
    scanf("%d", &user);
    if (user != (guan[k].zhanghao))
    {
        for (k = 1; k<N; k++)
        {
            if (user == (guan[k].zhanghao))
                hu();
        }
        system("cls");
        printf("*    账户不存在,请从新输入    *\n");
        delay();
        guanli();
    }
    else
    {
        delay();
        hu();
    }
}
////////////////////////////////////////////////账户
void hu()
{
    system("cls");
    printf("*   1.信息   2.改密码   *\n");
    printf("*   3.返回   4.退出     *\n");
    switch (getch())
    {
    case '1':xinxi(); break;
    case '2':gmima(); break;
    case '3':zhanghao(); break;
    case '4':guanli(); break;
    default:{
                printf("\a非法操作\n");
                hu();
    };
    }
}
///////////////////////////////////////////////信息
void xinxi()
{
    system("cls");
    read();
    printf("*账号      密码     余额*\n");
    printf("%d  ", guan[k].zhanghao);
    printf("%d  ", guan[k].mima);
    printf("%lf  \n", guan[k].yu_e);
    printf("*     1.返回    2.退出   *\n");
    switch (getch())
    {
    case '1':hu(); break;
    case '2':guanli(); break;
    }
}
///////////////////////////////////////////管理员改密
void  gmima()
{
    long int mm1, mm2, mm3;
    char temp;
    system("cls");
    printf("旧密码:");
    scanf("%d", &mm1);
    printf("\n");
    if (mm1 != guan[k].mima)
    {
        system("cls");
        printf("旧密码错误,请重新输入\n");
        delay();
        gmima();
    }
    printf("新密码:");
    scanf("%d", &mm2);
    if (mm2<100000 || mm2>999999)
    {
        system("cls");
        printf("        密码必须等于6位数  \n");
        printf("           请重新输入!    \n");
        delay();
        gmima();
    }
    temp = mm2 % 111111;
    if (temp == 0)
    {
        system("cls");
        printf("          密码过于简单       \n");
        printf("           请重新输入!      \n");
        delay();
        gmima();
    }
    printf("\n");
    printf("确认新密码:");
    scanf("%d", &mm3);
    if (mm2 != mm3)
    {
        system("cls");
        printf("确认密码不一致,请重新输入\n");
        delay();
        gmima();
    }
    if (mm3 = mm2)
    {
        guan[k].mima = mm3;
        write();
        hu();
    }
}
///////////////////////////////////////////管理员操作函数
void CAOZUO()
{
    system("cls");
    delay();
    printf("*   1.查询所有账户    *\n");
    printf("*   2.添加账户        *\n");
    printf("*   3.删除账户        *\n");
    printf("*   4.返回    5.退出  *\n");
    switch (getch())
    {
    case '1':yinghang(); break;
    case '2':jia(); break;
    case '3':shanchu(); break;
    case '4':guanli(); break;
    case '5':xuanzhe(); break;
    default:{printf("\a非法操作\n");
        CAOZUO(); };
    }
 
}
//////////////////////////////////////////银行账户查询函数
void yinghang()
{
    system("cls");
    delay();
    read();
    printf("*账号      密码     余额*\n");
    for (; k<N; k++)
    {
        if (guan[k].zhanghao != 0 && guan[k].zhanghao>0)
        {
            printf("%d  ", guan[k].zhanghao);
            printf("%d  ", guan[k].mima);
            printf("%lf\n", guan[k].yu_e);
        }
    }
    printf("*     1.返回    2.退出   *\n");
    switch (getch())
    {
    case '1':CAOZUO(); break;
    case '2':guanli(); break;
    }
}
//////////////////////////////////////////账户添加函数
void jia()
{
    int mm1, mm2;
    int temp;
    system("cls");
    delay();
    read();
    printf("*    请输入密码   *\n");
    scanf("%d", &mm1);
    if (mm1<100000 || mm1>999999)
    {
        system("cls");
        printf("        密码必须等于6位数  \n");
        printf("           请重新输入:    \n");
        delay();
        scanf("%d", &mm1);
    }
    temp = mm1 % 111111;
    if (temp == 0)
    {
        system("cls");
        printf("          密码过于简单       \n");
        printf("           请重新输入:      \n");
        delay();
        scanf("%d", &mm1);
    }
    printf("\n");
    printf("确认密码:\n");
    scanf("%d", &mm2);
    if (mm1 != mm2)
    {
        system("cls");
        printf("确认密码不一致,操作取消\n");
        delay();
        CAOZUO();
    }
    if (mm1 = mm2)
    {
        for (; k<N; k++)
        {
            if (guan[k].zhanghao == 0)
            {
                guan[k].zhanghao = guan[k - 1].zhanghao + 1;
                guan[k].mima = mm2;
                write();
                break;
            }
        }
        printf("账号创建成功!\n");
        printf("您的账号是%d,请妥善保管!\n", guan[k].zhanghao);
        printf("*     1.返回    2.退出   *\n");
        switch (getch())
        {
        case '1':CAOZUO(); break;
        case '2':guanli(); break;
        }
    }
}
/////////////////////////////////////////账户删除函数
void shanchu()
{
    system("cls");
    delay();
    read();
    printf("*          请输入账号         *\n");
    long int user;
    scanf("%d", &user);
    if (user == 0)
    {
        printf("*  账号错误,操作取消       *\n");
        CAOZUO();
    }
    else if (user != (guan[k].zhanghao))
    {
        for (k = 1; k<N; k++)
        {
            if (user == (guan[k].zhanghao))
            {
                for (; k<N; k++)
                {
                    guan[k].zhanghao = guan[k + 1].zhanghao;
                    guan[k].mima = guan[k + 1].mima;
                    guan[k].yu_e = guan[k + 1].yu_e;
                    write();
                }
                printf("账号删除成功!\n");
                printf("*     1.返回    2.退出   *\n");
                switch (getch())
                {
                case '1':CAOZUO(); break;
                case '2':guanli(); break;
                }
            }
        }
        system("cls");
        printf("*          账户不存在         *\n");
        delay();
        CAOZUO();
    }
    else
    {
        for (; k<N; k++)
        {
            guan[k].zhanghao = guan[k + 1].zhanghao;
            guan[k].mima = guan[k + 1].mima;
            guan[k].yu_e = guan[k + 1].yu_e;
            write();
        }
        printf("账号删除成功!\n");
        printf("*     1.返回    2.退出   *\n");
        switch (getch())
        {
        case '1':CAOZUO(); break;
        case '2':guanli(); break;
        }
    }
}


网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...