航班管理系统(最全最细)

这篇具有很好参考价值的文章主要介绍了航班管理系统(最全最细)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

                            航班管理系统(国内航班)

 

【功能需求】

程序启动后显示主菜单,包括下面的选项:

1. 显示航班列表

2. 增加航班

3. 删除航班

4. 航班订票

5. 航班退票

6. 航班乘客显示

7. 航班存盘

8. 从文件调入航班信息

9. 退出

  按下相应的数字键后进入各自的子功能,每个子功能执行完毕后,返回并

  显示主菜单

【功能说明】

  1. 显示航班列表:在屏幕显示已登记的航班总数,及各航班的信息,包括航班号,出发地和目的地,起飞时间,落地时间,所用机型,座位数,价格。(假设航班为每日一次)

2. 增加航班:输入航班信息,包括航班号,出发地和目的地,起飞时间,落地时间,所用机型,座位数,价格。

  3. 删除航班:输入要删除的航班号,删除该航班信息。

  4. 航班订票:输入航班名,日期,乘客姓名,身份证号。

  5. 航班退票:输入航班名,日期,身份证号,删除乘客信息。

  6. 航班乘客显示:输入航班号和日期,显示该航班的座位号及乘客姓名,以及空余座位数。

  7. 航班存盘:输入文件名,将航班信息存入文件。

  8. 从文件调入:输入文件名,读取文件将数据调入,重新生成航班信息

  9. 退出:退出程序,返回操作系统

课程设计成绩评定的依据有设计文档资料、具体实现设计方案的程序,采用百分制,不设平时分。

优(90分以上):必须要有一定的创意,有自己独特的算法。按要求完成课题的

             全部功能,有完整的符合标准的文档,文档有条理、文笔通顺,

             格式正确,其中有总体设计思想的论述,有正确的流程图,程序

             完全实现设计方案,设计方案先进,软件可靠性好;

最终实现代码:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include <iostream>
using namespace std;

#define PERSON_MAXNUM 100     //记录乘客信息的空间 
#define PERSONNOTICKET_MAX 20  //记录乘客候补名单数量 
//航班数量 ,可更改航班数量 
#define MAXsizeNumber 50    
int sizeNumber = 0;   //记录添加的航班数量 
int passengerSizeNumber = 0;  //记录订票乘客数量 
int _personnoticketsizeNumber = 0;  //记录候补人数 

//定义航班信息结构体
typedef struct Flight
{
	/*已登记的航班总数及各航班的信息,包括航班号,出发地和目的地,起飞时间,落地时间,所用机型,座位数,价格*/ 
    char ID[10];           //航班编号 
    char takeOffPlace[10]; //出发地 
    char Destination[10];  //目的地 
    char dateTime[20];     //起飞时间 
    char dateTime1[20];    //落地时间 
    char flightStyle[10];  //航班机型 
    float Price;           //价格 
    int buyTicketNum;       //卖出机票数量 
    int MaxTicketNum;       //最大机票数量 
}Flight;

//定义乘客信息结构体
typedef struct Person
{
    int AirFlight_Num;   //飞机编号 
    char person_name[20];//乘客姓名 
    char person_id[18];  //乘客身份证
	char date[10]; 

}Person;


void home(Flight* p,Person* person, Person* person_noticket);//1、初始页面

void initFlight(Flight** p);//2、初始化航班信息内存

void InputFlightDate(Flight* p);//3、添加航班信息

void FlightDateShow(Flight* p);//4、查看航班信息

void DelFlightDate(Flight* p);//5、删除航班信息

void FlightDateShowOrder(Flight* p,Person* person);//6、查看航班订单

void PrintPassengers(Flight* p, Person* person, int i);//7、打印航班乘客

void InitPassenger(Person** person);//8、初始化乘客信息内存

void BookFlightTicket(Flight* p, Person* person,Person* person_noticket);//预定航班

int CheckPerson(Flight* p, Person* person);//查看乘客订单信息

void ChangeAirFlight(Flight* p, Person* person);//修改订票信息 

void CancelTicket(Flight* p, Person* person);//退票

void PrintPassengers(Flight* p, Person* person, int i);//输出乘客信息 

