数据库设计实例—教学管理系统
数据库课程设计--学校教务管理系统

学校教务管理的数据库设计I.需求分析:随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长.面对庞大的信息量,就需要有学生教务信息管理系统来提高学生管理工作的效率。
通过这样的系统,可以做到信息的规范管理、科学统计和快速的查询,从而减少管理方面的工作量。
学校为方便教务管理,需开发一个教务管理系统。
为便于学生,老师,教务管理人员信息查询,注册以及信息修改,学校把学生的信息,包括姓名、性别、年龄,成绩等信息输入教务管理系统的数据库,然后在管理终端可以对数据进行查询和修改操作。
要求系统能有效、快速、安全、可靠和无误的完成上述操作。
并要求系统界面要简单明了,易于操作,程序利于维护。
一、信息分析:(1)学校教务管理的数据库,包含以下信息:学校有若干个系,每个系有若干名教师和学生,每个教师可以担任若干门课程,并参加多个项目,每个学生可以同时选修多门课程,每门课程每学期可能有多名教师教授,课程分为必修、选修、任选三种。
(2)学校的教务管理的信息包括:学生姓名、学号、班级、性别、班号,籍贯、出生日期、所属系编号、所属系名称、系主任,教师编号,教师姓名,教师职称,教师所授课程、课程编号,课程名,课程学分,项目编号,项目名称,项目负责人,学生选修课程及成绩。
学生如果课程及格,可以取得该课程的学分。
学生的各类型课程学分和总学分累计到一定程度,学生可以毕业。
根据成绩高低,可以计算学分积。
及格学生的学分积公式:课程学分积=(该课程成绩-50)/10×该课程学分。
二、功能分析:(1)用户能够使用友好的图形用户界面实现对系、班级、学生、教师、课程、选课等内容进行增、删、改,以及对信息的查询。
对于查询要实现比较强大的功能,包括精确查询、模糊查询以及统计查询。
(2)具体查询在数据库中要实现以下的功能:1)所有来自某省的男生2)所有某课程成绩〉90的同学3)教授某课程的老师4)某班年龄最大的5名同学5)某年以后出生的男同学6)选修某课程的学生及其成绩7)没有授课的教师8)某学生所选课程的总学分9)教授某学生必修课程的老师情况10)某学生选修了哪些系的课程11)某系学生所学的所有课程12)按总学分找出某系学习最好的5名同学13)按总学分积找出某系学习最好的5名同学14)可以毕业的学生三、软、硬件配置程序运行的环境:具体运行环境为软件方面,操作系统为windows2000/XP,并且系统装有SQL Server2000数据库管理系统.硬件方面,CPU主频500MHz以上,内存128M或更高。
数据库设计实例—教学管理系统

数据库设计实例—教学管理系统教学管理系统(TMS)是一个基于数据库的信息管理系统,用于管理学校、教师和学生之间的各种信息。
该系统将教师、学生、课程、成绩等数据组织起来,并提供各种操作来管理和查询这些数据。
1. 学校表(School)-------------------------------------字段,类型,备注-------------------------------------ID , Integer ,学校ID名称, String ,学校名称地址, String ,学校地址-------------------------------------2. 教师表(Teacher)--------------------------------------------字段,类型,备注--------------------------------------------ID , Integer ,教师ID姓名, String ,教师姓名性别, String ,教师性别所属学校, Integer ,教师所属学校--------------------------------------------3. 学生表(Student)-----------------------------------------字段,类型,备注-----------------------------------------ID , Integer ,学生ID姓名, String ,学生姓名性别, String ,学生性别年级, String ,学生年级所属学校, Integer ,学生所属学校-----------------------------------------4. 课程表(Course)--------------------------------------------字段,类型,备注--------------------------------------------ID , Integer ,课程ID名称, String ,课程名称学分, Integer ,课程学分教师, Integer ,开课教师所属学校, Integer ,课程所属学校--------------------------------------------5. 成绩表(Grade)-------------------------------------------------------字段,类型,备注-------------------------------------------------------ID , Integer ,成绩ID学生, Integer ,学生ID课程, Integer ,课程ID分数, Float ,课程成绩-------------------------------------------------------上述表格是教学管理系统中的一部分,还可以根据系统需求进一步添加其他表格和字段。
数据库设计——教师教学信息管理系统

