毕业论文范文网-论文范文
电气工程 会计论文 金融论文 国际贸易 财务管理 人力资源 学前教育 德语论文 工程管理 文化产业 工商管理 会计专业 行政管理 广告学
机械设计 汉语文学 英语论文 物流论文 电子商务 法律论文 工商管理 旅游管理 市场营销 药学论文 播音主持 人力资源 金融论文 保险学
制药工程 生物工程 包装工程 模具设计 测控专业 工业工程 教育管理 行政管理 计算机论 电子信息 市场营销 法学论文 财务管理 投资学
体育教育 小学教育 印刷工程 土木工程 书法论文 护理论文 心理学论 信息管理 公共事业 给水排水 新闻专业 摄影专业 广电编导 经济学
  • 范文首页 |
  • 毕业论文 |
  • 论文范文 |
  • 计算机论文 |
  • 外文翻译 |
  • 工作总结 |
  • 工作计划 |
  • 现成论文 |
  • 论文下载 |
  • 教学设计 |
  • 免费论文 |
  • 原创论文 |
搜索 高级搜索

原创毕业论文

当前位置:毕业论文范文网-论文范文 -> 免费论文 -> 计算机论文

学生信息管理系统

作者: 浏览:10次
免费专业论文范文
免费专业论文
政治工作论文
计算机论文
营销专业论文
工程管理论文范文
医药医学论文范文
法律论文范文
生物专业论文
物理教学论文范文
人力资源论文范文
化学教学论文范文
电子专业论文范文
历史专业论文
电气工程论文
社会学专业论文
英语专业论文
行政管理论文范文
语文专业论文
电子商务论文范文
焊工钳工技师论文
社科文学论文
教育论文范文
数学论文范文
物流论文范文
建筑专业论文
食品专业论文
财务管理论文范文
工商管理论文范文
会计专业论文范文
专业论文格式
化工材料专业论文
英语教学专业论文
电子通信论文范文
旅游管理论文范文
环境科学专业论文
经济论文
人力资源论文范文
营销专业论文范文
财务管理论文范文
物流论文范文
财务会计论文范文
数学教育论文范文
数学与应用数学论文
电子商务论文范文
法律专业论文范文
工商管理论文范文
汉语言文学论文
计算机专业论文
教育管理论文范文
现代教育技术论文
小学教育论文范文
机械模具专业论文
报告,总结,申请书
心理学论文范文
学前教育论文范文

收费计算机专业论文范文
收费计算机专业论文
Delphi
ASP
VB
JSP
ASP.NET
VB.NET
java
VC
pb
VS
dreamweaver
c#.net
vf
VC++
计算机论文
毕业论文范文题目:学生信息管理系统,论文范文关键词:学生信息管理系统
学生信息管理系统毕业论文范文介绍开始:

摘   要

 随着高校规模的不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长,庞大学生信息的管理工作成了高校教学管理工作中的一项重要任务,一方面,假如遵从以往旧式的工作方式,该工作的工作量大,管理繁琐,既耗人力,又耗物力;另一方面,由于计算机技术的飞速发展及应用的普及,学生信息管理这样烦琐的工作更需要由计算机来完成。因此开发一套对学生信息进行管理的软件是极其重要的,而且是必需的,通过这样的系统,可以做到信息的规范管理、科学统计和快速的查询,从而减少管理方面的工作量。
 基于上述情况,本人针对本校学生选课及教务员排课做详细的需求分析,在Windows XP平台下以SQL Server2000为数据库服务器及PowerDesigner8.0为设计工具,采用PowerBuilder9.0设计开发了基于C/S结构的学生信息管理系统。此系统不仅实现了学生对个人基本信息的修改、查询以及专业选课和重修等,还实现了教务员对学生所选课程的排课组班功能。真正的实现了选课、排课的一体化。简洁的操作方法与人性化的界面设计让任何非计算机专业的管理人员轻松使用。

关键字:  静态分析;被动数据库;用户角色对象
 
Abstract

   With the development of academic schools' constantly enlarging their size and increasing the number of their students,various information about students is doubly increased.There is so much  information that teaching managment becomes more and more important  a task.For one thing,if we follow the old work style as  before,the  work would have great capacity,and will also be a great waste of  manpower and material;for another thing, with the development and  application of computer science and technology,such trivial work  could be complete done by computer.That's to say, it is of great  importance to explore a suitable software. With the help of this  software , it will reduce error and will also improve efficiency,what's more,modernization 、systematism and standardization in  teaching managment will come true .     As the  reasons refered above , I analyzed the fact students choose courses and administrator arrange courses in our  university in detail , Under windows XP operation system designed this software to manage  student's information .It is designed by design tool PowerDesigner8.0 and database server machine SQL Server,other PowerBuder9.0 as my development tool.This student information management system is base on C/S structure.With the help of this software , you can modify  or inquire student's information , and it also can be used to  arranging courses or organizing students . The system has implement an entire progress of choosing courses and arranging courses.with the concise operation methods and of humanition interface designment,every administrator can use it conveniently in spite of he/she is not professional in computer science.

Key Words:Static Analysis;Passive Database;User Role Object
目   录
第一章   绪   论 1
§ 1.1 开发背景 1
§ 1.2 开发必要性及系统介绍 1
第二章  学生信息管理系统分析 3
§ 2.1 系统功能分析 3
§ 2.1.1 系统需实现功能 3
§ 2.1.2 统分层数据流图 4
§ 2.1.3 系统E-R图 9
§ 2.1.4 系统数据字典 10
§ 2.1.5 系统功能模块 12
§ 2.1.6 系统表 13
§ 2.2 系统性能分析 17
§ 2.2.1 精度 17
§ 2.2.2 时间特性要求 17
§ 2.2.3 灵活性 18
§ 2.3 输入输出要求 18
§ 2.4 数据处理能力要求 18
§ 2.5 故障处理要求 18
§ 2.6 系统运行环境 18
第三章 学生信息管理系统设计 19
§ 3.1 论分析 19
§ 3.2 总体设计 19
§ 3.3 模块划分 20
§ 3.3.1 教务员管理系统模块详细介绍 21
§ 3.3.2 教师管理系统模块详细介绍 22
§ 3.3.3 学生管理系统模块详细介绍 22
第四章 学生信息管理系统实施 24
§ 4.1 创建数据库 24
§ 4.2 连接数据库 24
§ 4.3 系统功能模块的实现 28
§ 4.3.1 用户登陆模块实现 28
§ 4.3.2 学生选课功能的实现 31
§ 4.3.3 学生查询功能的实现 37
§ 4.3.4 学生个人信息修改功能的实现 41
§ 4.3.5 教务员排课功能的实现 42
§ 4.3.6 教师成绩录入功能的实现 48
§ 4.3.7 密码修改功能的实现 48
第五章 学生信息管理系统测试 52
§ 5.1 试环境 52
§ 5.2 试目的和目标 52
§ 5.3 选课测试 52
§ 5.4 成绩录入测试 57
结 论 59
参考文献 60
致 谢 61


第一章   绪   论
§ 1.1 开发背景
 自从改革开放以来,我国经济突飞猛进的向前发展,人民生活水平得到了很大的提高,我国的精神文明建设也取得了巨大的成就,特别是教育事业的发展尤为突出,虽然和发达国家还有一定的差距,但是在这短短的几十年时间,我国教育事业的发展取得了空前未有的成就,取得如此大的成就和奋斗在教育领域的精英是分不开的,此外,规范、科学的管理也发挥了无法取代的作用。
 随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。同时随着IT技术的发展和以Internet技术为基础的电子商务技术以及计算机技术在我国的日渐成熟和计算机应用的日趋普及,然而我国大部分高校的学生信息管理系统,依然仅靠人工进行管理和操作,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,其中有些是冗余的或者针对同一目的的数据不相吻合,这对于查找、更新和维护文件等管理工作带来了不少的困难。同时也跟不上信息时代高速、快捷的要求,严重影响了消息的传播速度,面对庞大的学生信息量,如何利用现代信息技术使其拥有快速、高效的适应力已成为当务之急。
