C语言源代码系列-管理系统之学生籍贯信息

news2025/4/9 9:03:36
往期文章分享
  • 点击跳转=>《导航贴》- Unity手册,系统实战学习
  • 点击跳转=>《导航贴》- Android手册,重温移动开发

👉关于作者

众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣 !!!
专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
有什么需要欢迎私我,交流群让学习不再孤单

在这里插入图片描述

👉实践过程

😜问题

1.创建信息链表并以磁盘文件保存;
2.读取磁盘文件并显示输出所有学生的籍贯信息;
3.按学号或姓名查询其籍贯;
4.按籍贯查询并输出该籍贯的所有学生;
5.能添加、删除和修改学生的籍贯信息

😜回答

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#include "dos.h"
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
#include "math.h"
#include "string.h"
/**********************建立链表******************************/
struct hj
{
    long number;
    char name[10], address[50];

    struct hj *next;
};

/********************文件操作函数******************************/
FILE* fp;
void openfile(char xx
[20])
{
    fp = fopen(xx, "ab+");
    if (fp == NULL)
        fp = fopen(xx, "wb");
}

/**************录入信息函数***********************************/
void hjnew(void)
{
    system("cls");
    int n = 0;
    long xnumber;
    char xname[10];
    char xaddress[50];
    struct hj* head;
    struct hj* x1, *x2;
    head = NULL;
    x2 = NULL;
    printf("\n                ★★★★★欢迎使用户籍管理系统★★★★★\n");
    printf("\n                          ★★★录入信息★★★\n");
    printf("\n                        〓提示输入0返回上级菜单〓\n\n\n");
    printf("\n                         请输入学号【15字内】:");
    scanf("%ld", &xnumber);
    if (xnumber == 0)
        goto haha;
    printf("\n                         请输入姓名【10字内】:");
    scanf("%s", xname);
    printf("\n                         请输入籍贯【25字内】:");
    scanf("%s", xaddress);
    while (xnumber != 0)
    {
        n++;
        x1 = (struct hj *)malloc(sizeof(struct hj));
        x1->number = xnumber;
        strcpy(x1->name, xname);
        strcpy(x1->address, xaddress);
        if (n == 1)
            head = x1;
        else
            x2->next = x1;
        x2 = x1;
        printf("\n                         请输入学号【15字内】:");
        scanf("%ld", &xnumber);
        if (xnumber == 0)
            break;
        printf("\n                         请输入姓名【10字内】:");
        scanf("%s", xname);
        printf("\n                         请输入籍贯【25字内】:");
        scanf("%s", xaddress);
    }

    x2->next = NULL;
    x1 = head;
    while (x1 != NULL)
    {
        openfile("hj.txt");
        char d[5] = "山西";
        fwrite(x1, sizeof(struct hj),1,fp);
        fclose(fp);

        if (strstr(x1->address, d) != NULL)
        {
            openfile("schj.txt");
            fwrite(x1, sizeof(struct hj),1,fp);
            fclose(fp);
        }
        else
        {
            openfile("qthj.txt");
            fwrite(x1, sizeof(struct hj),1,fp);
            fclose(fp);
        }

        x1 = x1->next;
    }

    haha: ;
}