数据库设计报告
——教师教学信息管理系统
一、需求分析
1.功能需求分析
1)资料管理
2)报表打印
3)参数设置
资料管理:包括学院信息、教师信息和课程信息的增加、删减、修改、查询。
报表打印:包括各学院教师任课课时汇总、打印各学院开课情况报表、打印教师基本情况报和打印所有课程情况总表。
图1 系统功能模块图
2.数据流程图
图2 系统数据流程图
二、数据库概念结构设计
在得到数据项和数据结构后,可以设计出满足用户需求的各种实体,以及他们之间的关系,为逻辑设计打下基础。
实体有:教师实体、学院实体、课程实体、考试类型实体、性别类型实体、职称实体。
教师实体E-R图:
图3 教师实体E-R图
学院实体E-R图
图4 学院实体E-R图
课程实体E-R图
图5 课程实体E-R图
图6 考试类型实体E-R图性别类型实体E-R图
图7 性别类型实体E-R图
职称类别实体E-R图
图8职称类别实体E-R图实体关系E-R图
图9 实体关系E-R图
三、数据库逻辑结构设计教师情况一览表:
表1:teacher
学院表:
表2:institute
性别表:
表3:sex
职称表:
表4:classes
考试类型表:
表5:test
教师任课表:
表6:course。
数据库教学管理系统系统设计

数据库教学管理系统系统设计【实验目的】:1. 掌握数据库设计方法的完整过程2. 掌握需求分析、概念设计、逻辑设计及物理设计文档的撰写方法【实验要求】:一、从下列应用场景中任选一题,完成设计并撰写设计文档。
文档中需包括需求分析、概念设计、逻辑设计和物理设计等环节。
各部分成绩比例分配具体如下:需求分析(20分);概念设计(40分);逻辑设计与物理设计(30分)。
1. 教学管理系统2. 图书管理系统3. 库存管理系统4. 机票订票系统5. 人事管理系统二、回答下列问题(10分)1. 试描述将ER图转换为关系模式的一般规则。
(5分)2. 针对撰写设计文档中遇到的问题阐述心得体会。
(5分)实验原理和步骤:利用数据库设计的4个阶段:需求分析(分析用户要求)、概念设计(信息分析和定义)、逻辑设计(设计实现)和物理设计(物理数据库设计)。
概念模型设计时采用自底向上的方法,即自顶向下地进行需求分析,然后再自底向上地设计概念结构,和自底向上的设计方法。
一、系统需求分析报告:设计方法:以调查和查阅记录为主。
1、系统调查系统调查的主要内容有:系统的基本情况、系统中信息处理的状况、系统的资源情况及系统的各类人员对信息系统的态度。
同时我了解到教学系统的使用人员有(1)系统管理员:维护整个系统的正常运行、及时更新系统,给每个新用户建立读者信息,给每个注销用户删除相应的读者信息。
(2)系统管理员:负责给学生和教师添加、删除、修改基本信息。
(3)用户:包括学生用户、老师用户和管理员。
系统中信息处理状况:通过对原有系统数据流程的分析,可以发现这种模式存在着一些不合理之处,完全可以改进,使工作效率提高,减少信息迂回。
所以完全可以通过建立一套完整的教学管理信息系统,来对信息进行查询、修改、统计、检索等日常管理工作,尽量减少的人员介入和数据冗余,以简练实用为基础,实现信息管理计算机化提高工作效率和信息化水平。
2、可行性分析可行性分析对系统的开发至关重要,可以大幅减少不必要的损失,保证系统开发的顺利进行。
数据库设计实例—教学管理系统

教学管理系统数据库设计用5行左右的文字对系统进行简要介绍一、数据需求分析某学校设计学生教学管理系统。
学生实体包括学号、姓名、性别、生日、民族、籍贯、简历、登记照,每名学生选择一个主修专业,专业包括专业编号、名称和类别,一个专业属于一个学院,一个学院可以有若干个专业。
学院信息要存储学院号、学院名、院长。
教学管理还要管理课程表和学生成绩。
课程表包括课程号、课程名、学分,每门课程由一个学院开设。
学生选修的每门课程获得一个成绩。
另外,为了管理教师教学安排,教师包括编号、姓名、年龄、职称,一个教师只能属于一个学院,一名教师可以上若干门课程,一门课程可以有多名老师来上,每个教师所上的每门课都有一个课堂号和课时数。
本系统数据字典如下(以下为示例,供参考,非本教学管理系统的数据字典):二、概念结构设计1.首先确定系统中的实体从以上数据需求可以看出,系统共包括5个实体:学生、专业、学院、教师、课程。
2.再确定系统中实体间的关系根据数据需求描述推出:专业与学生是1对多关系;学生与课程是多对多关系;课程与老师是多对多关系;课程与学院是多对1关系;学院与专业是1对多关系;学院与教师是1对多关系。
3.转化成E-R图图1 实体-属性图图2 教学管理ER图三、逻辑结构设计在转换为关系模型时,一对多的联系都在相应的多方实体的关系中增加一个外键。
本系统由ER模型转换的关系模型是:学生(学号,姓名,性别,生日,民族,籍贯,专业号,简历,登记照)专业(专业号,专业,专业类别,学院号)学院(学院号,学院,院长)课程(课程号,课程名,学分,学院号)成绩(学号,课程号,成绩)教师(编号,姓名,年龄,职称)四、物理结构设计(不写)五、数据库实施基于Access的数据库结构设计如下。
指定数据库文件的名称,并为设计好的关系模型设计表结构。
数据库文件保存在“E:\教学管理\”文件夹中,数据库文件名:教学管理.MDB。
表包括:学院、专业、学生、课程、成绩单。
3高校教务管理系统数据库设计

高校教务管理系统数据库设计1.1 数据库数据库是实现有组织地,动态地存储大量关联数据,方便多用户访问的计算机软硬件组成的系统;它与文件系统的重要区别是数据的充分共享,交叉访问,与应用程序的高度独立性。
由于本软件的整体结构比较简单,所涉及数据相对来说也较少,组成文件的最小单位是记录。
1.2设备奔腾1g、内存128兆以上的计算机,局域网络环境。
1.3需求注释对于本软件,它的功能需求、性能需求、接口需求,从稳定性、可行性上都是可以的。
1.4功能树2 概念设计2.1 实体及其属性2.1.1 学生实体E-R图2.1.2 课程实体E-R图2.1.3 教师信息E-R图2.1.4综合ER图3 逻辑设计3.1 规范化得到最终的关系模式学生信息基本表(学号,姓名,性别,学院名称,班号,联系电话,入校日期,家庭住址),主码为学号,符合三范式。
课程信息表(课程编号,课程类型,分数)主码为课程编号,符合三范式。
教师信息表(教师编号,姓名,所在科室,联系电话)主码为教师编号,符合三范式。
考试信息表(学号,课程编号)主码为学号,课程编号,符合BCNF。
讲授信息表(教师编号,课程编号)主码为教师编号,课程编号,符合BCNF。
3.2 学生基本信息表3.3 课程信息表3.4 教师信息表3.5 考试信息表3.6 讲授信息表4 物理结构设计4.1物理设计阶段的目标与任务数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务:(1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构;(2)对物理结构进行评价,评价的重点是时间和空间效率。
4.2 建立数据表4.2.1 学生信息基本表的建立:CREATE TABLE Student( Sno CHAR ( 8 ) PRIMARY KEY ,Uname CHAR ( 8 ) UNIQUE,Sex CHAR ( 2 ),Sdept(8 ),Classno ( 8 ),Connect tel ( 11 ),Enter date (8 ),Family add (50 ));4.2.2 课程信息表的建立:CREATE TABLE Course( Course code CHAR (20 ) PRIMARY KEY ,Course type CHAR ( 8 ) ,Course grade CHAR ( 8)) ;4.2.3 教师信息表的建立:CREATE TABLE Teacher( Tno CHAR ( 8 ) PRIMARY KEY ,Tname CHAR ( 8 ) UNIQUE,Tdepartment(8 ),Tmoible( 11 ),);4.2.4考试信息表的建立:CREATE TABLE Exam( Sno CHAR ( 8 ) ,Course code CHAR (20 ) ,PRIMARY KEY ( Sno , Course code ) ,FOREIGN KEY ( Sno ) REFERENCES Student ( Sno ) ,FOREIGN KEY (Course code) REFERENCES Course (Course code));4.2.5讲授信息表的建立:CREATE TABLE Teaching( Tno CHAR ( 8 ) ,Course code CHAR (20 ) ,PRIMARY KEY (Tno , Course code ) ,FOREIGN KEY (Tno ) REFERENCES Teacher (Tno ) ,FOREIGN KEY (Course code) REFERENCES Course (Course code) );5 其他数据库对象的设计5.1 索引CREATE UNIQUE INDEX Stusno ON Student(Sno)CREATE UNIQUE INDEX Couno ON Course(Cno)CREATE UNIQUE INDEX Teano ON Teacher(Tno)5.2 视图CREATE VIEW IS_StudentASSELECT Sno,Sname,SdeptFROM StudentWhere Sdept=’IS’;2.2CREATE VIEW BTEACHERASSELECT Tname,TdepartmentFROM Teacher;5.3 触发器CREATE Trigger Delete _CourseBEFORE UPDATE ON CourseFOR EACH ROWAS BEGINIF(new.grade<60)THEN new.grade=nopass;END IF;END;5.4 存储过程CREATE procedure createetablesASCREATE table user 1(Uid int,Uname char(20)INSERTINTO use 1(Uid,Uname)V ALUES ('1','小明');)6 备份及恢复策略针对不同的故障,制定恢复策略数据库系统可能发生各种各样的故障,大致可以分为以下几类:1)事务内部故障2)系统故障3)介质故障4)计算机病毒要保证数据一致性是对数据库的最基本的要求。
【数据库课程设计】学校教学管理系统

2004级GIS专业数据库课程设计报告——教学管理系统指导老师:刘福江姓名:李晶云学号:2004年1月15日目录目录 01引言 0编写目的 0项目背景 0定义 0参考资料(标准) 02项目概述 (1)目标 (1)用户的特点 (1)假定与约束 (1)3需求规定 (1)对功能的规定 (1)学籍管理子系统 (1)老师管理子系统 (1)排课子系统 (2)选课子系统 (2)成绩管理子系统 (2)系统管理子系统 (2)对性能的规定 (2)精度 (2)时间特性耍求 (2)安全性 (3)输入输出要求 (3)数据管理能力要求 (3)故障处理要求 (3)4运行环境规定 (4)设备 (4)支持软件 (4)视图设计 (5)图 (5)关系模式 (6)物理数据模型描述基于SQL Server 2000 (6)数据表描述(共5张表) (6)表间联系如下图所示: (8)5系统设计 (8)系统功能分析 (8)系统功能模块设计 (9)学籍管理系统含如下功能: (9)教师管理系统含如下功能: (9)排课系统含如下功能: (9)选课系统含如下功能: (9)成绩管理系统含如下功能: (10)系统管理系统含如下功能: (10)6程序代码 (10)7项目总结 (27)本项目设计的优点: (27)小组成员分工: (27)心得体会: (27)1引言编写目的本文档为定义项目的需求,指导后期的系统的分析与设计,并为系统的最终用户、项目管理人员和项目开发人员提供参考标准。
项目背景该系统的最终用户为学校的师生及教学管理人员。
随着高校的扩招,依靠原来的档案管理教学已经力不从心且效率低下,开发教学管理这个MIS系统已是大势所趋。
定义软件需求:IEEE软件工程标准词汇表(1997年)中定义软件需求为:(1)用户解决问题或达到目标所需的条件或权能(Capability)。
(2)系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或权能。
(3)一种反映上面(1)或(2)所描述的条件或权能的文档说明同工作,以及相互之间进行有效的交流和沟通。
数据库学校教室管理系统实现案例