§ 1.2 开发必要性及系统介绍
 基于目前我国教育管理面临的现状和计算机技术日渐发展成熟的有利条件,就迫切需要设计出学生信息管理系统这样的学生信息管理软件,以次来提高学生管理工作的效率。通过这样的系统,可以做到信息的规范管理、科学统计和快速的查询,从而减少管理方面的工作量。本系统的开发就是在这一背景之下进行的,它利用了计算机和网络很好的解决了这一问题,使原来从事手工学生信息管理工作的这部分人从原来烦琐的工作中解脱出来。大大的节省了人力、财力、物力和时间,这对充分、合理的分配和利用我国丰富人力资源都是很有益的[1]。
 本文作者针对目前面临的这一系列问题,对我校现有的学生信息管理系统进行充分的需求分析重新设计了一个符合学生和管理人员操作、功能齐全的学生信息管理系统,它主要由3个独立的系统组成,分别是:学生选课系统、教师成绩管理系统、教务员排课组班系统。学生选课系统部分主要进行学生个人资料修改、查询,学生专业选课、重修选课,学生选课查询、个人成绩查询、教材资费查询,专业浏览,个人密码修改;教师成绩管理系统部分主要进行学生成绩录入、重修学生成绩修改,教师个人资料修改、查询,密码修改;教务员排课组班系统部分主要进行对提交的选课单进行排课、安排教室,个人密码修改。
 本文作者设计的学生信息管理系统很好的解决了学生信息管理方面的困难,提高了学生信息管理效率、减轻了教务员的工作负担,节省了大量的人力、物力资源,给高校学生信息管理带了很大的方便。
第二章  学生信息管理系统分析
§ 2.1 系统功能分析 
§ 2.1.1  系统需实现功能
 本作者设计的学生信息管理主要是面向高校学生的信息管理系统,其他还包括教务员排课子系统和教师成绩录入子系统[2]。
 学生信息管理系统:
学生个人基本信息查询、修改;
学生专业、公共选课、素质选修及重修;
学生成绩查询、选课查询及教材资费查询;
学生等级考试查询;
学生奖惩情况查询;
学生社会实践及活动查询;
学校各学院及专业的浏览;
网上通知;
查询课程安排及相应的上课教室;
个人密码修改。
教务员排课系统:
教务员对学生及老师基本信息的管理;
对学生所提交的选课单进行排课;
教务员个人密码修改。
教师成绩录入系统:
教师基本信息查询、修改;
学生成绩录入、修改;
教师个人密码修改。
§ 2.1.2 系统分层数据流图
     学生信息管理系统的主要用户对象是教务员、教师以及学生,系统为各种角色类型用户提供不同的操作主界面,用户通过相应的登陆号和密码登陆学生信息管理系统进入相应的操作界面,通过授权操作可以对提供各种信息进行操作处理。图2.1是各种角色类型用户登陆学生信息管理系统的顶层数据流图[3]。


图2.1 系统顶层DFD图

 各种角色类型用户登陆学生信息管理系统后对应各种具体的授权操作及处理,如图2.2第一层系统数据流图中展示出了各种角色类型用户的具体操作内容及详细信息。
 系统第一层DFD:

                        图 2.2 系统第一层DFD图
  
 
       教师信息修改模块功能主要是对教师信息的录入、修改、删除等。
 
 
 成绩录入模块实现对学生成绩录入、修改、查询等,具体流程见图2.4成绩录入模块流程图。
 
 选课模块:
 
 
 
 图2.5 选课模块DFD图
 
  选课模块分为专业课程选课、素质选修课程选课、以及重修课程选课,具体选课流程见图2.5选课模块流程图。
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 综合查询模块:
 
 
 
 图2.6综合查询模块DFD图
 
 综合查询模块实现功能是选课查询、资费查询、成绩查询、社会实践及活动情况查询、奖惩查询以及网上通知查询。具体实现流程见图2.6所示。
 
 
 
 
 
 
 
 
§ 2.1.3  系统E-R图
    学生信息管理系统所涉及到的实体有学生、教务员、老师、学院、专业、教室和课程,他们各自的主要属性及他们之间的联系如下图表示:


图2.7 系统E-R图
§ 2.1.4 系统数据字典 
  学生信息管理系统中涉及到的所有实体和数据流的信息如下[4]:

 文件名:学生基本信息表
 别名:
 组成:学号+姓名+密码+学院号+学院名+专业号+专业名+班级+年级+性别+层次+民族+籍贯+政治面貌+身高+体重+血型+出生年月+身份证号+家庭住址+邮编+宿舍房间+宿舍电话+Email+其他电话+备注
 备注:这是学校所有学生基本信息的总和表

表2.1 学生基本信息表

 文件名:教师基本信息表
 别名:
 组成:教师号+姓名+密码+性别+民族+所属学院号+所属学院名+职称+电话+备注
 备注:这是学校所有教师的总和表

表2.2 教师基本信息表

文件名:教务员信息表
别名:
组成:教务员号+姓名+密码
备注:这是学校所有教务员的总和表

表2.3 教务员表

文件名:成绩表
别名:
组成:学号+姓名+班级+课程号+课程名+课程性质+学分+记分+学期+成绩+重修
备注:这是学校所有学生所有成绩的总和表

表2.4 学生成绩表

文件名:专业课程表
别名:
 组成:任课单位+课程编号+课程名+开课年级+学分+总学时+教师号+教师名+周次+上课时间+人数+已选人数+课程性质+课程介绍+开课学期+开课学院
备注:这是学校所有专业课程及公共课程的总和表

表2.5 专业、公共课程表

文件名:素质选修课程表
别名:
组成: 任课单位+课程编号+课程名+学分+总学时+教师号+教师名+周次+上课时间+人数+已选人数+课程性质+课程介绍
备注:这是学校所有素质选修课程的总和表

表2.6 素质选修课程表

文件名:教室信息表
别名:
组成:教室号+容纳人数+状态
备注:这是学校所有教室的总和表

表2.7 教室信息表

文件名:学院信息表
别名:
组成:学院号+学院名+学院介绍
备注:这是学校所有学院的总和表

表2.8 学院表

文件名:专业信息表
别名:
组成: 学院号+学院名+专业号+专业名+专业介绍
备注:这是学校所有专业的总和表

表2.9 专业表

文件名:学生综合信息表
别名:
组成: 学号+等级考试信息+奖惩信息+网上通知+社会实践及活动情况
备注:这是学校所有专业的总和表

表2.10学生综合信息表
§ 2.1.5 系统功能模块
§ 2.1.5.1 教务员管理系统模块简介
 教师信息模块:
 教务员管理学校所有教师的基本信息,当有新老师来时,实现对新老师的录入;对老师基本信息的修改,当有老师离开学校时,实现对该老师的删除等。
    学生信息模块:
 教务员管理学校所有学生的基本信息,当有招收新生时,实现对新生的注册录入;对学生基本信息进行修改;当学生毕业离校时,实现对学生的删除等。
    排课模块:
 教务员对学生所选择的所有课程进行排课,选课人数不足50人的课程不给予排课,排课分为专业排课和素质选修排课,排课成功后即给所选排课课程的学生安排上课教室。
§ 2.1.5.2 教师管理系统模块简介
    教师信息模块:
 此模块实现教师对自己基本信息的修改,查询其他老师基本信息等。
    成绩录入模块:
 此模块实现教师对学生成绩的录入、对重修学生成绩进行修改等。
§ 2.1.5.3 学生管理系统模块简介
    学生信息模块:
 此模块实现学生对自己基本信息的修改,对其他学生基本信息进行查询等。
 选课模块:
    此模块实现学生选课,分为专业选课、公共选课、素质选修及重修选课,当选课成功以后提交到教务员处,由教务员审订,如果审订成功则对所选课程安排上课教室。
    查询模块:
 查询本期中已经选择的课程;查询本期所选课程所要交的课程费用(素质选修和重修课程才交费用,专业课程和公共课程不用交),查询以往所有的成绩,返回学生所选课程总学分数,不及格课程科目数及学生须重修的学分数等;当教务员对学生所选课程排课成功后,学生可以查询自己所选课程的上课教室;查询等级考试情况;查询奖惩情况;查询社会实践及活动情况;查询网上通知;专业浏览等。
    密码修改模块:
 教师、学生修改自己的系统登陆密码。