void CheckPersonNoTicket(Flight* p, Person* person_noticket);//查看候补名单

//7、航班信息存盘 
void FlightSaveFile(Flight* p);
//8、从文件中调入航班信息 
void FlightFindFile(void);


void home(Flight* p, Person* person, Person* person_noticket)
{
    int a, i, j;
    printf("\n*****************************欢迎来到五邑航班管理系统*****************************\n");
    printf("\n*******************请登录身份!管理员请按1;乘客请按2;退出系统请按0*****************\n");
    printf("请选择:");
    scanf("%d", &a);
    //航班管理人员操作
    if (a == 1)
        do{
            printf("\n****************** 1.添加航班信息 *******************\n");
            printf("\n****************** 2.删除航班信息 *******************\n");
            printf("\n****************** 3.显示航班列表 *******************\n");
            printf("\n****************** 4.查询已订票信息 *************\n");
            printf("\n****************** 5.查看候补名单 *******************\n");
            printf("\n****************** 6.航班信息存盘 *******************\n");
            printf("\n****************** 7.从文件中调入航班信息 ***********\n");
            printf("\n****************** 0.退出管理员登录********************\n");
            printf("请选择:");
            scanf("%d", &i);
            switch (i)
            {
                case 0: break;
                case 1:InputFlightDate(p);break;
                case 2:DelFlightDate(p);break;
                case 3:FlightDateShow(p);break;
                case 4:FlightDateShowOrder(p, person); break;
                case 5:CheckPersonNoTicket(p, person_noticket); break;
                case 6:FlightSaveFile(p); break;
                case 7:FlightFindFile(); break;
                default:
                    printf("输入错误!\n");
                    break;
            }
        } while (i != 0);
    //乘客操作
    if (a == 2)
        do{
            printf("\n*********************** 1.乘客订票 ***********************\n");
            printf("\n*********************** 2.更改订票信息 *******************\n");
            printf("\n*********************** 3.乘客退票 ***********************\n");
            printf("\n*********************** 4.查询航班信息 *******************\n");
            printf("\n*********************** 5.查询个人订票信息 ***************\n");
            printf("\n*********************** 0.退出乘客登录 *******************\n");
            printf("请选择:");
            scanf("%d", &j);
            switch (j)
            {
                case 0:break;
               case 1:BookFlightTicket(p, person,person_noticket);
				       break;
                case 2:ChangeAirFlight(p, person);
				       break;
                case 3:CancelTicket(p, person);
				       break;
                case 4:FlightDateShow(p);
				       break;
                case 5:CheckPerson(p, person);
			           break;
            }
        } while (j != 0);
    if( a==0 ){
    	printf("感谢你的体验!欢迎下次光临哦!!");
		exit(0);   //结束进程,退出系统。 
	}    
}

//初始化航班信息 
void initFlight(Flight** p)
{

    assert(p);//清除缓冲区,准备声请空 
    //申请空间
    *p = (Flight*)malloc(sizeof(Flight)*MAXsizeNumber);
    if (NULL == *p)
    {
        printf("开辟空间失败!\n");
        return;
    }
    (*p)->buyTicketNum = 0;
}
//输入航班信息
void InputFlightDate(Flight* p)
{
    if (sizeNumber <= MAXsizeNumber)
    {
        printf("航班编号:%d\n", sizeNumber);
        printf("请输入航班ID:");
        scanf("%s", (p+sizeNumber)->ID);
        printf("请输入航班出发地:");
        scanf("%s", (p + sizeNumber)->takeOffPlace);
        printf("请输入航班目的地:");
        scanf("%s", (p + sizeNumber)->Destination);
        printf("请输入航班起飞时间:");
        scanf("%s", (p + sizeNumber)->dateTime);
        printf("请输入航班到达时间:");
        scanf("%s", (p + sizeNumber)->dateTime1);
        printf("请输入航班机型:");
        scanf("%s", (p + sizeNumber)->flightStyle);
        printf("请输入航班订票价格:");
        scanf("%f", &(p + sizeNumber)->Price);
        printf("输入航班可乘坐最大人数:");
        scanf("%d", &(p + sizeNumber)->MaxTicketNum);
        do
        {
            printf("目前卖出机票数量:");
            scanf("%d", &(p + sizeNumber)->buyTicketNum);
            if ((p + sizeNumber)->buyTicketNum > (p + sizeNumber)->MaxTicketNum)
            {
                printf("输入已卖出机票数量错误!\n");
                printf("请重新输入!\n\n");
            }
        } while ((p + sizeNumber)->buyTicketNum > (p + sizeNumber)->MaxTicketNum);
        sizeNumber++;
        printf("添加航班信息成功!\n\n");
    }
    else
    {
        printf("内存已满!\n");
        return;
    }
}

