Blake821 2022-12-30 13:37 采纳率: 100%
浏览 53
已结题

c语言银行账户管理问题

请在下面代码中嵌入第二步显示信息和第五步删除账号的代码,具体如下图所示

img

代码本身可能也有问题,请根据原本要求加以修改,下图是原本的代码要求

img

实在是没u有思路了
需要代码能够按照要求运行,请在下面代码加以嵌入和修改。
#define _CRT_SECURE_NO_WARNINGS 15
#include<stdio.h>
#include<malloc.h>
#include<string.h>
#include<windows.h>
#include<stdlib.h>
struct bank
{
    char cardname[20];
    long int IDcard;
    char name[20];
    double money;
    char address[20];
    struct bank* next;
};
struct bank* head, * tail, * temp;
void init() {
    head = NULL;
    tail = NULL;
    temp = NULL;
}
void kaihu()//创建账号
{
    char a[20];
    printf("\n请输入卡号\n");
    scanf("%s", a);
    struct bank* big;
    big = head;
    //判断账户是否已经存在,并将指针big移动到链表末端
    while (big != NULL) {
        if (strcmp(a, big->cardname) == 0) {
            printf("您输入的卡号已存在,请重新输入。\n");
            scanf("%s", a);
            big = head;
        }
        else {
            big = big->next;
        }
    }
    if (big == NULL) {
        printf("\n可开卡!请再次输入:\n");
    }
    //创建一个新结点来存储新的账号信息
    temp = (struct bank*)malloc(sizeof(struct bank));
    temp->next = NULL;
    scanf("%s", temp->cardname);
    printf("\n=======请输入您的姓名:========\n");
    scanf("%s", temp->name);
    printf("\n=======请输入您的身份证号:========\n");
    scanf("%ld", &temp->IDcard);
    printf("\n=======请输入您的地址:========\n");
    scanf("%s", temp->address);
    printf("\n=======请输入您的余额:========\n");
    scanf("%lf", &temp->money);
    //把新结点插到链表中
    if (head == NULL) {
        head = temp;
        tail = temp;
    }
    else {
        tail->next = temp;
        tail = tail->next;
    }
    printf("\n喜您,账号创建完成!按任意键退出开户\n");
    getchar();








}
void showPerson() {
    printf("************************************\n");
    printf("1.*****  输入新用户账户信息  *****\n");
    printf("2.*****  显示用户账户信息     *****\n");
    printf("3.*****  查询账户情况       *****\n");
    printf("4.*****  修改账号信息        *****\n");
    printf("5.*****  删除账号            *****\n");
    printf("0.*****  退出界面            *****\n");
    printf("************************************");

}
void welcome() {
    printf("                        欢迎登录");
    float x, y, a;
    for (y = 1.5; y > -1.5; y -= 0.1) {
        for (x = -1.5; x < 1.5; x += 0.05) {
            a = x * x + y * y - 1;
            putchar(a * a * a - x * x * y * y * y <= 0.0 ? '*' : ' ');
        }
        system("color 0A");
        putchar('\n');

    }printf("欢迎使用!点击回车键继续\n");
    getchar();
    system("cls");
}
void denglu() {
    int a, b;
    printf("请输入管理员账号\n");
    scanf("%d", &a);
    while (a == 2252433 || a == 2252429 || a == 2252436 || a == 2252438) {
        printf("输入错误,重输!!!\n");
        printf("请输入管理员账号\n");
        scanf("%d", &a);
    }
    printf("请输入密码\n");
    scanf("%d,", &b);
    printf("登录成功");
    system("cls");
}
void chaxun() {
    char a[20];
    printf("\n请输入查询卡号\n");
    scanf("%s", a);
    struct bank* big;
    big = head;

    while (big != NULL) {
        if (strcmp(a, big->cardname) == 0) {
            printf("用户卡号:%s   ", big->cardname);
            printf("用户姓名:%s   ", big->name);
            printf("用户身份证:%ld   ", big->IDcard);
            printf("用户地址:%s ", big->address);
            printf("账户余额:%lf\n", big->money);
            break;
        }
        else {
            big = big->next;
        }
    }
    printf("\n查询结束,按回车键退出查询\n");
    getchar(); getchar();
}
void xiugai() {
    char a[20], c[20], d[20],m[20];
    int b;
    struct bank* big;
    big = head;
    printf("\n请输入要修改的卡号\n");
    scanf("%s", a);
    while (big != NULL) {
        if (strcmp(a, big->cardname) == 0)
        {
            big = big->next;
            printf("************************************\n");
            printf("1.*****  修改用户姓名 *****\n");
            printf("2.*****  修改用户已绑定身份证  *****\n");
            printf("3.*****  修改账号密码  *****\n");
            printf("************************************");
            printf("请输入更改项目\n");
            scanf("%d", &b);
            switch (b)
            {
            case 1:scanf("%s", c); strcpy(big->cardname, *c); break;
            case 2:scanf("%s", d); strcpy(big->IDcard, *d); break;
            case 3:scanf("%s", m); strcpy(big->address, *m); break;
            default:printf("请正确输入\n"); break;
            }

        }
        else {
            printf("卡号不存在,请重新输入!\n");
            xiugai();
        }
    }


}
int main()
{
    system("chcp 65001");
    system("cls");
    welcome();
    denglu();
    int a;
    while (1)
    {
        showPerson();
        printf("\n请输入指令:\n");
        scanf("%d", &a);
        switch (a)
        {
        case 1: kaihu(); break;
        case 3: chaxun(); break;
        case 4: xiugai(); break;
        case 0:break;
        }
        system("cls");
        if (a == 0)break;
    }



    return 0;
}


  • 写回答

2条回答 默认 最新

  • CSDN专家-sinJack 2022-12-30 13:48
    关注

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月7日
  • 已采纳回答 12月30日
  • 创建了问题 12月30日

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?