教务管理系统

  • 格式:doc
  • 大小:1.23 MB
  • 文档页数:26

课程设计IV设计说明书高校教务管理系统(学生端)的的设计与开发学生姓名学号班级成绩指导教师高崎计算机科学与技术系2010年 12 月 30 日数据库课程设计评阅书课程设计任务书2010—2011 学年第一学期专业:学号:姓名:课程设计名称:软件设计方法设计题目:高校教务管理系统(学生端)的设计与开发完成期限:自2010 年12 月30 日至2011 年 1 月13 日共 2 周设计依据、要求及主要内容(可另加附页):设计依据、要求及主要内容(可另加附页):教务管理是学校的重要管理工作之一,需要教师、学生和教务管理人员三方共同参与其中。

教务管理计算机网络化管理可以有效提高教务管理效率。

请从高校教务管理实际需要出发,设计、实现学生对已考试(查)课程成绩、学分等情况的查询功能。

开发工具不限。

指导教师(签字):教研室主任(签字):批准日期:年月日摘要设计了一个教务管理系统(学生端),方便学生对自己的基本信息进行查询和修改、学生也可以进入此系统查询本专业所开设的专业课,也可以查询和选修公共选修课,并可以查询这些课的学分、任课老师以及开课时间等基本信息,学生还可以查询自己的期末考试成绩。

本系统利用PowerBuilder 9.0作为前台开发工具,利用SQL Server 2000作为后台开发工具,并利用ODBC接口将PB开发环境与后台数据库进行连接来实现以上的基本功能。

关键词:教务管理系统; PowerBuilder 9.0;SQL Server 2000目录1 课题描述 --------------------------------------------------------------------------------------------------------- 12 需求分析 --------------------------------------------------------------------------------------------------------- 22.1功能简介 (2)2.2系统总功能模块 (3)2.3逻辑结构设计 (3)2.4系统数据流程图 (4)3 详细设计 --------------------------------------------------------------------------------------------------------- 54 程序编码 --------------------------------------------------------------------------------------------------------- 7 5程序调试与测试------------------------------------------------------------------------------------------------ 14 6 结果分析 -------------------------------------------------------------------------------------------------------- 18 7总结 --------------------------------------------------------------------------------------------------------------- 20 参考文献 ----------------------------------------------------------------------------------------------------------- 211 课题描述随着社会的进步,社会对人才素质的要求越来越高,相应的,需要学校的工作要做到周到、全面、先进、高效。

这不仅使教务管理的日常工作日趋复杂繁重,而且对它提出了更高的要求。

教务管理系统强化了教务管理的职能,涵盖了教师管理、学生管理、排课系统、选课系统、分班系统等主要功能,对教务管理工作进行了提炼和概括,使教务管理工作日益规范化、制度化和科学化。

教务管理系统的使用,大大减少了管理者的手工劳动,是学校管理的得力助手。

本教务管理系统(学生端)是一个综合性的学校学生管理系统,它具有较强的实用性和先进性,学生通过此系统可以方便的获得他们需要的信息。

该系统的主要功能:学生信息管理、课程管理、退/选课程,查询成绩等功能,学生可以进入此系统查询课程的学分,开设时间,任课老师以及期末成绩等信息,也可以选修和退选某门课程,也可以修改个人的基本信息。

2 需求分析随着计算机技术的发展以及计算机网络的逐渐普及,信息的交换和信息流通特别重要,因此,为了便于学校管理和学生的方便,教务管理系统的开发成为必然。

教务管理系统(学生端)总的设计目标是方便学生对个人信息和课程信息的查询,选修和退选课程,同时也方便学校的管理,使学校的各项工作可以有序的进行。

本系统是一个面向在校学生的教务管理系统,学生通过本系统可以实现对个人信息、课程信息、所选课程信息的查询和修改,以及选修课程和退选课程等。

系统的总体任务是实现学生信息管理的系统化、规范化和自动化。

2.1功能简介1.学生信息管理模块1)查询个人基本信息:此功能主要为学生查看个人信息及确认个人信息提供方便。

2)修改密码:此功能可以对学生的信息进行保密。

2.课程管理模块1)查询专业课:此功能可以方便学生查询本专业的课程。

2)查询公共必修课:此功能可以方便学生查询学校所开设的公共必修课以及学分等信息。

3)查询公共选修课:此功能可以方便学生查询学校所开设的公共选修课以及学分,限选人数,可选人数等信息。

3.退/选课模块1)选修课程:此功能模块主要为学生提供选课功能。

学生输入自己的学号和要选修的课程号然后提交,如果成功系统会给出提示,失败系统也会提示。

2)退选课程: 此功能模块主要为学生提供退课功能。