/*****************************查询函数*************************/
void hjxmselect(void) //按学号方式查询函数
{
    ssmmx:
    int n = 0;
    long hh;
    system("cls");
    printf("\n                ★★★★★欢迎使用户籍管理系统★★★★★\n");
    printf("\n                        ★★★查询编辑信息★★★\n");
    printf("\n                        〓提示输入0返回上级菜单〓\n\n\n");
    printf("                         请您输入学号:");
    scanf("%ld", &hh);
    if (hh != 0)
    {
        struct hj* p;
        struct hj* q = NULL, *head = NULL;
        fp = fopen("hj.txt", "rb");
        if (fp == NULL)
        {
            printf("\n没有记录,请输入记录然后再查询!");
            getch();
            goto jjx;
        }

        while (!feof(fp))
        {
            n++;
            p = (struct hj *)malloc(sizeof(struct hj));
            fread(p, sizeof(struct hj),1,fp);
            if (n == 1)
                head = p;
            else
                q->next = p;
            q = p;
        }

        q->next = NULL;
        p = head;
        while (p != NULL)
        {
            if (p->number == hh)
            {
                int a;
                printf("\n  结 果 →     学号=%ld   姓名=%s", p->number, p->name);
                printf("\n               地址=%s", p->address);
                printf("\n\n  操 作 →    ⑴更改数据  ⑵删除数据  ⑶查询其他数据  ⑷返回上页  ⑸退出程序\n\n  请您选择操作:");
                ssmx:
                scanf("%d", &a);
                switch (a)
                {
                        void hjedit(struct hj* headd, struct hj* pp);
                        void hjdelete(struct hj* headdd, struct hj* ss);
                    case 1:
                        hjedit(head, p);
                        goto ssmmx;
                        break;
                    case 2:
                        hjdelete(head, p);
                        goto ssmmx;
                        break;
                    case 3: goto ssmmx;
                    case 4: goto jjx;
                    case 5: exit(0);
                    default:
                        printf("\n                        错误的选择,请重新选择:");
                        goto ssmx;
                }
            }
            else
                p = p->next;
        }

        int iiii = 0;
        printf("\n                         没有此记录 1.重新查询 2.返回上一页 3.退出程序!");
        printf("\n                         请选择:");
        qqqq:
        scanf("%d", &iiii);
        switch (iiii)
        {
            case 1: goto ssmmx;
            case 2: goto jjx;
            case 3: exit(0);
            default:
                printf("\n                        错误的选择,请重新选择:");
                goto qqqq;
        }

        goto jjx;
    }

    jjx: ;
}

void hjxhselect(void) //按姓名方式查询函数
{
    ssmm:
    int n = 0;
    char hh[10];
    system("cls");
    printf("\n                ★★★★★欢迎使用户籍管理系统★★★★★\n");
    printf("\n                        ★★★查询编辑信息★★★\n");
    printf("\n                        〓提示输入0返回上级菜单〓\n\n\n");
    printf("                         请您输入姓名:");
    scanf("%s", hh);
    if (strcmp(hh, "0") != 0)
    {
        struct hj* p;
        struct hj* q = NULL, *head = NULL;
        fp = fopen("hj.txt", "rb");
        if (fp == NULL)
        {
            printf("\n没有记录,请输入记录然后再查询!");
            getch();
            goto jjj;
        }

        while (!feof(fp))
        {
            n++;
            p = (struct hj *)malloc(sizeof(struct hj));
            fread(p, sizeof(struct hj),1,fp);
            if (n == 1)
                head = p;
            else
                q->next = p;
            q = p;
        }

        q->next = NULL;
        p = head;
        while (p != NULL)
        {
            if (strcmp(p->name, hh) == 0)
            {
                int a;
                printf("\n  结 果 →     学号=%ld   姓名=%s  ", p->number, p->name);
                printf("\n               地址=%s", p->address);
                printf("\n\n  操 作 →    ⑴更改数据  ⑵删除数据  ⑶查询其他数据  ⑷返回上页  ⑸退出程序\n\n  请您选择操作:");
                ssm:
                scanf("%d", &a);
                switch (a)
                {
                        void hjedit(struct hj* headd, struct hj* pp);
                        void hjdelete(struct hj* headdd, struct hj* ss);
                    case 1:
                        hjedit(head, p);
                        goto ssmm;
                        break;
                    case 2:
                        hjdelete(head, p);
                        goto ssmm;
                        break;
                    case 3: goto ssmm;
                    case 4: goto jjj;
                    case 5: exit(0);
                    default:
                        printf("\n                        错误的选择,请重新选择:");
                        goto ssm;
                }
            }
            else
                p = p->next;
        }

        int iii = 0;
        printf("\n                         没有此记录 1.重新查询 2.返回上一页 3.退出程序!");
        printf("\n                         请选择:");
        qqq:
        scanf("%d", &iii);
        switch (iii)
        {
            case 1: goto ssmm;
            case 2: goto jjj;
            case 3: exit(0);
            default:
                printf("\n                        错误的选择,请重新选择:");
                goto qqq;
        }

        goto jjj;
    }

    jjj: ;
}

void hjjgselect(void) //按籍贯方式查询
{
    yyy:
    int i;
    system("cls");
    printf("\n                ★★★★★欢迎使用户籍管理系统★★★★★\n");
    printf("\n                      ★★★籍贯方式查询信息★★★\n\n\n");
    printf("\n                         一  显示所有信息\n");
    printf("\n                         二  显示山西籍所有信息\n");
    printf("\n                         三  显示其它籍所有信息\n");
    printf("\n                         四  自定义查询信息\n");
    printf("\n                         五  ←返回上级菜单\n");
    printf("\n                         六  ↓退出程序\n");
    printf("\n\n                          请选择:");
    scanf("%d", &i);
    switch (i)
    {
            void zdyselect(void);
            void allselect(char a
            [
            8]);
        case 1:
            allselect("hj.txt");
            goto yyy;
            break;
        case 2:
            allselect("schj.txt");
            goto yyy;
            break;
        case 3:
            allselect("qthj.txt");
            goto yyy;
            break;
        case 4: zdyselect();
        case 5: break;
        case 6: exit(0);
    }
}

void zdyselect(void)
{
    ssmmz:
    int n = 0, j = 0;
    char hh[10];
    system("cls");
    printf("\n                ★★★★★欢迎使用户籍管理系统★★★★★\n");
    printf("\n                        ★★★自定义查询信息★★★\n\n\n");
    printf("                         请您输入地址关键字:");
    scanf("%s", hh);
    if (strcmp(hh, "0") != 0)
    {
        struct hj* p;
        struct hj* q = NULL, *head = NULL;
        fp = fopen("hj.txt", "rb");

        if (fp == NULL)
        {
            printf("\n       没有记录,请输入记录然后再查询!");
            getch();
            goto jjz;
        }

        while (!feof(fp))
        {
            n++;
            p = (struct hj *)malloc(sizeof(struct hj));
            fread(p, sizeof(struct hj),1,fp);
            if (n == 1)
                head = p;
            else
                q->next = p;
            q = p;
        }

        q->next = NULL;
        p = head;

        while (p != NULL)
        {
            if (strstr(p->address, hh) != NULL)
            {
                int a;
                j++;
                printf("\n  结 果 →     学号=%ld   姓名=%s  ", p->number, p->name);
                printf("\n               地址=%s", p->address);
                printf("\n\n  操 作 →    ⑴更改数据  ⑵删除数据  ⑶查询下一条数据  ⑷返回上页  ⑸退出程序\n\n  请您选择操作:");
                ssmz:
                scanf("%d", &a);
                switch (a)
                {
                        void hjedit(struct hj* headd, struct hj* pp);
                        void hjdelete(struct hj* headdd, struct hj* ss);
                    case 1:
                        hjedit(head, p);
                        goto ssmmz;
                        break;
                    case 2:
                        hjdelete(head, p);
                        goto ssmmz;
                        break;
                    case 3:
                        p = p->next;
                        continue;
                    case 4: goto jjz;
                    case 5: exit(0);
                    default:
                        printf("\n                        错误的选择,请重新选择:");
                        goto ssmz;
                }

                p = p->next;
            }
            else
                p = p->next;
        }

        if (j == 0)
        {
            printf("\n\n\n没有匹配的记录 按任意键继续!");
            getch();
            fclose(fp);
            goto ssmmz;
        }
        else
        {
            int xx;
            printf("\n\n查询完毕!    ⑴  继续查询  ⑵  返回上一级菜单  ⑶   退出程序");
            printf("\n请选择:");
            scanf("%d", &xx);
            if (xx == 2)
                goto jjz;
            else if (xx == 3)
                exit(0);
        }

        goto ssmmz;
        jjz: ;
    }
}

