A-A+

链表大作业

2015年06月07日 C语言开发 暂无评论 阅读 3,943 views 次

1. 使用链表实现一个简易的微博系统

微博中的每个用户,都具有用户名、密码、年龄、性别以及关注数和粉丝数等属性,每个用户可以关注其他用户,也可以被其他用户关注。比如:当用户A关注了用户B,这时候会触发两个操作:1)用户A的关注列表里增加用户B,并且用户A的关注数加1。2)用户B的粉丝列表里增加用户A,并且用户B的粉丝数加1。
该系统需要实现的功能如下:
1) 注册新用户
2) 登陆
3) 显示系统中所有用户
4) 关注
5) 显示某个用户的基本信息,比如用户名、年龄、性别、关注数和粉丝数,以及关注的所有用户列表和所有粉丝列表。
主菜单设计:
1) 注册新用户
2) 登陆

1. 当用户选择注册新用户时,要求录入用户名、年龄以及性别和密码后,显示注册成功,并显示主菜单。
2. 当用户选择登陆后,则要求录入用户名和密码。如果用户在当前系统中存在并密码匹配,则提示登陆成功。并且显示子菜单A。

子菜单A设计:
1) 显示所用用户
菜单功能描述:显示除自己外的所用其他用户。
2) 关注用户
菜单功能描述:输入其他用户名。完成关注
3) 显示用户信息
菜单功能描述:显示该用户的基本信息(用户名、年龄以及性别),关注数以及关注的所用用户列表,粉丝数以及所有的粉丝列表。
4) 退出
菜单功能描述:返回主菜单

提示:粉丝链和关注链其实就是一个天然的链表,所以要实现粉丝链和关注链的话,只需要实现两个链表即可。如下所示:

struct markinfo {
char username[260];
struct info* next;
};

struct user {
char username[260];
char passwd[260];
int age;
int fansCount; //粉丝数
int markCount; //关注数
struct user* next; //下一个用户
struct markinfo * markList; //关注列表
struct markinfo * fansList; //粉丝列表
};

struct user* g_allUserList; //所有用户,使用链表组织。
1. 新用户功能:动态分配一个user对象,插入链表g_allUserList即可。
2. 关注功能实现:比如用户A关注用户B。首先判断关注的用户B是否存在,即遍历g_allUserList即可。如果存在,即需要进行两部操作:
1)首先把用户A的markCount加1,然后生成一个markInfo对象(markInfo中的username等于B的username)插入用户A的markList关注列表中。
2)把B的fansCount加1,生成一个markInfo对象(markInfo中的username等于A的username)插入用户B的fansList中。

关键词:

给我留言

Copyright © linux系统运维 保留所有权利.   Theme  Ality 粤ICP备13023035号-1

用户登录

分享到: