# linux大作业 **Repository Path**: xiao_pacai/linux-homework ## Basic Information - **Project Name**: linux大作业 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-10-16 - **Last Updated**: 2024-10-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Linux大作业 ## 1.使用说明: 在根目录输入 ```bash make ``` 可直接编译 之后输入 ```bash .main ``` 可直接使用 ## 2.系统分析: 课程管理模块: (1)新增课程 功能:输入课程的编号、名称、性质、授课学时、学分、已选人数、人数上限等信息。 数据结构:课程信息表(包含课程编号(主键)、课程名称、课程性质、授课学时、学分、已选人数、人数上限等字段)、学生选课表(记录学生和课程之间的选课关系,包含学号、课程编号等字段)。 操作流程:用户输入课程信息 -> 系统验证课程编号唯一性 -> 插入课程信息表 -> 初始化学生选课表(可选)。 (2)删除课程 功能:根据课程编号删除课程记录。 数据结构:课程信息表、学生选课表。 操作流程:用户输入课程编号 -> 系统查找课程信息 -> 用户确认删除 -> 系统删除课程信息表记录 -> 删除学生选课表中相关记录 -> 记录操作日志。 (3)查看课程信息 功能:根据课程编号查看课程的详细信息,包括已选学生列表。 数据结构:课程信息表、学生选课表。 操作流程:用户输入课程编号 -> 系统查找课程信息 -> 查询并显示已选学生列表 -> 显示课程详细信息。 (4)修改课程信息 功能:根据课程编号修改课程的信息,包括学分、授课学时、已选学生列表等。 数据结构:课程信息表、学生选课表。 操作流程:用户输入查询条件(课程编号) -> 系统查找课程信息 -> 用户修改信息 -> 系统更新课程信息表 -> 更新学生选课表(如涉及学分变动) -> 记录操作日志。 数据结构分析: 学生信息表:用于存储学生的基本信息和选课情况。 课程信息表:用于存储课程的基本信息和选课情况。 学生选课表:用于记录学生和课程之间的选课关系。 操作日志表:用于记录所有对学生信息和课程信息的修改操作,包括修改前后的信息、操作时间、操作员等。 操作流程分析: 用户通过界面输入操作指令。 系统根据指令查找或修改数据。 系统在执行修改操作时,记录操作日志。 系统返回操作结果给用户。 ## 3.模块划分: ### 1.学生信息管理模块 #### 功能需求: 新增学生信息:输入学生的学号、姓名等信息,并初始化其已选课程列表和学分总计。 修改学生信息:根据学号或姓名查找学生,并修改其信息。 删除学生信息:根据学号或姓名删除学生记录。 查看学生信息:根据学号或姓名查看学生的详细信息。 #### 数据结构: 学生信息表:包含学号(主键)、姓名、已选课程列表(课程编号列表)、已选课程总计学分等字段。 #### 操作日志: 记录所有对学生信息的修改操作,包括修改前后的信息、操作时间、操作员等。 ### 2.课程管理模块 #### 功能需求: 新增课程:输入课程的编号、名称、性质、授课学时、学分、已选人数、人数上限等信息。 删除课程:根据课程编号删除课程记录。 查看课程信息:根据课程编号查看课程的详细信息,包括已选学生列表。 修改课程信息:根据课程编号修改课程的信息,包括学分、授课学时、已选学生列表等。 #### 数据结构: 课程信息表:包含课程编号(主键)、课程名称、课程性质、授课学时、学分、已选人数、人数上限等字段。 学生选课表:记录学生和课程之间的选课关系,包含学号、课程编号等字段。 #### 3.操作日志: 记录所有对课程信息的修改操作,包括修改前后的信息、操作时间、操作员等。 ## 4.目录结构 ```tree . ├── build │   ├── class.o │   ├── log.o │   ├── Multiproduct │   └── student.o ├── data │   ├── class.txt │   ├── log.txt │   └── student.txt ├── improt_text.txt ├── include │   ├── course.h │   ├── log_pub.h │   └── student.h ├── log │   ├── log.c │   ├── log.h │   └── makefile ├── main ├── main.c ├── makefile ├── moduleA │   ├── makefile │   ├── student.c │   └── student.h ├── moduleB │   ├── class.c │   ├── class.h │   └── makefile └── release └── readme.md ```