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

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

[复制链接]
  • TA的每日心情
    慵懒
    昨天 22:11
  • 签到天数: 22 天

    [LV.4]偶尔看看III

    2

    主题

    19

    帖子

    24

    积分

    助理工程师

    Rank: 1

    积分
    24
    发表于 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的每日心情

    2022-6-4 20:51
  • 签到天数: 32 天

    [LV.5]常住居民I

    328

    主题

    2880

    帖子

    2890

    积分

    荣誉开发者

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

    Rank: 10Rank: 10Rank: 10

    积分
    2890

    猫咪币纪念章

    发表于 2022-6-23 22:20:44 | 显示全部楼层
    可以加上代码块显示哦
    这样默认把头文件给md语法化了
    哥哥加油!
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    5 天前
  • 签到天数: 49 天

    [LV.5]常住居民I

    138

    主题

    1814

    帖子

    1988

    积分

    管理员

    Rank: 10Rank: 10Rank: 10

    积分
    1988

    猫咪币纪念章热心会员活跃会员突出贡献三好学生中秋纪念章国庆纪念章

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

    我编辑处理了一下
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。/ 微信公众号:一之哥哥
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 22:11
  • 签到天数: 22 天

    [LV.4]偶尔看看III

    2

    主题

    19

    帖子

    24

    积分

    助理工程师

    Rank: 1

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

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

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 22:11
  • 签到天数: 22 天

    [LV.4]偶尔看看III

    2

    主题

    19

    帖子

    24

    积分

    助理工程师

    Rank: 1

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

    大佬大佬
    回复

    使用道具 举报

  • TA的每日心情
    开心
    5 天前
  • 签到天数: 49 天

    [LV.5]常住居民I

    138

    主题

    1814

    帖子

    1988

    积分

    管理员

    Rank: 10Rank: 10Rank: 10

    积分
    1988

    猫咪币纪念章热心会员活跃会员突出贡献三好学生中秋纪念章国庆纪念章

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

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 22:11
  • 签到天数: 22 天

    [LV.4]偶尔看看III

    2

    主题

    19

    帖子

    24

    积分

    助理工程师

    Rank: 1

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

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

    使用道具 举报

  • TA的每日心情
    开心
    5 天前
  • 签到天数: 49 天

    [LV.5]常住居民I

    138

    主题

    1814

    帖子

    1988

    积分

    管理员

    Rank: 10Rank: 10Rank: 10

    积分
    1988

    猫咪币纪念章热心会员活跃会员突出贡献三好学生中秋纪念章国庆纪念章

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

    问题描述呢?

    要解决什么问题?
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。/ 微信公众号:一之哥哥
    回复

    使用道具 举报

    发表回复

    本版积分规则

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