PB制作学生成绩管理系统分析书_第1页
PB制作学生成绩管理系统分析书_第2页
PB制作学生成绩管理系统分析书_第3页
PB制作学生成绩管理系统分析书_第4页
PB制作学生成绩管理系统分析书_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、- - 学生成绩管理系统总结报告学号: 091006129 姓名:邢明辉- - 目录一、系统分析与设计 .31、系统来源 3 2、功能分析 3 3、系统功能模块设计 . .4 二、系统制作 .5 1、数据库设计与实现 5 1)数据库设计 .5 2)创建数据库 .6 2、创建应用对象 .9 3、设计登录窗口 .9 4、设计“学生成绩查询系统”模块.12 5、设计教师管理窗口模块 .17 6、设计管理员窗口模块 .21 三、使用说明 .23 四、优缺点分析 .24 五、参考文献 .24 - - 系统分析与设计1、系统来源如今计算机科学已应用到社会的各个方面,它使事物的处理快捷化、简单化。高校的教务

2、管理系统就是一例, 随着在校学生人数的不断增加学校成绩管理的任务日益繁重, 必须借助现代化的高效管理工具。因此作为教务管理系统重要组成部分的学生成绩管理系统就起到了很大的作用,有必要进行研发制作。2、系统功能分析本阶段就是分析该系统的主要功能以及它所解决的用户面临的问题,最后由用户确认该系统的功能和用处。(1)、学生信息的输入和存储,包括学号、姓名、专业名、性别、出生日期、总学分和备注等。(2)、课程信息的输入和存储,包括课程号、课程名、开课时间、学时和学分等。(3)、对学生信息的修改、增加、删除、修改以及定向的查询等。(4)、对课程信息的修改、增加、删除、修改以及定向的查询等。(5)、可以进

3、行用户的添加和存储,包括用户名、密码、用户权限。(6)、 用户输入用户名和密码后系统根据其在用户表注册的权限进入不同的应用系统。(7)、 学生登录时系统根据其用户名 (即学号)进入对应的学生成绩查询系统,可以进行本人的所选课程成绩的查询、打印以及所选课程的信息,不同的学生用户进入各自的成绩查询系统避免了能查询其他学生成绩的问题。(8)、教师登录时系统根据用户名 (这里用户名与课程号对应即一名教师任教一门课)进入对应的教师管理系统,可以进行该课程学生成绩的录入、修改及置零。(9)、学生、教师和管理员的登录密码都可以进行修改(10)、本系统界面色彩跳动不大布局简单整洁。- - 3、系统功能模块设计

4、根据上述的分析以及模块化程序设计要求得如图所示的功能模块图。学生成绩管理系统教师管理窗口管理员窗口学生成绩查询系统密码修改所选课程查询密码修改所选课程成绩查询选该课学生信息查询选该课的学生成绩录入密码修改学生信息输入、修改等操作课程信息输入、修改等操作用户添加- - 图 1.1 系统功能模块系统制作一、数据库设计与实现数据库结构的好坏直接影响到系统的实现效果和数据操作效率以及能否保证数据的一致性、 完整性和安全。 所以数据库在一个信息系统中占有非常重要的地位。1、数据库设计根据学生成绩管理系统的功能要求,通过分析系统要涉及的相关实体以及要收集、存储和操纵的数据信息,得到如图2.1 所示的系统

5、e-r 图。根据系统 e-r 图得到以下关系模式。学生基本信息 (学号,姓名,专业名,性别,出生日期,总学分,备注)。课程(课程号,课程名,开课学期,学时,学分)。成绩(学号,课程号,成绩,学分)。教师(教师号,课程号,课程名,姓名,性别,出生日期) 为了系统的使用安全, 要建立用户管理, 而用户使用权限分为学生、 教师和管理员三类,因此需要建立一个存储用户信息的关系。用户(姓名,密码,权限 ) - - 图 2.1 系统 e-r 图2、创建数据库在 powerbuilder 开发环境中打开数据库画板,使用【odb odbc】接口建立 adaptive server anywhere 9.0(a

6、sa 9.0)的数据库 g:workspacexing.db, 然后依次建立以下各表。学生基本信学号姓名性别专业名课程名课程号备注出生时间总学分成绩课程教师开课学期学时学分学号课程号成绩学分教师号课程号课程名性别出生日期查询选课录入教授- - 1) “学生”表表名: xs 主键: xh 各列表属性见表 2-1。表 2-1 “学生”表的属性列名数据类型宽度空值标识xh char 6 no 学号xm char 8 no 姓名zym char 10 yes 专业名xb bit no 性别date date no 出生日期total tinyint yes 总学分bz char 20 yes 备注2)

7、 “课程”表表名: kc 主键: kch 各列表属性见表 2-2 表 2-2 “课程”表的属性列名数据类型宽度空值标识kch char 3 no 课程号kcm char 16 no 课程名kkdate tinyint no 开课学期xsdate tinyint no 学时xf tinyint yes 学分3) “成绩”表表名: xs_cj 主键: xh 和 kch 各列表属性见表 2-3 表 2-3 “成绩”表的属性列名数据类型宽度空值标识xh char 6 no 学号kch char 3 no 课程号kcm char 10 yes 课程名cj tinyint yes 成绩xf tinyint

