实验室设备管理系统C语言——课程设计实习「建议收藏」

实验室设备管理系统C语言——课程设计实习「建议收藏」本题目将建立一个实验室设备管理系统,记录实验室所有的实验设备,并及时反响设备的运转状况,使用情况,设备购进以后及时记录设备相关信息,对彻底损坏的设备进行报废,维修的设备信息及有更改信息的设备进行统计,解决人工管理系统没解决的问题以及实现对用户更方便的功能,对由严重问题故障的要及时修理,并记录修理日期、设备名、编号、修理厂家、修理费用、责任人等新设备购入后要立即进行设备登记,包括类别、设备名、编号、型号、规格、单价、数量、购置日期、生产厂家保质期和经办人等信息。随时对现有设备及其修理、报废情况进行统计。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

绪论

传统的人工实验室设备管及浪费人力物力财力,在日常管理时,数据管理不清晰,在记录设备相关信息时又容易导致各种错误发生。实验室设备管理还处于较原始的手工阶段,采用在设备购进以后将设备的根本情况和相关信息登记存档。
本题目将建立一个实验室设备管理系统,记录实验室所有的实验设备,并及时反响设备的运转状况,使用情况,设备购进以后及时记录设备相关信息,对彻底损坏的设备进行报废,维修的设备信息及有更改信息的设备进行统计,解决人工管理系统没解决的问题以及实现对用户更方便的功能。本系统以灵活、通用为主要设计思想,开发适合于学校实验室设备管理的信息系统。使用本系统之后,将会提高学校师生做实验和课题的效率和设备可靠性,减少工作人员的劳动强度,减少耗材,提高学校实验室的现代化管理水平

设计要求

  • 对于已彻底损坏的设备做报废处理,同时详细记录有关信息
  • 对由严重问题故障的要及时修理,并记录修理日期、设备名、编号、修理厂家、修理费用、责任人等
  • 新设备购入后要立即进行设备登记,包括类别、设备名、编号、型号、规格、单价、数量、购置日期、生产厂家保质期和经办人等信息。
  • 随时对现有设备及其修理、报废情况进行统计、查询
  • 系统要求包括设备记录、修理记录、报废记录、申请购买记录

设计框图

系统结构图

设计内容

  • 设计主界面
    主界面中分为9个选项,设备信息录入,设备信息更改,删除,查找,维修记录管理,显示所有设备,使用手册,关于系统,退出,用户可进行功能选择
  • 设备信息录入
    包括设备编号,设备名,型号,生产厂家,购买日期,保质期,负责人
  • 设备信息更改
    用户先输入需要更改的设备编号,若存在该设备编号,可进行相关操作,更改的设备信息会自动保存到系统中;若该设备编号不存在,提示操作失败,用户不能更改信息
  • 设备信息删除
    输入要删除的设备编号,如果系统中有该设备编号,即删除成功
  • 设备查找
    主界面选择相关功能,查看已有的设备信息
  • 维修管理
    维修记录管理界面分为两个部分,分别为记录和查询;
    选择操作,可以录入或查询修理的设备信息
  • 报废设备信息管理
    选择对应的操作,可记录或查找报废设备相关信息
  • 显示所有设备
    选择对应的操作号,可查看所有设备对应的编号,名称,类型,生产厂家,购买日期,价格等

模块设计

  • void fprintE(Equipment *head); //将设备信息输出到文件
  • void addEquipment(Equipment *head); //添加设备
  • void deleteEquipment(Equipment *head,int num);//删除设备
  • void changeEquipment(Equipment *head,int num);//更新设备
  • void findEquipment(); //设备查找
  • Equipment* fscanE(); //从文件读取设备信息
  • void repairEquipment(); // 维修管理
  • void baofeiEquipment(); //报废设备信息管理
  • void printList(Equipment *head); //输出设备信息列表

C语言源程序——建议使用Devc ++ 运行

#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
 
typedef struct equipment{ 
   
    int num;   //编号, 
    char model[20];     //型号
    char factory[20];   //厂家
    char buy_date[20];  //购买日期
    char  baozhqi[20];//保质期 
    char repair_time[20];//维修时间
    double cost; // 费用 
    char name[20];  
    char zrr[20];//责任人 
    char amount[20];//数量
	char price[20];//价格
    char baofei_time[20];//报废时间 
    struct equipment *next; 
}Equipment;
 
