电子消息系统伪代码设计

电子消息系统伪代码设计文档

系统概述

电子消息系统是一个基于C语言 开发的模块化应用程序,提供用户注册登录好友管理消息发送 等功能。系统采用文件存储方式实现数据持久化。

2025

11-24

第一次会议

11-25 ~ 11-27

学git

系统架构

1
2
3
4
5
6
7
8
9
10
11
主程序 (main.c) ahpasserby

菜单界面模块 (menu_interface.h/.c) Marina-asui

用户管理模块 (user_management.h/.c) ahpasserby
好友管理模块 (friend_management.h/.c) K122611
消息管理模块 (message_management.h/.c) Demo0115

文件操作模块 (file_operations.h/.c) ahpasserby

公共定义模块 (common.h) ahpasserby

数据结构设计

用户结构体 (User)

1
2
3
4
5
6
7
8
用户结构体 {
用户名: 字符串(最大50字符)
密码: 字符串(最大50字符)
好友列表: 字符串数组(最多50个好友)
待确认请求: 字符串数组(最多50个请求)
好友数量: 整数
待确认数量: 整数
}

消息结构体 (Message)

1
2
3
4
5
6
7
消息结构体 {
发送者: 字符串(最大50字符)
接收者: 字符串(最大50字符)
内容: 字符串(最大255字符)
时间戳: 字符串(20字符)
已读状态: 布尔值
}

模块详细设计

1. 主程序模块 (main.c)

1
2
3
4
5
6
程序开始
初始化系统()
显示欢迎信息
循环:
显示登录菜单()
结束程序

2. 菜单界面模块 (menu_interface.h/.c)

登录菜单

1
2
3
4
5
6
7
8
9
10
显示登录菜单():
显示菜单选项:
1. 登录
2. 注册
3. 退出
获取用户选择(1-3)
根据选择执行:
1: 登录功能()
2: 注册功能()
3: 退出程序

主服务菜单

1
2
3
4
5
6
7
8
9
10
11
主服务菜单():
循环:
显示菜单选项:
1. 管理好友
2. 管理消息
3. 返回
获取用户选择(1-3)
根据选择执行:
1: 好友管理菜单()
2: 消息管理菜单()
3: 返回登录菜单

好友管理菜单

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
好友管理菜单():
循环:
显示菜单选项:
1. 添加好友
2. 接受好友
3. 删除好友
4. 显示当前好友
5. 返回
获取用户选择(1-5)
根据选择执行:
1: 添加好友功能()
2: 接受好友功能()
3: 删除好友功能()
4: 显示当前好友功能()
5: 返回主菜单

消息管理菜单

1
2
3
4
5
6
7
8
9
10
11
12
13
消息管理菜单():
循环:
显示菜单选项:
1. 发送消息
2. 读取消息
3. 删除消息
4. 返回
获取用户选择(1-4)
根据选择执行:
1: 发送消息功能()
2: 读取消息功能()
3: 删除消息功能()
4: 返回主菜单

3. 用户管理模块 (user_management.h/.c)

登录功能

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
登录功能():
输入用户名
输入密码
清理输入缓冲区

如果 用户不存在:
如果 系统无用户:
提示"请先注册用户"
否则:
提示"用户名不存在"
返回

如果 密码不正确:
提示"密码错误"
返回

设置当前用户
提示"登录成功"
进入主服务菜单()

注册功能

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
注册功能():
输入用户名
如果 用户已存在:
提示"用户名已存在"
清理输入缓冲区
返回

输入密码
确认密码
清理输入缓冲区

如果 密码不匹配:
提示"密码不匹配"
返回

创建新用户
保存用户数据
提示"注册成功"

4. 好友管理模块 (friend_management.h/.c)

添加好友功能

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
添加好友功能():
输入要添加的用户名列表
对于每个用户名:
如果 是自己:
提示"不能添加自己"
否则如果 用户不存在:
提示"用户不存在"
否则如果 已是好友:
提示"已是好友"
否则如果 已有待确认请求:
提示"请求已发送"
否则:
添加待确认请求
保存好友关系
提示"请求已发送"