8、 yes 学分4) “教师”表表名: jiaoshi 主键: jsh 各列表属性见表 2-4 表 2-4 “教师”表的属性列名数据类型宽度空值标识jsh char 3 no 教师号- - kch char 3 no 课程号kcm char 16 no 课程名xm char 8 no 姓名xb bit no 性别rq date no 出生日期5) “用户”表表名: dl 主键: yhm 各列表属性见表 2-5 表 2-5 “用户”表的属性列名数据类型宽度空值标识yhm char 6 no 用户名mm char 6 no 密码qx char 10 no 权限6) “选课”表表名: xskc 主键:

9、 xh 和 kch 各列表属性见表 2-6 表 2-6 “选课”表的属性列名数据类型宽度空值标识xh char 6 no 学号kch char 3 n0 课程号kcm char 10 yes 课程名各个表之间通过外键形成如图2.3 所示的关联关系。图 2.3 表的关联关系- - 二、创建应用对象完成数据库的设计和系统功能设计之后,可以开始各个功能模块的实现。在powerbuilder 中开发应用程序时,就是创建各种对象、为对象设置属性以及编写事件脚本的过程。 但不是简单的顺序过程, 有时需要返回为前面创建的对象补充脚本。下面开始本实例在powerbuilder 中的实现。(1) 创建新的工作空

10、间(2) 创建应用对象(3) 打开应用对象画板(4) 为应用对象的 open事件编写如下代码/ pro sqlca.dbms = odbc sqlca.autocommit = false sqlca.dbparm = connectstring=dsn=xing;uid=dba;pwd=sql connect; if sqlca.sqlcode0 then messagebox( 提示,数据库连接失败! ) else open(w_dl) end if 注意:这里登录窗口已经设置,如果没有设好应将open(w_dl)屏蔽掉。三、设计登录窗口登录窗口如图 3.1 所示1、创建窗口并设置属性创建

11、登录窗口 w_dl,调节大小,在窗口上放置1 个图片控件( p_1)、3 个静态文本控件( st_1、st_2、st_3) 、2 个单行编辑器控件( sle_1、sle_2) 、3 个单选钮( rb_1、rb_2、rb_3) 、2 个命令按钮( cb_1、cb_2) 。各个控件大小位置按照图4.1 调整- - 2、编写脚本(1)在 global 里定义全应用程序变量(后来的窗口还要用到这些变量)string yh string nn (2)在 instance里定义局部全局变量integer n1 (3)【确定】按钮 cb_1 的 clicked 事件脚本如下图 3-1 string q yh

12、=sle_1.text select mm,qx into :nn,:q from dl where yhm=:yh using sqlca; - - if nn=sle_2.text then if q= 学生 and rb_1.checked then open(w_x1) close(parent) else if q=学生 and (rb_3.checked or rb_2.checked) then messagebox( 错误, 权限选择错误 ) end if if q=教师 and rb_2.checked then open(w_x2) close(parent) else i

13、f q= 教师 and (rb_1.checked or rb_3.checked) then messagebox( 错误,权限选择错误 ) end if if q= 管理员 and rb_3.checked then open(w_x3) close(parent) else if q=管理员 and (rb_1.checked or rb_2.checked) then messagebox( 错误,权限选择错误 ) end if end if end if end if else if n1=2 then messagebox( 错误,关闭窗口 ) close(parent) - -

14、else messagebox( 错误,帐号或密码错误 ) sle_2.setfocus() sle_1.setfocus() n1=n1+1 end if end if (4)【放弃】按钮 cb_2 的 clicked 事件脚本如下int ret ret=messagebox( 提示,确定退出 ?,exclamation!,yesno!,2) if ret=1 then close(parent) else return end if 四、设计“学生成绩查询系统”模块1、系统主窗口如图4-1 - - 图4-1 2、其对应的选单为图4-11 图 4-11 (1)“密码修改”对应的代码为open

15、(w_mmxiugai) “注销”对应的代码为open(w_dl) close(parentwindow) “关闭”对应的代码为int ret ret=messagebox( 提示,确定退出 ?,exclamation!,yesno!,2) if ret=1 then close(parentwindow) else return - - end if (2)“所修课程”对应的代码为open(w_kc) close(parentwindow) w_kc.dw_1.settransobject(sqlca) w_kc.dw_1.retrieve(yh) (3)“课程成绩”对应的代码为open(w

16、_xscj) close(parentwindow) w_xscj.dw_1.settransobject(sqlca) w_xscj.dw_1.retrieve(yh)(4)“关于”对应的代码为open(w_zz) 注意:这里的 w_mmxiugai、w_kc、cw_xscj、w_zz 窗口是后面待建的3、密码修改窗口如图4-2 该窗口被命名为w_mmxiugai (1) 【确定】按钮的 clicked 事件脚本为string n3 string n2 string n1 n2=yh n3=nn if sle_1.textn3 then messagebox( 提示,旧密码错误 ) else

