温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

c/c++如何实现交换机后台管理之端口管理

发布时间:2021-11-24 09:21:30 来源:亿速云 阅读:237 作者:小新 栏目:编程语言

这篇文章主要介绍了c/c++如何实现交换机后台管理之端口管理,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

10 交换机后台管理之端口管理

项目需求

交换机

c/c++如何实现交换机后台管理之端口管理
c/c++如何实现交换机后台管理之端口管理

端口:

1)端口名称
2)端口状态
3)端口的IP地址
4)端口类型
WAN
LAN

项目实现

1.添加菜单框架

#include <stdio.h> #include <string.h> #include <stdlib.h> FILE *file;  void init(void) {     //打开文件     file = fopen("users.txt", "r");        if (!file) {   //等效于 file == NULL           printf("文件打开失败");         //return 1;         exit(1);     } } void login(void) {     char name[32];     char password[16];     char line[128];     char name_tmp[32];     char password_tmp[16];     char *ret;     //输入用户名和密码     while (1) {         system("cls");         // 输入用户名和密码         printf("请输入用户名:");         scanf("%s", name);         printf("请输入密码:");         scanf("%s", password);         //从文件中读取账号,并进行判断!         while (1) {             //读一行             ret = fgets(line, sizeof(line), file); //line:  "admin 123456\n"             if (!ret) {                 break;             }                        sscanf(line, "%s %s", name_tmp, password_tmp);             if (!strcmp(name, name_tmp) && !strcmp(password, password_tmp)) {                 break;             }         }         if (ret) {  //用户名和密码匹配成功             break;         } else {             printf("用户名或密码错误!\n");               system("pause");             system("cls");             fseek(file, 0, SEEK_SET); //把文件内部的位置指针设置到文件头         }     } } void create_user(void) {     system("cls");     printf("\n\n---创建账号---\n\n");     printf("待实现...\n\n");     printf("\n\n按任意键返回主菜单");     fflush(stdin);     getchar(); } void ip_admin(void) {     system("cls");     printf("\n\n---IP管理---\n\n");     printf("待实现...\n\n");     printf("\n\n按任意键返回主菜单");     fflush(stdin);     getchar(); } void logout(void) {     system("cls");     fclose(file);     exit(0); } void input_error(void) {     system("cls");     printf("\n\n输入错误!\n\n");     printf("\n\n按任意键后,请重新输入\n\n");     fflush(stdin);     getchar(); } void show_memu(void) {     system("cls");     // 打印功能菜单     printf("---交换机后台管理---\n");     printf("1. 创建账号\n");     printf("2. IP管理\n");     printf("3. 退出\n");     printf("4. 端口管理\n");     printf("请选择: "); } void show_ports(void) {     system("cls");     printf("---端口状态---\n");     printf("待实现.\n");     system("pause"); } void set_ports(void) {     system("cls");     printf("---端口设置---\n");     printf("待实现.\n");     system("pause"); } void port_admin(void) {     char n;     while(1) {         system("cls");         printf("1. 查看端口\n");         printf("2. 设置端口\n");         printf("3. 返回主菜单\n");         printf("请选择: ");         fflush(stdin);         scanf("%c", &n);         if (n == '1') {             show_ports();         } else if (n == '2') {             set_ports();         } else if (n == '3') {             break;         } else {             input_error();         }      } } int main(void) {     char n; //用户选择的菜单编号     init(); //初始化     login(); //登录     while (1) {         show_memu();         fflush(stdin);         scanf("%c", &n);         switch (n) {         case '1':             create_user();             break;         case '2':             ip_admin();              break;         case '3':             logout();             break;         case '4':             port_admin();             break;         default:             input_error();             break;         }     }     return 0; }

2.端口信息的表示
添加类型定义和端口变量

