学生登陆以后,可以选报课程。系统会根据学生所在系及课程的预修课判断
1. 系统会列出所有满足该生还未选报的课程,或者其预修课为公共课的课程。如果该生选报了未满足预修课要求的课程,系统会有相关的错误提示。例如:高等数学(二)的预修课为高等数学(一)
2. 学生可以查看自己的成绩,包括该生已选课程的名称,学分以及该生的总分。如果教师还未给出成绩,则系统会有相关提示。
3. 该生可以更改自己的个人信息,包括密码,电话号码等,其中要求密码不能为空。
4. 学生课表,有时间,地点,课程名,老师名,如果老师还没有选择课程而此时学生又查询课表,老师名可以为空
3.4.2 <老师模块>
教师在本系统中拥有是否接受学生所选课程,以及给学生打分的权力,只有先接受学生,才能给该生打分。
1. 系统要求教师选择学生,然后系统会列出该教师所代课程的班级,然后系统会列出选报了该课程的所有学生;可以看到学生
〖本文来自:计算机毕业网 myeducs.cn〗的一些详细情况
2. 学生考试完后,教师确认学生成绩之后,系统会根据总成绩来判断该生是否通过了考试。
3. 总成绩是由考试成绩×80%+平时成绩×20%;考试成绩由学生考完试后系统自动打分,平时成绩老师给出;平时成绩占老成绩的百分比由老师给出。
4. 考试成绩和平时成绩的分数范围0-100,老师课表,有时间,地点,课程名,班级名
3.4.3 <教学管理员模块>
1. 管理员在本模块中有着最高的权力,包括新增,更改,删除学生,教师,课程以及班级。
2. 管理员负责排课,要保证同一教师在同一时间不能上两门课程等等约束。
3.4.4 <考试模块>
1. 能从数据库中随机抽取所需专业的考试科目。
2. 学生考完后自动评分。
3.4.5 <权根模块>
1. 所有web页面需要页面权限验证,对不同的模块分配不同的访问权限。例如:学生进入学生模块,而不能进入管理员模块;图书管理员只能进入图书借阅模块
2. 系统管理员可以增删改查其他管理员(教学管理员;BBS管理员;图书管理员)
3. 系统管理员的用户名和密码可以预先在数据库中设定。
7.3.1 分页的分析
参考网上对分页的分析,用的多的分页方法有三种:(依数据来分类)
1、一次性把要想得到的数据从数据库中取出来,这种方法恰用于数据量小时用,不过不推荐。
优点: 一次取出,数据全在缓存里,跳转到其它分页时速度极快。
缺点: 第〖本文来自:计算机毕业网 myeducs.cn〗一次取出全部数据,放在缓存中,极度的浪费了资源。
2、每次只取当前页面所需要的数据。适合数据量比较大。
优点:每次只取出每需页面的数据,大大减轻了缓存中的数据量。
缺点: 每一次分页跳转时都要连接数据库,对数据库造成了压力。
3、每次取出几个页面的数据,分在缓存中,当缓存中没有页面每需的数据时,再从数据中取。比较适合表中数据超大,比如几百万条的数据。
优点:终合了1,2两种方法的好处,由系统分析员来把握一个最佳的度。
缺点:加大了分页算法的难度和逻辑量。
7.3.2 分页的设计
由以上的分析,我选择了第2种方法来实现。
1、关于取数据库记录的实现:
函数1: 取出要从表中取出的数据的总条数。(见附录中文件4)
函数2: 要实现第2种方法,那么取数据的方法是动态的。也就是说每次由当前页来决定是取第多少条数据。SQL语句很重要,要给两个参数,比如说form 第一个参数 to 最后一个参数 这么多数据。(见附录中文件5)
2、关于分页类的实现:
分页类,主要功能是把当前页码,总页码,每页数据条数,总条数,等等数据的setter()和getter()方法。 主要是还给了一个分页控件,此控件就是一个函数所实现的,参数是提交的servlet名,返回的就是html代码,这个代码就是分页控件。(见原代码中com.sevenEleven.javaBean.Page.java)
3、servlet的实现:
servlet1: 生成初使化页面。(见附录中文件6)
servlet2: 生成非初使化页面。(见附录中文件7)
4、jsp页面要加的东东:
只需要在servlet中取出控件(String),通过request.setAttribute()方法显示到页面中就行了。分页Jsp页面上要添加
${choose1PageStr}//插入你想显示这个控件的地方