软件工程硕士论文

您当前的位置:学术堂 > 毕业论文 > 在职硕士论文 > 工程硕士论文 > 软件工程硕士论文 >

教师与管理员管理系统功能实现

来源:学术堂 作者:陈老师
发布于:2017-01-09 共2624字
  本篇论文快速导航:

展开更多

      5.4 教师功能实现
  
  教师页面中我们可以进行有关成绩的一系列操作,包括成绩录入,修改,查询等,除此之外,教师还可以查询学生相关信息,查询班级,所教课程信息等,从功能的重要性和实现功能的主次区分来看,我们将这些功能分为成绩功能和其他信息查询功能两个部分。
  
  5.4.1 成绩功能实现
  
  在有关成绩处理的一系列功能,包括确定范围的成绩查询,成绩录入和更改等。以下为具体实现代码。
  
  成绩查询功能中,查询和匹配功能与学生信息查询和匹配相同,不同的是如何去实现确定范围的成绩查询,比如某个班的成绩,又比如某一分值到某一分值之间成绩的查询,这里代码实现时我们主要考虑使用容器的思想,即不同范围仅仅是不同的容器定义,所在容器内部的成绩则是我们需要输出的结果,具体实现时我们使用类 ArrayList getScoresListBySearch(ScoresSearch scoresSearch )来实现,scoresSearch即为我们确定的成绩容器范围输出,查询结果分页显示时,使用 pageBean函数实现,程序输出一个 pageBean.getPageSize(),即所显示信息的大小,然后通过这个 getPageSize()所得到的数据(比如 1-15),和我们一页之间显示的数据量的比较,再去设定页面数与页面号,页面号由函数pageBean.getPageNo()来设定。成绩录入所使用的仍然是 append()函数,使用方法为 append(“”+添加信息+“”),添加完成后使用 this.updateData()来实现数据的更新。至于成绩修改和删除具体思想都相似,每次关于成绩操作如果需要进行批量操作,需要引进 scoresIDs量的概念,即成绩的序号,通过引进成绩序号这一概念来实现成绩的统计信息处理,从而帮助教师更广泛和全面的获取成绩信息,除此之外 scoresIDs的引入也方便我们批量管理成绩,便于我们批量添加或删改成绩。
  
  在成绩录入,修改和删除部分由于涉及到对现有数据的更改,使用类boolean editScores( Scores scores)来实现,Scores 是一个已经存在的变量类型,要注意通常在 Scores 的累加过程中会出现溢出,这是因为 Scores 定义时容量为char(4),解决方法是设置一个 StringBuffer(100),来首先完成分数的累加,然后在变量转换过程中完成 int to char 的转换,从而得到一个符合大小的分数,存入数据库中,另外在。append()方法的调用中,需要注意字段的顺序和分别,比如分数概念中就十分容易混淆单科分数和总分数等信息,需要我们留意并加上相应的区别符号,还有。append 的顺序直接决定了数据存储和读取的顺序是否正确,在这里同样采用List的思想,首先将这几个。append字段作为变量保存在一个List中,然后根据这个 List 来统一生成,这样即加快了工作进度,又保证了正确性。
  
  以下为成绩录入修改和删除的实现部分的关键代码:
  
  5.4.2 其他信息查询
  
  这一部分功能包括课程和班级信息的查询,课程主要是该教师所教的课程信息,而班级信息包括自己所教课程的上课班级,和自己录入成绩的有关班级。具体实现关键代码如下:
  
  通过 sqlBuf.append()来实现信息提取时,要注意 append()这个函数的定义,append 在 JDK 中的定义中有 toStringCache=null,这是来源于 Java 源码中cache 的定义问题,许多人会觉得 cache 不会为 null,但信息提取时如果 String无意义,并不代表不进行提取,只不过不提取相应字串的功能,也就是toStringCache 值为 null,但这个字串还是需要保存的。再添加数据库信息时,使用 StringBuffer sqlBufValues = new StringBuffer 实现,sqlBufValues 是我们新添加的数据信息,同样的道理,还是需要调用 append 功能,比如在添加学生学号这一信息时,就可以用。append(“”+ student.getCode(学生学号)+“”)来实现。图 5-8 和 5-9 分别是教师页面下班级和课程信息查询结果展示。
  
  5.5 管理员功能实现

  
  在系统功能与数据库分布设计中,管理员是一个独立于其他用户和功能的等级,如果说的更明确一些,就是管理员具有以上所描述的所有功能,在此基础上还可以对这些功能模块进行更改,并且在系统主页发布信息。
  
  管理员属于超级用户,这也就意味着管理员身份的用户没有了权限的限制,反而需要加强对其身份的验证,所以在代码实现部分我们不设置信息的分层保密等功能,加大身份验证的程度,从而最大程度上保证管理员对系统的正确使用和系统不受到管理员特殊权限的影响。
  
  由于实现功能的特殊性,管理员功能接口设计颇为复杂,需要再次引入ArrayList 容器的概念,在功能的修改上,管理员具有独立于其他用户的功能,比如添加修改班级,专业和教师学生人员信息等,实现过程中 admin()和adminMgr()分别实现功能接口和具体实现,以下为 admin()具体实现的接口代码。
  
  在这一部分的接口代码中最重要的是信息存在性的验证,由于管理员身份的特殊性,我们要防止其他人冒充管理员的身份进入系统,对信息进行恶意的篡改,以 adminMgr 这一信息的存在性验证为例,在 impl = newadminMgrImpl()访问中,通过 bool checkexisted 来检验 adminMgrImpl信息是否存在,然后将这个 bool 值传递到下一函数中进行比对,如果结果为 true,则进行身份验证,否则不予验证。其他部分的信息也是采用这一思想来完成。
  
  在 adminMgr()中,由于管理员具有读取任意数据库资料的权限,为此需要引进 Java 异常与回收机制中的 SQL Exception,即数据库异常。此外在实现功能时,我们只为管理员设定 Insert,Update,Delete 三个功能,具体针对什么对象去执行 Insert,Update,Delete,或者说对什么数据去执行,我们都不在程序中实现,而是之间使用容器 ArrayList 的思想,为三个功能的对象设置容器,不关心每一个Obj 的数据甚至格式,而是直接去处理。处理过程与上文中的所描述基本一致,即采用先录入后查看的方式,对每一个数据进行相对应的比对,然后得到结果,每一个结果与结果之间都是相联系的,以保证数据格式一致,查看的时候方便人员操作,更方便将来数据的修改和删除,这种思想将大大减轻系统后期的维护代价和升级费用。以下为 adminMgr()具体功能实现关键代码:
  
  5.6 本章小结
  
  本章是本此研究中最重要的一章,具体对从连接数据库到完成界面,再到学生,教师,管理员各部分功能模块的设计与实现。在学生功能中完成了本次研究的重点,即对成绩的管理与查询,而在教师功能模块中则实现了成绩的录入,删除和修改,最后在对管理员功能的设定中,我们明确了管理员特使的管理权限和功能。本章节中,对每一个功能的实现,我们都从关键代码和界面展示两个角度来进行说明,力求论文的严谨和完整,同时对部分关键代码从使用方法和使用思想的校对进行了说明。
返回本篇论文导航
相关内容推荐
相关标签:
返回:软件工程硕士论文