/**
C语言课程设计题目源程序: 成绩管理系统
系统要求: 包含三类用户,管理员,教师,学生
管理员功能:
(1)自身密码修改
(2)教师信息管理:添加,修改,查询,删除
(3)学生信息管理:添加,修改,查询,删除
(4)成绩信息管理:添加,修改,查询,删除
(5)课程信息管理:添加,修改,查询,删除
(6)授课信息管理:添加,修改,查询,删除
(7)退出登陆系统
教师功能:
(1)个人信息修改
(2)学生信息管理: 只能查看学生的信息
(3)成绩信息管理: 添加,修改,删除(只限该老师所授课程),查询(所有学生成绩)
(4)退出登陆系统
学生功能:
(1)个人信息修改
(2)成绩信息管理: 只能查询自己的成绩
(3)退出登陆系统
**************************************************
程序作者: 双鱼林 作者真实姓名: 汪建林
生日: 1985年2月26日 星座: 双鱼座
血型: 0 家乡: 四川达州
QQ: 287307421 手机:13558690869
淘宝店: http://shop34864101.taobao.com
程序制作时间: 2008年中秋佳节 请朋友们随便传播,但不要把作者信息删除
***************************************************
**/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define ADMIN_USER_TYPE 1
#define TEACHER_USER_TYPE 2
#define STUDENT_USER_TYPE 3
#define FUNCTION_FAILED -1
#define FUNCTION_SUCCESS 0
/** 管理员身份信息表 **/
typedef struct AdminInfo {
char adminName[20]; //管理员帐号,主键
char password[20]; //管理员密码
struct AdminInfo *next; //指向下一个管理员信息
} AdminInfo;
/** 教师信息表 **/
typedef struct TeacherInfo {
char teacherId[20]; //教工号,主键
char teacherPassword[20]; //教师登陆密码
char teacherName[20]; //教师姓名
char teacherSex[4]; //教师性别
char teacherBirthTime[15]; //教师生日
char teacherAddress[50]; //教师居住地址
struct TeacherInfo *next; //指向下一个教师的信息
} TeacherInfo;
/** 学生信息 **/
typedef struct StudentInfo {
char studentNumber[20]; //学号,主键
char studentName[10]; //姓名
char studentPassword[20]; //学生登陆密码
char studentSex[4]; //学生性别
char studentBirthTime[15]; //学生生日
char studentAddress[50]; //学生居住地址
struct StudentInfo *next; //指向下一个学生的信息
} StudentInfo;
/** 课程信息 **/
typedef struct CourseInfo {
int courseId; //课程编号,主键
char courseName[20]; //课程名称
char courseClassroom[20]; //上课所在教室
char courseTime[20]; //上课时间
struct CourseInfo *next; //指向下一门课程的信息
} CourseInfo;
/** 授课信息 **/
typedef struct CourseTeachInfo {
int courseId; //课程编号
char teacherId[20]; //教师编号
struct CourseTeachInfo *next; //指向下一条教师授课信息
} CourseTeachInfo;
/** 学生成绩信息 **/
typedef struct ScoreInfo {
char studentNumber[20]; //学生学号
int courseId; //课程编号
float score; //课程成绩
struct ScoreInfo *next; //指向下一条成绩信息
} ScoreInfo;
static AdminInfo *pAdminInfoHead = NULL; //指向系统管理员信息记录的头指针
static CourseInfo *pCourseInfoHead = NULL; //指向课程信息记录的头指针
static CourseTeachInfo *pCourseTeachInfoHead = NULL; //指向教师授课信息记录的头指针
static ScoreInfo *pScoreInfoHead = NULL; //指向成绩记录信息的头指针
static StudentInfo *pStudentInfoHead = NULL; //指向学生信息记录的头指针
static TeacherInfo *pTeacherInfoHead = NULL; //指向教师信息记录的头指针
static char currentUserName[20]; /*保存登陆系统的当前帐号*/
static char currentUserType[20]; /*保存登陆系统的身份*/
void InitSystem(); /*初始化系统函数,向各种信息链表中加入测试数据*/
int AddAdminInfo(AdminInfo *); /*向管理员信息链表中加入一条管理员信息*/
int AddOneCourseInfo(CourseInfo *); /*向课程信息链表中加入一条课程信息*/
int AddOneTeacherInfo(TeacherInfo *); /*向教师信息链表中加入一条教师信息*/
int AddOneStudentInfo(StudentInfo *); /*向学生信息链表中加入一条学生信息*/
int AddOneCourseTeachInfo(CourseTeachInfo *);/*向授课信息链表中加入一条授课信息*/
int AddOneScoreInfo(ScoreInfo *); /*向成绩链表中加入一条成绩信息*/
void GetStudentName(char *,char *); /*得到某个学号的学生姓名*/
void GetCourseName(int,char *); /*得到某门课程编号的名称*/
void GetTeacherName(char *,char *); /*根据教师编号得到教师姓名*/
bool IsHavingStudentNumber(char *); /*判断是否存在某个学号的学生信息*/
bool IsHavingCourseId(int ); /*判断是否存在某门课程的信息*/
bool IsHavingTeacherId(char *); /*判断是否存在某个教师信息*/
bool CanTeacherOpeScore(int ,char *); /*判断某个老师是否有添加某门课程成绩的权限*/
bool IsCourseInTeachInfo(int ); /*判断某门课程是否在授课信息中存在*/
bool IsCourseInScoreInfo(int ); /*判断某门课程是否在成绩信息中存在*/
void ShowWelcomeMenu(); /*显示系统欢迎菜单*/
int AdminLogin(); /*管理员身份登陆系统*/
int TeacherLogin(); /*教师身份登陆系统*/
int StudentLogin(); /*学生身份登陆系统*/
void SelectLoginType(); /*选择登陆系统的身份*/
void ShowAdminMenu(); /*显示管理员操作菜单*/
void AdminPasswordModify(); /*管理员修改自己的密码*/
void TeacherInfoManage(); /*教师信息管理*/
void TeacherInfoView(); /*教师信息查看*/
void TeacherInfoAdd(); /*教师信息添加*/
void TeacherInfoModify(); /*教师信息修改*/
void TeacherInfoDelete(); /*教师信息删除*/
void StudentInfoManage(); /*学生信息管理*/
/*学生信息查看功能同教师身份登陆时的学生信息查看一样*/
void StudentInfoAdd(); /*学生信息添加*/
void StudentInfoModify(); /*学生信息修改*/
void StudentInfoDelete(); /*学生信息删除*/
void Admin_ScoreInfoManage(); /*管理员对成绩信息管理*/
void ScoreInfoView(); /*成绩信息查看*/
void ScoreInfoAdd(); /*成绩信息添加*/
void ScoreInfoModify(); /*成绩信息修改*/
void ScoreInfoDelete(); /*成绩信息删除*/
void CourseInfoManage(); /*课程信息管理*/
void CourseInfoView(); /*课程信息查看*/
void CourseInfoAdd(); /*课程信息添加*/
void CourseInfoModify(); /*课程信息修改*/
void CourseInfoDelete(); /*课程信息删除*/
void CourseTeachInfoManage(); /*授课信息管理*/
void CourseTeachInfoView(); /*授课信息查看*/
void CourseTeachInfoAdd(); /*授课信息添加*/
void CourseTeachInfoModify(); /*授课信息修改*/
void CourseTeachInfoDelete(); /*授课信息删除*/
void ShowTeacherMenu(); /*显示教师身份操作菜单*/
void TeacherSelfInfoModify(); /*教师信息修改*/
void StudentInfoView(); /*学生信息查看*/
void Teacher_ScoreInfoManage(); /*教师对成绩信息管理*/
void ScoreInfoView(); /*成绩信息查看*/
void ScoreInfoAdd(); /*成绩信息添加*/
void ScoreInfoModify(); /*成绩信息修改*/
void ScoreInfoDelete(); /*成绩信息删除*/
void ShowStudentMenu(); /*显示学生身份操作菜单*/
void StudentSelfInfoModify(); /*学生个人信息修改*/
void Student_ScoreInfoView(); /*学生本人成绩查询*/
void InitSystem() { /*初始化系统函数,向各种信息链表中加入测试数据*/
AdminInfo adminInfo; /*初始化一个管理员信息*/
strcpy(adminInfo.adminName,"admin");
strcpy(adminInfo.password,"admin");
adminInfo.next = NULL;
AddAdminInfo(&adminInfo); /*将这个管理员信息加入到管理员信息链表中*/
CourseInfo courseInfo[3]; /*初始化三门课程信息*/
strcpy(courseInfo[0].courseClassroom,"6A-101");
strcpy(courseInfo[1].courseClassroom,"6A-102");
strcpy(courseInfo[2].courseClassroom,"6A-103");
strcpy(courseInfo[0].courseName,"计算机网络");
strcpy(courseInfo[1].courseName,"毛泽东思想");
strcpy(courseInfo[2].courseName,"C语言程序设计");
strcpy(courseInfo[0].courseTime,"星期一上午一二节课");
strcpy(courseInfo[1].courseTime,"星期五下午三四节课");
strcpy(courseInfo[2].courseTime,"星期三晚上三节课");
courseInfo[0].next = courseInfo[1].next = courseInfo[2].next = NULL;
for(int i=0;i<3;i++) AddOneCourseInfo(&courseInfo[i]);
TeacherInfo teacherInfo[3]; /*初始化三个教师信息*/
strcpy(teacherInfo[0].teacherId,"TH001");
strcpy(teacherInfo[1].teacherId,"TH002");
strcpy(teacherInfo[2].teacherId,"TH003");
strcpy(teacherInfo[0].teacherName,"汪老师");
strcpy(teacherInfo[1].teacherName,"梁老师");
strcpy(teacherInfo[2].teacherName,"李老师
阿星先森
- 粉丝: 203
- 资源: 1451
最新资源
- 基于仿真驱动的成本高效机场轮椅协助服务研究与优化
- 2007年跨学科建模竞赛ICM结果发布与分析
- 2024认证杯D题模型建立与求解MATLAB代码
- 2007年国际数学建模竞赛结果公告
- vue框架基础练习文档
- 应用Voronoi图解决美国立法区域重划的问题
- 电商行业爬虫开发案例分析
- 拓扑学方法解决美国选区划分的公平性和简单性问题
- 数学与模拟方法优化飞机登机过程:提高效率与可靠性的方法探讨
- 2024认证杯D题模型建立与求解MATLAB代码
- JAVA的SpringBoot敏捷开发框架源码带文档数据库 MySQL源码类型 WebForm
- 飞机登机过程优化的新型模拟方法
- 器官分配优化模型及其政策影响研究
- Matlab读取全球气候模式(GCM)地面数据代码
- Matlab读取全球气候模式(GCM)高空数据代码
- 2008年国际跨学科建模竞赛(ICM)获奖结果通报与分析报告
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