void fprintE(Equipment *head);  //将设备信息输出到文件
void addEquipment(Equipment *head);     //添加设备
void deleteEquipment(Equipment *head,int num);  //删除设备
void changeEquipment(Equipment *head,int num);  //更新设备
void findEquipment();   //设备查找
Equipment* fscanE();  //从文件读取设备信息
void repairEquipment();     // 维修管理
void baofeiEquipment();//报废设备信息管理 
void printList(Equipment *head);   //输出设备信息列表
int checkNum(Equipment *head, int num);
 
//将设备信息输出到文件
void addEquipment(Equipment *head){ 
   
    Equipment *tail = head;
    while(tail->next!=NULL) tail = tail->next;
    Equipment *newnode = (Equipment*)malloc(sizeof(Equipment));
    printf("请输入设备编号:");
    scanf("%d",&newnode->num);
    if(checkNum(head,newnode->num)){ 
   
        printf("输入编号已有,输入失败!");
        return;
    }
    printf("请输入设备名称:");
    scanf("%s",&newnode->name);
    printf("请输入设备型号:");
    scanf("%s",&newnode->model);
    printf("请输入生产厂家:");
    scanf("%s",&newnode->factory);
    printf("请输入设备购买日期:");
    scanf("%s",&newnode->buy_date);
    printf("请输入保质期:");
    scanf("%s",&newnode->baozhqi);
    printf("请输入责任人:");
    scanf("%s",&newnode->zrr);
	printf("请输入价格:");
    scanf("%s",&newnode->price); 
    tail->next = newnode;
    newnode->next = NULL;
    fprintE(head);
    printf("录入成功!");
}
 
//将链表输入到文件
void fprintE(Equipment *head){ 
   
    FILE *fp=fopen("data.txt","w");
    Equipment *current = head->next;
    while(current){ 
   
        fprintf(fp,"%d\n",current->num);
        fprintf(fp,"%s\n",current->name);
        fprintf(fp,"%s\n",current->model);
        fprintf(fp,"%s\n",current->factory);
        fprintf(fp,"%s\n",current->buy_date);
        fprintf(fp,"%s\n",current->baozhqi );
        fprintf(fp,"%s\n",current->zrr);
        fprintf(fp,"%s\n",current->price);
        printf("%d %s %s %s %s %s %s ",current->num,current->name,current->model,current->factory,current->buy_date,current->baozhqi,current->zrr,current->price);
        current = current->next;
    }
    fclose(fp);
}
 
//删除设备
void deleteEquipment(Equipment *head,int num){ 
   
    if(head->next==NULL){ 
   
        printf("没有设备!请先录入设备!");
        return;
    }
    Equipment *current = head;
    Equipment *current_next = current->next;
    while(current_next){ 
   
        if(current_next->num==num){ 
   
            current->next = current_next->next;
            printf("删除成功!");
            fprintE(head);
            return;
        }
        current = current->next;
        current_next = current_next->next;
    }
    printf("删除失败,没有找到设备编号!");
}
 
//设备更新
void changeEquipment(Equipment *head,int num){ 
   
    if(head->next==NULL){ 
   
        printf("没有设备!请先录入设备!");
        return;
    }
    Equipment *current = head->next;
    while(current && (current->num!=num)){ 
   
        current = current->next;
    }
    if(current!=NULL){ 
   
        printf("请输入更新后的数据:\n");
        printf("请输入设备编号:");
        scanf("%d",&current->num);
        printf("请输入设备名称:");
        scanf("%s",&current->name);
        printf("请输入设备型号");
        scanf("%s",&current->model);
        printf("请输入设备厂家:");
        scanf("%s",&current->factory);
        printf("请输入设备购买日期:");
        scanf("%s",&current->buy_date);
        printf("请输入设备数量:"); 
        scanf("%s",&current->amount); 
        printf("请输入设备单价:");
        scanf("%s",&current->price) ;
        printf("请输入保质期(xx);");
        scanf("%s",&current->baozhqi);
        fprintE(head);
    }else{ 
   
        printf("操作失败,没有找到设备编号!");
    }
}
 
//设备查找
void findEquipment(){ 
   
    Equipment *head = fscanE();
    if(head->next==NULL){ 
   
        printf("没有设备!请先录入设备!");
        return;
    }
    int num;
    printf("请输入查找设备的编号:");
    scanf("%d",&num);
    while(head){ 
   
        if(head->num==num){ 
   
            printf("编号为%d的信息为:\n",num);
            printf("编号:%d\n",head->num);
            printf("名称:%s\n",head->name);
            printf("型号:%s\n",head->model);
            printf("厂家:%s\n",head->factory);
            printf("价格:%s\n",head->price);
            printf("责任人:%s\n",head->zrr);
            printf("保质期:%s\n",head->baozhqi);
            return;
        }
        head = head->next;
    }
    printf("查找失败,没有找到设备编号!");
 
}
 