§ 2.1.6 系统表
    表名:std_Info

列名 数据类型 数据长度 描述
std_Num Char 20 学号      主键
std_Name Char 20 姓名
std_Key Char 20 密码
std_Snum Char 20 学院号
Std_Sname Char 20 学院名
Std_Mnum Char 20 专业号
Std_Mname Char 20 专业名
Std_Class Char 20 班级
Std_Grade Char 20 年级
Std_Sex Char 20 性别
Std_Ceng Char 20 层次
Std_Nation Char 20 民族
Std_Place Char 20 籍贯
Std_Back Char 20 政治背景
Std_Tall Float 8 身高
Std_Weight Float 8 体重
Std_Blood Char 20 血型
Std_Birth Char 20 出生年月
Std_Id Char 20 身份证号
Std_Adress Char 20 家庭住址
Std_Youb Char 20 邮编
Std_Dom Char 20 宿舍地址
Std_Dtel char 20 宿舍电话
Std_Email Char 20 EAMIL
Std_Tel Char 20 其他电话
Std_Hob Char 200 备注

表2.10 学生基本信息表
    表名:teacher_Info

列名 数据类型 数据长度 描述
Teacher_Num Char 20 教师号    主键
Teacher_Name Char 20 教师名
Teacher_Key Char 20 密码
Teacher_Sex Char 20 性别
Teacher_Nation Char 20 民族
Teacher_Snum Char 20 所属学院号
Teacher_Sname Char 20 所属学院名
Teacher_Potion Char 20 职称
Teacher_Tel Char 20 电话
Teacher_Intro char 200 备注

表2.11 教师基本信息表
    表名:admin_Info
 
列名 数据类型 数据长度 描述
Admin_Num Char 20 登陆ID    主键
Admin_Name Char 20 姓名
Admin_Key char 20 密码

表2.12 教务员基本信息表
  表名:grade_Info

列名 数据类型 数据长度 描述
Grade_Snum Char 20 学号      主键
Grade_Sname Char 20 姓名
Grade_Class Char 20 班级
Grade_Cnum Char 20 课程号    主键
Grade_Cname Char 20 课程名
Grade_Cha Char 20 课程性质
Grade_Cent Float 8 学分
Grade_Jifen char 20 记分
Grade_Term Char 20 学期
Grade_Grade Float 8 成绩
Grade_chong char 20 重修

表2.13 学生成绩表


 
     表名:choise_Info 
 
列名 数据类型 数据长度 描述
Choise_Com Char 20 任课学院
Choise_Snum Char 20 学号      主键
Choise_Sname Char 20 姓名
Choise_Cnum Char 20 课程号    主键
Choise_Cname Char 20 课程名
Choise_Grade Char 20 开课年级
Choise_Cent Float 8 学分
Choise_Time Int 4 总学时
Choise_Tnum Char 20 教师号
Choise_Tname Char 20 教师名
Choise_Zhouci Char 20 上课周次
Choise_Times Char 20 上课时间
Choise_Cha Char 20 课程性质
Choise_Term Char 20 开课学期
Choise_School Char 20 开课学院
Choise_Adress char 20 上课地点

表2.17 选课单
 表名:course_Info

列名 数据类型 数据长度 描述
Course_Com Char 20 任课学院
Course_Num Char 20 课程号    主键
Course_Name Char 20 课程名
Course_Grade Char 20 开课年级
Course_Cent float 8 学分
Course_Time Int 4 总学时
Course_Tnum Char 20 教师号
Course_Tname Char 20 教师名
Course_Zhouci Char 20 上课周次
Course_Times Char 20 上课时间
Course_Sump Int 4 总人数
Course_Subp Int 4 已选人数
Course_Cha Char 20 课程性质
Course_Term Char 20 开课学期
Course_School char 20 开课学院
Course_Intro char 200 课程介绍

表2.18 专业课程表
 表名:class_Info 
 
列名 数据类型 数据长度 描述
Class_Num Char 20 教室号    主键
Class_Name int 4 教室名
Class_Zt Int 4 教师状态

表2.16 教室表
    表名:courses_Info

列名 数据类型 数据长度 描述
Courses_Com Char 20 任课学院
Courses_Num Char 20 课程号    主键
Courses_Name Char 20 课程名
Courses_Grade Char 20 开课年级
Courses_Cent float 8 学分
Courses_Time Int 4 总学时
Courses_Tnum Char 20 教师号
Courses_Tname Char 20 教师名
Courses_Zhouci Char 20 上课周次
Courses_Times Char 20 上课时间
Courses_Sump Int 4 总人数
Courses_Subp Int 4 已选人数
Courses_Cha Char 20 课程性质
Courses_Intro Char 200 课程介绍

表2.19素质选修课程表
表名:school_Info
   
列名 数据类型 数据长度 描述
School_Num Char 20 学院号    主键
School_Name Char 20 学院名
School_Intro char 200 学院介绍

表2.14 学院表
  

 


 表名:major_Info
 
列名 数据类型 数据长度 描述
Major_Snum Char 20 学院号    主键
Major_Sname Char 20 学院名
Major_Num Char 20 专业号    主键
Major_Name Char 20 专业名
Major_Intro Char 20 专业介绍

表2.15 专业表
表名:sum_Info
 
列名 数据类型 数据长度 描述
Sum_Snum Char 20 学号      主键
Sum_Dengys double 8 英语四级考试
Sum_Dengyl double 8 英语六级考试
sum_Dengj double 8 计算机等级考试
Sum_Jiang Char 200 奖惩信息
Sum_Shi Char 200 实践信息
sum_Tong Char 200 网上通知

表2.15 专业表
§ 2.2 系统性能分析
§ 2.2.1 精度
    数据的输入要符合其对数据格式的要求,例如登陆界面中用户ID的输入要符合要求,比如不能输入空字符等, 又如教师在成绩录入时不能输入大于100的整数等等,其他没有严格规定。
§ 2.2.2 时间特性要求
    本系统的用户主要是高校学生,当同时有很多学生一起登陆该系统时候,由于同时处理的数据量非常大,有可能会产生请求回答迟延现象,但是这样的几率不是很大,也不会导致数据出错现象。
§ 2.2.3 灵活性
    由于本系统由若干的子系统组成,它们之间可以是相互独立的,所以此系统有很强的可扩展性和兼容性,系统运行过程中由于对精度等方面要求有严格的处理,所以不必担心操作而带来的不便,加之系统运行过程中如果发现问题也可以及时的对系统进行维护和改进,系统将会变的越来越完善。
§ 2.3 输入输出要求
   系统对数据的输入和输出要求没有严格的要求,都可以有系统自动处理完成。
§ 2.4 数据处理能力要求
    此系统涉及到的数据量非常大,所以要求系统对数据处理能力要强,除了计算机硬件的性能方面我们无法改变以外,我们可以尽可能的减少不必要的数据处理,比如对数据库中表的建立要尽量的正确和规范等等。
§ 2.5 故障处理要求
    此系统涉及到的数据量很大,所以运行速度跟计算机CPU处理速度也有很大的关系,所以解决硬件方面的问题就是配置尽量好点的计算机硬件;此系统软件本身已经比较稳定,不会出现其他问题,为防止问题发生而产生破坏性的后果,最好的方法就是不定期的对系统软件进行维护,经常注意数据库的备份。
§ 2.6 系统运行环境
 开发出的软件要适用于各种Windows 2000或Windows XP平台和SQL Server数据库下,最低配置要求PIII 800,128M内存以及8M显存显卡。

第三章 学生信息管理系统设计
§ 3.1理论分析
 根据第二章对整个系统功能、模块等的具体分析,本作者设计开发了学生信息管理系统,此系统采用被动数据库[4]存储各种用户信信息,此系统所涉及到的用户对象根据需求可以分为3种(教务员、教师、学生),各种角色的用户所具有的操作权限有一定的限制,教务员可以对整个系统的其他使用者(教师和学生)进行信息管理,同时还要对学生所提交的课程进行组班排课;教师的主要职能是教学生课程,所以当一期课程结束后,应该由教师录入所教学生的成绩,则教师主要功能是实现学生成绩录入以及修改;学生是此系统的主要使用者,因为不管在哪个学校,学生的人数总是最多的,学生用户可以通过学生管理模块实现课程的选择、资费及相关信息的查询、个人信息修改等功能。通过对此系统功能等各个方面进行详细分析和思考后,采用SQL Server 数据库和PowerBuilder为开发工具实现此系统软件是完全可能的[3]。
§ 3.2 总体设计
    由于学生信息管理系统涉及多角色用户,并且各种角色用户所赋予的操作和管理权限的不同,因此很难对系统数据结构描绘详尽,层次方框图是用树形结构的一系列多层次的矩形描绘数据的层次结构,程序分析人员从对顶层信息的分类开始,沿图中每条路径反复细化,直到确定了数据结构的全部细节为止,使分析人员对系统的整体结构一目了然,故此采用层次方框图对系统对系统的整体结构进行描绘[6],这里只针对学生信息管理系统这个学生操作部分子系统做详细层次分析,教务员管理系统和教师排课系统是为了实现学生信息管理系统中某些功能而附加的功能,所以本次设计将不把他作为重点,只在模块详细介绍处对他们做介绍。
 

 

 系统层次方框图

图3.1 学生信息管理系统层次方框图
§ 3.3 模块划分
 学生信息管理系统是高校对学生所有信息管理和操作的总和,系统中的一系列操作都是基于学生的,根据对学生信息操作的用户对象不同可以分为教务员、教师以及学生,各角色用户的授权是不同的,操作的内容也有所区别,按照用户角色的不同把学生信息管理系统可以分为3个子系统:教务员管理系统、教师管理系统和学生管理系统。分别对应不同角色的操作对象(教务员、教师、学生),所以总的来说学生信息管理系统大体划分为教务员管理模块、教师管理模块和学生管理模块,以下对各个模块功能进行详细的说明和介绍。
§ 3.3.1 教务员管理系统模块详细介绍
 教务员管理模块是整个系统的核心模块,教务员具有最大的操作权限,可以对教师和学生基本信息进行操作管理,审核学生和教师提交的各种信息,对教师和学生提交的信息进行各种操作,同时还要对整个数据库维护等。以下对教务员管理模块的各种功能模块进行更具体的介绍说明。
 教师信息模块:此模块实现教务员对学校所有教师的基本信息进行管理,比如:1、当有新的老师来学校任教或工作时,必须先到教务员处进行注册登记,实现对新老师的录入;2、学校教师随时都有可能更变个人信息,比如老师联系方式、工作地点等等,这时候需要对老师的基本信息信息进行修改,教务员实现对教师信息维护修改功能;3、学校随时都有老师退休或转业等情况离开学校,这时候学校将不再有此教师,应该在系统中删除此教师相关的信息,实现对该老师的删除,当然,在上面实现对教师信息修改和删除功能的同时,查询功能是必须的。
 学生信息模块:此模块实现教务员对学校所有学生的基本信息进行管理,比如:1、每一年都招收大量的新生,所以必须先到教务员处进行注册登记,实现对新生的录入;2、学校学生可能更变个人信息,比如学生当初注册时候由于数据量大造成的输入错误等,等以后发现的时候就需要进行修改,这时候需要对学生的基本信息信息进行修改,教务员实现对学生信息维护修改功能;3、学校每年都大量的学生毕业,所以对这些毕业的学生应该在系统中删除相关的信息,实现对该学生的删除;然而,在上面实现对学生信息修改和删除功能的同时,查询功能是必须的。
    排课模块:排课模块主要是完成安排学生上课时间、上课地点功能。首先,学院列出的课程要有学生选课, 如果没学生选课,那排课也就毫无意义了;根据选择人数的多少安排相应的教室,这对课程的选择总人数也是有严格的规定的,假如一门课程的选课人数少于50人,那么将取消该门课程,不给予给门课程进行排课;课程大于50人则给予排课,安排上课教室,但是由于学校教室类型多样,有大有小,则必须根据课程选择人数的多少给予相应的教室安排,此功能由系统内部判断给予分配。
§ 3.3.2 教师管理系统模块详细介绍
    教师管理模块是实现教师信息管理及相应操作的模块,主要实现对学生成绩进行管理的功能以及教师个人基本信息操作功能,以下对各功能进行详细介绍。
    教师信息模块:教师信息管理模块实现教师对自己基本信息的修改,查询其他老师基本信息等
 成绩录入模块:成绩录入模块主要实现教师对学生成绩的录入。比如:1、当某教师授某课程结束后,对学生考试成绩进行提交存入数据库,录入成绩就必须由教师完成,由于本作者需求分析阶段对专业课程和素质选修课程有不同的规定,所以教师成绩录入分为站业课程成绩录入和素质课程成绩录入,录入的操作基本相同。2、由于有的学生重修课程,所以原来数据库中存在此学生的不及格成绩信息,当重修及格以后,教师还得修改此学生的成绩为及格,实现对学生成绩的修改功能。
§ 3.3.3 学生管理系统模块详细介绍
    学生信息管理模块是整个系统中最主要的部分,因为本系统使用率最高用户还是学生,所以学生管理模块需要实现的功能就相对其他模块更多、更为完善。以下对学生管理系统模块功能进行详细介绍。
 学生信息模块:此模块实现学生对自己基本信息的修改,对其他学生基本信息进行查询等,其实现和操作类似与教师信息模块。
    选课模块:选课模块实现学生选课功能,按照设计当初参照学校选课系统,本作者把选课分为专业课程选课、公共课程选课、素质课程选修及重修课程选课,当选课成功以后提交到教务员处,由教务员审订,如果审订成功则对所选课程安排上课教室,当选择课程人数不够或其他原因使得教务员审订不成功,则选课失败。
    查询模块:在选课模块选课完成以后,即可以查询模块本期中已经选择的课程;当学生有重修和素质选修课程时,还可以查询本期所选课程所要交的课程费用(专业课程和公共课程不用交课程费用),查询以往所有的成绩,返回学生所选课程总学分数,不及格课程科目数及学生须重修的学分数等;当教务员对学生所选课程排课成功后,学生可以查询自己所选课程的上课教室;查询英语和计算机等级考试情况;查询本人到学校以来所有的奖惩情况;查询学生社会实践及活动情况;查询教务员在网上发布的各种消息和通知。
 专业浏览:本模块实现浏览学校各学院的介绍以及各专业介绍。
   密码修改模块:密码修改模块针对各种角色的用户(教务员、教师、学生),修改自己的系统登陆密码。

第四章 学生信息管理系统实施
§ 4.1 创建数据库
  (1)在系统上安装Microsoft SQL Server 2000个人版。
 (2)启动SQL Server 2000中的服务管理器,再启动“企业管理器”,并和服务管理器建立连接,新建数据库并命名为“student”,其他相关属性选默认值[5]。
 (3)用企业管理器在数据库中建立系统所用到的所有到表。
§ 4.2 连接数据库
 (1)在PowerBuilder中配置ODBC,单击PowerBar上的DB Profile画板,出现Database Profiles设置窗口[6],如图4.1所示。

图4.1 Database
选择ODB ODBCUtilities ODBC Administrator双击,出现ODBC Administrator的设置窗口,如图4.2所示。
      

图4.2 ODBC 数据源管理器

选择  系统DNS,单击添加按钮,出现 如图4.3 所示的窗口。

图4.3 创建新数据源

选择SQL Server 单击 完成。开始创建新数据源 如图4.4。

图4.4 创建 SQL Server的新数据源

在名称栏输入数据源的名字(自己命名),选择服务器(如果没运行的服务器则先运行服务器),单击下一步。在出现 如图4.5 中。

图4.5 创建SQL Server 的新数据源

    选择先前已经建立好的数据库student,其他的属性设置中选择默认值,单击下一步即可,最后测试下与数据库的连接,连接成功则数据源设置完成。
    (2)选定Database Profiles窗口的ODB ODBC项,右键单击选择New Profiles,在出现的Database Profiles Setup_ODBC [7]如图4.6