For personal use only in study and research; not for commercial use销售是企业运营中最重要的环节之一;销售管理能力、销售策略和销售技巧被称为影响企业销售业绩的“三大关键要素”。
MyCRM以“中国最好的SFA”(SFA即销售能力自动化)而著称,对企业销售管理能力的提升和销售策略的正确决策能提供充分的支持和帮助。
项目管理流程如下图:● 销售预测根据销售机会的阶段升迁状况和预计销售额,订单(合同)收款计划,预测未来某时间段可能实现的销售机会和销售收入;对比销售计划,确定重点关注机会和重点收款任务。
系统的销售预测功能可以帮助销售经理准确预测某计划期的销售结果,并锁定对销售计划影响权重最大的销售机会,从而保障销售计划的可实现性;同时,通过销售预测可以对市场工作和客户发展工作提出明确的要求,并对供货计划提出参考意见。
● 销售绩效系统提供对销售人员的销售定额、销售计划完成状况、机会升迁状况、任务完成状况等方面的统计分析。
其主要功能有“销售定额”、“销售排行”、“任务检查”、“计划达成分析”、“销售管线分析”等功能。
“销售定额”:根据公司和部门的销售计划,确定销售人员的销售定额,统计定额完成情况。
“任务检查”:记录每个销售人员的任务,通过视图了解检查任务完成情况,查询按任务的“工作日志”(即行动历史)。
“销售排行”:系统提供定期的销售排行统计,销售排行可按部门、区域、销售员统计。
“计划达成分析”:系统可按部门、人员、时间提供销售计划达成率、定额完成率、机会成功率、销售回款率等绩效考核统计报表。
1.系统概述零售管理系统是零售连锁管理的核心系统之一,与其它业务系统无缝联结,以业务流为核心反映企业的全面管理过程,可实现进价核算、销价管理,系统主要包括采购管理、销售管理、库存管理、成本核算、供应商管理、客户管理、营业员管理、批号效期管理、报表分析管理等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库课程设计报告教学管理系统数据库设计课程设计题目教学管理系统学院软件学院班级软件技术四班年级2013级姓名彭超李新徐彤(2014 年11月)用5行左右的文字对系统进行简要介绍对教学管理信息统一规范整理,实现各种信息的自动管理。
为便于信息的查询,找出各种信息的关联性,根据各种需求设计出合理的报表。
减轻教学日常信息管理的负担,方便学生、教师查询信息和学校对所有信息的管理。
以简单便捷的操作获取详尽的信息。
一、数据需求分析某学校设计学生教学管理系统。
学生实体包括学号、姓名、性别、生日、民族、籍贯、简历、登记照,每名学生选择一个主修专业,专业包括专业编号、名称和类别,一个专业属于一个学院,一个学院可以有若干个专业。
学院信息要存储学院号、学院名、院长。
教学管理还要管理课程表和学生成绩。
课程表包括课程号、课程名、学分,每门课程由一个学院开设。
学生选修的每门课程获得一个成绩。
另外,为了管理教师教学安排,教师包括编号、姓名、年龄、职称,一个教师只能属于一个学院,一名教师可以上若干门课程,一门课程可以有多名老师来上,每个教师所上的每门课都有一个课堂号和课时数。
本系统数据字典如下:数据项表数据流数据流表二、概念结构设计1.首先确定系统中的实体从以上数据需求可以看出,系统共包括5个实体:学生、专业、学院、教师、课程。
2.再确定系统中实体间的关系根据数据需求描述推出:专业与学生是1对多关系;学生与课程是多对多关系;课程与老师是多对多关系;课程与学院是多对1关系;学院与专业是1对多关系;学院与教师是1对多关系。
3.转化成E-R图图1 实体-属性图图2 教学管理ER图三、逻辑结构设计在转换为关系模型时,一对多的联系都在相应的多方实体的关系中增加一个外键。
本系统由ER模型转换的关系模型是:学生(学号,姓名,性别,生日,民族,籍贯,专业号,简历,登记照)专业(专业号,专业,专业类别,学院号)学院(学院号,学院,院长)课程(课程号,课程名,学分,学院号)成绩(学号,课程号,成绩)教师(编号,姓名,年龄,职称)四、物理结构设计(不写)五、数据库实施基于Access的数据库结构设计如下。
指定数据库文件的名称,并为设计好的关系模型设计表结构。
数据库文件保存在“E:\教学管理\”文件夹中,数据库文件名:教学管理.MDB。
表包括:学院、专业、学生、课程、成绩单。
对应表结构如表1-2至表1-6所示。
表1-1 学院表1-2 专业表1-3 学生表1-4 课程表1-5 成绩单附:教学管理数据库参考数据如表1-1~表1-5所示。
表1-1 学生表表1-2 学院表表1-2 专业表表1-4 课程表表1-5 成绩单六、思考题:当我们进行物理设计时,如果将全校的学生放置在一个关系(表)中,势必带来存储空间大、处理效率低的问题。
怎么解决?由于系统要涉及大量数据的操作,所以索引的建立就成为一种必需。
本系统分别在各Course,Student,Teacher,Dept,Score各个表的主键上建立索引。
附录A:SQL脚本:1.创建数据库TeachingSystemGOCREATE DATABASE TeachingSystemON(NAME=TeachingSystem_dat,FILENAME="E:\MyProjects\SQL Server\TeachingSystem.Mdf",SIZE=30,FILEGROWTH=20%)LOG ON(NAME=StudentSystem_log,FILENAME="E:\MyProjects\SQL Server\TeachingSystem.Ldf",SIZE=3,FILEGROWTH=20%)GO2.创建各主表GOCREATE TABLE Dept(DeptNo varchar(10)NOT NULLCHECK(DeptNo LIKE'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), DeptName varchar(20)NOT NULL,Info varchar(256)NOT NULL,PRIMARY KEY(DeptNo));GOCREATE TABLE Student(StudentNo varchar(10)NOT NULLCHECK(StudentNo LIKE'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), StudentName varchar(20)NOT NULL,Gender varchar(4)NOT NULL CHECK(Gender='男'OR Gender='女'), Birthday datetime NOT NULL,EntryScore float(8)NOT NULL CHECK(EntryScore>= 0),DeptNo varchar(10)NOT NULL,PRIMARY KEY(StudentNo),FOREIGN KEY(DeptNo) REFERENCES Dept(DeptNo)ON DELETE NO ACTIONON UPDATE CASCADE);GOCREATE TABLE Teacher(TeacherNo varchar(10)NOT NULLCHECK(TeacherNo LIKE'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), TeacherName varchar(20)NOT NULL,Gender varchar(4)NOT NULL CHECK(Gender='男'OR Gender='女'), Birthday datetime NOT NULL,ProTitle varchar(20)NOT NULL,Specialized varchar(20)NOT NULL,DeptNo varchar(10)NOT NULL,PRIMARY KEY(TeacherNo),FOREIGN KEY(DeptNo) REFERENCES Dept(DeptNo)ON DELETE NO ACTIONON UPDATE CASCADE);GOCREATE TABLE Course(CourseNo varchar(10)NOT NULLCHECK(CourseNo LIKE'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), CourseName varchar(20)NOT NULL,TeacherNo varchar(10)NOT NULL,CPeriod int NOT NULL,Credit int NOT NULL,BeginDate datetime NOT NULL,CAddress varchar(20)NOT NULL,ExamDate datetime NOT NULL,PRIMARY KEY(CourseNo),FOREIGN KEY(TeacherNo) REFERENCES Teacher(TeacherNo)ON DELETE NO ACTIONON UPDATE CASCADE);GOCREATE TABLE Score(StudentNo varchar(10)NOT NULL REFERENCES Student(StudentNo), CourseNo varchar(10)NOT NULL REFERENCES Course(CourseNo), OrdScore float(8)NOT NULL CHECK(OrdScore>=0 AND OrdScore<=100), ExamScore float(8)NOT NULL CHECK(ExamScore>=0 AND ExamScore<=100), SumScore AS (OrdScore*0.3+ExamScore*0.7),PRIMARY KEY(StudentNo,CourseNo));GO附录B//----------------------------------------------------------------------------- //所属类:TSDatabase//功能:取得应用程序与数据库系统的连接public class TSDatabase{// Attributes Definitionprivate SqlConnection _Con = null;private String _ConStr = null;private bool _IsConnected = false;//private User _CurrentUser = null;private String _ErrorMsg = "";// Methods Definition///<summary>/// TSDatabase constructor///</summary>public TSDatabase(){}///<summary>/// Connect to Teaching System Database/// Default connection definite as App.config///</summary>///<returns></returns>public bool Connect(){// Get connection string from App.config_ConStr = ConfigurationManager.ConnectionStrings["TSConnection"].ConnectionString;// Current connection is nulltry{if (_Con == null){_Con = new SqlConnection(_ConStr);_IsConnected = true;_ErrorMsg = "";}return true;}catch (System.Exception ex){_ErrorMsg = ex.ToString();_Con = null;_ConStr = null;_IsConnected = false;return false;}}///<summary>/// Disconnect to Teaching System Database///</summary>///<returns></returns>public bool Disconnect(){try{if (_Con != null){if (_Con.State != ConnectionState.Closed){_Con.Close();}_Con.Dispose();_Con = null;}_ConStr = null;_ErrorMsg = "";return true;}catch (System.Exception ex){_Con = null;_ConStr = null;_IsConnected = false;_ErrorMsg = ex.ToString();return false;}}//----------------------------------------------------------------------------- //所属类:User//功能:完成各查询功能的函数,即包含不同类型用户的操作public class User{// Attributes Definitionbool _IsLogin = false;String _UserName = ""; // Save current user number insteadUserType _UserType = 0;static String _ErrorMsg = "";// Methods Definitionpublic User(String UserName, UserType UT){this._UserName = UserName;this._UserType = UT;}// User's virtual functions for different type of user to overridepublic virtual DataTable Select(String QueryString, QueryType QT, TSDatabase TSDB) { return null; }public virtual bool Update(String QueryString, QueryType QT, TSDatabase TSDB) { return fals e; }public virtual bool Insert(String QueryString, QueryType QT, TSDatabase TSDB) { return false; }public virtual bool Delete(String QueryString, QueryType QT, TSDatabase TSDB) { return false ; }#region Get and set user's attributes……..….#endregion///<summary>/// According to the user, query type and offered strings to build a query string///</summary>///<param name="CurrentUser"></param>///<param name="QT"></param>///<param name="Strings">All strings needed to build querystring</param>///<returns></returns>public static String GetQueryString(User CurrentUser, QueryType QT, String[] Strings){String QueryString = "";try{switch (QT){……….…………case QueryType.StudentSelect:{switch (erType){case UserType.Student:QueryString = "SELECT * FROM Student WHERE StudentNo = '" + CurrentUser .UserName + "';";break;case UserType.Teacher:QueryString = "SELECT Student.StudentNo AS StudentNo,"+ "StudentName AS StudentName,"+ "Student.Gender AS Gender, "+ "EntryScore AS EntryScore, "+ "DeptName AS Department, "+ " AS Infomation "+ "FROM Student, Dept, Course, Score "+ "WHERE Course.TeacherNo = " + erName + " " + "AND Course.CourseNo = Score.CourseNo "+ "AND Score.StudentNo = Student.StudentNo "+ "AND Student.DeptNo = Dept.DeptNo;";break;…………….…………………………}}//-----------------------------------------------------------------------------//所属类:Student,Teacher,Administrator//功能:均继承User类,具体实现SELECT,UPDATE,INSERT,DELETE函数内容// (以下用Student类中的重写SELECT作为例子)///<summary>/// Select operation for Student/// Permissible operations(QueryType): All type of select///</summary>///<param name="QueryString">Transact-SQL statement</param>///<param name="QT">Select query type</param>///<param name="TSDB">Teaching system database</param>///<returns>Selected DataTable</returns>public override DataTable Select(String QueryString, QueryType QT, TSDatabase TSDB){SqlConnection con = null;DataTable DT = new DataTable();this.ErrorMessage = "";// If it's offlineif (!TSDB.IsConnected){// If fail to connectif (!TSDB.Connect()){this.ErrorMessage += TSDB.ErrorMessage;return null;}}try{con = TSDB.Connection;// If connection is closed, open firstif (con.State == ConnectionState.Closed){con.Open();}// Different query typeswitch (QT){case QueryType.StudentSelect:case QueryType.CourseSelect:case QueryType.TeacherSelect:case QueryType.ScoreSelect:case QueryType.DeptSelect:{SqlDataAdapter SDA = new SqlDataAdapter();SqlCommand SC = new SqlCommand(QueryString, con);mandType = CommandType.Text;SDA.SelectCommand = SC;SDA.Fill(DT);}break;default:{this.ErrorMessage = this.ErrorMessage + "\nPermission Deny: " + QT.ToString(); DT = null;}break;}}catch (System.Exception ex){this.ErrorMessage = this.ErrorMessage + "\n" + ex.ToString();DT = null;}finally{// Close connection to databaseif (con.State != ConnectionState.Closed){con.Close();}}return DT;}//----------------------------------------------------------------------------- //所属类:TeachingSystem//功能:整个教学系统主要界面操作函数//说明:以显示系统界面ShowTS与加载数据库数据表到列表显示函数LoadDataGrid为例///<summary>/// Show components for different type of user and set this visible///</summary>public void ShowTS(){switch (erType){case UserType.Student:{this.tabControl1.Controls.Add(this.Page_SAbout);this.tabControl1.Controls.Add(this.Page_Teacher);this.tabControl1.Controls.Add(this.Page_Course);this.tabControl1.Controls.Add(this.Page_Score);this.button_TLoad.Enabled = true;this.button_TAdd.Enabled = false;this.button_TRemove.Enabled = false;this.button_TEdit.Enabled = false;this.button_CLoad.Enabled = true;this.button_CAdd.Enabled = false;this.button_CRemove.Enabled = false;this.button_CEdit.Enabled = false;this.button_SCLoad.Enabled = true;this.button_SCAdd.Enabled = false;this.button_SCRemove.Enabled = false;this.button_SCEdit.Enabled = false;}break;……………………….InitAboutMyself();LoadAllDataGrid();this.Visible = true;}///<summary>/// Load database related data to a specific datagridview/// With user type switch///</summary>private void LoadDataGrid(GridViewType GVT){String QueryString = null;switch (GVT){………………………..case GridViewType.Student:{switch (erType){case UserType.Student:break;case UserType.Teacher:……..break;case UserType.Administrator:{QueryString = User.GetQueryString(CurrentUser, QueryType.StudentSelect, n ull);BindingSource BS = new BindingSource();BS.DataSource = ((Administrator)CurrentUser).Select(QueryString, QueryTyp e.StudentSelect, TSDB);dataGridView_Student.DataSource = BS;foreach (DataGridViewColumn col in dataGridView_Student.Columns){col.HeaderCell = new DataGridViewAutoFilterColumnHeaderCell(col.Heade rCell);}}break;default: { }break;}}break;……………..…………………………….default: { }break;}}break;default: { }break;}}//-----------------------------------------------------------------------------//配置文件:App.config//功能:包含数据库连接字段<?xml version="1.0"encoding="utf-8" ?><configuration><connectionStrings><add name="TSConnection"connectionString="Data Source=JALIN-PC;Initial Catalog=Teaching System;Persist Security Info=False;Integrated Security=SSPI"/></connectionStrings></configuration>//-----------------------------------------------------------------------------//所属类:Login//功能:登录界面及过程实现public partial class Login : Form{// Attributes Definitionprivate TSDatabase TSDB = new TSDatabase();private User CurrentUser = null;private TeachingSystem TS = null;private UserType UT = 0;private String ErrorMsg = "";// MethoDT Definitionpublic Login(){InitializeComponent();}///<summary>/// Login click/// Check input text and find user in user table, then login or not///</summary>///<param name="sender"></param>///<param name="e"></param>private void button_Login_MouseClick(object sender, MouseEventArgs e){if (textBox_User.Text != ""){// Loginif (FindLogin(textBox_User.Text, textBox_Password.Text)){GetUserType();CreateLoginedUser(textBox_User.Text, UT);this.Visible = false;LoadTS();}// Failed to loginelse{MessageBox.Show("Couldn't login.\nMaybe causes:\nYour username and password in valid\n."+ErrorMsg, "Login Failed", MessageBoxButtons.OK);textBox_Password.Text = "";}}else{MessageBox.Show("Please input your username and password first.", "Warning", MessageBoxButtons.OK);textBox_User.Text = "";textBox_Password.Text = "";}}///<summary>/// Login user according to user's input/// In essence, test if it matches to any row in user table record///</summary>///<param name="UserName"></param>///<param name="Password"></param>///<returns></returns>private bool FindLogin(String UserName, String Password){……………..}///<summary>/// Create Logined User///</summary>///<param name="UserName"></param>///<param name="UT"></param>///<returns>User</returns>private User CreateLoginedUser(String UserName, UserType UT){………………}///<summary>/// Judge which user type has been selected;///</summary>///<returns></returns>private UserType GetUserType(){if (radioButton_Student.Checked) UT = UserType.Student;if (radioButton_Teacher.Checked) UT = UserType.Teacher;if (radioButton_Admin.Checked) UT = UserType.Administrator;return UT;}///<summary>/// Create TeachingSystem and show///</summary>private void LoadTS(){// TS exists alreadyif (TS != null)TS.Dispose();TS = new TeachingSystem(CurrentUser, TSDB);TS.ShowLoginEvent += new TeachingSystem.ShowLoginHandler(ShowLogin); TS.CloseLoginEvent += new TeachingSystem.CloseLoginHandler(CloseLogin); TS.ShowTS();}///<summary>/// Set this visible, reset attibutes and clear password///</summary>public void ShowLogin(){…………….}///<summary>/// Close Login Form///</summary>public void CloseLogin(){this.Close();}}//-----------------------------------------------------------------------------//所属类:Query//功能:详细查询界面实现//说明:以动态查询相关的函数为例public partial class Query : Form{private GridViewType GVT = 0;private DataGridView DGV = null;private String Filter = "";private String SelectedColumn = "";public delegate void UpdateStatusHandler(DataGridView DGV);public UpdateStatusHandler UpdateStatusEvent;public Query(DataGridView DGV, GridViewType GVT){this.DGV = DGV;this.GVT = GVT;InitializeComponent();Filter = ((DataTable)((BindingSource)DGV.DataSource).DataSource).DefaultView.RowFilter; SelectedColumn = DGV.Columns[DGV.CurrentCell.ColumnIndex].Name;bel_Query.Text = SelectedColumn + ":";boBox1.SelectedIndex = 0;SetHighlight();this.Visible = true;DGV.Enabled = false;}private void SetHighlight(){if (DGV.Rows.Count > 0){DGV.CurrentCell = DGV.Rows[0].Cells[DGV.Columns[SelectedColumn].Index];DGV.SelectionMode = DataGridViewSelectionMode.FullColumnSelect;DGV.CurrentCell.Selected = true;}}private void GetFilter(){String Symbol = "";if (checkBox_Overlap.Checked == true){if (Filter != ""){Filter += " AND ";}// Exchange symbolSymbol = comboBox1.SelectedItem.ToString();if (Symbol == "Contain"){Symbol = "=";}// Build Filter Stringif (DateTime.Equals(((DataTable)((BindingSource)DGV.DataSource).DataSource).Columns [SelectedColumn].DataType, (new DateTime()).GetType())){Filter += SelectedColumn + " " + Symbol + " "+ "'" + Convert.ToDateTime(textBox_Query.Text) + "'";}else if (Single.Equals(((DataTable)((BindingSource)DGV.DataSource).DataSource).Column s[SelectedColumn].DataType, (new Single()).GetType())){Filter += SelectedColumn + " " + Symbol + " "+ "'" + Convert.ToSingle(textBox_Query.Text) + "'";}else if (Int32.Equals(((DataTable)((BindingSource)DGV.DataSource).DataSource).Column s[SelectedColumn].DataType, (new Int32()).GetType())){Filter += SelectedColumn + " " + Symbol + " "+ "'" + Convert.ToSingle(textBox_Query.Text) + "'";}else{if (comboBox1.SelectedItem.ToString() == Symbol){Filter += SelectedColumn + " " + Symbol + " "+ "'" + textBox_Query.Text + "'";}else{// comboBox1.SelectedText is "Contain"Filter += SelectedColumn + " LIKE " + "'*" + textBox_Query.Text + "*'";}}}else{// No overlap filter code…………..…………..}}private void textBox_Query_TextChanged(object sender, EventArgs e){// Query while inputtingif (checkBox_Dynamic.Checked == true){try{GetFilter();((DataTable)((BindingSource)DGV.DataSource).DataSource).DefaultView.RowFilter = Fi lter;SetHighlight();}catch (System.Exception ex){// NO ACTIONS for exception//MessageBox.Show(ex.ToString());}}}Recently,in the school at the beginning of the semester ,there is a symptoms called post-holidays syndrome spreading in high schools. The students who suffered from this symptoms can't adapt to the new environment,and they also can't put themselves in their study.There are many reasons for this phenomenon,i think the main reason is that they can't change themselves from the holiday in time.Beyond that,some student are too modesty and they don't know how to adjust to the new environment. They have a comfortable life at home in the vacation,and the life in school is boring and hard.In this case,i have some suggestion.First, student should learn to adjust their。