奇牛学院吧 关注:307贴子:1,171
  • 1回复贴,共1
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
//全局变量
FILE*file;
//使用“结构”;来定义“端口类型”
//int char float double
struct port {
char name[16];
int status;//1:表示“激活” 0:表示“禁止”
char ip[16];//192.160.111.200
char type[4];//"LAN"局网(内网) "WAN"外网
};
//全局变量
//定义五个端口变量
struct port port1;
struct port port2;
struct port port3;
struct port port4;
struct port port5;
//初始化
void init(void){
//打开文件
file = fopen("mima.txt","r");
if (!file){//等效于file == NULL
printf("文件打开失败");
//return 1;
exit(1);
}
}
//登录
void login(void){
char name[32];//用户名
char pwd[16];//密码
//FILE*file;
char line[128];
char name_tmp[32];
char pwd_tmp[16];
char *ret;
//输入用户名和密码
while(1){
system("cls");
printf("请输入用户名:");
scanf("%s",name);
printf("请输入密码:");
scanf("%s",pwd);
//从文件中读取账号密码,进行判断!
while (1){
//读一行
ret=fgets(line,sizeof(line),file);
if (!ret){
break;
}
sscanf(line,"%s %s",name_tmp,pwd_tmp);
if (!strcmp(name,name_tmp) && !strcmp(pwd,pwd_tmp)){
break;
}
}
if (ret){//用户名和密码匹配成功
break;
}else {
printf("用户名或密码错误!\n");
system("pause");
system("cls");
fseek(file,0,SEEK_SET);//把文件内容的位置指针设置到头文件
}
}
}
//打印功能菜单
void show_memu(){
system("cls");//清屏
printf("---交换机后台管理---\n ");
printf("1.创建账号\n ");
printf("2.IP管理\n ");
printf("3.端口管理\n ");
printf("4.退出\n ");
printf("请选择:\n ");
}
//创建账号
void create_user(){
system("cls");
printf("\n\n---端口状态---\n\n");
printf("待实现...\n\n");
printf("\n\n按任意键返回主菜单");
fflush(stdin);//刷新输入缓冲区,即把输入缓冲区的数据都删除!
getchar();
}
//IP 管理
void ip_manager(){
system("cls");
printf("\n\n---IP管理---\n\n");
printf("待实现...\n\n");
printf("\n\n按任意键返回主菜单");
fflush(stdin);
getchar();
}
//退出
void logout(){
fclose(file);
system("cls");
//return 0;
exit(1);
}
//无效指令
void input_error(){
system("cls");
printf("\n\n输入错误!\n\n");
printf("\n\n按任意键返回主菜单");
fflush(stdin);
getchar();
}
void show_port(struct port p){
printf("名称[%s]\t状态[%s]\tIP[%s]\t类型[%s]\t",
p.name,
p.status==0 ? "禁用" : "激活",
p.ip,
p.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);
printf("PORT5:\t");
show_port(port5);
system("pause");
}
//端口管理-设置端口1
void set_port1(void){
system("cls");
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);
}
//端口管理-设置端口2
void set_port2(void){
system("cls");
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);
}
//端口管理-设置端口3
void set_port3(void){
system("cls");
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);
}
//端口管理-设置端口4
void set_port4(void){
system("cls");
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);
}
//端口管理-设置端口5
void set_port5(void){
system("cls");
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\n");
printf("请选择:\n");
fflush(stdin);
scanf("%c",&n);
switch(n){
case '1':
set_potr1();
break;
case '2':
set_potr2();
break;
case '3':
set_potr3();
break;
case '4':
set_potr4();
break;
case '5':
set_potr5();
break;
case '6':
return;
default:
input_error();
break;
}
}
system("pause");
}
//端口管理
void port_admin(void){
char n;
while (1){
printf("---端口管理---\n");
printf("1.查看端口\n");
printf("2.设置端口\n");
printf("3.返回\n");
printf("请选择:");
fflush(stdin);
n = getchar();
switch (n){
case '1':
show_ports();//查看端口
break;
case '2':
set_ports();//设置端口
break;
case '3'://返回
return;
default:
input_error();//无效指令
break;
}
}
}
//主函数
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_manager();//IP管理
break;
case '3':
port_admin();//端口管理
break;
case '4':
logout();//退出


来自Android客户端1楼2020-04-20 14:45回复
    问题已解决


    来自Android客户端2楼2020-04-20 16:54
    回复