图4.6 Database Profile Setup-ODBC

    中在Profile Name输入students(自命名),Data Source选择刚才建立好的数据源student。单击 OK,在Database Profiles设置窗右键单击students选择connection,则和数据库student连接上了。
 (3)在Database Profiles Setup_ODBC页中选择Preview 在按Copy按钮,把复制的内容写到应用程序对象的open事件中,如下:
// Profile students
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=student;UID=;PWD='"
 if sqlca.sqlcode<>0 then
     messagebox("连接失败!",sqlca.sqlerrtext)
     return
 else
 open(w_login)
 end if

 应用程序运行后第一个出现的窗口是上面语句打开的w_login窗口。在应用程序对象的变量定义窗口中定义了全局变量,如下:
string user            //登陆用户的ID
string password        //用户密码
string getterm         //用于学生选择学期用
string cnumintro       //选择课程介绍用
int jiaose             //判断用户角色
§ 4.3 系统功能模块的实现
§ 4.3.1 用户登陆模块实现 
    本系统的用户使用对象分3种类型:学生、教师、教务员,用户在登陆本系统时就必须选择相应的角色,根据用户角色的不同,本系统分为教务员管理系统、教师管理系统、学生管理系统。并且不同的角色用户进入与其相应的操作主界面。用户登陆窗口命名为:w_login;教师、学生、教务员进入的操作主界面分别命名为:w_teacher_main,w_student_main,w_admin_main 。并且所有角色类型用户的操作主界面的Window Type都选择为mdi!。
 用户登陆界面:

                             图4.7 用户登陆窗口
 
 
 
 学生操作界面:

                             图4.8 学生主窗口
      教师操作界面:

                               图4.9 教师主窗口
      教务员操作界面:

                            图4.10 教务员主窗口
  主窗口中添加图片及文字的实现:
新建窗口w_p2,Window Type 设置为child!,窗口中添加图片控件,在图
片控件General页Picture Name中选择要添加的图片位置,鼠标拖动设置图片大小再添加static text 控件在,调整两个控件位置。
窗口w_p2的open事件程序代码如下,用于显示文本框内容
string name
if jiaose=1 then
 select admin_Name
 into:name
 from admin_Info
 where admin_Num=:user;
 if sqlca.sqlcode=0 then
  st_1.text="欢迎教务员 "+trim(name)+" 光临!"
 end if
else
 if jiaose=2 then
  select std_Name
    into:name
    from std_Info
    where std_Num=:user;
    if sqlca.sqlcode=0 then
     st_1.text="欢迎学生 "+trim(name)+" 光临!"
    end if
 else
  select teacher_Name
    into:name
    from teacher_Info
    where teacher_Num=:user;
    if sqlca.sqlcode=0 then
     st_1.text="欢迎教师 "+trim(name)+" 光临!"
    end if
 end if
end if
 
 学生操作主界面的open事件为:OpenSheet(w_p2, w_student_main, 0, Original!)
 教师和教务员操作主界面的open事件类似学生的,不在详述。
§ 4.3.2 学生选课功能的实现
    本系统在学生管理模块实现学生网上选课功能,由于对课程开课安排和性质的规定,学生选课分为专业课程选课、素质选修课程选课以及学生重修选课[9]。
    首先介绍专业课程选课功能的实现过程:当学生登陆学生信息管理系统时,系统定义的全局变量user将保存学生登陆系统的学号,通过学生的学号,用函数left()提取学号前4为数字可以判断出此学生所属年级;然后在学期选择窗口选择要选课的学期,并将学期保存到全局变量getterm中;最后在学生基本信息表中提取该学生所属的学院,通过开课年级、开课学期和开课学院可以准确的把此学生所有能选择的课程显示出来供选择参考。
具体代码实现如下:
integer inde=1
string com,num,name,grade,tnum,tname,zhouci,time2,cha,users,schools
double cent
int time1,sump,subp
users=left(user,4)
select std_Sname
into :schools
from std_Info
where std_Num=:user;
schools=trim(schools)
lv_1.InsertColumn(1,"选课" , Left! , 200)
lv_1.InsertColumn(2,"授课学院" , Left! , 600)
lv_1.InsertColumn(3,"课程号" , Left! , 300)
lv_1.InsertColumn(4,"课程名" , Left! , 600)
lv_1.InsertColumn(5,"开课年级" , Left! , 400)
lv_1.InsertColumn(6,"学分" , Left! , 200)
lv_1.InsertColumn(7,"总学时" , Left! , 300)
lv_1.InsertColumn(8,"教师号" , Left! , 300)
lv_1.InsertColumn(9,"教师名" , Left! , 400)
lv_1.InsertColumn(10,"周次" , Left! , 300)
lv_1.InsertColumn(11,"上课时间" , Left! , 400)
lv_1.InsertColumn(12,"总人数" , Left! , 300)
lv_1.InsertColumn(13,"已选人数" , Left! , 400)
lv_1.InsertColumn(14,"课程性质" , Left! , 400)
lv_1.deleteitems()

where course_Grade=:users and course_Term=:getterm and course_School=:schools;
open codecur;
fetch codecur into:com,:num,:name,:grade,:cent,:time1,:tnum,:tname,:zhouci,:time2,:sump,:subp,:cha;
do while Sqlca.Sqlcode=0
  lv_1.insertItem (inde,trim("选课"),1)
     lv_1.setitem(inde,2,trim(com))
  lv_1.setitem(inde,3,trim(num))
  lv_1.setitem(inde,4,trim(name))
  lv_1.setitem(inde,5,trim(grade))
  lv_1.setitem(inde,6,trim(string(cent)))
  lv_1.setitem(inde,7,trim(string(time1)))
  lv_1.setitem(inde,8,trim(tnum))
  lv_1.setitem(inde,9,trim(tname))
  lv_1.setitem(inde,10,trim(zhouci))
  lv_1.setitem(inde,11,trim(time2))
  lv_1.setitem(inde,12,trim(string(sump)))
  lv_1.setitem(inde,13,trim(string(subp)))
  lv_1.setitem(inde,14,trim(cha))
  inde=inde+1
fetch codecur into:com,:num,:name,:grade,:cent,:time1,:tnum,:tname,:zhouci,:time2,:sump,:subp,:cha;
loop
close codecur;

 学期选择界面用以确定学生选课学期,每年分为春秋两学期,由数字形式的字符串表示,比如2005年至2006年这一年中春秋两学期分别表示为:2005-2006-1和2005-2006-2。界面如图4.11所示
 

图4.11 学期选择窗口

    专业选课界面显示出了学生对应学期、年级的所有可以选择的专业课程信息,提供给学生一个选课参考。如图4.12

图4.12 专业选课窗口

    根据窗口中列出的所有可以选择的课程,如果想选择某一门课程,则单击 选课 就可以进行课程选择,如果你已经选择了此门课程,则提示已经选择此课程;系统规定每学期最多只能选择20个学分的课程(不包括重修),要是所选择的课程学分数加上已经选课程的总学分数大于20个学分,则选课不成功;如果所选择的课程人数已经选满,则选课也不成功。