接受好友功能

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
接受好友功能():
如果 无待确认请求:
提示"无待确认请求"
返回

显示待确认列表
输入要接受的好友编号
如果 选择"全部":
接受所有请求
否则如果 选择"返回":
返回
否则:
接受指定好友请求

清空待确认列表
保存好友关系

删除好友功能

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
删除好友功能():
如果 无好友:
提示"无好友"
返回

显示好友列表
输入要删除的好友编号
如果 选择"全部":
删除所有好友
否则如果 选择"返回":
返回
否则:
删除指定好友

保存好友关系
提示"好友列表已更新"

5. 消息管理模块 (message_management.h/.c)

发送消息功能

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
发送消息功能():
如果 无好友:
提示"无好友"
返回

输入消息内容
显示好友列表
输入接收者编号
如果 选择"全部":
发送给所有好友
否则如果 选择"返回":
返回
否则:
发送给指定好友

保存消息数据
提示"消息已发送"

读取消息功能

1
2
3
4
5
6
7
8
9
10
11
12
13
14
读取消息功能():
加载用户消息
如果 无消息:
提示"无消息"
返回

选择读取方式:
1. 读取所有消息
2. 只读取未读消息
3. 返回

根据选择显示消息
标记消息为已读
保存消息状态

删除消息功能

1
2
3
4
5
6
7
8
9
10
11
12
13
14
删除消息功能():
输入开始日期
输入结束日期
输入账户名(或"all")

加载用户消息
对于每条消息:
如果 在日期范围内 且 (发送者匹配 或 选择"all"):
删除消息
否则:
保留消息

保存更新后的消息
提示删除结果

6. 文件操作模块 (file_operations.h/.c)

用户数据操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
加载用户数据():
打开用户文件
如果 文件不存在:
创建空文件
返回

读取用户名和密码
初始化用户数据
关闭文件

保存用户数据():
打开用户文件
写入所有用户信息
关闭文件

好友关系操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
加载好友关系():
打开好友文件
如果 文件不存在:
创建空文件
返回

解析好友和待确认列表
更新用户数据结构
关闭文件

保存好友关系():
打开好友文件
写入所有用户的好友关系
关闭文件

消息数据操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
加载消息(用户名):
打开用户消息文件
如果 文件不存在:
返回空消息列表

解析消息格式:
[时间戳] From: 发送者
消息内容
关闭文件

保存消息(用户名, 消息列表):
打开用户消息文件
写入所有消息
关闭文件

系统常量定义

1
2
3
4
5
6
7
最大用户数: 100
最大好友数: 50
最大消息数: 1000
用户名最大长度: 50
密码最大长度: 50
消息最大长度: 255
文件名最大长度: 100

数据文件格式

用户文件 (users.txt)

1
2
3
username1 password1
username2 password2
...

好友文件 (friends.txt)

1
2
3
4
5
username1 FRIENDS: friend1 friend2 friend3
username1 PENDING: pending1 pending2
username2 FRIENDS: friend1 friend4
username2 PENDING: pending3
...

消息文件 (username.txt)

1
2
3
4
5
[2024-11-24 16:45:30] From: sender_username
消息内容
[2024-11-24 16:46:15] From: another_sender
另一条消息内容
...

错误处理机制

  1. 输入验证: 所有用户输入都进行范围验证
  2. 缓冲区清理: 在scanf后清理输入缓冲区避免残留字符
  3. 文件操作: 检查文件打开是否成功
  4. 边界检查: 检查数组越界和最大限制
  5. 用户反馈: 提供清晰的错误提示信息

系统特点

  1. 模块化设计: 功能分离,便于维护和扩展
  2. 数据持久化: 使用文本文件存储数据
  3. 用户友好: 清晰的菜单导航和操作提示
  4. 安全性: 基本的用户认证和输入验证
  5. 可扩展性: 模块化架构便于添加新功能