void allselect(char a
[8]) //全部查询
{
    int n = 0;

    int k = 0;
    system("cls");
    printf("\n                ★★★★★欢迎使用户籍管理系统★★★★★\n");
    printf("\n                        ★★★籍贯方式信息★★★\n\n\n");

    struct hj* p;

    struct hj* q = NULL, *head = NULL;
    fp = fopen(a, "rb");
    if (fp == NULL)
    {
        printf("\n对不起,没有记录无法查询!");
        goto xxxx;
    }

    rewind(fp);
    while (!feof(fp))
    {
        n++;
        p = (struct hj *)malloc(sizeof(struct hj));
        fread(p, sizeof(struct hj),1,fp);
        if (n == 1)
            head = p;
        else
            q->next = p;
        q = p;
    }

    q->next = NULL;
    struct hj* h1, *p2,*q3,*r4,*s5;
    h1 = p2 = (hj*) malloc(sizeof(struct hj));
    p2->next = head;

    while (p2->next != NULL)
    {
        q3 = p2->next;
        r4 = p2;
        while (q3->next != NULL)
        {
            if (q3->next->number < p2->next->number)
                r4 = q3;
            q3 = q3->next;
        }

        if (r4 != p2)
        {
            s5 = r4->next;
            r4->next = s5->next;
            s5->next = p2->next;
            p2->next = s5;
        }

        p2 = p2->next;
    }

    head = h1->next->next;
    free(h1);
    p = head;
    while (p != NULL && n > 0)
    {
        n--;
        printf("\n学号=%ld  姓名=%s", p->number, p->name);
        printf("\n地址=%s", p->address);
        p = p->next;
    }

    xxxx:
    printf("\n→显示完毕←\n⑴ ↑返回上级菜单   ⑵ ↓退出程序 \n请 选 择 :");
    xxx:
    scanf("%d", &n);
    switch (n)
    {
        case 1: break;
        case 2: exit(0);
        default:
            printf("\n错误的选择,请重新选择:");
            goto xxx;
    }
}

void hjselect(void) //查询编辑信息函数
{
    cxbegin:
    int a;
    system("cls");
    printf("\n                ★★★★★欢迎使用户籍管理系统★★★★★\n");
    printf("\n                        ★★★查询编辑信息★★★\n\n\n");
    printf("\n                         一    按学号方式查询\n");
    printf("\n                         二    按姓名方式查询\n");
    printf("\n                         三    按籍贯方式查询\n");
    printf("\n                         四    →显示全部信息\n");
    printf("\n                         五    ←返回上级菜单\n");
    printf("\n                         请 选 择 查 询 方 式:");
    cxmm:
    scanf("%d", &a);
    switch (a)
    {
        case 1:
            hjxmselect();
            goto cxbegin;
            break;
        case 2:
            hjxhselect();
            goto cxbegin;
            break;
        case 3:
            hjjgselect();
            goto cxbegin;
            break;
        case 4:
            allselect("hj.txt");
            goto cxbegin;
            break;
        case 5: break;
        default:
            printf("\n错误的选择,请重新选择:");
            goto cxmm;
    }
}

void hjde(void) //删除界面函数
{
    cxxbegin:
    int a;
    system("cls");
    printf("\n                ★★★★★欢迎使用户籍管理系统★★★★★\n");
    printf("\n                          ★★★删除信息★★★\n\n\n");
    printf("\n                         一    按学号方式删除\n");
    printf("\n                         二    按姓名方式删除\n");
    printf("\n                         三    按籍贯方式删除\n");
    printf("\n                         四    →删除全部信息\n");
    printf("\n                         五    ←返回上级菜单\n");
    printf("\n                         请 选 择 删 除 方 式:");
    cxxmm:
    scanf("%d", &a);
    int i = 0;
    switch (a)
    {
        case 1:
            hjxmselect();
            goto cxxbegin;
            break;
        case 2:
            hjxhselect();
            goto cxxbegin;
            break;
        case 3:
            zdyselect();
            goto cxxbegin;
            break;
        case 4:
            fp = fopen("hj.txt", "wb");
            if (fp != NULL)
                i++;
            fp = fopen("schj.txt", "wb");
            if (fp != NULL)
                i++;
            fp = fopen("qthj.txt", "wb");
            if (fp != NULL)
                i++;
            if (i == 3)
            {
                printf("\n                         全部数据已经删除!!!!!!敲任意键继续");
                getch();
            }

            goto cxxbegin;
            break;
        case 5: break;
        default:
            printf("\n错误的选择,请重新选择:");
            goto cxxmm;
    }
}