struct port {     char name[16];  //端口的名称     int  status; //1: 激活  0:禁用     char ip[16];  //192.168.1.5     char type[4];  //端口类型 LAN  WAN }; //定义了5个端口变量 struct port port1; struct port port2; struct port port3; struct port port4; struct port port5;

项目实现

void show_port(struct port port) {     printf("名称[%s]\t状态[%s]\tIP[%s]\t类型[%s]\n",          port.name,         port.status == 0 ? "禁用":"激活",         port.ip,         port.type); } void show_ports(void) {     system("cls");     printf("---端口状态---\n");     printf("PORT1:\t");     show_port(port1);     printf("PORT2:\t");     show_port(port2);     printf("PORT3:\t");     show_port(port3);     printf("PORT4:\t");     show_port(port4);     system("pause"); } void set_port1(void) {     system("cls");     printf("---设置PORT1端口---\n");     printf("请输入端口名称: ");     scanf("%s", port1.name);     printf("请输入端口的状态:[0:禁止] [1:激活] ");     scanf("%d", &port1.status);     printf("请输入端口的类型:[LAN 或 WAN] ");     scanf("%s", port1.type);     printf("请输入端口的IP地址: ");     scanf("%s", port1.ip);     system("pause"); } void set_port2(void) {     system("cls");     printf("---设置PORT2端口---\n");     printf("请输入端口名称: ");     scanf("%s", port2.name);     printf("请输入端口的状态:[0:禁止] [1:激活] ");     scanf("%d", &port2.status);     printf("请输入端口的类型:[LAN 或 WAN] ");     scanf("%s", port2.type);     printf("请输入端口的IP地址: ");     scanf("%s", port2.ip); } void set_port3(void) {     system("cls");     printf("---设置PORT3端口---\n");     printf("请输入端口名称: ");     scanf("%s", port3.name);     printf("请输入端口的状态:[0:禁止] [1:激活] ");     scanf("%d", &port3.status);     printf("请输入端口的类型:[LAN 或 WAN] ");     scanf("%s", port3.type);     printf("请输入端口的IP地址: ");     scanf("%s", port3.ip); } void set_port4(void) {     system("cls");     printf("---设置PORT4端口---\n");     printf("请输入端口名称: ");     scanf("%s", port4.name);     printf("请输入端口的状态:[0:禁止] [1:激活] ");     scanf("%d", &port4.status);     printf("请输入端口的类型:[LAN 或 WAN] ");     scanf("%s", port4.type);     printf("请输入端口的IP地址: ");     scanf("%s", port4.ip); } void set_port5(void) {     system("cls");     printf("---设置PORT5端口---\n");     printf("请输入端口名称: ");     scanf("%s", port5.name);     printf("请输入端口的状态:[0:禁止] [1:激活] ");     scanf("%d", &port5.status);     printf("请输入端口的类型:[LAN 或 WAN] ");     scanf("%s", port5.type);     printf("请输入端口的IP地址: ");     scanf("%s", port5.ip); } void set_ports(void) {     char n;     while(1) {         system("cls");         printf("---端口设置---\n");         printf("1. PORT1\n");         printf("2. PORT2\n");         printf("3. PORT3\n");         printf("4. PORT4\n");         printf("5. PORT5\n");         printf("6. 返回\n");         printf("请选择: ");         fflush(stdin);         scanf("%c", &n);         switch (n) {         case '1':             set_port1();             break;         case '2':             set_port2();             break;         case '3':             set_port3();             break;         case '4':             set_port4();             break;         case '5':             set_port5();             break;         case '6':             return;         default:             input_error();             break;         }      } }

项目精讲

1.为什么要使用“结构”(结构体)
但需要表示一些复制信息时,使用单纯的数据类型很不方便。

比如:学生信息(学号,姓名,班级,电话,年龄)

2.什么是“结构”
结构,就是程序员自定义的一种“数据类型”
是使用多个基本数据类型、或者其他结构,组合而成的一种新的“数据类型”。

3.结构的定义
struct  结构名 {
成员类型  成员名;
成员类型  成员名;
};

实例:

struct  student {    char  name[16];    int   age;    char  tel[12]; };
特别注意:

1)要以struct开头
2)最后要使用分号
3)各成员之间用分号隔开

4.结构的初始化

demo

#include <stdio.h> struct student {     char name[16];     int age; }; int main(void) {     struct student s1 = {         "Rock", 38     };     struct student s2 = {         .age = 100,         .name = "张三丰"     };     struct student s3;     s3.age = 40;     strcpy(s3.name, "杨过");     printf("%s, %d\n", s1.name, s1.age);     printf("%s, %d\n", s2.name, s2.age);     printf("%s, %d\n", s3.name, s3.age);     return 0; }
5.结构的使用
// 定义结构体变量 // 注意:完整的类型名称是  struct  student  //       而不只是student struct  student  s1,s2; struct  student  s3; scanf(“%s”,  s1.name); s1.name = 25;    s2 = s1;  //结构体变量之间可以直接赋值

使用形式:
结构体变量.成员变量
中间用 . 分隔

6.使用结构体作为函数参数

#include <stdio.h> #include <string.h> struct  student {    char  name[16];    int   age;    char  tel[12]; }; void work(struct student stu) {     stu.age++;     printf("%s,%d\n", stu.name, stu.age); } int main(void) {     struct student s;     strcpy(s.name, "Rock");     s.age = 38;     work(s); //结构体变量s作为函数参数,并不会改变s本身的值     printf("%s,%d\n", s.name, s.age);     return 0; }

注意:
一般不建议把结构体直接作为函数参数。
因为结构体的size比较大,直接传递,消耗性能!
解决方案(使用指针)

7.全局变量、局部变量

test1.c

#include <stdio.h> void east_travel(void); char master[16] = "女娲"; void west_travel(void) {     char master[16] = "唐僧";     printf("[西游]老大是: %s\n", master); } int main(void) {     char master[16] = "如来佛祖";     printf("[main]老大是: %s\n", master);     char c;     printf("是否进入女儿国? (Y或N)\n");     fflush(stdin);     scanf("%c", &c);     if (c=='Y' || c=='y') {         char master[16] = "女王";         printf("[main-女儿国]老大是: %s\n", master);     }     printf("[main]老大是: %s\n", master);     east_travel();     return 0; }

test2.c

#include <stdio.h> extern char master[16];  //不能初始化!表示这个全局变量是在其他文件中定义的! void east_travel(void) {     printf("[东游]老大是: %s\n", master); }

gcc  test1.c   test2.c
c/c++如何实现交换机后台管理之端口管理

项目练习

练习1

独立实现项目10

练习2

1.定义一个结构,用来描述一个游戏角色的基本信息。
该角色信息有,名称,性别,武力值
并让用户输入1个角色。
运行效果如下:
c/c++如何实现交换机后台管理之端口管理
参考代码:

#include <stdio.h> struct role {     char name[32];     char sex; //'M':男  'W':女      int power;  }; int main(void) {     struct role  r1, r2;     printf("请输入角色的名称: ");     scanf("%s", r1.name);     fflush(stdin);     printf("请输入角色的性别: ");     scanf("%c", &r1.sex);     printf("请输入角色的武力值: ");     scanf("%d", &r1.power);     printf("\n===角色设定===\n");     printf("姓名: %s\n", r1.name);     printf("性别:%c\n", r1.sex);     printf("武力值:%d\n", r1.power);     return 0; }

感谢你能够认真阅读完这篇文章,希望小编分享的“c/c++如何实现交换机后台管理之端口管理”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI