上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖

走过路过别错过 这里有C给你解决 越整越C

[复制链接]
  • TA的每日心情

    2024-5-19 19:56
  • 签到天数: 361 天

    [LV.8]以坛为家I

    11

    主题

    59

    回帖

    214

    积分

    高级工程师

    积分
    214

    油中2周年油中3周年

    发表于 2022-6-23 21:27:11 | 显示全部楼层 | 阅读模式
    悬赏1油猫币未解决
    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    #include<assert.h>
    struct JYY
    {
        char name[20];
        int num;
        int age;
        char tel[12];
        char sex[3];
    };
    
    struct Node
    {
        struct JYY data;
        struct Node* next;
    };
    struct Node* list = NULL;
    struct Node* createHead()
    {
        struct Node*headNode=(struct Node*)malloc(sizeof(struct Node));
        assert(headNode);
        headNode->next = NULL;
        return headNode;
    }//创建节点
    struct Node* createNode(struct JYY data)
    {
        struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
        assert(newNode);
        newNode->data = data;
        newNode->next = NULL;
        return newNode;
    }//插入
    void insertByHead(struct Node* headNode, struct JYY data)
    {
        struct Node* newNode = createNode(data);
        newNode->next = headNode->next;
        newNode->next = newNode;
    }//删除
    void deletByName(struct Node* headNode,const char*name)
    {
        struct Node* preNode = headNode;
        struct Node* posNode = headNode->next;
        while (posNode != NULL && strcmp(posNode->data.name,name))
        {
            preNode = posNode;
            posNode = preNode->next;
        }
        if (posNode != NULL)
        {
            preNode->next = posNode->next;
            free(posNode);
            printf("删除成功");
        }
    }
    struct Node* searchByNum(struct Node* headNote, int posData)
    {
        struct Node* pMove = headNote->next;
        while (pMove != NULL && pMove->data.num != posData)
        {
            pMove = pMove->next;
        }
        return pMove;
    }
    //遍历
    void printlist(struct Node* headNode)
    {
        struct Node* pMove = headNode->next;
        printf("姓名\t编号\t年龄\t电话号码\t性别\n");
        while (pMove != NULL) {
            printf("%s\t%d\t%d\t%s\t%s\n", 
                pMove->data.name,
                pMove->data.num, 
                pMove->data.age,
                pMove->data.tel,
                pMove->data.sex);
            pMove = pMove->next;
        }
        printf("\n");
    }
    void readFile(struct Node* headNode, const char* fileURL)
    {
        File* fp = fopen(fileURL, "r");
        if (fp == NULL)
        {
            fp = fopen(fileURL, "w+");
            fclose(fp);
            return;
        }
        struct JYY data;
        while (fscanf(fp, " % s\t % d\t % d\t % s\t % s\t % s\n",
            data.name,
            data.num,
            data.age,
            data.tel,
            data.sex) != EOF)
            {
                insertByHead(list,data);
            }
        fclose(fp);
    }
    
    void saveFile(struct Node* headNode, const char* fileURL)
    {
        File* fp = fopen(fileURL, "w");
        struct Node* pMove = headNode->next;
        while (pMove!=NULL)
        {
            fprintf(fp, "%s\t%d\t%d\t%s\t%s\n", pMove->data.name,
                pMove->data.num,
                pMove->data.age,
                pMove->data.tel,
                pMove->data.sex);
            pMove = pMove->next;
        }
    }
    
    //用户交互
    void makemenu()
    {
        printf("==========JYY管理系统==========\n");
        printf("\t\t0.退出系统\n");
        printf("\t\t1.录入信息\n");
        printf("\t\t2.浏览信息\n");
        printf("\t\t3.删除信息\n");
        printf("\t\t4.查找信息\n");
        printf("\t\t5.修改信息\n");
        printf("================================\n");
        printf("请输入你的选择\n");
    }
    void keyDown()
    {
        int userKey = 0;
        scanf_s("%d", &userKey);
        switch (userKey)
        {
        case'0':
            printf("退出成功!\n");
            system("pause");
            exit(0);
            break;
        case'1':
            printf("请输入学生信息(name,num,age,tel,sex):");
            scanf_s("%s%d%d%s%s%s",
                data.name,20,
                &data.num, 
                &data.age, 
                data.tel, 12, 
                data.sex,3);
            insertByHead(list, data);
            printf("录入成功!...\n");
            saveFile(list, "JYY.txt");
            break;
        case'2':printlist(list);
            break;
        case'3':
            printf("请输入要删除的学生姓名:");
            scanf_s("%s", data.name, 20);
            deletByName(list, data.name);
            break;
        case'4':
            printf("请输入要查找的学生的编号:");
            scanf_s("%d", &data.num);
            result = searchByNum(list, data.num);
            if (result != NULL)
            {
                printf("姓名\t编号\t年龄\t电话号码\t性别\n");
                printf("%s\t%d\t%d\t%s\t%s\n",
                    result->data.name,
                    result->data.num,
                    result->data.age,
                    result->data.tel,
                    result->data.sex);
            }
            else {
                printf("未找到相关信息!\n");
            }
            break;
        case'5':
            printf("请输入要修改的学生的编号:");
            scanf_s("%d", data.num);
            result = searchByNum(list, data.num);
            if (result != NULL)
            {
                printf("请输入学生新的信息(name,num,age,tel,sex):");
                scanf_s("%s%d%d%s%s",
                    result->data.name,20
                    &result->data.num,
                    &result->data.age,
                    result->data.tel,12,
                    result->data.sex,3);
                printf("修改成功!\n");
                saveFile(list, "JYY管理系统.txt");
            }
            else
            {
                printf("未找到相关信息!\n");
            }
            break;
        default:
            printf("输入错误,请重新输入");
            break;
        }
    }
    int main()
    {
        list = createHead();
        readFile(list, "JYY管理系统.txt");
        while(1)
        {
            makeMenu();
            keyDown();
            system("pause");
            system("cls");
        }
        return 0;
    }

  • TA的每日心情
    慵懒
    4 天前
  • 签到天数: 193 天

    [LV.7]常住居民III

    710

    主题

    5882

    回帖

    6705

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6705

    荣誉开发者管理员油中2周年生态建设者喜迎中秋

    发表于 2022-6-23 22:20:44 | 显示全部楼层
    可以加上代码块显示哦
    这样默认把头文件给md语法化了
    哥哥加油!
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-13 10:14
  • 签到天数: 211 天

    [LV.7]常住居民III

    305

    主题

    4162

    回帖

    4034

    积分

    管理员

    积分
    4034

    管理员荣誉开发者油中2周年生态建设者喜迎中秋油中3周年挑战者 lv2

    发表于 2022-6-24 09:31:42 | 显示全部楼层
    李恒道 发表于 2022-6-23 22:20
    可以加上代码块显示哦
    这样默认把头文件给md语法化了
    哥哥加油!

    我编辑处理了一下
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。
    回复

    使用道具 举报

  • TA的每日心情

    2024-5-19 19:56
  • 签到天数: 361 天

    [LV.8]以坛为家I

    11

    主题

    59

    回帖

    214

    积分

    高级工程师

    积分
    214

    油中2周年油中3周年

    发表于 2022-6-24 09:41:25 | 显示全部楼层
    李恒道 发表于 2022-6-23 22:20
    可以加上代码块显示哦
    这样默认把头文件给md语法化了
    哥哥加油!

    !!!!!还得是你!!李师傅 我特别佩服你 一直在跟着你的脚步走 用你的插件 哈哈哈哈哈哈
    回复

    使用道具 举报

  • TA的每日心情

    2024-5-19 19:56
  • 签到天数: 361 天

    [LV.8]以坛为家I

    11

    主题

    59

    回帖

    214

    积分

    高级工程师

    积分
    214

    油中2周年油中3周年

    发表于 2022-6-24 09:41:58 | 显示全部楼层
    王一之 发表于 2022-6-24 09:31
    我编辑处理了一下

    大佬大佬
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-13 10:14
  • 签到天数: 211 天

    [LV.7]常住居民III

    305

    主题

    4162

    回帖

    4034

    积分

    管理员

    积分
    4034

    管理员荣誉开发者油中2周年生态建设者喜迎中秋油中3周年挑战者 lv2

    发表于 2022-6-24 09:44:31 | 显示全部楼层
    不过是不是发错地方了?这里是悬赏板块,解决问题的
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。
    回复

    使用道具 举报

  • TA的每日心情

    2024-5-19 19:56
  • 签到天数: 361 天

    [LV.8]以坛为家I

    11

    主题

    59

    回帖

    214

    积分

    高级工程师

    积分
    214

    油中2周年油中3周年

    发表于 2022-6-24 09:48:10 | 显示全部楼层
    王一之 发表于 2022-6-24 09:44
    不过是不是发错地方了?这里是悬赏板块,解决问题的

    啊?我这个就是问题啊em这不就来找解决问题的方法吗
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-13 10:14
  • 签到天数: 211 天

    [LV.7]常住居民III

    305

    主题

    4162

    回帖

    4034

    积分

    管理员

    积分
    4034

    管理员荣誉开发者油中2周年生态建设者喜迎中秋油中3周年挑战者 lv2

    发表于 2022-6-24 12:09:09 | 显示全部楼层
    雄壮的奥特曼 发表于 2022-6-24 09:48
    啊?我这个就是问题啊em这不就来找解决问题的方法吗

    问题描述呢?

    要解决什么问题?
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表