教务管理选修课子系统.docx
- 文档编号:7710878
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:17
- 大小:169.93KB
教务管理选修课子系统.docx
《教务管理选修课子系统.docx》由会员分享,可在线阅读,更多相关《教务管理选修课子系统.docx(17页珍藏版)》请在冰豆网上搜索。
教务管理选修课子系统
教务管理选修课子系统
教务管理选修课子系统
姓名张仕锋组
团队代号00001
日期:
2007年10月8日
C语言《教务管理选修课子系统》概要设计
1.引言
1.1背景
a.软件系统的名称
《Elective_Course_system》
b.简单功能介绍
各种基本数据的录入,修改,删除,查询,统计计算。
对于系统的简单操作,如:
改
变用户的密码、增加和删除用户、设置数据文件的路径等等。
2.系统概要设计
2.1系统需求分析
2.1.1系统功能
系统管理:
a.系统设置
此功能主要是针对管理员的设计的,管理员可以添加、删除用户(包括学生和老师)。
插入数据:
a.新建班级
班级是这个系统中最大的一级数据,只有建立了班级才能添加学生。
b.新建学生
使用这个功能可以让刚刚入学的新生、转学生登记进入教务管理系统,并分
配到相应的班级中。
c.教师开课
学生要选课,教师要先开课。
同时设置课程的教师、教室、限选人数等。
d.学生选课
学生要选课,只需要输入课程代码就可以了。
如果没有教师开课这个功能,
学生选课就很麻烦,也很难处理。
修改、删除数据:
a.修改学生
可以添加学生的基本信息,修改部分基本信息、密码,管理员也可以为其解除锁定(当学生账号登陆的时候三次密码不对,将会锁定其账号)
b.录入/修改成绩
录入或者修改学生的选修课成绩。
c.修改课程
可以修改开课的课程名称、教师、教室、限选人数、学分等等。
d.删除学生
删除一个学生,同时删除其课程,原选课人数、班级人数、班级平均分同时动态变化。
e.退选课程
删除一个学生选择的某课程。
同时原选课人数也发生变化。
f.删除班级
删除一个班级,同时删除其学生、学生选的课程,其他相关信息同时动态变化。
g.删除课程
删除一门已经开的课。
查询数据:
a.查询班级
可以通过多条件并列模糊查找数据库中满足条件的班级(如人数等)。
b.查询学生
可以通过多条件并列模糊查找数据库中满足条件的学生。
c.查询开课
可以通过多条件并列模糊查找数据库中满足条件的已经开设的课程。
d.查询成绩
学生只能查找自己的成绩,而管理员可以通过多条件并列模糊查找数据库中满足条件的成绩
e.详细班级
输入班级编号,查询班级信息。
f.详细学生
输入学生编号,查询学生信息。
g.详细课程
输入课程编号,查询课程信息。
输出报表:
a.课程报表
输出所有已经开设的课程并显示相关信息。
b.班级报表
输出所有已经存在的班级并显示相关信息。
c.成绩报表
先选定课程,之后可以选择按照升序或降序排出选修此课程学生的总评成绩的名次,或者只输出该科不及格学生的名单。
帮助:
a.关于
显示系统的版权信息。
2.1.2输入输出要求
输入要求:
提示用户输入,当输入错误时,有提示输入错误的信息;
输出要求:
根据用户的要求正确的输出相应的结果,显示的结构具有直观性,并且带有人性化的一些提示信息;
2.2基本设计和处理流程
基本设计概念:
模块化设计。
采用功能分解方法,该方法是将一个系统看成由若干
功能构成的一个集合,每个功能又可以划成若干个加工(即子功能),一个加工又进一步分解成若干工步骤(即子加工)。
处理流程:
2.3系统结构
模块解析:
2.4功能需求与系统模块的关系
系统设置
班级管理
课程管理
学生管理
课程选择
资料修改
退出模块
设定系统配置文件
√
新建班级
√
修改班级资料
√
(详细)查询班级
√
√
√
√
班级报表
√
删除班级
√
新建学生
√
修改学生资料
√
√
学生报表
√
√
√
√
√
学生报表
√
√
√
√
删除学生
√
录入/修改成绩
√
查询成绩
√
√
成绩报表
√
√
开设课程
√
修改课程资料
√
(详细)查询课程
√
√
退选课程
√
删除课程
√
学生选课
√
帮助关于
√
2.5尚未解决的问题
1.怎样建立班级与学生、学生与选课程、学生与成绩之间联系,如何有效的在它们之间进行操作。
2.结构体的设计,不能明确各个数据结构之间包含关系和从属关系。
3.数据的保存问题,不同结构(如:
学生基本信息、学生选课信息、学生成绩信息、班级信息等)数据的存放以及各个数据之间的内在联系。
4.数据的安全性以及稳定性,删除一个学生,同时删除其课程,原选课人数、班级人数、班级平均分同时动态变化;删除一个班级,同时班级中所有学生的全部信息也要删除。
5.系统设置中要把文件路径可变,那么也就是说存储数据的文件与源程序所在目录不一定相同。
这样的话在读,存的时候就要先查找数据文件,这里就牵扯到相对和绝对路径的问题,以及代码移植后是否能正常运行的问题。
6.进行模糊查询时,各个条件之间是否存在冲突以及因此而引起的错误等。
7.因为密码输错而造成的帐户被冻结情况以及由管理员分配密码等。
3.系统数据结构设计
3.1逻辑结构设计要点
a.学生基本信息格式:
学号(stuNum):
字符型(char[9])(9位)
姓名(stuName):
字符型(char[15])(小于15位)
性别(stuSex):
字符型(char[1])(M/F)
年龄(stuAge):
数值型(int)
所选课程编号(courseNum):
字符型(char[5])
所在班级编号(classNum):
字符型(char[5])
b.教师基本信息格式:
教师工号(teacherNum):
字符型(char[9])(9位)
教师姓名(teacherName):
字符型(char[15])(15位)
教师性别(teacherSex):
字符型(char[1])(M/F)
c.所选课程信息格式:
课程编号(courseNum):
字符型(char[5])
课程名称(courseName):
字符型(char[15])
学分(Credit):
数值型(int)
所选人数(selectCount):
数值型(int)
授课教师(Teacher):
字符型(char[15])
教室(Classroom):
数值型(int)
d班级信息格式:
班级名称(className):
字符型(char[15])
班级编号(classNum):
字符型(char[5])
班级人数(classCount):
数值型(int)
e学生成绩信息格式:
考试成绩(examDegr):
数值型(int)
平时成绩(commonDegr):
数值型(int)
f.用户文件格式:
用户名(UserName):
字符型(char[15])(用户名长小于15)
密码(Password):
字符型(char[15])(密码长度小于15)
3.2具体结构体设计
typedefstruct/*学生基本数据存储类型*/
{
charstuNum[9];/*学生学号*/
charstuName[15];/*学生姓名*/
charstuSex[1];/*学生性别*/
intsutAge;/*学生年龄*/
charcourseNum[5];/*课程编号*/
charclassNum[5];/*班级编号*/
}STUDENT;
typedefstrtuct/*教师基本数据存储内型*/
{
charteacherNum[9];/*教师工号*/
charteacherName[15];/*教师姓名*/
charteacherSex[1];/*教师性别*/
}TEACHER;
typedefstruct/*所选课程数据存储类型*/
{
charcourseNum[5];/*课程编号*/
charcourseName[15];/*课程名称*/
intselectCount;/*所选人数*/
charTeacher[15];/*授课老师*/
intClassrom;/*上课地点*/
intCredit;/*课程学分*/
}COURSE;
typedefstruct/*班级基本数据类型*/
{
charclassNum[5];/*班级编号*/
charclassName[15];/*班级名称*/
intclassCount;/*班级人数*/
}CLASSES;
structDegree/*学生成绩基本数据类型*/
{
charcourseNum[5];/*课程编号*/
intexamDegr;/*考试成绩*/
intcommonDegr;/*平时成绩*/
}DEGREE;
typedefstruct/*用户的基本数据类型*/
{
charuserName[15];/*用户名*/
charPassword[15];/*密码*/
}USER;
3.3物理结构设计要点
每个数据结构都存放在链表中,在存放到文件中去。
3.4数据存放文件划分
学生基本信息数据存放文件:
Students.dat
教师基本信息数据存放文件:
Teachers.dat
所选课程数据存放文件:
Courses.dat
班级基本数据存放文件:
Classes.dat
学生成绩基本数据存放文件:
Degrees.dat
学生登录数据存放文件:
stuUsers.dat
教师登录数据存放文件:
teacherUsers.dat
管理员登录数据存放文件:
admUsers.dat
4.函数声明
/*学生模块函数申明*/
voidstuAlterSecret();/*修改密码*/
voidstuSelectCouse();/*学生选课*/
voidstuSearchCouse();/*查询选课信息*/
voidstuSearchScore();/*查询成绩信息*/
/*教师模块函数申明*/
voidteacherAlterSecret();/*修改密码*/
voidteacherAddScore();/*添加学生成绩*/
voidteacherSearchInfor();/*查询学生信息*/
voidteacherSearchScore();/*查询学生成绩*/
/*管理员模块函数申明*/
voidadmAlterSecret();/*修改密码*/
voidRegister();/*注册功能*/
voidadmAdd();/*添加功能*/
voidadmAlter();/*修改功能*/
voidadmDelete();/*删除功能*/
voidadmSearch();/*查询功能*/
voidadmOutputReport();/*输出报表*/
/*管理员模块之添加功能*/
voidadmAddStudent();/*添加学生*/
voidadmAddTeacher();/*添加教师*/
/*管理员模块之删除功能*/
voidadmDelStudent();/*删除学生*/
voidadmDelTeacher();/*删除教师*/
/*管理员模块之修改功能*/
VoidadmAlterStudent();/*修改学生信息*/
VoidadmAlterTeacher();/*修改教师信息*/
/*管理员模块之输出报表功能*/
VoidadmOutputClass();/*输出班级报表*/
VoidadmOutputScore();/*输出成绩报表*/
VoidadmOutputCourse();/*输出课程报表*/
/*管理员模块之注册功能*/
VoidstuRegister();/*注册学生*/
VoidteacherRegister();/*注册教师*/
Voidhelp();/*帮助声明*/
5.系统显示菜单结构设计
登录页面:
学生端页面:
教师端页面:
管理端页面:
管理端之添加功能页面:
管理端之删除功能页面:
管理端之添加功能页面:
管理端之输出报表功能页面:
管理端之注册功能页面:
4.系统出错处理设计
4.1出错信息
输入错误
1.当选择菜单时,输入的数据不存在,则提示用户输入错误,并且重新输入。
2.当用户误输入了信息,比如:
输入学生年龄和学号时输入的是字符,而不是整型的数据,则提示用户输入错误,并要求其重新输入。
3.
输入的数据有效性
1.输入学生基本信息时,学生学号位数大于或则小于要求位数,性别只有男女,年龄不能为负数或则大于100,电话号码位数,姓名的长度。
2.输入学生成绩时,学生的成绩必须在0~100之间,当输入的数据不符合要求时,则显示数据不正确的提示信息,并要求用户重新输入。
3.添加新学生的时,不能添加相同学号的学生,如果新建的学生的学号重复,则提示用户不能新建相同学号的学生,并提示用户是否继续新建。
细节问题
1.删除班级的时候,必须同时删除这个班级中所有的学生的全部信息。
2.新建学生时,必须在班级存在的前提下,如果这个班级不存,则显示不能新建该学生的提示信息,并提示用户是否继续添加。
3.删除学生信息时,同时删除其选课程,原选课人数、班级人数、班级平均分同时动态变化。
4.
使用的人性化
1.删除信息时,提示用户是否删除的信息,提高该软件与用户之间的交互性。
2.在登录系统时,每个用户提供三次出错的机会,当输入的用户名不存在时,则显示不存在此用户,当输入的密码错误时,则提示密码输入错误,并且当输入三次密码都为错误时,则冻结此用户,提高了系统的安全性。
3.在查询信息时(查询班级、查询学生、查询课程等),分为模糊查询和详细查询,当不能查询到信息时,则提示要查询的信息不存在,如果查询成功,则显示其想要的信息。
4.学生选课时,提示该选课的选课人数是否已经满,以及该学生的选课数是否已经达到最大,同时在选课时显示所有可以选择的科目。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教务 管理 选修课 子系统