//从文件读取设备信息
Equipment* fscanE(){ 
   
    Equipment *head1 = (Equipment*)malloc(sizeof(Equipment));
    head1->next = NULL;
    Equipment *current = head1;
    FILE *fp = fopen("data.txt","r");
    while(!feof(fp)){ 
   
        Equipment *newnode = (Equipment*)malloc(sizeof(Equipment));
        fscanf(fp,"%d\n",&newnode->num);
        fscanf(fp,"%s\n",newnode->name);
        fscanf(fp,"%s\n",newnode->model);
        fscanf(fp,"%s\n",newnode->factory);
        fscanf(fp,"%s\n",newnode->buy_date);
        fscanf(fp,"%s\n",newnode->repair_time);
		fscanf(fp,"%s\n",newnode->price); 
        current->next = newnode;
        newnode->next = NULL;
        current = current->next;
    }
    fclose(fp);
    return head1;
}
 
//维修信息管理
void repairEquipment(){ 
   
    int num;
    int oper;
	int name,factory,zrr;
	int cost;
    char time[16];
    printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
    printf(" 欢迎进入实验室设备管理系统! \n\n");
    printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
    printf("请输入维修操作(1~2):\n1.记录\t2.查找\n");
    scanf("%d",&oper);
    getchar();
    switch(oper){ 
   
    	        case 1:{ 
   
            FILE *fp = fopen("myfile.txt","a");
            printf("请输入维修编号:");
            scanf("%d",&num);
            printf("请输入维修时间(xxxx-xx-xx):");
            scanf("%s",&time);
            printf("请输入设备名:") ;
			scanf("%s",&name) ;
			printf("请输入修理厂家:");
			scanf("%s",&factory);
            printf("请输入修理费用:");
            scanf("%s",&cost);
            printf("请输入责任人:"); 
            scanf("%s",&zrr);
			fprintf(fp,"%d\n",num);
            fprintf(fp,"%s\n",time);
            fprintf(fp,"%s\n",name); 
            fprintf(fp,"%s\n",factory);
            fprintf(fp,"%s\n",cost);
            fprintf(fp,"%s\n",zrr);
            fflush(fp);
            fclose(fp);
            printf("记录成功!");
            break;
        }case 2:{ 
   
            int t = 0;
            printf("请输入查找编号:");
            scanf("%d",&num);
            int rnum;
            FILE *fp = fopen("myfile.txt","r");
            while(!feof(fp)){ 
   
                fscanf(fp,"%d\n",&rnum);
                fscanf(fp,"%s\n",&time);
                fscanf(fp,"%s\n",&name);
                fscanf(fp,"%s\n",&factory);
                fscanf(fp,"%s\n",&cost);
                fscanf(fp,"%s\n",&zrr);
                if(rnum==num){ 
   
                    printf("编号:%d\n维修时间:%s\n设备名:%s\n厂家:%s\n费用:%s\n责任人:%s\n",rnum,time,name,factory,cost,zrr);
                    t = 1;
                }
            }
            if(t==0){ 
   
                printf("查询错误,没有找到维修记录!");
            }
            fclose(fp);
            break;
        }
        default:{ 
   
            printf("输入有误,操作失败!");
        }
    }
}

//报废设备信息管理
void baofeiEquipment(){ 
   
    int num;
    int oper;
	int name;
	char amount[20];
    char time[16];
    printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
    printf(" 欢迎进入实验室设备管理系统! \n\n");
    printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
    printf("请选择(1~2):\n1.记录\t2.查找\n");
    scanf("%d",&oper);
    getchar();
    switch(oper){ 
   
    	        case 1:{ 
   
            FILE *fp = fopen("myfile.txt","a");
            printf("请输入报废设备编号:");
            scanf("%d",&num);
            printf("请输入报废时间(xxxx-xx-xx):");
            scanf("%s",&time);
            printf("请输入设备名:") ;
			scanf("%s",&name) ;
            printf("请输入数量:");
            scanf("%s",&amount);
			fprintf(fp,"%d\n",num);
            fprintf(fp,"%s\n",time);
            fprintf(fp,"%s\n",name); 
            fprintf(fp,"%s\n",amount);
            fflush(fp);
            fclose(fp);
            printf("记录成功!");
            break;
        }case 2:{ 
   
            int t = 0;
            printf("请输入查找编号:");
            scanf("%d",&num);
            int rnum;
            FILE *fp = fopen("myfile.txt","r");
            while(!feof(fp)){ 
   
                fscanf(fp,"%d\n",&rnum);
                fscanf(fp,"%s\n",&time);
                fscanf(fp,"%s\n",&name);
                fscanf(fp,"%s\n",&amount);
                if(rnum==num){ 
   
                    printf("编号:%d\n报废时间:%s\n设备名:%s\n数量:%s\n",rnum,time,name,amount);
                    t = 1;
                }
            }
            if(t==0){ 
   
                printf("查询错误,没有找到报废记录!");
            }
            fclose(fp);
            break;
        }
        default:{ 
   
            printf("输入有误,操作失败!");
        }
    }
}
 