void FlightDateShow(Flight* p)
{
    int i = 0;
    printf("目前在售的航班信息:\n\n");
    printf("\n******************五邑国际机场航班信息*********************\n");
    printf("航班编号\t航班ID\t出发地\t目的地\t起飞时间\t落地时间\t飞机机型\t剩余座位数\t价格\n");
    printf("-------------------------------------------------------------------------------------------------------\n");
    for (i = 0; i < sizeNumber; i++)
    {
 	printf("%d\t%s\t%s\t%s\t%s\t%s\t%s\t%d\t%.2f\n",
 	              i,
	             (p+i)->ID,
				 (p + i)->takeOffPlace,
                 (p + i)->Destination,
				 (p + i)->dateTime,
				 (p + i)->dateTime1,
				 (p + i)->flightStyle,
                 ((p + i)->MaxTicketNum - (p + i)->buyTicketNum),
				 (p + i)->Price); 
    }
    printf("已登记航班总数:");
    printf("%d\n",sizeNumber);
    printf("------------------------------------------------------------------------------------------------------\n");
}
//删除航班信息
void DelFlightDate(Flight* p)
{
    int j = 0;
    int i = -1;
    assert(p);
    printf("请输入要删除的航班编号:");
    scanf("%d", &i);
    for (j = i; j < sizeNumber; j++)
    {
        strcpy((p + j)->ID, (p + j + 1)->ID);
        strcpy((p + j)->takeOffPlace, (p + j + 1)->takeOffPlace);
        strcpy((p + j)->Destination, (p + j)->Destination);
        strcpy((p + j)->dateTime, (p + j + 1)->dateTime);
        (p + j)->Price = (p + j + 1)->Price;
        (p + j)->MaxTicketNum = (p + j + 1)->MaxTicketNum;
        (p + j)->buyTicketNum = (p + j + 1)->buyTicketNum;
    }
    sizeNumber--;
}
//初始化乘客信息
void InitPassenger(Person** person)
{
    assert(person);
    *person = (Person*)malloc(sizeof(Person)*PERSON_MAXNUM);
    if (NULL == *person)
    {
        printf("开辟空间失败!\n");
        return;
    }
}