//==============删除函数接口===============
void hjdelete(

struct hj

*headdd,

struct hj

*ss)
{
struct hj *q;

char d[5]= "山西";
    if(headdd==ss)
{
    headdd = headdd->next;
    goto gogo;
}
q=headdd;
while(q!=NULL)
{
    if (q->next->number == ss->number)
    {
        break;
    }

    q = q->next;
}
q->next=ss->next;
gogo:
q=headdd;
fp=fopen("hj.txt", "wb");
    while(q!=NULL)
{
    fwrite(q, sizeof(struct hj),1,fp);
    q = q->next;
}
fclose(fp);
q=headdd;
fp=fopen("schj.txt", "wb");
    while(q!=NULL)
{
    if (strstr(q->address, d) != NULL)
    {
        fwrite(q, sizeof(struct hj),1,fp);
    }

    q = q->next;
}
fclose(fp);
q=headdd;
fp=fopen("qthj.txt", "wb");
    while(q!=NULL)
{
    if (strstr(q->address, d) == NULL)
    {
        fwrite(q, sizeof(struct hj),1,fp);
    }

    q = q->next;
}
fclose(fp);
}
//===============编辑函数接口==============
void hjedit(

struct hj

*headd,

struct hj

*pp)
{
    int n = 0;
    struct hj* p, *p1,*p2;
    char d[5] = "江苏";
    printf("\n  输 入 →    学号=");
    scanf("%ld", &pp->number);
    printf("\n              姓名=");
    scanf("%s", pp->name);
    printf("\n              地址=");
    scanf("%s", pp->address);
    p = headd;
    fp = fopen("hj.txt", "wb");
    while (p != NULL)
    {
        fwrite(p, sizeof(struct hj),1,fp);
        p = p->next;
    }

    fclose(fp);
    p1 = headd;
    fp = fopen("schj.txt", "wb");
    while (p1 != NULL)
    {
        if (strstr(p1->address, d) != NULL)
        {
            fwrite(p1, sizeof(struct hj),1,fp);
        }

        p1 = p1->next;
    }

    fclose(fp);
    p2 = headd;
    fp = fopen("qthj.txt", "wb");
    while (p2 != NULL)
    {
        if (strstr(p2->address, d) == NULL)
        {
            fwrite(p2, sizeof(struct hj),1,fp);
        }

        p2 = p2->next;
    }

    fclose(fp);
}

/**************************主函数***********************/
int main(int argc, char* argv[])
{
    begin:
    int t;
    system("cls");
    printf("\n                ★★★★★欢迎使用户籍管理系统★★★★★\n\n\n\n\n");
    printf("                        一 录入学生籍贯信息\n\n");
    printf("                        二 查编学生籍贯信息\n\n");
    printf("                        三 删除学生籍贯信息\n\n");
    printf("                        四 退出程序\n\n");
    printf("                        请您选择:");
    mm:
    scanf("%d", &t);
    switch (t)
    {
        case 1:
            hjnew();
            break;
        case 2:
            hjselect();
            break;
        case 3:
            hjde();
            break;
        case 4: exit(0);
        default:
            printf("\n                        错误的选择,请重新选择:");
            goto mm;
    }

    goto begin;
    return 0;
}

👉其他

📢作者:小空和小芝中的小空
📢转载说明-务必注明来源:https://zhima.blog.csdn.net/
📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。

温馨提示点击下方卡片获取更多意想不到的资源。
空名先生

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/19581.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python 3.11新功能:错误信息回溯

