Asksia AI LOGO

Sia

3674627520's Question
Computer Science
Posted about 1 month ago
管理员 Admin
属性:

id

名字(char name[50])

密码(char password[50])

2. 员工 Employee
属性:

工号(int id)

名字(char name[50])

密码 (char password[50])

年龄(int age)

性别  (enum Gender) 使用枚举

MALE、FEMALE

工资(float salary)

部门(enum Department)

DEPT_SALES、MARKETING、DEPT_AFTER_SALE

职位 (enum Title)

MANAGER、TITLE_SALES、CAPTAIN、WORKER、TITLE_AFTER_SALE

角色:

Admin   employees

3. 操作日志 OperationLog
属性:

id

操作内容(char operation[100])

时间戳(char timestamp[60])

操作员用户名(char username[50])

二:功能需求
1. 管理员功能
管理员登录功能:

提供管理员登录验证。

输入用户名和密码进行验证。

查看所有员工信息功能:查看系统中所有员工的基本信息。

新增员工功能:

输入员工信息,检查工号是否重复,新增员工。

如果工号重复,返回错误信息。

删除员工功能:

根据员工工号删除员工。

如果未找到该员工,返回错误信息。

修改员工信息功能:

根据工号修改员工信息。

如果未找到该员工,返回错误信息。

2. 特殊功能
按工资降序显示员工信息:显示所有员工信息,按工资从大到小排序。

按年龄升序显示员工信息:显示所有员工信息,按年龄从小到大排序。

显示指定部门的男女员工人数:

显示指定部门内男女员工的数量。

统计每个部门的平均工资并显示:

计算并显示各部门的平均工资。

统计管理层和基层员工人数并显示:

经理和组长属于管理层,其他职位属于基层员工,统计每类人员的数量。

3. 员工功能
员工只能查看本部门员工信息。

员工只能修改自己的密码信息。

4. 异常处理
处理程序中的所有异常情况,确保系统的健壮性。

如工号重复时进行提示。

如删除、修改时员工不存在,返回相应错误信息。

进行内存分配时的错误检查。

5. 日志功能
5.1 操作日志功能
操作日志记录:

每当管理员或员工登录进行操作时,记录操作的类型、时间、操作员。

操作类型包括:新增员工、删除员工、修改员工信息等。

日志记录将写入文件 operation_log.txt。

日志格式:

 时间: 2025-01-17 14:30:01, 用户: admin , 操作: 新增员工
4.2 多线程功能(线程池)
预加载数据时使用多线程支持:

使用多线程来处理不同的查询操作(如按部门查询员工)。

多线程将提高查询操作的并发能力,支持多个管理员同时操作。

记录日志操作时,使用线程

4.3 数据存储
1:可使用文件存储数据 :

每次员工数据发生变化时,将员工信息写入备份文件 employee_backup.txt。

数据将以文本格式存储。

2:可使用sqlite数据库来存储数据:

系统启动时,数据库预读数据

系统里,可以使用 顺序表 或 链表 来做缓存

一开始,把所有的数据,写到缓存中,方便查询操作   

要注意:数据一致性问题,即增删改操作后,缓存里的数据和数据库中的不一致  

 解决方式:每当增删改操作时,更新缓存(重新加载数据到缓存中) 

4.4 数据加密功能
加密管理员和员工的密码

使用简单的加密方法(如哈希算法)对管理员密码进行加密存储,防止明文密码泄露。

可以使用 openssl 等库来加密密码。

4.5 用户权限管理
权限控制:

系统根据用户角色(ADMIN 或 employees)限制不同的功能。

普通员工 (employees) 只能查看自己部门所有人的信息,不能修改或删除员工。

普通员工 (employees)只能修改自己的密码。 

管理员 (ADMIN) 拥有所有权限(包括新增、删除、修改员工信息)。

权限验证:

在执行操作前,系统将根据用户角色进行权限验证,确保普通员工无法进行敏感操作。

5. 其他要求
内存管理:

系统中需要手动管理内存,避免内存泄漏。

使用 malloc、free 时要进行错误检查。

系统安全性:

加强对用户输入的验证,避免出现缓冲区溢出、SQL注入等常见安全问题。

对敏感操作进行权限验证。

如:某些功能只有管理员才能执行,员工是不能操作的
Sign in to unlock the answer
Answer from Sia
Posted about 1 month ago
您的问题涉及到一个系统的设计需求,主要包括管理员和员工的功能、操作日志、异常处理、数据存储、数据加密和用户权限管理等方面。
下面是对您提到的功能需求的总结:
管理员功能: 包括登录验证、查看所有员工信息、新增员工、删除员工和修改员工信息等。
特殊功能: 包括按工资和年龄排序显示员工信息、统计部门内男女员工人数、计算各部门的平均工资等。
员工功能: 员工只能查看本部门员工信息和修改自己的密码。
异常处理: 处理工号重复、员工不存在等异常情况,确保系统健壮性。
日志功能: 记录操作日志,包括操作类型、时间和操作员。
多线程功能: 使用多线程提高查询操作的并发能力。
数据存储: 可使用文件或数据库存储数据,并注意数据一致性问题。
数据加密功能: 使用哈希算法加密密码,防止明文泄露。
用户权限管理: 根据用户角色限制不同的功能,确保普通员工无法进行敏感操作。
内存管理: 手动管理内存,避免内存泄漏。
系统安全性: 加强用户输入验证,防止常见安全问题。
这些功能需求为系统的设计和实现提供了清晰的方向,确保系统的安全性和有效性。

Not the question you are looking for? Ask here!

Enter question by text

Enter question by image

Unlock Smarter Learning with AskSia Super!

Join Super, our all-in-one AI solution that can greatly improve your learning efficiency.

30% higher accuracy than GPT-4o
Entire learning journey support
The most student-friendly features
Study Other Question