




免费预览已结束,剩余16页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
网络05101 学生成绩管理系统 2007 V正式版 学生成绩管理系统(一)学生成绩管理系统(二)需求分析:1.设计目标:针对高等院校的教学工作设计-应用程序学生成绩管理系统,可以 实现不同权限的人访问该系统,可以进行不同权限的查看信息和修改信息。2设计要求:l 使用pb进行系统l 系统界面设计成多文档界面l 系统只需实现单机版功能l 选用SYBASE ASANYWHERE作为系统数据库l 系统的功能完整,界面美观,操作方便。3资源需求:1.配置文件2.图片资源3.资源文件(三)项目的必要性和可行性一个学生成绩信息管理系统,可以解决繁杂的学生的各门学科成绩的汇总,对信息资源进行高级管理,方便用户对信息的查找,修改和编辑。基于计算机技术的发展,特别是数据库技术的发展以及操作语言,系统开发软件的发展,使设计一个满足用户需求的多功能的管理系统更为方便,更加美观,也具有更佳的操作性。(四)问题与解决方法,系统要求对用户分级,即系统菜单根据用户身份对当前用户可操作的菜单项,实现用户操作权限的分配;其次,系统菜单需要根据用户的操作对相关菜单项进行使用和禁止设置;最后,当用户在已打开的多个工作窗口中切换操作焦点时,系统菜单需要根据当前操作窗口的状态来更新相关菜单项的状态。对数据的浏览,重载,编辑,添加,删除,更新,查找,排序,过滤和打印等。因为它们需要考虑的问题多而复杂,编程量大,所以需要事先进行细致的计划。(五)基本要求,系统特点系统能记录主窗口的运行参数:窗口的大小,打开方式等等。数据库的连接方式要灵活。设定系统管理员,教师,学生用户的权限,具体如下:系统管理员:能够浏览和编辑系统用户信息表,但对于其它表只能浏览。教师用户:能够浏览和编辑除用户信息表之外的其他表。学生用户:仅能够浏览除用户信息表之外的其他表登陆成功后用户才能进入系统,且系统能够根据用户的身份分配相应的操作权限。主窗口应能控制工作窗口的打开和关闭,并能管理工作窗口的显示方式。管理窗口应具有浏览和编辑两种操作方式,并具有浏览,重载,添加,删除和更新等数据操作功能。系统菜单应具有良好的操作性。(六)系统设计的总体方案学生成绩管理系统包括:数据库设计和应用程序设计。首先,设计系统数据库,课程信息表(course)成绩信息表(sreport) 学生信息表(student)用户信息表(myuseruser)院系信息表(college) 。应用程序分为:应用程序对象,数据窗口对象,管理窗口,其他窗口,系统菜单等。业务流程图:dfd图:0层:1层代码设计学号:xx x xx xxx学院 系 入学时间 学生编号专业:xxx 编号院系:xx 编号课程:xxxx 编号 (七)学生成绩管理系统(设计+代码)一数据库设计- - 操作界面截图- 1-1- 1-2- 1-3- 1-4- 1- 5学生信息表- 1-6- 1- 7成绩信息表- 1- 8成绩录入表- 1-9 院系信息表- 1- 10用户信息表- 1-11帮助-关于窗口- 二.功能按钮代码1 应用对象open 事件 / Profile mydbSQLCA.DBMS = ODBCSQLCA.AutoCommit = FalseSQLCA.DBParm = ConnectString=DSN=mydb;UID=dba;PWD=sqlconnect;if sqlca.sqlcode=0 thenopen(w_startup)elsemessagebox(,数据库连接失败) /连接数据库,成功就打开w_startup窗口,否则提示失败end if2 登陆窗口的open事件st_4.text=string(now(),hhmmss) /通过时间计算得到验证码登陆窗口确定按钮clicked事件int bstring username,passwordusername=sle_1.textpassword=sle_2.textselect count(*) into :b from myuser where userid=:username and password=:password; /查询出id 和passwordif b0 and st_4.text=sle_3.text then /id、password、验证码的比对open(w_main)close(w_login)elsemessagebox(,你的密码或验证码有错,请重新输入!)end ifselect rank into :qx from myuser where userid=:username and password=:password; /取得权限的代号3 主窗口open事件opensheet(w_logo,w_main)timer(1)timer事件 /取得系统时间 并在标题显示时间和权限的简单说明if qx=2 thentitle=(学生成绩管理系统 当前时间:+string(now(),hh:mm:ss)+ 您的权限是:学生-您只能查询)end if if qx=1 thentitle=(学生成绩管理系统 当前时间:+string(now(),hh:mm:ss)+ 您的权限是:教师-您能查询,修改)end if if qx=0 thentitle=(学生成绩管理系统 当前时间:+string(now(),hh:mm:ss)+ 您的权限是:管理员)end ifrbuttondown事件m_farme.m_edit.popmenu(xpos,ypos) /右击事件中关联菜单resize事件if isvalid(w_logo) thenw_logo.x=w_main.width - w_logo.width+800w_logo.y=w_main.height - w_logo.height+230end if if this.tag= then this.tag=modifiedend if 4 成绩查询窗口open事件dw_1.settransobject(sqlca)dw_1.retrieve()关闭按钮clickedclose(w_cjicx)查找按钮 clickedw_xsxx.width=3067long frowstring fstropenwithparm(w_find,student) /打开窗口并提交一个值fstr=message.stringparmdw_1.setfilter(fstr)dw_1.filter()5查找窗口的open事件choose case message.stringparmcase studentf_item.additem(学号 *studentid)f_item.additem(姓名 *name)end choose查找窗口中的确定按钮clickedint nstring rcif f_limit.text= then messagebox(提示,没有设置查找条件!请输入。,exclamation!,ok!)f_limit.setfocus()returnend if n=pos(f_item.text,*)rc=right(f_item.text,len(f_item.text)-n)rc += + f_mode.text + rc += + f_limit.text + closewithreturn(parent,rc)6.成绩录入窗口open事件 dw_1.settransobject(sqlca)dw_1.retrieve()w_cjlr.width=2971w_cjlr.height=1684if qx=2 or qx=0 then /根据登陆的帐号给于不同的权限,可以或不可以使用某个按扭cb_1.enabled=falsecb_2.enabled=falsecb_5.enabled=falsecb_6.visible=falseend ifdw_1的itemchangde事件string cc,aaint bb,eecc=dw_1.getitemstring(1,1)select count(*) into :bb from student where studentid=:cc;if bb=0 and cc thenmessagebox(,学号不存在!请重新输入!) /检查录入的学号在学生表中是否存在end ifaa=dw_1.getitemstring(1,3)ee=integer(aa)if ee100 thenmessagebox(,你输入的成绩超出范围!请重新输入!) /检查录入的成绩是否超出范围end if确定查找按钮clicked事件string cc,aa,ddstring sscc=sle_1.text aa=sle_2.text if cc and aa then select sreport.score,sreport.remark into:ss,:dd from sreport where studentid=:cc and courseid=:aa; if sqlca.sqlcode=0 then sle_4.text=aasle_3.text=ccsle_5.text=ss /第二种查找的方法根据学号和课程号来查sle_7.text=dd elsemessagebox(,该学号或课程号不存在) end if else messagebox(,请输入学号和课程号)end if保存修改按钮clicked事件string cc,aa,bb,ddstring ss cc=sle_3.text /学号aa=sle_4.text /课程号ss=sle_5.text /成绩dd=sle_7.text /备注update sreport set sreport.score=:ss,sreport.remark=:dd where studentid=:cc and courseid=:aa; if sqlca.sqlcode=0 thenmessagebox(,修改成功) /对查到的信息可以进行修改,直接保存在数据库中。else messagebox(,修改失败)end if重置按钮clicked事件dw_1.settransobject(sqlca)dw_1.retrieve() /重新导入数据库的信息保存按钮clicked事件int i i=dw_1.update()if i=1 then commit;messagebox( 提示,保存成功!)dw_1.settransobject(sqlca)dw_1.retrieve()elsemessagebox(,保存失败!) /保存数据窗口控件中的数据end if统计按钮clicked事件 /统计学生的成绩等级string aa,bb,cc,dd,eeselect count() into :aa from sreport where score=90;select count() into :bb from sreport where score=80;select count() into :cc from sreport where score=70;select count() into :dd from sreport where score=60;select count() into :ee from sreport where score=0;messagebox(,90分以上有+aa+n80-90分有+bb+n70-80分有+cc+n60-70分有+dd+n60分以下有+ee)删除按钮clicked事件int ll=dw_1.getrow()dw_1.deleterow(l)关闭按钮clicked事件if dw_1.modifiedcount()0 or dw_1.deletedcount()0 thenint mm=messagebox(,没保存,现在要保存吗?,question!,yesno!)if m=1 thendw_1.update( )messagebox(,成功!)close(w_cjlr)elsemessagebox(,修改失败!)/关闭时检查数据有没有被修改,如果有则提示要保存end ifelseclose(w_cjlr)end if7学生信息窗口open事件dw_1.settransobject(sqlca)dw_1.retrieve()w_xsxx.width=2180w_xsxx.height=1856if qx=2 or qx=1 then /根据登陆的帐号给出不同的权限cb_1.enabled=falsecb_3.enabled=falsecb_6.visible=falsecb_7.enabled=falseend if插入按钮clicked事件dw_1.insertrow(1)dw_1.scrolltorow(1)重置按钮clicked事件dw_1.settransobject(sqlca)dw_1.retrieve()保存按钮clicked事件int i i=dw_1.update()if i=1 then commit;messagebox( 提示,保存成功!) /保存数据窗口控件中的数据到数据库dw_1.settransobject(sqlca)dw_1.retrieve()elsemessagebox(,保存失败!)end if删除按钮clicked事件int ll=dw_1.getrow()dw_1.deleterow(l) 关闭按钮clicked事件if dw_1.modifiedcount()0 or dw_1.deletedcount()0 thenint mm=messagebox(,没保存,现在要保存吗?,question!,yesno!)if m=1 thendw_1.update( )messagebox(,成功!)close(w_xsxx)elsemessagebox(,修改失败!)/关闭时检查数据有没有被修改,如果有则提示要保存end ifelseclose(w_xsxx)end if查找功能中的确定按钮clicked事件string cc,aa,bb,ddstring sscc=sle_1.text aa=sle_2.text if cc then select ,student.sex,student.status,student.remark into:aa,:ss,:bb,:dd from student where studentid=:cc; if sqlca.sqlcode=0 then sle_3.text=ccsle_4.text=aasle_5.text=sssle_6.text=bbsle_7.text=dd elsemessagebox(,该学号不存在) end if elseif aa then select ,student.sex,student.status,student.remark into:aa,:ss,:bb from student where studentid=:aa; if sqlca.sqlcode=0 then sle_3.text=ccsle_4.text=aasle_5.text=sssle_6.text=bb /查找的方法根据学号、姓名来查,并直接显示在单行编辑框中以便修改sle_7.text=dd else messagebox(,该姓名不存在) end if else messagebox(,请输入姓名)end if保存按钮clicked事件string cc,aa,bb,ddstring ss cc=sle_3.textaa=sle_4.textss=sle_5.textbb=sle_6.textdd=sle_7.textupdate student set =:aa,student.sex=:ss,student.status=:bb,student.remark=:dd where studentid=:cc; if sqlca.sqlcode=0 thenmessagebox(,修改成功) /对查出来的信息进行修改的时候保存else messagebox(,修改失败)end if8.注册新用户界面注册按钮clicked事件string username,passwordint sfusername=sle_1.textpassword=sle_2.textif rb_1.checked=true thensf=1elsesf=2end if/注册用户包括:用户名,密码,权限insert into myuser(myuser.userid,myuser.password,myuser.rank) values (:username,:password,:sf);if sqlca.sqlcode=0 thenmessagebox(,数据添加成功)elsemessagebox(,数据添加失败)end if退出按钮clicked事件close(w_xyhzc)9.用户信息窗口open事件dw_1.settransobject(sqlca)dw_1.retrieve()this.width=2327this.height=1620if qx=2 or qx=1 thencb_1.enabled=falsecb_3.enabled=false /根据登陆的帐号给出不同的权限end if 插入按钮clicked事件dw_1.insertrow(1)dw_1.scrolltorow(1)重置按钮clicked事件dw_1.settransobject(sqlca)dw_1.retrieve()保存按钮clicked事件int i i=dw_1.update()if i=1 then commit;messagebox( 提示,保存成功!)dw_1.settransobject(sqlca)dw_1.retrieve()elsemessagebox(,保存失败!)end if删除按钮clicked事件int ll=dw_1.getrow()dw_1.deleterow(l)关闭按钮clicked事件if dw_1.modifiedcount()0 or dw_1.deletedcount()0 thenint mm=messagebox(,没保存,现在要保存吗?,question!,yesno!)if m=1 thendw_1.update( )messagebox(,成功!)close(w_yhxx)elsemessagebox(,修改失败!)end if /检查是否对数据窗口控件进行了修改,并提示是否要保存修改。elseclose(w_yhxx)end if10.院系信息窗口open事件dw_1.settransobject(sqlca)dw_1.retrieve()this.width=2207this.height=1424if qx=2 or qx=1 then /根据登陆的帐号给出不同的权限cb_1.enabled=falsecb_2.enabled=falseend if插入按钮clicked事件dw_1.insertrow(1)dw_1.scrolltorow(1)保存按钮clicked事件int i i=dw_1.update()if i=1 then commit;messagebox( 提示,保存成功!)dw_1.settransobject(sqlca)dw_1.retrieve()elsemessagebox(,保存失败!)end if删除按钮clicked事件int ll=dw_1.getrow()dw_1.deleterow(l)关闭按钮clicked事件if dw_1.modifiedcount()0 or dw_1.deletedcount()0 thenint mm=messagebox(,没保存,现在要保存吗?,question!,yesno!)if m=1 thendw_1.update( )messagebox(,成功!)close(w_yxicx)else /检查是否对数据窗口控件进行了修改,并提示是否要保存修改。messagebox(,修改失败!)end ifelseclose(w_yxicx)end if添加功能中的保存按钮clicked事件string id,nameid=sle_1.textname=sle_2.text if sle_1.text and sle_2.text and len(id)=2 then insert into college(college.collegeid,college.title) values (:id,:name); if sqlca.sqlcode=0 then dw_1.settransobject(sqlca)dw_1.retrieve()messagebox(,添加成功)elsemessagebox(,错误提示:+s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 石化三基考试试题及答案
- 国学知识考试题及答案
- 血管介入治疗在卒中中的应用-1
- 民警预测考试题及答案
- 汉字奇兵考试题及答案
- 外资药企面试题及答案
- 血友病管理的临床应用
- 山东省泰安市宁阳县四中2026届化学高二上期末监测模拟试题含答案
- 2020-2025年消防设施操作员之消防设备高级技能综合练习试卷B卷附答案
- 地理(辽宁卷)(参考答案)
- 房产租赁合同文本与房产租赁合同模板
- 2022年临沧市市级单位遴选(选调)笔试试题及答案
- 重庆市沙坪坝区人民医院消防安全整改工程施工方案
- 施工组织设计施工总体部署完整版
- 天津电网规划设计技术原则
- YY 0054-2010血液透析设备
- LY/T 2383-2014结构用木材强度等级
- GB/T 8017-2012石油产品蒸气压的测定雷德法
- GB/T 528-2009硫化橡胶或热塑性橡胶拉伸应力应变性能的测定
- 2023年江苏省中学生生物学竞赛(奥赛)初赛试题和答案
- DB32-T 3129-2016适合机械化作业的单体钢架塑料大棚 技术规范-(高清现行)
评论
0/150
提交评论