发布网友
共4个回答
热心网友
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//定义用户名最大长度
#define P 20
//定义密码最大长度
#define Q 20
//定义用户最大数量
#define N 100
//定义用户属性的结构体
struct user
{
charuser_name[P];//用户名
charuser_code[Q];//密码
intfriend_num;//好友数量
intuser_friend[N];//好友名单
};
void main()
{
intp = 0;//操作步骤
intn = 0;//用户数量
inti = 0;//过程操作数
intj = 0;//过程操作数
intlog_id;//合格登陆号码
charlog_name[P];//用户名临时存储
charlog_code[Q];//密码临时存储
usermy_user[N];//定义用户
while(1)
{
switch(p)
{
case 0://注册登陆选择界面
printf("请选择功能:\n");
printf("1.登陆\n");
printf("2.注册\n");
scanf("%d",&i);//过程数i记录接收数据
if(i ==1 || i == 2)
{
p = i;
}
else
{
printf("输入错误!\n");
p = 0;
}
i = 0;//过程数i清零
break;
case 1://登陆界面
printf("请输入用户名:\n");
scanf("%s", &log_name);
printf("请输入密码:\n");
scanf("%s", &log_code);
for(i=0;i<n;i++)//验证登陆用户,过程数i作为循环变量
{
if(strcmp(my_user[i].user_name, log_name) == 0)//验证用户名
{
if(strcmp(my_user[i].user_code, log_code) == 0)//验证密码
{
printf("登陆成功!\n");
log_id = i;//记录合格登陆号码
p = 3;
j = 1;//过程数j作为操作步骤变化标识
}
else
{
printf("密码错误!\n");
p = 1;
j = 1;
}
}
}
i = 0;//过程数i清零
j = 0;//过程数j清零
break;
case 2://注册界面
printf("请输入用户名:\n");
scanf("%s", &log_name);
printf("请输入密码:\n");
scanf("%s", &log_code);
strcpy(my_user[n].user_name, log_name);//保存用户名
strcpy(my_user[n].user_code, log_code);//保存密码
n++;//记录注册用户数
printf("注册成功!\n");
p = 0;
break;
case 3://用户界面
printf("当前登陆用户:%s\n", my_user[log_id].user_name);
printf("请选择其他操作:\n");
printf("1.显示好友名单\n");
printf("2.增加好友\n");
printf("3.删除好友\n");
printf("4.好友分组\n");
printf("5.自选功能\n");
printf("6.登出\n");
scanf("%d",&i);//过程数i记录接收数据
if(i >=1 && i <= 6)
{
p = i+3;
}
else
{
printf("输入错误!\n");
p = 3;
}
i = 0;//过程数i清零
break;
case 4://显示好友名单
printf("好友名单:\n");
for(i=0;i<my_user[log_id].friend_num;i++)
{
j = my_user[log_id].user_friend[i];//过程数j记录用户好友号码
printf("%s\n", my_user[j].user_name);
}
p = 3;
i = 0;
j = 0;
break;
case 5://增加好友,未实现
p = 3;
break;
case 6://删除好友,未实现
p = 3;
break;
case 7://好友分组,未实现
p = 3;
break;
case 8://自选功能,未实现
p = 3;
break;
case 9://登出
for(i=0;i<20;i++)
{
log_name[i] = 0;//清除用户名临时存储
log_code[i] = 0;//清除密码临时存储
}
p = 0;//返回初始页面
i = 0;//过程数i清零
break;
default:
p = 0;
break;
}
}
}
热心网友
可以参考:
https://github.com/jiangxincode/gchat
完全用C语言写的,使用GTK+做的简单界面
包括了所有的源码,可以参考,但不要完全照搬。
热心网友
我可以帮你改代码!追问楼下是我的代码
热心网友
你的代码呢?追问看楼下 那个是我的