//订票
void BookFlightTicket(Flight* p, Person* person, Person* person_noticket)
{
    int i = -1;
    FlightDateShow(p);
    printf("请选择你要预定的航班编号:");
    scanf("%d", &i);
    if ((p + i)->MaxTicketNum == (p + i)->buyTicketNum)
    {
        printf("对不起,该航班机票已售完!\n");
        printf("请输入您的姓名(我们将把您添加进候补名单):");
        scanf("%s", (person_noticket+_personnoticketsizeNumber)->person_name);
        (person_noticket + _personnoticketsizeNumber)->AirFlight_Num = i;
        _personnoticketsizeNumber++;
        printf("添加候补名单成功!\n\n");
        return;
    }
    else
    {
        if (passengerSizeNumber > PERSON_MAXNUM)
        {
            printf("存储容量不足!\n");
            return;
        }
        printf("请输入姓名:");
        scanf("%s", (person + passengerSizeNumber)->person_name);
        printf("请输入日期:"); 
        scanf("%s",(person + passengerSizeNumber)->date);
        printf("请输入你的身份证号:");
        scanf("%s",(person + passengerSizeNumber)->person_id);
        (person + passengerSizeNumber)->AirFlight_Num = i;
        passengerSizeNumber++;
        (p + i)->buyTicketNum++;
        printf("订票成功!\n");
    }
}
//查看个人订票信息
int CheckPerson(Flight* p, Person* person)
{
    int flag = 0;
    int i = 0;
    char _name[20] = { 0 };
    printf("请输入您的姓名:");
    scanf("%s", &_name);
    printf("您的个人订票信息:\n\n");
    	printf("\n订单编号 姓名 航班编号 航班ID 始发地 目的地 起飞时间 机票价格\n") ;
    printf("-----------------------------------------------------------------------------\n");
    for (i = 0; i < passengerSizeNumber; i++)
    {
        if (0 == strcmp(_name, (person + i)->person_name))
        {
		flag = 1;
        
        printf("%d\t%s\t%d\t%s\t%s\t%s\t%s\t%0.2f\n",i, (person + i)->person_name, (person + i)->AirFlight_Num,(p + (person + i)->AirFlight_Num)->ID, (p + (person + i)->AirFlight_Num)->takeOffPlace,(p + (person + i)->AirFlight_Num)->Destination,(p + (person + i)->AirFlight_Num)->dateTime,(p + (person + i)->AirFlight_Num)->Price);
             }
    }
    if (0 == flag)
    {
        printf("未找到该乘客订票信息!\n");
        return 0;
    }
    return 1;
}
//改签
void ChangeAirFlight(Flight* p, Person* person)
{
    int i = -1;
    int j = -1;
    if (0 == CheckPerson(p, person))
    {
        return;
    }
    printf("请输入要改签的订单编号:");
    printf("\n");
    scanf("%d", &i);
    (p + i)->buyTicketNum--;
    FlightDateShow(p);
    do
    {
        printf("请输入要改签的航班编号:");
        scanf("%d", &j);
        if ((p + j)->buyTicketNum >= (p + j)->MaxTicketNum)
        {
            printf("该次航班已满员,请重新选择!\n");
        }
    } while ((p + j)->buyTicketNum >= (p + j)->MaxTicketNum);
    (person + i)->AirFlight_Num = j;
    (p + j)->buyTicketNum++;
    printf("改签成功!\n\n");
}

//删除订单,输入航班名,日期,身份证号,删除乘客信息
void CancelTicket(Flight* p, Person* person)
{
    int i = -1;
    int j = 0;
    int n=0;
    char L_date[10];
    char L_person_id[18];
    int flag1;
    int flag2;
    CheckPerson(p, person);
    printf("\n请输入要删除的订单编号:");
    scanf("%d", &i);
    printf("请输入订票日期:");
    scanf("%s", &L_date);
    printf("请输入你的身份证:");
    scanf("%s", &L_person_id);
    //做判断
	 
    for(int k=0; k<passengerSizeNumber;k++){
    	 flag1 = strcmp(L_date, (person+k)->date);
    	 flag2 = strcmp(L_person_id,(person+k)->person_id);
    	 if((!flag1) && (!flag2)){
    	 	for (j = i; j < passengerSizeNumber; j++)
                {
                  (person + j)->AirFlight_Num = (person + j + 1)->AirFlight_Num;
                  strcpy((person + j)->person_name, (person + j + 1)->person_name);
                }
                
                n++;
    	 	    break;
		 }
	}
	if(n){
      	printf("退票成功!\n");	
	}else{
		printf("你输入的信息有误,请退出选择重新输入哦!");
	}
}

//查看目前订票信息
void FlightDateShowOrder(Flight* p, Person* person)
{
    int i = -1;
    for (i = 0; i < sizeNumber; i++)
    {
        printf("航班编号:%d\n", i);
        printf("ID:%s\n", (p + i)->ID);
        printf("始发地:%s\n", (p + i)->takeOffPlace);
        printf("目的地:%s\n", (p + i)->Destination);
        printf("起飞时间:%s\n", (p + i)->dateTime);
        printf("机票价格:%2f\n", (p + i)->Price);
        printf("剩余机票:%d\n", ((p + i)->MaxTicketNum - (p + i)->buyTicketNum));
        printf("买票人信息:"); PrintPassengers(p,person, i);
    }
}
void PrintPassengers(Flight* p, Person* person,int i)
{
    int ticket_num = 0;
    int j = 0;
    for (j = 0; j < passengerSizeNumber; j++)
    {
        if ((person + j)->AirFlight_Num == i)
        {
            printf("%s ,", (person + j)->person_name);
            ticket_num++;
        }
    }
    printf("\n\n");
}