学生输入自己的学号和要退选的课程号然后提交,如果成功系统会给出提示,失败系统也会提示。

3)查询选课结果:此功能模块为学生提供查询自己所选课程的信息,包括所选课程名称、授课教师、学分等信息。

4.查询成绩模块查询成绩:此功能为学生提供查询自己成绩的功能。

2.2系统总功能模块2.3逻辑结构设计根据E-R图向关系模型转换的原则,将实体及它们之间的关系转换为关系模式如下所示:学生信息表(学号,姓名,性别,出生年月,所在系,专业,班级,联系电话,家庭住址)其中学号为主键;用户表(学号,密码)其中学号为主键;专业课(课程号,课程名,开设专业,学分,任课老师)其中课程号为主键;公共选修课(课程号,课程名,学分,任课老师,限选人数,已选人数,可选人数)其中课程号为主键;公共必修课(课程号,课程名,学分)其中课程号为主键;成绩表(课程号,学号,课程名,学分,成绩)其中学号和课程号为主键;选课表(课程号,学号,学分,课程名)其中学号和课程号为主键;2.4系统数据流程图数据流图是结构化分析的重要方法,其主要作用是,便于用户表达功能需求和数据需求及其联系。

3 详细设计详细设计阶段是主要实现个数据的数据类型及存储结构,设计出数据库所涉及的表以及表间关系,结果如下:1.用户表2.学生信息表3.选课表4.成绩表5.专业课表6.公共选修课7.公共必修课4 程序编码程序调试及测试主要是整个系统的程序代码及设计结果:1.工作区feng中的代码(在工作区中写入此代码系统可以全局运行)为:// Profile jiaowuSQLCA.DBMS = "ODBC"SQLCA.AutoCommit = FalseSQLCA.DBParm = "ConnectString='DSN=tong;UID=;PWD='"connect;open(w_login)2.用户登录界面及代码1) 登录按钮的代码string xuehao,passwordSELECT 用户表.学号,用户表.密码INTO :xuehao,:passwordFROM 用户表WHERE 用户表.学号= :sle_1.text;//判断用户输入的用户名是否正确if sle_1.text="" or sle_2.text="" thenmessagebox("错误!","学号或密码不能为空!",exclamation!,ok!,2) elseif trim(xuehao)=sle_1.text and trim(password)=sle_2.text thenmessagebox("通过验证!","学号和密码正确,欢迎您使用本系统!",Information!,ok!,2)open(w_cd)close(w_login)elsemessagebox("错误!","学号或密码错误,请重新输入!",exclamation!,ok!,2)sle_1.text=""sle_2.text=""end ifend if2) 取消按钮的代码sle_1.text=""sle_2.text=""3)退出按钮的代码Messagebox("OK","谢谢您的使用!")close(w_login)3.查询个人基本信息窗口界面及其代码1) 查询按钮的代码string xuehao,axuehao=sle_1.textselect 学生信息表.学号into :afrom 学生信息表where 学生信息表.学号=:xuehao;if a="" thenmessagebox("提示","你输入的学号不存在,请重新输入")elsedw_1.setfilter("学号='"+xuehao+"'")dw_1.SettransObject(SQLCA)dw_1.retrieve() //检索数据,将符合条件的数据显示在数据窗口中end if2)退出按钮close(w_xin)open(w_cd)4.修改密码界面及其代码1)修改按钮代码string xuehao,password,miinteger exuehao=string(sle_1.text)password=string(sle_2.text)select 用户表.密码into :mifrom 用户表where :xuehao=学号;if mi<>"" thene=messagebox("提示!","你是否确认修改?",&question!,YesNo!,1)If e=1 thenupdate 用户表set 密码=:passwordwhere 学号=:xuehao;messagebox("提示!","修改成功!")elsemessagebox("提示!","修改失败!")end ifelsemessagebox("提示!","此学号不存在,修改失败!") end if2)退出按钮代码close(w_xiu)open(w_cd)5.专业课的界面及其代码1)查询按钮代码choose case ddlb_1.textcase "信息管理与信息系统"dw_1.setfilter("开设专业='"+ddlb_1.text+"'") case "生物科学与技术"dw_1.setfilter("开设专业='"+ddlb_1.text+"'") case elsedw_1.setfilter("开设专业='"+ddlb_1.text+"'") end choosedw_1.settransobject(sqlca)dw_1.retrieve()2)退出按钮代码close(w_zy)open(w_cd)6.公共必修课界面及其代码此窗口与公共必修课的数据窗口对象d_bx相关联dw_1.settransobject(sqlca)dw_1.retrieve()7.公共选修课的界面及其代码此窗口与公共选修课的数据窗口对象d_xx相关联dw_1.settransobject(sqlca)dw_1.retrieve()8选修和退选课的界面及代码1)查询按钮的代码dw_1.DataObject="d_xk"string xuehao,a,bxuehao=sle_1.textselect 学生信息表.学号into :bfrom 学生信息表where 学生信息表.学号=:xuehao;select 选课表.学号into :afrom 选课表where 选课表.学号=:xuehao;if a="" and b="" thenmessagebox("提示","你输入的学号不存在,请重新输入")elseif a="" and b<>"" thenmessagebox("提示","你没有选课信息")elsedw_1.setfilter("学号='"+xuehao+"'")dw_1.SettransObject(SQLCA)dw_1.retrieve() //检索数据,将符合条件的数据显示在数据窗口中end if2) 选修按钮的代码integer number,number1string xuehao,khao,kcm,xfenif sle_1.text="" or sle_2.text="" thenmessagebox("提示!","学号或课程号不能为空!",exclamation!,ok!,2) elseselect 学分,课程名into :xfen,:kcmfrom 公共选修课where 公共选修课.课程号=:sle_2.text;select 选课表.课程号into :khaofrom 选课表where 选课表.学号= :sle_1.text and 选课表.课程号= :sle_2.text;if khao="" thenselect 公共选修课.可选人数, 公共选修课.已选人数into :number,:number1from 公共选修课where 公共选修课.课程号=:sle_2.text;if number>0 then//向选课表中添加新记录insertinto 选课表values (:sle_2.text,:sle_1.text,:xfen,:kcm);if sqlca.sqlcode=0 thennumber=number - 1number1=number1+1update 公共选修课set 可选人数= :numberwhere 公共选修课.课程号= :sle_2.text;update 公共选修课set 已选人数= :number1where 公共选修课.课程号= :sle_2.text;messagebox("提示","您已成功选修该课程",exclamation!,ok!,2)elsemessagebox("提示","选修该课程失败",exclamation!,ok!,2)end ifelsemessagebox("提示!","您输入的课程名额已满!请重新选择",exclamation!,ok!,2) end ifelsemessagebox("提示!","您已选修过该课程!",exclamation!,ok!,2)end ifend if3)退选按钮的代码int number,number1string khao,xuehaoselect 选课表.课程号into :khaofrom 选课表where 选课表.学号= :sle_1.text and 选课表.课程号= :sle_2.text;if khao<>"" thendeletefrom 选课表where 选课表.学号= :sle_1.text and 选课表.课程号= :sle_2.text;if sqlca.sqlcode=0 then//得到当前该课程剩余名额select 公共选修课.可选人数,公共选修课.已选人数into :number,:number1from 公共选修课where 公共选修课.课程号= :sle_2.text;//将该课程加1,因为该课程已经退选number=number + 1number1=number1 -1update 公共选修课set 可选人数= :numberwhere 公共选修课.课程号= :sle_2.text;update 公共选修课set 已选人数= :number1where 公共选修课.课程号= :sle_2.text;messagebox("提示","您已成功退该课程")elsemessagebox("提示","退选失败")end ifelsemessagebox("提示","你没有选修此课程或您输入的课程号有误") end if4)刷新按钮的代码sle_1.text=""sle_2.text=""dw_1.DataObject="d_xx"dw_1.settransobject(sqlca)dw_1.retrieve()5)退出按钮的代码close(w_xueke)open(w_cd)9.查询窗口界面及代码1)查询按钮的代码string xuehao,a,bxuehao=sle_1.textselect 学生信息表.学号into :bfrom 学生信息表where 学生信息表.学号=:xuehao;select 成绩表.学号into :afrom 成绩表where 成绩表.学号=:xuehao;if a="" and b="" thenmessagebox("提示","你输入的学号不存在,请重新输入")elseif a="" and b<>"" thenmessagebox("提示","没有你的成绩信息")elsedw_1.setfilter("学号='"+xuehao+"'")dw_1.SettransObject(SQLCA)dw_1.retrieve() //检索数据,将符合条件的数据显示在数据窗口中end if2)退出按钮代码close(w_cj)open(w_cd)5程序调试与测试1.登录成功图6.1 登录成功界面2.操作菜单界面图6.2 操作菜单界面3.查询个人信息成功界面图6.3 查询信息成功界面4.重置密码界面图6.4 重置密码界面5.查询专业课信息界面图6.5专业课信息界面6.查询公共选修课信息界面图6.6 公共必修课信息界面7.查询公共选修课信息界面图6.7 公共选修课信息界面8.选课成功界面图6.8 选课成功界面9.所选的课程名额已满,选课失败界面图6.9 选课失败界面10.输入的课程号已经存在,选课失败。