//输出设备信息列表
void printList(Equipment *head){ 
   
    if(head->next==NULL){ 
   
        printf("没有设备,请先录入设备!");
         return;
    }
    Equipment *current = head->next;
    	printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
        printf(" 实验室所有设备及其相关信息为以下: \n\n");
        printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
    printf("===============================================================:\n");
    printf("编号 名称 型号 厂家 购买日期 责任人 保质期 价格\n");
    while(current){ 
   
        printf("\n%d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",current->num,current->name,current->model,current->factory,current->buy_date,current->zrr,current->baozhqi,current->price);
        current = current->next;
    }
}

//检查设备编号是否相同
int checkNum(Equipment *head, int num){ 
   
    if(head->next==NULL) return 0;
    Equipment *current = head->next;
    while(current){ 
   
        if(current->num == num){ 
   
            return 1;
        }
        current = current->next;
    }
    return 0;
}
 
int main(){ 
   
    Equipment *head = (Equipment*)malloc(sizeof(Equipment));
    head->next = NULL;
    int num = -1;
    while(num!=0){ 
   
    	printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
        printf(" 欢迎进入实验室设备管理系统! \n\n");
        printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
        printf("~ 请输入想要实现的功能选项: ~\n");
        printf("\n");
        printf("~ 【1】设备信息录入 ~\n");
        printf("\n");
        printf("~ 【2】设备信息更改 ~\n");
        printf("\n");
        printf("~ 【3】设备信息删除 ~\n");
        printf("\n");
        printf("~ 【4】设备查找 ~\n");
        printf("\n");
        printf("~ 【5】维修信息管理 ~\n");
        printf("\n");
        printf("~ 【6】报废设备信息管理 ~\n");
        printf("\n");
        printf("~ 【7】显示所有设备 ~\n");
        printf("\n");
        printf("~ 【8】使用手册 ~\n");
        printf("\n");
        printf("~ 【9】关于系统 ~\n");
        printf("\n");
        printf("~ 【0】退出系统 ~\n");
        printf("\n");
        printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
        printf("请输入选项:");
        scanf("%d",&num);
        int num1;
        system("cls");
        switch(num){ 
   
            case 0:{ 
   break;}
            case 1:{ 
   
                addEquipment(head);
                break;
            }
            case 2:{ 
   
                printf("请输入更改信息的设备编号:");
                scanf("%d",&num1);
                getchar();
                changeEquipment(head,num1);
                break;
            }
            case 3:{ 
   
                printf("请输入需要删除的设备编号:");
                scanf("%d",&num1);
                getchar();
                deleteEquipment(head,num1);
                break;
            }
            case 4:{ 
   
                findEquipment();
                break;
            }
            case 5:{ 
   
                repairEquipment();
                break;
            }case 6:{ 
   
                baofeiEquipment();
                break;
            }case 7:{ 
   
                printList(head);
                break;
            }case 8:{ 
   
            	printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
                printf("\t欢迎进入实验室设备管理系统!\n\n");
                printf("请用户进入系统后,输入操作对应的数字,即可进行相关操作。\n");
                printf("若出现故障或者其它问题请联系工作人员。\n");
                printf("tel:12345678999;邮箱:xxx\n\n"); 
                printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
                break;
			}case 9:{ 
   
                printf("*************************************\n");
                printf("\t名称:实验室设备管理系统\n");
                printf("\t系统版本:2.1\n");
                printf("\t系统作者:cainiao19\n");
                printf("*************************************\n");
                break;
            }
            default:{ 
   
                printf("输入有误,操作失败!");
            }
        }
        system("Pause");
        system("cls");
 
    }
 
    return 0;
}

简要说明

  • 代码运行后在同一路径自动创建相应TXT文件,并进行持久化存储
  • 自动创建失败,可手动创建(data.txt),运行代码
  • 使用DevC ++ 编译并运行,否则出现不同语法错误!!

结论