//候补名单初始化
void InitPassengerNoTicket(Person** person_noticket)
{
    assert(person_noticket);
    *person_noticket = (Person*)malloc(sizeof(Person)*PERSONNOTICKET_MAX);
    if (NULL == *person_noticket)
    {
        printf("开辟空间失败!\n");
        return;
    }
}

//查看候补名单
void CheckPersonNoTicket(Flight* p, Person* person_noticket)
{
    int i = 0;
    printf("候补名单:\n\n");
    if (0 == _personnoticketsizeNumber)
    {
        printf("候补名单为空!\n\n");
        return;
    }
    for (i = 0; i < _personnoticketsizeNumber; i++)
    {
        printf("姓名:%s\n", (person_noticket + i)->person_name);
        printf("所需要航班编号:%d\n", (person_noticket + i)->AirFlight_Num);
        printf("航班ID:%s\n", (p + ((person_noticket + i)->AirFlight_Num))->ID);
        printf("始发地:%s\n", ((p + ((person_noticket + i)->AirFlight_Num))->takeOffPlace));
        printf("目的地:%s\n", (p + ((person_noticket + i)->AirFlight_Num))->Destination);
    }
}
//7、航班信息存盘 
void FlightSaveFile(Flight* p)
{
	int n=0;
	FILE *fp = NULL;
	char fileName[100];
	printf("请输入文件名:");
	//scanf("%s",&fileName);
	//scanf(fileName);为什么用这个输入就不行? 
	cin>>fileName;
	fp = fopen(fileName , "wb" ); 
	fprintf(fp,"五邑机场航班信息\n航班号,出发地,目的地,起飞时间,落地时间,飞机机型,剩余座位数,价格\n");
	
    for(int i=0;i<sizeNumber;i++)
    {   	
    	fprintf(fp,"%s,%s,%s,%s,%s,%s,%d,%.2f;\n",(p+i)->ID,
		             (p + i)->takeOffPlace,
		             (p + i)->Destination,
					 (p + i)->dateTime,
					 (p + i)->dateTime1,
					 (p + i)->flightStyle,
					 ((p + i)->MaxTicketNum - (p + i)->buyTicketNum),
					 (p + i)->Price);
        n++;
	}
	if(n>0){
		printf("航班信息存盘成功!"); 
	}else{
		printf("航班信息存盘失败!");
	}
	fclose(fp);
 }
 
 //8、从文件调入航班信息
void FlightFindFile(void)
{
	 FILE *fp = NULL;
	 char ch;
	char fileName[100];
	printf("请输入文件名:");
	//scanf("%s",&fileName);
	cin>>fileName;
	fp = fopen(fileName , "r" ); 
	while((ch=fgetc(fp))!=EOF)
	cout<<ch;
	while(!(feof(fp)))
	{
		cout<<fgetc(fp);
	}
 } 

//主函数
int main()
{
    Flight* p=NULL;
    Person* person=NULL;
    Person* person_noticket = NULL;
    InitPassengerNoTicket(&person_noticket);
    initFlight(&p);
    InitPassenger(&person);
    while (1)
    {
        home(p, person, person_noticket);
    }
    system("pause");
    return 0;
}

代码执行局部情况:

菜单页面展示

航班管理系统(最全最细)

航班管理系统(最全最细)

局部具体功能执行:
添加航班信息

航班管理系统(最全最细)

 航班信息列表:

航班管理系统(最全最细)

 更多功能等你发现哦!听说点赞关注的都会幸运满满哦!文章来源地址https://www.toymoban.com/news/detail-478813.html