错误信息回溯 长按关注《Python学研大本营》&#xff0c;加入读者群&#xff0c;分享更多精彩 扫码关注《Python学研大本营》&#xff0c;加入读者群&#xff0c;分享更多精彩 Python 3.11于2022 年 10 月 24 日发布。这个最新版本的 Python 速度更快&#xff0c;对用户更友好…

QT源码拾贝0-5(qimage和qpainter)

目录 0 qt源码查看方法 1. qimage.cpp中线程池使用方法 2. qpainter_p.h中SmallStack模板元结构体存放智能指针 3. qpainter.cpp的保存函数&#xff0c;状态对象赋值使用std::exchange函数 4. qpainter.cpp中获得类对象的方法 5. qpainter.cpp中QChar字节操作&…

代码随想录算法训练营三期 day 22 - 二叉树(8)

235. 二叉搜索树的最近公共祖先 原文链接&#xff1a;235. 二叉搜索树的最近公共祖先 题目链接&#xff1a;235. 二叉搜索树的最近公共祖先 在 有序树 里: 从上向下递归遍历&#xff0c;第一次遇到 curcurcur 结点的数值在 p,qp, qp,q 结点对应数值的闭区间中&#xff0c;那么…

内网渗透神器CobaltStrike之Beacon详解(三)

Beacon的种类 HTTP Beacon和HTTPS Beacon 这两个beacon的原理是通过发送http请求与受害主机通信来传达命令, 以此实现控制效果 优点是传输数据快, 缺点时隐蔽性差, 容易被防火墙或内网审计工具拦截 TCP Beacon 自CS4.0版本之后只有反向的TCP Beacon可用, 基于TCP协议的通信…

取证初级案例操作大纲

文章目录**取证初级案例操作大纲**1) 证据文件中有没有存在被删除的Doc文档&#xff1f;如果有的话&#xff0c;请导出并记录文件名及路径&#xff1a;2) 证据文件中有没有存在被删除的图片&#xff1f;如果有的话&#xff0c;请记录文件名及路径&#xff1a;3) 证据文件中哪几…

object类的一些方法

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 Object类 输出对象地址 object类里的tostring方法&#xff1a; 正确输出对象里内容 判断俩个对象大小&#xff1a; object类里的equlas方法&#xff1a; 自己实现一…

SpringCloud - 微服务理论基础

文章目录1.微服务架构1.1 什么是微服务1.2 Spring Cloud 简介1.3 Spring Cloud 技术栈2.Boot 和 Cloud 版本选型3.Cloud 服务升级1.微服务架构 1.1 什么是微服务 微服务架构是一种架构模式&#xff0c;它提倡单一应用程序划分成一组小的服务&#xff0c;服务直接相互协调、相互…

Python PyInstaller 打包成 Win、Mac 应用程序(app / exe)

一、简介 python 提供了几个用来打包的模块&#xff0c;主要有 py2app、py2exe、pyinstaller。附&#xff1a;pyinstaller、py2app、py2exe、fbs 对比与爬坑。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-whT6cPog-1668880648443)(https://p1-jue…

(续)SSM整合之springmvc笔记(RESTful之HiddenHttpMethodFilter源码解析)(P147)了解

RESTful之HiddenHttpMethodFilter源码解析 由于浏览器只支持发送get和post方式的请求&#xff0c;那么该如何发送put和delete请求呢&#xff1f; SpringMVC 提供了 HiddenHttpMethodFilter 帮助我们将POST 请求转换为DELETE 或PUT 请求 HiddenHttpMethodFilter 处理put和delete…

java计算机毕业设计ssm陕理工图书馆管理系统

项目介绍 随着互联网技术的发发展,计算机技术广泛应用在人们的生活中,逐渐成为日常工作、生活不可或缺的工具,高校各种管理系统层出不穷。高校作为学习知识和技术的高等学府,信息技术更加的成熟,为高校图书馆借阅开发必要的系统,能够有效的提升管理效率。一直以来,高校图书馆一…

