338.《学生成绩管理系统》.doc
课 程 设 计 课程名称_信息系统开发与管理 题目名称_学生成绩管理系统 学生学院_管理学院_专业班级_财务管理 学 号 学生姓名_ _指导教师_ _2009 年 7 月 8 日目 录1 绪论11.1 选题的背景及意义11.1.1 系统开发的背景11.1.2 Visual Foxpro的面向对象开发功能强大11.2 报告的构成及内容22 系统分析22.1 用户需求22.2 可行性研究22.3 目标系统相关调查42.3.1 业务相关组织机构调查42.3.2 学生成绩管理工作现状调查52.3.3 信息流程调查72.3.4 现状评价72.4 目标系统的数据存储分析72.4.1 基本项82.4.2 E-R图构思82.4.3 E-R图改进82.4.4 数据存储初步构思92.4.5 业务流程再造(BPR)102.4.6 构思新的DFD132.4.7 功能层次图163 系统设计173.1 系统安全性设计173.2系统完整性设计173.3系统应用程序代码设计173.4系统主控模块设计174 学生成绩管理系统的评价354.1 系统的优点354.2 系统的不足355系统设计总结36参考文献37致谢371 绪论1.1 题目的背景及意义考试成绩的处理一直是教学管理的一项重要任务,考试成绩的查询一直是考生高度关注的内容。学生成绩管理系统能够将教师从繁重的重复性劳动中解放出来,从而提高教学效率。可以全方位为考生服务,满足考生的需求:1.1.1 系统开发的背景随着社会的发展,学生培养计划已不再一成不变,各个学校纷纷推出了面向全体老师学生的成绩管理查询服务,旨在为大家提供一个更加宽松的使用环境。要开发一个简化的学生成绩管理系统,而且更符合老师学生意愿的服务已成为当代学生学习、老师工作中不可缺少的一部分。也是学校更方便,快捷,准确的掌握,了解,管理每个学生的各个方面信息,对学校的发展,也为培养出一批更优秀的学生作为前提。学生成绩管理是学校管理的重要组成部分。成绩不仅关系到学生成绩升迁,在很大程度上度量了一个学生的学习效果;是老师考试处理、教学管理的一项重要工作,同时成绩关系到教师的教学成果的考评。总之,成绩管理的重要性不言而喻。在每门课中每个学生都要有对应的成绩记录。在学校各项管理中,成绩管理牵扯到的其它管理内容也是很复杂的,它牵涉到了学生基本信息管理、学生成绩管理、教师管理和课程管理等。所以在实际管理工作中,往往由于成绩记录的数量众多、管理复杂。教学管理人员进行成绩管理和统计,手工修改和查询学生成绩是一项非常繁重而枯燥的工作,经常耗费很大的财力和人力,数据量大时将不可避免地出现失误。1.1.2 Visual FoxPro的面向对象开发功能强大Visual FoxPro(简称VFP)是xbase 数据库家族的成员之一,也是其前身的FOXPRO与可视化程序结合的产物。其开发功能超强大:用户界面友好、面向对象编程技术功能强大、能快速创建应用程序、数据库操作简便、可以与其他应用程序交互操作、独特的开发客户|服务器解决方案,多个用户可以一起开发程序。用其开发学生成绩管理系统具有极大的可能性12 报告的构成及研究内容本报告由四个部分构成:第一部分是绪论,主要是对本论题目背景的总体性概述,包括题目的背景与意义、第二部分是系统分析,主要是对系统开发前的相关需求做分析,包括用户需求、目标系统流程、目标系统的数据存储分析。第三部分是系统设计,主要是对系统设计过程的描述,包括一般关系模型设计、安全性设计、完整性设计、应用代码设计、主控模块设计等等。第四部分是系统的评价,主要是对系统的优点与不足进行评价。2 系统分析2.1 用户需求本系统的目标是通过采用原型法和面向对象方法进行分析、设计和开发。系统实现后,计算机系统将代替原来烦琐、复杂的半人工成绩管理,数据库文件放在服务器中,便于数据的管理,教师和学生通过客户端访问数据。根据管理信息系统的自身特点与业务情况综合分析,该系统需要解决以下问题:(1) 用户通过登录能对数据进行添加、修改、删除、清空等操作,否则只能查询数据库中的记录。(2) 自动连接数据源功能。用户不需手动配置数据库,直接运行程序即可。(3) 支持组合模糊查询,用户可以在查询栏内输入任意字符,程序将给出与之相近和相同的记录。(4) 学生四六级成绩的查询与修改。(5) 重修信息的添加、修改、删除。(6) 成绩统计分析。(7) 数据的打印输出功能。2.2 可行性研究(1) 提出方案方案一:方案一:系统提供学校、老师对教工、学生相关信息、最新信息更改录入功能,同时提供学生对考试成绩原始数据的查询。用户可通过校园网登陆该成绩管理系统,根据的需要进行各项查询操作。方案二:本方案在方案一的基础上继续完善和增添学生成绩、信息的统计分析、打印功能,保留并丰富原有的教工学生相关信息以及信息更改等功能,增加成绩统计分析、打印等功能。其中绝大部分功能与后台数据库相连,实现数据的及时更新和保留历史信息(2) 可行性分析1) 技术上l 可能性:两个方案都是在WingdowsXP操作系统下,运用visualfoxpro6.0进行开发。该系统功能强大,操作方便,与Microsoft的WINDOS操作系统兼容性也很好。l 必要性:如果不采用方案一,则不能实现企业的自动化、信息化管理。如果采用方案二,则会令企业的信息化管理更深一层,进一步提供全面的服务。l 有益性:方案一使企业的信息和产品资料能够通过效益网向用户呈现。方案二则可以让数据输入、修改、查询、统计、分析等一系列活动均在校园网实现。2) 经济上l 可能性:对于两个方案来说,花费都不会很高。相比较而言,方案二的投入要大于方案一,主要来自于系统的开发费用。在服务器购买、托放等方面的费用是基本相同的。l 必要性:如果不采用方案一,功能范围都受都很大的限制,从而影响系统经济效益的提高。如果采用方案二,则会使整个系统其方便性会吸引更进一步提高,相对而言性价比更高。l 有益性:采用方案二,虽然其经济投入要大于方案一,但效率也会比方案一所带来的要多很多经济效益会更高。3) 社会上l 可能性:互联网目前已经非常普及,通过校园网对信息的管理利用的消费者越来越多,因此,方案一是可行的,逐渐被广大消费者所接受,并将可能发展为形式,因此,方案二更具前景。另外,目前员工都掌握了基本的电脑操作,因此采用两个方案都不需要过多地对员工进行培训。l 必要性:假如不采用方案一,则会使用户的对数据的统计分析带来一定的不便,不能满足消费者的需求,功能范围都比较窄。假如采用方案二,则会进一步地方便消费者,让服务更加迅速,到位。l 有益性:采用方案一,可以节约人力配备成本,方便学校教学管理。采用方案二,不仅更加节约人力配备成本和方便教学管理,而且也促进了整个学校的运作进一步自动化、信息化。表2.01 可行性研究九宫格必要性可能性有益性技术层面两种方案虽然采用的技术略有不能,但都非常必要。方案二开发实现的难度要明显高于方案一,但两者均可以实现。都有益于提高学校的信息化建设。经济层面虽然两种方案的投入不同,但都非常必要。其中方案二要优于方案一。虽然方案二的投入要高于方案一,但均在用户可接受的范围内,均能实现。都有利于经济效益的提高。社会层面由于带来的效果不同,社会效应也会有很大区别,但总的来说都有必要。由于互联网已经普及,用户也能自如地进行电脑操作,因此两者都可以实现。都有利于增强对消费者的服务,提高用户满意度。综合分析两个侯选方案,现决定采用能够真正发挥管理信息系统优势的方案二进行开发,即能实现应用数据库技术实现学生成绩的计算机管理2.3 目标系统相关调查叙述要实现目标系统的逻辑模型,包括业务相关的组织机构调查,业务处理过程调查,信息流程调查等方面。2.3.1 业务相关组织机构调查本系统的最高管理部门是学校教务处,采用直线职能型的组织结构,学校教务处下面学院教务科部门,分别是:管理学院、外国语学院、经济与贸易学院、运输学院、等等,学院教务科再设学院信息管理员。专职进行管理学校教务处、运输学院管理学院经济贸易学院管理学院管理员运输学院管理员经济贸易学院管理员、行政管理关系图一:学校教学组织结构图2.3.2 学生成绩管理工作现状调查根据调查了解现行学校学生成绩管理业务流程图如下:学生学生查看成绩给出相关成绩提交学号及所需成绩学校教务处存档学院教学科教师教师统计报表成绩汇总统计成绩交学院教学科课成绩单改试卷、录入成绩学籍科存档图二:现行学校学生成绩管理业务流程图在没有采用管理信息系统对成绩进行管理之前,学校对成绩的管理采用半人工半计算机的方式。(1)任课老师改完试卷后,将成绩手工抄在表格上交到学院教学科,有的学院的课程同时接纳外学院学生,那么外学院的学生的成绩将送到该学生所在学院的教学科,策划那个及表格的格式可能不同,这就给汇总带来不便。(2)学院教学科将所有成绩汇总后录入到EXCEL表格中存档,并进行统计、打印等工作。这里存在的一个问题是,若要打印某一个班某一门的成绩,必须逐个找出相关记录,若这些记录并不在同一个Excel文件下,工作量十分庞大。(3)学生到自己学院教学科查询成绩(原则上不到其他学院教学科),将在许多格式的成绩单或者许多Excel表格中寻找自己的成绩,十分不便,教学科成为学生查询成绩的地点,没时间和精力把重点放在更重要的成绩统计工作上现行学生成绩管理相关的表单如下;表2.02某某学生某个学期成绩单学号: 姓名: 班级: 制表:教务处科目平时分期末成绩总分班级排名、 表2.03 某学年某学期某年级某班成绩汇总表单日期 : 制表:教务处学号姓名科目名、成绩总和排名2.3.3现行成绩管理的数据流程现行系统的数据处理流程如图:成绩档案教师学生成绩管理教学科 图三:现行成绩数据流程(展开图)任课老师改完试卷后,将成绩手工抄在表格上交到学院教学科;学院教学科将所有成绩汇总、统计录入到Excel表格打印存档、备有多份;学生通过相关的学号、班级进行查询,得到自己的成绩查询结果信息。现行成绩管理数据流程(顶层图) 成绩档案 成绩录入 查询教师学生成绩统计统计表报表教学科图四:现行成绩管理数据流程图(展开图)任课老师改完试卷后,对各科成绩手工抄到表格交到教学科,同时将搞好的成绩表作为成绩档案保存;同时教学科利用老师上交的成绩单进行统计汇总、得到各种要求的成绩报表;学生提供相关学号、课程名称可以到教学科查询成绩,教学科批准后等到自己的课程成绩单信息2.3.3 信息流程调查根据业务流程图,用功能数据(P-D)分析法,分析画出U/C矩阵。表2.04 现行业务流程U/C矩阵数据(数据类)过程(功能)各科成绩成绩单成绩档案 课程成绩 成绩统计报表成绩查询结果(1)改试卷录入成绩U C(2)成绩提交教学科UC(3)成绩汇总统计UC(4)提交学号及所需成绩UUU(5)给出相关成绩U注:.录入成绩.成绩统计汇总.在查询成绩 图五 现行业务流程矩阵图2.3.4 现状评价现行的成绩管理统计,手工查询学生成绩是一项非常繁重而枯燥的工作,经常耗费很大财力和物力,数据量大,容易出错。2.4 目标系统的数据存储分析由调查的成绩单、成绩统计表、相关信息表以及开发管理信息系统所要用到的数据项找出要长期存储的基本项;写出由基本项构思ERD的四条原则及相应得出的实体、联系及其属性;构思并改进ERD;写出由ERD导出一般关系模型的四条原则,列出数据存储初步构思的关系框架;进行业务流程再造;根据再造后的业务流程图绘制新的数据流程伴随着新的数据流程图绘制画出的系统的功能层次图(FHD)。2.4.1 基本项数据分析:由现状数据存储和业务的相关成绩单、成绩报表以及开发系统所要用到的数据项,得到以下所要长期存储的基本项:学生:学号、姓名、专业、年级、班级、状态、英语四级成绩、英语六级成绩课程信息:课程号、课程名称、学分、任课教师、开课学期教师:编号、姓名、电话、办公室、所属系、电子邮件成绩信息:自动编号、学期、学号、姓名、专业、年级、班级、课程名称、类别、成绩、学分重修信息:自动编号、学期、学号、姓名、专业、年级、班级、课程名称、成绩、学分、专业信息:专业名称用户信息:用户名、密码平均分信息:学号、平均分、学期2.4.2 E-R图构思由基本项构思ERD的四条基本原则:1、根据由基本项构思ERD的原则1,能独立存在的事物。可得出“学生”、“教师“、“课程”、“成绩信息”、“用户信息”2、根据由基本项构思ERD的原则2,两个或多个实体间的关联与结合。可得“所教”、“所选”2个联系。3、根据由基本项构思ERD的原则3,实体的属性是实体的本质特征。可得:学生:学号、姓名、专业、年级、班级、课程:课程号、课程名称、学分、任课教师、开课学期教师:教师编号、教师姓名、电话、办公室、所属所系、电子邮件成绩信息:学期、学号、班级、课程名称、成绩、学分、英语四级成绩、英语六级成绩教务科:所属学院4、根据由基本项构思ERD的原则4,所有基本项在同一E-R图中作为属性要在且仅在一个地方出现。得到初始的E-R图:班级专业年级姓名学号学生课程号学号学期所属学院班级课程名称所上查询课程名称教务科成绩学分课程成绩信息汇总统计学分任课老师四级成绩所教填写提交开课学期六级成绩教师所属系电话教师姓名办公室电子邮件教师编号图六 业务E-R图2.4.3 E-R图改进图六:改造后的学生业务流程图从图6按从ERD导出一般关系的4条原则,得到查询关系框架,如下表:表2.05 查询关系表学生学号学生班级学生姓名课程名称课程成绩课程学分四级成绩六级成绩外键外键外键主键从查询关系表中可以发现两个问题:一是主键(复合主键)太复杂,不便于查询;二是当学生一次订购名级时,学号、班级、姓名必定多次重复。解决的方法是引入联系虚实体陈家单。它描述的是查询关系,而不是实体。只是为了简化查询这个复杂的多元联系而引进的一个中间替身。从而把查询关系转化为老师和成绩之间的填写关系(多对多)、学生和成绩单之间的所所查关系(一对多)2个二元联系。经改进后的E-R图如下:年级专业班级姓名学号学生学号课程号所上班级查询课程名称课程名称成绩单所教开课学期任课老师学分课程填写教师教师姓名教师编号电子邮件办公室所属系电话六级成绩四级成绩学期学分成绩图七 改造后的业务E-R图2.4.4 数据存储初步构思从E-R图导出一般关系模型的四条原则:1. E-R图中的每一个独立实体变换为一个关系,其属性变为关系的属性,其主标识变为关系的主码2. E-R图中的从实体及相应的主从联系变换为一个关系,从实体的属性加上主实体关系的主码构成这个关系的属性。如果主从联系是1:1的,则以主实体关系的主码(作为外来码)为这个关系的主码;如果主从联系是1:M的,则以主实体关系的主码加上同一主实体个体联系的不同从实体个体赖以相互区分的属性组,组成该关系的主码。3. 1:M联系通过在“多”实体关系中增加相联系的“1”实体关系的主码及联系本身的属性来表达。其中“1”实体主码为外来码。4. M:M联系转换成一个独立的关系,被联系实体关系的主码(作为外来码)和联系本身的属性作为该关系的属性,被联系实体关系的主码组成其复合主码。根据从E-R图导出一般关系模型的第一条原则,每一个独立实体变换为一个关系,其属性变为关系的属性,其主标识变为关系的主码。可得到:“学生”关系:(学号、姓名、班级、专业、年级),(学号)为关系主码。“成绩单”关系:(学号、班级、课程名称、成绩、学分、学期、四级成绩、六级成绩),(学号号)为关系主码。“课程”关系:(课程号、课程名称、学分、任课老师、开课学期),(课程号)为关系主码。“教师“关系:(教师编号、教师名称、电话、所属系、办公室、电子邮件)(教师编号)为关系主码根据从E-R图导出一般关系模型的第四条原则,M:M联系转换成一个独立的关系,被联系实体关系的主码(作为外来码)和联系本身的属性作为该关系的属性,被联系实体关系的主码组成其复合主码。可得“所填”一个关系。“所填”关系:(学号、班级、课程名称、成绩、学分、学期、四级成绩、六级成绩、教师编号、教师名称、电话、所属系、办公室、电子邮件),(学号)为关系主码。2.4.5 业务流程再造(BPR)教学课教学科教学科教师教师上传到教务处服务器统计结果表从服务器下载进行成绩统计通知网上录入成绩批改试卷成绩表统计结果图八 改造后的系统业务流程图2.4.6 构思新的数据流图成绩数据库教师成绩处理学生各科成绩教学科图九 新系统数据流程图(顶层图)成绩数据库成绩网上录入教师数据库对成绩处理学生教学科对成绩进行统计教学科图十 新系统数据流程图(展开图)根据新的业务流程图,用功能数据(P-D)分析法,分析画出U/C矩阵。表2.06 改造后网站业务的U/C矩阵过程(功能)数据(数据类)各科成绩成绩数据成绩数据库成绩统计结果下载成绩的数据查询成绩数据学生成绩单(1)批改试卷UC(2)网上录入成绩UC(3)通知UUC(4)从服务器下载成绩进行统计U学生查询成绩U注:.试卷批改 .成绩录入 .成绩统计 .成绩查询 相应的数据字典如下:表2.07基本项表编号项名类型长度小数位值域从属说明001学号字符4学生关系002姓名字符8学生关系003专业字符20 学生关系004 年级字符8 学生关系005班级字符4 学生关系006状态字符8 学生关系007英语四级成绩数值3学生关系008英语六级成绩数值3 学生关系009课程号字符30课程关系010课程名称字符50课程关系011 学分数值2课程关系012任课老师字符20课程关系013开课学期时间/日期8课程关系014教师编号字符15教师关系015教师姓名字符8教师关系016电话字符8教师关系017办公室字符4教师关系018所属系所字符4教师关系019电子邮件字符620教师关系020学期日期8教师关系021用户名字符10关系022密码字符4关系表2.08数据流表编号数据流名来源结构去向从属说明001各科成绩批改试卷002成绩数据老师003成绩数据库各科成绩004成绩统计结果各科成绩005下载成绩的数据成绩统计结果006 查询成绩数据服务器007查询成绩数据服务器008学生成绩单服务器F6-1留言信息P6.1P6.22.4.7 功能层次图根据新系统的设计目标和要求,采取功能划分的方法,将系统具体划分为以下四个子系统:打印子系统、查询子系统、数据维护子系统、成绩子系统。其中打印子系统,主要完成各类报表,如学生信、成绩信息等的打印功能;查询子系统,主要完成各类数据的模糊组合查询功能;数据维护子系统,主要完成各类数据的添加、修改、删除等功能;成绩子系统,主要完成对成绩分析工作。具体如图:学生成绩管理信息系统数据维护子系统查询子系统成绩统计子系统打印子系统按单科成绩按个人成绩课程信息全部信息成绩排名各科成绩信息学、课程基本信息教师基本信息学生基本信息图十一 系统功能层次图3 系统设计3.1 系统安全性设计用户标志与鉴别:本系统提供最外层的安全保护措施,系统提供一定的方式让用户标识自觉的身份,进入系统时,由系统进行核对,当坚定不符时,系统会显示提示信息:操作员密码错 再试一次!当试过3此后,系统显示:对不起,您已经错三次了!指示其为非法用户,系统将不给于登录,此外本系统还有密码修改安全设置,为让用户更好的记住登录密码。此外部门表单的操作也设有防止用户非法操作的功能。3.2系统完整性设计结合成绩信息管理系统,可以得到数据表的永久关联图:图十二 数据表永久关联图成绩信息管理系统的参照完整性(如VFP中的参照完整性设计)3.3成绩管理系统应用程序、代码设计3.3.1系统主控模块设计系统的主控模块是:主界面.scx表单、欢迎.scx表单、查询.scx表单、打印.scx表单、添加.scx表单、统计.scx表单、主程序1.Prg以及菜单:菜单1.Mpr。欢迎表单设计:进入按钮代码:n=n+1if n<=3 if thisform.text1.value='123' do 主菜单.mpr do form 主界面 thisform.release else a=chr(13) messagebox("密码错误!"+a+"请重新输入!",48,"警告!") thisform.text1.setfocus thisform.text1.value='' thisform.refresh endifelse thisform.text1.visible=.F. thisform.enter.visible=.F. thisform.label2.visible=.F. b=messagebox("你无权使用本系统,请与管理员联系!",16,"严重警告!") if b=1 thisform.release close all clear events set sysmenu to default endifendif退出按钮代码:a=messagebox("是否退出本系统?",4+32+256,"cyc!")if a=6 thisform.release close all clear events set sysmenu to defaultendif主界面表单设计:查询按钮代码:do form 查询thisform.release添加按钮代码:do form 添加thisform.release修改按钮代码:do form 修改thisform.release统计按钮代码:do form 统计thisform.release打印按钮代码:do form 打印thisform.release退出按钮代码:a=messagebox("是否退出本系统?",4+32+256,"cyc!") if a=6 thisform.release close all clear events set sysmenu to default endif 查询表单设计:查询表单运用页框式表单控件,学生情况、课程、多项查询等多功能查询其中“学生情况”查询的“学号”组合框控件的代码:sele studentgo topthis.text1.value=学号this.text2.value=姓名this.text3.value=性别this.text4.value=出生日期this.text5.value=班级编号“姓名”组合框控件的代码:bo1.value=''loca for student.姓名=this.valueif found()thisform.refreshendif其中“全局浏览”查询的“选择所浏览的表”组合框控件的代码:do case case this.value=1 with this.parent.grid1 .columncount=5 .recordsource='student' .column1.header1.caption='学号' .column2.header1.caption='姓名' .column3.header1.caption='性别' .column4.header1.caption='出生日期' .column5.header1.caption='班级编号' .column1.width=60 .column2.width=65 .column3.width=40 .column4.width=60 .column5.width=63 .readonly=.T. .deletemark=.T. endwith case this.value=2 with this.parent.grid1 .columncount=7 .recordsource='teacher' .column1.header1.caption='教师代码' .column2.header1.caption='姓名' .column3.header1.caption='性别' .column4.header1.caption='出生日期' .column5.header1.caption='籍贯' .column6.header1.caption='技术职务' .column7.header1.caption='备注' .column1.width=50 .column2.width=45 .column3.width=30 .column4.width=55 .column5.width=30 .column6.width=70 .column7.width=40 .readonly=.T. .deletemark=.T. endwith case this.value=3 with this.parent.grid1 .columncount=6 .recordsource='classes' .column1.header1.caption='班级编号' .column2.header1.caption='年级' .column3.header1.caption='专业' .column4.header1.caption='系代码' .column5.header1.caption='学制' .column6.header1.caption='类别' .column1.width=50 .column2.width=40 .column3.width=75 .column4.width=45 .column5.width=40 .column6.width=40 .readonly=.T. .deletemark=.T. endwith case this.value=4 with this.parent.grid1 .columncount=4 .recordsource='course' .column1.header1.caption='课程代码' .column2.header1.caption='课程名称' .column3.header1.caption='类别' .column4.header1.caption='教师代码' .column1.width=70 .column2.width=100 .column3.width=50 .column4.width=70 .readonly=.T. .deletemark=.T. endwith case this.value=5 with this.parent.grid1 .columncount=3 .recordsource='score' .column1.header1.caption='学号' .column2.header1.caption='课程代码' .column3.header1.caption='成绩' .column1.width=100 .column2.width=110 .column3.width=110 .readonly=.T. .deletemark=.T. endwithendcase其中“多项查询”查询的“查询”按钮的代码:this.parent.grid1.recordsource=""I=alltrim(bo1.value)sele scoreloca for 学号=Iif found() if this.parent.check1.value=1 thisform.pageframe1.page5.grid1.recordsource="sele 学号,score.课程代码,课程名称,成绩 from score,course where 学号=i and 成绩>90.0 and score.课程代码=course.课程代码 into cursor temp" else thisform.pageframe1.page5.grid1.recordsource="sele 学号,score.课程代码,课程名称,成绩 from score,course where 学号=i and score.课程代码=course.课程代码 into cursor temp" endifendif最后“退出”按钮的代码是:YN=MESSAGEBOX("确定退出",4+32,"系统信息")IF YN=6 THISFORM.RELEASE()&& 关闭本表单ENDIFthisform.release打印表单设计其中“选项按钮组”的代码是:mand1.visible=.T.mand3.visible=.T.“报表输出”的代码:do case case thisform.optiongroup1.value=1 report form student preview case thisform.optiongroup1.value=2 report form classes preview case thisform.optiongroup1.value=3 report form teacher preview case thisform.optiongroup1.valu