到了这里,关于航班管理系统(最全最细)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 最全vue3开源管理系统汇总

    搭建一个后台管理,从零开始开发,其实并不容易,在众多开源管理后台中,Vue3是一个备受瞩目的选择。它是一个现代化的前端框架,具有高效、灵活、易用等特点,今天,要为大家介绍几款开源免费vue3开源管理后台,可以帮助我们快速搭建企业级中后台产品原型。 1. Vue

    2024年01月20日
    浏览(38)
  • 一步一步搭建,功能最全的权限管理系统(一)

    一、前言 这是一篇搭建权限管理系统的系列文章。 随着网络的发展,信息安全对应任何企业来说都越发的重要,而本系列文章将和大家一起一步一步搭建一个全新的权限管理系统。 说明:由于搭建一个全新的项目过于繁琐,所有作者将挑选核心代码和核心思路进行分享。

    2024年03月27日
    浏览(54)
  • 【SpringCloud】最全最细!微服务框架

    打开查看spring alibaba、springcloud、springboot对应版本 单体架构: 将业务的所有功能集中在一个项目中开发,打成一个包部署 优点: 架构简单、部署成本低 ; 缺点: 耦合度高 项目打包部署到Tomcat,用户直接访问。用户量增加后就多部署几台服务器形成集群。 随着互联网发展

    2024年01月19日
    浏览(39)
  • bean的生命周期(最全最细讲解)

    其定义为: 从对象的创建到销毁的过程。 而Spring中的一个Bean从开始到结束经历很多过程,但总体可以分为 六个阶段Bean定义、实例化、属性赋值、初始化、生存期、销毁 。 1.首先我们来创建一个包,在包中创建一个Orders的对象,然后在对象中创建一个无参构造方法.... 2.Sp

    2023年04月22日
    浏览(41)
  • Ubuntu20.04配置深度学习环境(全网最细最全)

    目录 一、NVIDIA显卡驱动安装 二、安装CUDA 三、安装cuDNN 四、安装Anaconda 五、Anaconda的简单使用 5.1 管理环境 5.2 管理包(package) 5.3 conda install 与 pip install 5.4 conda configuration        默认你已经完成Ubuntu20.04的安装,如果没安装的话可以参考其他博客,我的显卡是GTX1660Ti     

    2024年04月09日
    浏览(80)
  • 2023最全最细的Selenium+Pytest自动化测试框架实战

                                      选前言#   selenium自动化+ pytest测试框架 本章你需要 一定的python基础——至少明白类与对象,封装继承 一定的selenium基础——本篇不讲selenium,不会的可以自己去看selenium中文翻译网 测试框架简介# 测试框架有什么优点呢: 代码复用率高,

    2024年02月06日
    浏览(60)
  • 【全网最全最细】青龙面板搭配Ninja+依赖+Ninja配置的超细讲解教程!!!

    通过Ninja登录京东账号实现京东代挂赚取京东京豆    大家可以加群644288320,进行技术交流。 由于xshell没有finalshell创建文件那么方便,所有要进行以下操作: 注意:把finalshell关了,重新连接一下,把下面全部命令复制粘贴进去即可 然后找到以下文件(如图)

    2023年04月08日
    浏览(47)
  • 2023年全网最全最细最流行的自动化测试工具有哪些?

    随着测试工程师技能和工资待遇的提升,甚至有一部分的开发人员开始转入测试岗位,跨入自动化领域的测试攻城狮越来越多。在自动化测试领域,自动化工具肯定占据了核心的位置。 本文总结了常用的测试自动化工具和框架,这些工具和框架有助于更好地定位自己,以跟上

    2024年02月08日
    浏览(51)
  • 全网最全最细的PLSQL下载、安装、配置、使用指南、问题解答,相关问题已汇总

    1.1、PLSQL 下载链接 1.2、PLSQL下载链接,包含64位和32位。选择64位下载就好了。 1.3、推荐大家下载14.0.6版本的PLSQL,一般不推荐下载最新的,最新的虽然不一定有bug,但是遇到了就很恶心,但是上一个版本基本上就很稳定了。14.0.6不用下载chinese语言包,就是下图的Chinese Langua

    2024年01月19日
    浏览(41)
  • 2023全网最细最全保姆级gitlab+Jenkins+maven自动化部署springboot项目教程

    如果没有Linux基础请仔细看好每一个步骤,避免出错,从0到1带你搭建自动化部署环境,包括服务器安装,自动化部署所需各类软件安装配置,详细贴出每一步,不断步骤,让你一次搭建部署完成,希望这篇文章能给大家带来一定的帮助,话不多说开始整 2.0 CentOs安装 2.0.1 下载VM虚拟机 我直

    2024年02月08日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包