选课代码如下:
string com,sname,grade,tnum,tname,zhouci,time2,cha,term,school
string cnum,cname,a,b,cents
double cent,sumcent
int time1,sump,subp
long ch
integer dex
dex=lv_1.SelectedIndex ()
lv_1.GetItem(dex,3, cnum)
lv_1.getItem(dex,4,cname)
lv_1.getItem(dex,6,cents)
if cnum=''then 
else
 ch=messagebox("提示","最多可选择20个学分!"+"你确定选 "+trim(cname)+" 择这门课程吗?",question!,YesNoCancel!)
 if ch=1 then
  select choise_Snum,choise_Cnum
  into :a,:b
  from choise_Info
  where choise_Snum=:user and choise_Cnum=:cnum;
  if user=trim(a) and cnum=trim(b)  then
   messagebox("提示","你已经选择了"+" "+trim(cname)+" "+"择这门课程!")
  else
   select sum(choise_Cent)
   into :sumcent
   from choise_Info
   where choise_Snum=:user and (choise_Cha="专业选修" or choise_Cha="专业必修" or choise_Cha="公共选修"or choise_Cha="公共必修"or choise_Cha="素质选修");
   if sumcent + double(cents) > double(20) then
    messagebox("提示","最多选20个学分"+"你已经选"+trim(string(sumcent))+"个学分!"+trim(cname)+" "+"学分为"+trim(cents))
    return
   end if
   select    where course_Num=:cnum;
   if sump - subp <= 0 then
    messagebox("提示","选择此门课的人数已满!")
    return
   end if
   select std_Name
   into :sname
   from std_Info
   where std_Num=:user;
   insert into choise_Info (    update course_Info
            set course_Subp=:subp
            where course_Num=:cnum;
    messagebox("提示",trim(cname)+" "+"这门课选择成功!")
   end if
  end if
 else
 end if
end if

§ 4.3.3 学生查询功能的实现
    学生查询模块可以查询各种信息他主要由选课查询、课表查询、资费查询及成绩查询4个部分组成[8]。各部分介绍如下:
   选课查询界面:

图4.13 选课查询窗口

    当学生选课结束以后,系统把学生当前提交的课程信息保存到一个临时的表中,等待教务员审订通过选课,这时学生可以对已经选择的课程进行查询,确定原来选择的课程是否选上,并且当不满意原来所选的选课时候,学生可以撤消不满意的课程,然后做再次调整,直到学生满意所有的课程选择,选课查询界面相当于学生对课程选择的修改、确认界面。
代码如下:
integer inde=1
string com,cnum,cname,grade,tnum,tname,zhouci,time2,cha
double cent
int time1,subp
string cnums,cnames,chas
integer dexs
long k
dexs=lv_1.SelectedIndex ()
lv_1.GetItem(dexs,3, cnums)
lv_1.GetItem(dexs,4, cnames)
lv_1.GetItem(dexs,12, chas)
cnums=trim(cnums)
if cnums=""then
else
 k=messagebox("提示","你真的想撤消课程 "+trim(cnames)+" ?",question!,YesNoCancel!)
 if k=1 then
  delete from choise_Info where choise_Snum=:user and choise_Cnum=:cnums;
  if sqlca.sqlcode=0 then
   messagebox("提示","课程 "+trim(cnames)+" 撤消成功!")
   if trim(chas)="素质选修"then
    select courses_Subp
    into :subp
    from courses_Info
    where courses_Num=:cnums;
        subp=subp - 1 
 update courses_Info
            set courses_Subp=:subp
            where courses_Num=:cnums;
   else
    select course_Subp
    into :subp
    from course_Info
    where course_Num=:cnums;
    subp=subp - 1
    update course_Info
            set course_Subp=:subp
            where course_Num=:cnums;
   end if
   lv_1.deleteitems();
         open codecur;
         fetch codecur into:com,:cnum,:cname,:grade,:cent,:time1,:tnum,:tname,:zhouci,:time2,:cha;
         do while Sqlca.Sqlcode=0
        lv_1.insertItem (inde,trim("撤消"),1)
          lv_1.setitem(inde,2,trim(com))
        lv_1.setitem(inde,3,trim(cnum))
        lv_1.setitem(inde,4,trim(cname))
        lv_1.setitem(inde,5,trim(grade))
        lv_1.setitem(inde,6,trim(string(cent)))
        lv_1.setitem(inde,7,trim(string(time1)))
        lv_1.setitem(inde,8,trim(tnum))
        lv_1.setitem(inde,9,trim(tname))
        lv_1.setitem(inde,10,trim(zhouci))
        lv_1.setitem(inde,11,trim(time2))
        lv_1.setitem(inde,12,trim(cha))
        inde=inde+1
         fetch codecur into:com,:cnum,:cname,:grade,:cent,:time1,:tnum,:tname,:zhouci,:time2,:cha;
         loop
         close codecur;   
  end if
 else
 end if
end if

   资费查询界面:

图4.14 资费查询窗口

    资费查询界面实现学生费用查询功能,即对已经选择的课程所交纳费用的查询,需要交纳费用的课程科目包括素质选修课程和重修课程(其他不需要交纳费用),费用为60元/1学分。资费界面中显示出所有需要交纳费用的课程及金额数,并计算出需要交纳的总费用。

 


   成绩查询界面:

                              图4.15 成绩查询窗口

    成绩查询模块实现的功能是查看以往学过所有课程的成绩,根据个人要求不同可以对成绩进行统计,比如可以按升、降序排列成绩,统计以前所有课程总学分数,查看不及格科目门数及需要重修的学分数等等。
   课表查询界面:

图4.16 课表查询窗口

    当学生选课结束后,教务员通过学生提交的选课信息,审订课程是否给予排课安排教室,假如某课程审订通过则对此课程安排相应的上课教室。学生可以在课表栏查询到所此课程对应的上课教室、上课时间及周次等相关信息。
§ 4.3.4 学生个人信息修改功能的实现
   本模块包括学生对本人基本信息的修改和他人基本信息查询。
   个人信息修改界面:

图4.17 基本信息修改窗口

    个人基本信息修改界面只能对除学号、姓名以外的信息进行修改,当确认修改后按提交按钮,则保存修改。
   查询他人基本信息界面:

图4.18 基本信息查询窗口

 在查询界面输入要查询学生的学号,及可查询到对应学生的基本信息,如输入:20003789 显示信息如图4.18所示,如果输入学生学号不正确或不符合规范,则系统提示输入错误。
§ 4.3.5 教务员排课功能的实现
    此模块实现功能:教务员对学生提交的选课单进行排课,由于课程开课年级和学期的关系,把排课分为专业课程排课和素质选修课程排课,又两种排课实现都基本相同,所以本作者只介绍专业课程排课。
    排课界面:

图4.19 专业课程排课窗口

    根据规定系统设定凡是选择课程人数少于50人的课程不给予排课,由于课程科目交多,教务员可以查看指定的课程号对应课程的所有信息,比如查询已经选择人数,可以避免不必要的排课造成工作效率降低;当确定要排的课程后,在排课栏输入要排的课程号,系统根据设定算法,自动对课程进行排课。
代码如下:
string num,classnum,pa
int subp,zt=1
long k
num=sle_2.text
select course_Subp
into :subp
from course_Info
where course_Num=:num;  //专业课程中提取已选人数
if sqlca.sqlcode<>0 then
 messagebox("提示","课程号不存在!")
 return
end if
select choise_Adress
into:pa
from choise_Info
where choise_Cnum=:num;
pa=trim(pa)
if pa<>"" then
 messagebox("提示","已经排课!")
 sle_2.text=""
 return
end if
if subp < 50 then  //安排教室
   k=messagebox("提示","选择学习此课人数太少,此课取消!",question!,YesNoCancel!)
 if k=1 then
  delete from choise_Info where choise_Cnum=:num;
  if sqlca.sqlcode<>0 then
   messagebox("","此课取消失败!")
   return
  end if
  update course_Info
  set course_Subp=0
  where course_Num=:num;
  if sqlca.sqlcode<>0 then
   rollback;
   messagebox("","此课取消失败!")
   return
  end if
  commit;
  messagebox("提示","操作成功!")
 end if
 return
end if
//************小教室安排***********
if subp >= 50 and subp <= 70 then
 select class_Num
 into:classnum
 from class_Info
 where class_Cha = 70 and class_Zt = 0 ;
 update class_Info
 set class_Zt=:zt
 where class_Num=:classnum;
 if sqlca.sqlcode<>0 then
    messagebox("提示","数据库中插入出错!")
  rollback;
  return
 end if
 update choise_Info
 set choise_Adress=:classnum
 where choise_Cnum=:num;
 if sqlca.sqlcode<>0 then
    messagebox("提示","排课失败!")
  rollback;
  return
 end if
 messagebox("提示","排课成功!")
 sle_2.text=""
 commit;
 return
end if
//************中等大教室安排***********
if subp > 70 and subp <= 150 then
 select class_Num
 into:classnum
 from class_Info
 where class_Cha = 150 and class_Zt = 0 ;
 update class_Info
 set class_Zt=:zt
 where class_Num=:classnum;
 if sqlca.sqlcode<>0 then
    messagebox("提示","数据库中插入出错!")
  rollback;
  return
 end if
 update choise_Info
 set choise_Adress=:classnum
 where choise_Cnum=:num;
 if sqlca.sqlcode<>0 then
    messagebox("提示","排课失败!")
  rollback;
  return
 end if
 messagebox("提示","排课成功!")
 sle_2.text=""
 commit;
 return
end if
//**************大教室安排************
if subp > 150 and subp <= 300 then
 select class_Num
 into:classnum
 from class_Info
 where class_Cha = 300 and class_Zt = 0 ;
 update class_Info
 set class_Zt=:zt
 where class_Num=:classnum;
 if sqlca.sqlcode<>0 then
    messagebox("提示","数据库中插入出错!")
  rollback;
  return
 end if
 update choise_Info
 set choise_Adress=:classnum
 where choise_Cnum=:num;
 if sqlca.sqlcode<>0 then
    messagebox("提示","排课失败!")
  rollback;
  return
 end if
 messagebox("提示","排课成功!")
 sle_2.text=""
 commit;
 return
end if

§ 4.3.6 教师成绩录入功能的实现
   此模块实现教师对学生成绩的录入及修改等操作[10]。
   成绩录入界面:

图4.20 成绩录入窗口

    对学生成绩的录入分新录和修改,如果添加学生新课程成绩,按添加按钮,输入学生对应信息及成绩,然后保存即可。假如要修改某学生成绩,可以在文本框中输入学生学号,查找该学生对应信息,也可以输入要修改课程的的课程号进行查询,当操作完成以后保存,成绩录入成功。
§ 4.3.7 密码修改功能的实现
    密码修改界面被各角色用户公用,当用户登陆此系统时,系统设置的全局变量jiaose将保存此用户的角色信息,当jiaose=1时,表示该用户是教务员;当jiaose=2时,表示该用户是学生;否则用户是教师。系统根据jiaose的取值从而判断出该用户是何种类型。当各类型用户进行密码修改时,系统从而能确定该用户对应的个人信息表,对密码进行修改,从而实现密码修改功能。

 


 密码修改界面:

图4.21 密码修改界面

 其他模块如教师基本信息查询、修改;教务员对教师、学生的添加、删除、修改等功能,这里不在做详细说明,本作者只对学生选课功能做了详述。
密码修改功能实现代码如下:
string pw1,pw2,pw3
pw1=sle_1.text
pw2=sle_2.text
pw3=sle_3.text
if jiaose=1 then  //教务员密码修改
 if trim(password)=pw1 then
  if pw2=pw3 then
   update admin_Info set  admin_Key=:pw2 where admin_Num=:user;
   if sqlca.sqlcode=0 then
    messagebox("","密码修改成功!")
      close(w_modify_key)
   else
    messagebox("","密码修改失败!")
   end if
  else
   messagebox("","两次输入的密码不一致!请重新输入。")
   sle_2.text=''
     sle_3.text=''
     return
    end if
 else
  messagebox("","输入的旧密码不正确!")
  sle_1.text=''
  return
 end if
 return
end if
if jiaose=2 then//学生密码修改
 if trim(password)=pw1 then
  if pw2=pw3 then
   update std_Info set  std_Key=:pw2 where std_Num=:user;
   if sqlca.sqlcode=0 then
    messagebox("","密码修改成功!")
      close(w_modify_key)
   else
    messagebox("","密码修改失败!")
   end if
  else
   messagebox("","两次输入的密码不一致!请重新输入。")
   sle_2.text=''
     sle_3.text=''
     return
    end if
 else
  messagebox("","输入的旧密码不正确!")
  sle_1.text=''
  return
 end if
else
 if trim(password)=pw1 then//教师密码修改
  if pw2=pw3 then
   update teacher_Info set  teacher_Key=:pw2
 where teacher_Num=:user;
   if sqlca.sqlcode=0 then
    messagebox("","密码修改成功!")
      close(w_modify_key)
   else
    messagebox("","密码修改失败!")
   end if
  else
   messagebox("","两次输入的密码不一致!请重新输入。")
   sle_2.text=''
     sle_3.text=''
     return
    end if
 else
  messagebox("","输入的旧密码不正确!")
  sle_1.text=''
  return
 end if

第五章 学生信息管理系统测试
§ 5.1测试环境
    本系统的测试是在Windows XP+SQL Server200环境下进行;数据库学生表中有数据2条,专业课程表中有数据若干条;成绩表中有成绩若干条;其他表中也有数据若干。
§ 5.2测试目的和目标
 测试目的是发现程序中的错误,好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案成功的测试是发现至今为止尚未发现的错误的测试。
 本系统的主要功能是学生选课,所以本作者此次测试的对象是学生选课模块,其次是成绩录入模块,因为这两个是本系统的核心,数据的正确性直接关系到学生的成绩好坏,所以相对来说非常重要。
§ 5.3 选课测试
    本作者以学号为20023789的学生为例,通过该学生对各性质课程选课、撤消等操作的正确性,来测试学生信息管理系统选课功能的正确性、可靠性、完整性等。
    学生进行专业课程选课时,首先选择相应学期,学期选择窗口如图5.1所示。

图5.1学期选择窗口

    通过选择学期窗口,可以获取该学生选课学期并保存到全局变量getterm中,本次测试选择学期2002-2006-2。由函数left(4,num)(num是String类型的学生学号)可以提取学号20023789的前四位用以确定该生所属年级;在从学生个人基本信息表中获取该学生所属学院。通过该学生年级、学期及学院可以从课程表中提取满足这三个条件的所有课程并显示出来供学生选择。所有课程显示如图5.2所示

图5.2 选课窗口

    学生从图5.2列出的所有课程中选择课程,本次测试假如以课程号为00001的课程为例,单击选课,则提示如图5.3所示信息框

图5.3 选课窗口

    选择是,则出现提示如图5.4所示信息,选择否或取消按钮,则终止此课程选择。

                                  图5.4 选课窗口

    假如想了解某课程的详细信息,可以在输入课程号查询课程的介绍。通过上面所述操作步骤,以同样操作选择所有课程,本作者只在专业课程表中录入了符合该生选课条件的4门课程,假如由于操作错误当学生再次选择已经选择成功的课程时,会出现如图5.6所示的信息提示

                                 图5.6 选课窗口

提示选课者已经选择了此门课程,选择不成功。
    由于上面的所有课程在选课操作过程中无法查询是否已经选择成功,当学生选课结束时就可以立即查询刚才所选择课程,确定是否选择成功。打开选课查询窗口,显示出所有已经选择课程的信息如图5.7所示

图5.7 课程查询窗口

    从选课查询窗口的课程信息中可知先前所有课程选课成功。此信息窗口中可以实现对不满意课程的撤消,假如对课程号为00002的课程选择不满意,想撤消该课程,则按“撤消”出现信息提示如图5.8

图5.8 课程查询窗口

    选择是,则撤消以后再查询选课情况如图5.9所示,当选择否或取消按钮则取消该门课程的撤消。

图5.9 课程查询窗口

    由图5.9可以明显看出,对课程号为00002的课程“网络技术”撤消成功。
    当学生进入素质选课课程选课时,和专业课程选择不同的是,素质课程选课不必进行学期选择,全校各个年级的学生都可以选修同一门课程,所以对素质选修课程的选课不存在年级、学期以及学院这方面的限制。
    素质选修课程的选课界面操作和专业选修课程的选课操作一样,对选课窗口中 列出的所有课程进行选课,本次测试以素质选修课程号为00005和00006的课程为例,选择该两门课程,选择完毕后在进入课程查询界面对素质选修课程进行查询,通过查询可知对素质选修课程的选课成功,类似对专业课程撤消,撤消刚才选择的素质选修课程号为00006的课程,撤消完毕后在进行查询,可见和预期的结果一样撤消成功。
    学生重修选课和前面介绍的两门选课不一样的是,重修选课的课程是从该学生的成绩信息表中获得,由系统设置为凡是成绩低于60分的课程就必须给予重修。还是以学号为20023789的学生为例,首先查询该学生的所有课程的成绩,从返回的成绩单中可以看到课程“电子商务”成绩为58,进入重修选课界面,可以看到界面中列出了该生成绩小于60分的所有课程,当然也只有一门课程,因为该生的成绩表中只有一门课程的成绩是小于60的,这里对重修课程选课的操作又和前面的相同,按照前面的操作步骤对重修课程进行选择、撤消等操作,可见重修选课功能运行正常。
§ 5.4 成绩录入测试
    当每期考试结束以后,需要对各个学生的课程成绩录入系统,这项任务当然由用户角色为教师的用户完成,本次测试选择教师号为0001的教师完成。当该教师登陆后进入学生成绩录入界面便可以进行学生成绩信息录入。成绩录入界面如图5.12所示

图5.12 学生成绩录入窗口

    假如对学生新学习的课程成绩进行录入,则选择添加,在数据窗口中输入要录入学生的相关信息和成绩,就可以添加学生成绩,实现成绩的录入功能,本测试输入学号20023789 等信息如入5.12所示;当某学生重修某课程及格以后,就需要修改此学生对应的重修课程成绩,但是由于数据库中数据量相当大,要通过想逐一查找找到该课程实在太费时间,成绩录入模块提供了可以根据学生学号或课程号查找学生课程的功能,通过输入需要查找学生的学号或需要查找的课程号就可以得到相关课程信息,如图5.13显示了学生学号为20023789,课程号为2005002的课程信息。

图5.13 学生成绩修改窗口

    假如该生此课程重修及格,修改成绩58为60,并且注明为重修或补考等。成绩修改和操作完成以后,按保存按钮,实现对成绩录入保存。
 对学生成绩录入和修改完毕以后,进入查询界面查看刚才的录入是否成功,经过查询可知,刚才对学生成绩的录入和修改完全正确,准确无误。
    通过学生选课功能和教师成绩录入功能的测试,我们可以清楚的看到显示的结果和我们预期的结果完全符合,充分说明了此系统可靠性、准确性,说明了本作者设计开发的此系统是符合要求,且非常实用的。本作者只对重要的功能模块做了测试,至于还存在的不足问题还待在系统的使用过程中发现。
  
 

结 论

    此次毕业设计是我们大学四年所学知识的综合运用,整个设计过程使我们的动手能力、对问题的分析能力以及解决能力都得到了充分了锻炼,因此此次设计对我们非常重要, 所以在此次设计上我投入了我所有的时间和精力。在整个设计过程中,我始终保持着严谨、认真的治学态度。从设计最初的构思到最后的实现我都花费了大量的心血,不敢有半点马虎。尽管如此,由于知识和经验的欠缺,在整个系统的开发过程中遇到了很多困难,比如由于早期的需求分析不充分,给后来系统的具体实现带来了很大的困难,这使得我不的不重新对系统的整个结构做详细的分析,所以做了相当多的无用功,但通过自己的不懈努力和同学的帮助,设计才得以圆满完成,所以尽凭个人之力想设计出一个完美的系统几乎是不可能的。
    本系统实现的主要功能是对高校学生的选课,基本实现了任务书上功能要求,但是仅仅是对学生选课功能的实现是不够,还得实现排课、学生成绩录入等功能,但是由于时间、人力等方面的原因,本系统实现的排课功能不是很完善,成绩录入功能虽然也实现了,但是非常粗糙,而且数据的保密性不高,这正是本系统的不足之处,还待改进。
    通过此次设计,使我大学所学专业知识得到了充分的应用,锻炼了我思考问题、解决问题的能力,使我动手能力得到很大的提高,对我以后的工作、学习有非常大的帮助。
 


参考文献

[1] 程成,陈霞 .软件工程(第六版).机械工业出版社.2003-1-1:56-56
[2] 罗瑞强,张廷德.软件工程.大连理工大学出版社.2000年9月第三版:79-150
 [3] 周鲜成,倪文志. 高校学生信息管理系统的研究与开发.湖南商学院学报:2002年03期
 [4] Rehab M. Duwairi. A framework for the computerized assessment of university student essays.Rusuition Patuar.May 2006:381-388
[5] 王小铭.管理信息系统及其开发技术.电子工业出版社.1997年9月第1版:1-205
 [6] The museum network and on demand systems for school education based on PB. Kumiko Iwazaki; Takami Yasuda.2002:53-163
[7] 王晓庆.数据库管理与应用开发.高等教育出版社.2004年9月第三版:56-76
 [8] Michael Otey Paul Conte.SQL Server 2000 Developent Guide.清华大学出社.2001:69-185
[9] 刘永,常金玲等.信息系统分析与设计.科学出版社.2004年2月:231-286
 [10] Bhavesh Parikh,Ayat Jafari.Hiding informative association rule sets.Neurocomputer Mearn.9 June 2006:95-140
 [11] Kim Walden.Object-Oriented Software Architecture.电子工业出版社.2003年7月第二版:44-80
[12] 刘启民.PowerBuilder 8.0开发人员指南.科学出版社.2004年7月第四版:22-61
 [13] 章立民.SQL Server 2000中文版完全实战—入门篇.中国铁道出版社.2001年三月第1版:156-253
 [14] 王守茂.管理信息系统的分析与设计.天津科技翻译出版公司.2003年7月第一版:77-121
[15] 邦贵,郭胜.数据库开发入门与范例解析.机械工业出版社.2004-5:82-115


以上为本篇毕业论文范文学生信息管理系统的介绍部分。
本论文在计算机论文栏目,由论文网(www.zjwd.net)整理,更多论文,请点论文范文查找

毕业论文降重 相关论文

收费专业论文范文
收费专业论文
汉语言文学论文
物理学论文
自动化专业论文
测控技术专业论文
历史学专业论文
机械模具专业论文
金融专业论文
电子通信专业论文
材料科学专业论文
英语专业论文
会计专业论文
行政管理专业论文
财务管理专业论文
电子商务国贸专业
法律专业论文
教育技术学专业论文
物流专业论文
人力资源专业论文
生物工程专业论文
市场营销专业论文
土木工程专业论文
化学工程专业论文
文化产业管理论文
工商管理专业论文
护理专业论文
数学教育专业论文
数学与应用数学专业
心理学专业论文
信息管理专业论文
工程管理专业论文
工业工程专业论文
制药工程专业论文
电子机电信息论文
现代教育技术专业
新闻专业论文
艺术设计专业论文
采矿专业论文
环境工程专业论文
西班牙语专业论文
热能与动力设计论文
工程力学专业论文
酒店管理专业论文
安全管理专业论文
交通工程专业论文
体育教育专业论文
教育管理专业论文
日语专业论文
德语专业论文
理工科专业论文
轻化工程专业论文
社会工作专业论文
乡镇企业管理
给水排水专业
服装设计专业论文
电视制片管理专业
旅游管理专业论文
物业管理专业论文
信息管理专业论文
包装工程专业论文
印刷工程专业论文
动画专业论文
环境艺术专业论文
信息计算科学专业
物流专业论文范文
人力资源论文范文
营销专业论文范文
工商管理论文范文
汉语言文学论文范文
法律专业论文范文
教育管理论文范文
小学教育论文范文
学前教育论文范文
财务会计论文范文

电子商务论文范文

上一篇:学生信息管理系统毕业设计(文档.. 下一篇:基于J2EE的档案管理系统—前台功..

最新论文

精品推荐

毕业论文排版

热门论文


本站简介 | 联系方式 | 论文改重 | 免费获取 | 论文交换

本站部分论文来自网络,如发现侵犯了您的权益,请联系指出,本站及时确认删除 E-mail:229120615@qq.com

毕业论文范文-论文范文-论文同学网(www.zjwd.net)提供计算机论文毕业论文,毕业论文范文,毕业设计,论文范文,毕业设计格式范文,论文格式范文

Copyright@ 2010-2024 zjwd.net 毕业论文范文-论文范文-论文同学网 版权所有