17、 if sle_2.text=sle_3.text then n1=sle_2.text update dl set mm=: n1 where yhm=:n2 and mm=:n3 using sqlca ; messagebox( 提示,密码修改完成 ) - - else messagebox( 提示,两次密码不同 ) sle_1.setfocus() end if end if (2) 【关闭】按钮的 clicked 事件脚本为close(parent) 图 4-24、学生所选课程查询窗口如图4-3 该窗口被命名为 w_kc 【返回】按钮的 clicked 事件脚本为open(w_x1)

18、 close(parent) - - 图 4-3 该窗口里的数据窗口控件的对象如图4-31 图 4-31 5、学生所选课程成绩查询窗口为图4-4 - - 图 4-4 该窗口被命名为 w_xscj 【返回】按钮的 clicked 事件脚本为open(w_x1) close(parent) 【打印】按钮的 clicked 事件脚本为dw_1.print(true) 其中的数据窗口对象如图4-41 图 4-41 五、设计教师管理窗口模块- - 1、该模块的主窗口为如图5-1 图 5-1 2、该主窗口对应的选单如图5-2 图 5-2 (1)“密码修改”对应的代码为open(w_mmxiugai) “注

19、销”对应的代码为open(w_dl) close(parentwindow) “关闭”对应的代码为int ret - - ret=messagebox( 提示,确定退出 ?,exclamation!,yesno!,2) if ret=1 then close(parentwindow) else return end if (2)“成绩管理”对应的代码为open(w_xscj2) close(parentwindow) w_xscj2.dw_1.settransobject(sqlca) w_xscj2.dw_1.retrieve(yh) (3)“查看学生”对应的代码为open(w_xsxi2

20、) close(parentwindow) w_xsxi2.dw_1.settransobject(sqlca) w_xsxi2.dw_1.retrieve(yh)(4)“关于”对应的代码为open(w_zz) 注意:这里的 w_xscj2、cw_xsxi2、w_zz 窗口是后面待建的3、选此课的学生成绩的录入与修改窗口如图5-3 图5-3 该窗口被命名为w_xscj2 【全部置零】按钮的clicked 事件代码为- - int m=0,n=0 update xs_cj set cj=: m,xf=: n ;messagebox( “ 提示” ,” 置零成功重新进入 ” ) 【录入并保存】按钮

21、的clicked 事件代码为 dw_1.update() messagebox( “ 提示” ,” 已存入数据库 ” ) 数据窗口对象如图5-31 图 5-31 4、选此课的学生信息窗口如图5-4 图 5-4 数据窗口对象如图6-11 - - 图 5-41 该窗口被命名为 w_xsxi2 “关于”窗口如图5-6 图 5-6 命名为 w_zz密码修改窗口与上一模块类似这里不再说明六、管理员窗口模块的制作该模块采用选项卡的模式进行制作1、选项卡默认界面为密码修改(前面已介绍过)2、课程管理窗口如图6-1 数据窗口对象如图6-11 图 6-11 - - 图 6-1 【浏览】按钮的 clicked 事

22、件代码为dw_1.settransobject(sqlca) dw_1.retrieve() 【增加】按钮的 clicked 事件代码为long row row=dw_1.insertrow(0) dw_1.setrow(row) dw_1.scrolltorow(row) dw_1.setfocus() 【删除】按钮的 clicked 事件代码为 dw_1.deleterow(dw_1.getrow() 【插入】按钮的 clicked 事件代码为long row row=dw_1.insertrow(dw_1.getrow() dw_1.setrow(row) dw_1.scrolltoro

23、w(row) dw_1.setfocus() 【保存】按钮的 clicked 事件代码为dw_1.update() messagebox( “ 提示” ,” 已存入数据库 ” ) 【返回】 【关闭】按钮上文已讲过- - 3、 “学生管理”与“教师管理”的创建过程与此类似4、用户管理窗口如图6-2 数据窗口对象如图6-21 用户管理中的按钮在上文都有所涉及这里就不再多说。图 6-21 图 6-2 使用说明1、在 pb 中打开文件点击运行按钮进入登录界面2、管理员的初始用户名为201 密码为 2,进入管理员界面可以添加用户注意添加的学生用户在系统中必须有其对应的选课、成绩表中有其课程成绩他查到这- - 些信息(学生用户名与学号一样) 。添加教师用户也一样,系统中必须有该课程(教师所任教的)的相关信息教师才能进行相关操作(教师用户名与课程号一样)3、学生用户定义了三个分别为用户名001、密码 2,用户名 002 密码 2,用户名 003 密码 2,用户名或密码错误是会有相应的提示,登录三此不成功是系统自动关闭。学生用户登录成功后进入学生成绩查询系统,在系统中可以进行密码的修改、自己选修的所有课程信息的查看、自己所选课程成绩的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论