【代码要求】
为了方便学委发布作业信息和记录收作业的情况,设计一个学委作业管理系统。要求可以记录作业的基本信息(作业编号,课程名称,作业次数,作业内容,布置时间,提交截止时间,备注……),记录每个同学的作业提交情况(班级,学号,作业编号,提交时间,备注……)。管理员可以管理班级、角色(学委和学生),学委可以管理作业和作业提交情况,学生可以查看作业和自己的作业提交情况。
基本功能要求:
系统中的作业列表、作业提交情况列表、学生列表等都必须采用所学过的一种数据结构(链表、栈、队列、树等)存储,不能全部只使用数组。所有功能的操作是对数据结构(数组或链表等)中的数据进行操作。
每一个功能模块需要划分多个子模块,使用各自不同的结构体来储存不同的信息,实现信息的添加、删除、查询、修改、排序等操作。其他信息根据功能需求可以自行设计。
- 管理员对班级和班级学生的增删改查功能,管理员设置角色(学委/学生),每个班只有一个学委。
- 学委和学生的登录功能,需要输入正确的密码登录。
- 学委对作业的增删改,查询所有作业列表,按时间范围查询作业,按课程查询作业,按时间的升序或降序排列显示。
- 学委对作业提交情况的增删改,查询学生的所有作业提交列表,按时间范围查询作业提交列表,按课程查询作业提交情况,查询某同学的作业提交情况,按时间、提交次数等的升序或降序排列显示。
- 学生查看作业,学生查看本人的作业提交情况。
扩展功能要求:
- 统计各课程的作业提交情况,统计各学生的作业提交情况。
- 运行文件对各种信息进行合理的保存和读取。
【代码运行】
P_C_00007_学委作业管理系统
【代码片段】
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define STR 30
//用户的信息结构体
typedef struct UserInfo {
//用户学号
char ui_id[STR];
//用户密码
char ui_pwd[STR];
//用户班级
char ui_classes[STR];
//用户类型(1-管理员 2-学委 3-学生)
int ui_type;
} UI;
//作业的基本信息结构体
typedef struct BaseInfo {
//作业编号
char bi_no[STR];
//课程名称
char bi_name[STR];
//作业次数
int bi_count;
//作业内容
char bi_content[STR];
//布置时间
char bi_outtime[STR];
//提交截止时间
char bi_stoptime[STR];
//备注
char bi_remark[STR];
} BI;
//作业的提交信息结构体
typedef struct HandinInfo {
//提交编号
char hi_no[STR];
//班级
char hi_classes[STR];
//学号
char hi_id[STR];
//作业编号
char hi_bi_no[STR];
//提交时间
char hi_time[STR];
//提交次数
int hi_count;
//备注
char hi_remark[STR];
} HI;
//链表节点
typedef struct UserInfoNode {
UI ui;
struct UserInfoNode* next;
} UserNode, UserList;
typedef struct BaseInfoNode {
BI bi;
struct BaseInfoNode* next;
} BaseNode, BaseList;
typedef struct HandinInfoNode {
HI hi;
struct HandinInfoNode* next;
} HandinNode, HandinList;
//声明用户链表头结点
UserList* ulHead;
//声明作业基本信息链表头结点
BaseList* blHead;
//声明作业提交信息链表
【结尾】
此文章部分内容参考自GO代码演示网,
如转载,请保留此说明和完整的页面内容。