Docker搭建Redis集群

Docker搭建Redis集群 注意&#xff1a;Redis搭建集群最少需要6个Redis节点&#xff0c;其中3个作为主节点&#xff0c;3个作为从节点&#xff1b; 为了方便&#xff0c;这里用Docker在一台机器上启动6个容器来作为集群&#xff0c;生产上建议用多台服务器搭建&#xff1b; 创建…

4.1.3 名称的特殊处理

名称的特殊处理 类成员变量的名称处理&#xff1a; 对于类的数据成员&#xff0c;其的名称经过编译器的处理会在程序员定义名称的后面再加上class的名称&#xff0c;进而形成独一无二的命名&#xff0c;例如下面的的成员变量x再经过类处理后有可能为x_7Point3d。 class Point…

Linux之手把手教你捋清楚make和makefile

文章目录背景简单介绍make和makefile依赖关系和依赖方法项目清理以及伪目标背景 以往的C语言编程&#xff0c;我们一般都在一些像VS2019这样的集成开发环境(IDE)下编写&#xff0c;一个工程中的源文件不计其数&#xff0c;其按类型、功能、模块分别放在若干个目录中&#xff0…

Spring框架的概述及基本应用

Spring的基本应用 文章目录Spring的基本应用1. Spring 概述1.1 什么是Spring1.2 Spring 框架的优点1.3 Spring的体系结构2. Spring的核心容器2.1 BeanFactory2.2 ApplicationContext3. Spring的入门程序3.1 在pom下利用maven导入Spring所需要的jar包3.2 简单搭建起demo结构3.3 …

Java中数组的定义与使用(Java系列3)

目录 前言&#xff1a; 1.什么是数组 2.数组的创建 3.数组的初始化 4.数组的使用 5.数组是引用类型 6.基本类型变量与引用类型变量的区别 7.数组的应用 8.二维数组 结束语&#xff1a; 前言&#xff1a; 前面小编与大家分享了C语言与Java中的区别&#xff0c;还有一…

leaflet教程041: Point 和 LatLng 坐标互相转换

第041个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中使用Point和LatLng,这里做了两者之间的转换。 注意 两者转换后的值,返回相对于原点像素的相应像素坐标或经纬度坐标。zoom改变,原点(地图图层左上角的投影像素坐标)的值会改变,所以获得的值也会变化。…

51单片机学习笔记1 简介及开发环境

51单片机学习笔记1 简介及开发环境一、51单片机1. STC89C52单片机简介2. 命名规则3. 封装&#xff08;1&#xff09;PDIP&#xff08;2&#xff09;LQFP&#xff08;3&#xff09;PLCC&#xff08;4&#xff09;PQFP二、STC8051结构1. STC 8051 内部结构图2. 内部结构框图3. 单…

Android设置TabLayout熟悉及下划线宽度

Tablayout的使用 属性 app&#xff1a;tabMod 设置Tab模式 app&#xff1a;tabTextColor 设置文本颜色 app&#xff1a;tabSelectedTextColor 设置选中文本颜色 app:tabIndicatorColor 设置下滑条颜色 app:tabMaxWidth“xxdp” 设置最大的tab宽度 app:tabMinWidth“xxdp” 设置…

牛客网之SQL100题(7)-字符串截取、切割、删除、替换

知识点&#xff1a; &#xff08;1&#xff09;substring_indexsubstring_index(str,delim,count) str:要处理的字符串 delim:分隔符 count:计数 &#xff08;2&#xff09;切割、截取、删除、替换 1 2 3 4 5 6 7 8 9 10 11 12 13 14 select -- 替换法 replace(string, 被…

类型转换C11

类型转换 C类型转换分为显式类型转换和隐式类型转换 &#xff0c;隐式类型转换由编译器自动完成&#xff0c;这里只讨论显式类型转换。 旧式风格的类型转换 type(expr); // 函数形式的强制类型转换 (type)expr; // C语言风格的强制类型转换现代C风格的类型转换 cast-name&l…