要了解C语言就要从语法基础来学习起,首先要是要了解它的结构,比如变量,首先要了解变量的定义方式(格式),其意义是什么(定义变量有什么用); 其次就是要我要怎么去运用它(我要用什么型式去应用它)。在C语言的命令行中所有的语句都是有它自己的一定格式和形式出现在我们面前,所以我们在学习某种语句或命令时你首先要了解的就是它的规则是什么、有什么用、怎么实现等。这些都是语法基础也是C语言的基础如果把它们都了解很好了,那么你编起程序来就很得心应手了。比如说IF ELSE 和 SWITCH CASE 这两种条件语句都是用来判断执行功能的,那我要什么时侯用IF 什么时侯用 SWITCH呢?如果你很好地了解它们的结构和作用的话那么就知道:若它的条件分支是多个而且条件的值是整数或是一个字符值时就会选SWITCH而不会选IF。因为如果条件分支太多时要用IF语句,这样一定会出现IF的嵌套,如果IF的嵌套越多时程序的开销就会随着增大,这样对整个程序的运行效率就大在降底。而SWITCH就不同,它只要比较一次就可以找出条件的结果比起嵌套IF它的效率就大大的提高了很多。不过SWITCH也有它的约束条件,就是它的条件值一定要是一个整型数或是一个字符值,所以碰到它不能解决的问题时我们也会通常使用IF语句,毕竟IF语句它使用起来也比较方便用
的范围也比较广。所以说了解语法规则是很重要的,如果没有一个良好的语法基础是很难编出一个好的程序!学习好基础后我们就可以开始来编程了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/182433.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Tomcat服务器下载、安装、配置环境变量教程(超详细)

    Tomcat服务器下载、安装、配置环境变量教程(超详细)未经我的允许,请不要转载我的文章,在此郑重声明!!!请先配置安装好Java的环境,若没有安装,请参照我博客上的步骤进行安装!安装Java环境教程https://blog.csdn.net/qq_40881680/article/details/83585542Tomcat部署Web项目(一)·内嵌https://blog.csdn.net/qq_40881680/article/d…

  • linux mysql 监听端口被占用_Linux 查询端口被占用命令[通俗易懂]

    linux中如何查看某个端口是否被占用之前查询端口是否被占用一直搞不明白,问了好多人,终于搞懂了,现在总结下:1.netstat-anp|grep端口号如下,我以3306为例,netstat-anp|grep3306(此处备注下,我是以普通用户操作,故加上了sudo,如果是以root用户操作,不用加sudo即可查看),如下图1:图1图1中主要看监控状态为LISTEN表示已…

  • Unity3D学习路线与学习经验分享[通俗易懂]

    Unity3D学习路线与学习经验分享[通俗易懂]Unity3D学习路线与学习经验分享//最后一次更新为2019.7.22日,更新了一些废掉的链接作者:15游02丁祺你好,这篇文档是我的导师孙老师(以下简称老孙)指名我书写给新手、初学者以及技能有些许缺陷的人的一篇经验分享的文档,当然如果你看到了这些文字,代表着你是一个有意愿或期望去学习这款软件的人。因人与人之间有很多的不同,以下我会尽我所能,通过不同切入点与角度,并根据以上人群的不同…

  • Dubbo + Hystrix 实现服务熔断「建议收藏」

    Dubbo + Hystrix 实现服务熔断「建议收藏」熔断器简介在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以通过RPC相互调用。为了保证其高可用,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证100%可用,如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若有大量的请求涌入,Servlet容器的线程资源会被消耗完毕,导致服务瘫痪。服务与服务之间的依赖性,故障会传播,会对整个微服务系统造成灾难性的严重后果,这就是服务故障的“雪崩”效应。为了解决这个问题,业界提出了熔断器模型。Netflix

  • densenet详解_densenet包

    densenet详解_densenet包DenselyConnectedConvolutionalNetworks,作者清华姚班的刘壮,获得cvpr2017bestpaper。非常值得阅读。DenseNet优势:(1)解决了深层网络的梯度消失问题(2)加强了特征的传播(3)鼓励特征重用(4)减少了模型参数DenseNet的网络基本结构如上图所示,主要包含DenseBlock和transitionlaye…

  • 域名解析 dns_一区新增风险区

    域名解析 dns_一区新增风险区1、DNSDNS(DomainNameSystem)是域名系统的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,用于TCP/IP网络。2、域名系统DNS的作用通常我们有两种方式识别主机:通过主机名或者IP地址。人们喜欢便于记忆的主机名表示,而路由器则喜欢定长的、有着层次结构的IP地址。为了满足这些不同的偏好,我们就需要一种能够进行主机名到IP地址转换的目录服务,域名系统作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。因此,即使不使用域名

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号