赞
踩
目前国家的教育体制正处在不断改革、创新的阶段,我国教育部门充分吸取国外优秀的教学模式,结合国内多年的办学经验,逐步探索出适合中国特色的教学形式,国家教育部面向各级各类学校开展了全面学分制改革。教育部为了实现党的十五大所确定的目标与任务,落实科教兴国战略,特制定了《面向21世纪教育振兴行动计划》,其中讲到“开发高质量教育软件,重点建设全国远程教育资源库和若干个教育软件开发生产基地”。
因此,各院校迫切需要对自己的现有教务管理系统进行改进和提高,根据国内大学的现在管理模式,结合国际新的思想观念,在校园网络环境下建设先进的、与国际水平接轨的信息化管理平台。提高学校管理工作的现代化水平,推广现代教育技术在教学实践中的运用,促进教育整体质量和办学效益的提高。使之成为学校公共信息服务体系的重要组成部分。在这样的大环境下,开发和完善高校教务信息管理系统是目前各高校的迫切需求。
1、教师基本信息的录入与增加
录入要方便用户把各种数据资料录入到系统将要新建的文本文件中,还要求能进行修改和浏览。这些数据包含教师的工号,姓名,性别,身份证号,婚姻状况,联系方式,家庭住址,政治面貌,所在系id。
2、教师信息的修改
能修改存储在文件中的教师的工号,姓名,性别,身份证号,婚姻状况,联系方式,家庭住址,政治面貌,所在系id。
3、教师信息的查询
能查询存储在文件中的教师的工号,姓名,性别,身份证号,婚姻状况,联系方式,家庭住址,政治面貌,所在系id。
4、教师信息的删除
能存储在文件中的教师的工号,姓名,性别,身份证号,婚姻状况,联系方式,家庭住址,政治面貌,所在系id。
5、院、系号的录入
院、系信息管理包括院、系信息数据的录入,修改与删除等功能。
6、院、系名的查询
能查询在储存在文件中的所在院、系号,院、系名并且查询各个系的老师信息。
7、课程表的录入
输入课程号,课程名,学时,学分,上课教室,所在学期。
8、学生信息表的录入
9、教师所授课程的查询
输入教师id查询该教师所有教授课程以及上课的学生。
教师基本信息:工号,姓名,性别,身份证号,婚姻状况,联系方式,家庭住址,政治面貌,所在系id
学院信息:学院id,学院名
系信息:系id,系名,所属学院id
课程信息:课程号,课程名,学时,学分,教室,学期
学生信息:学号,姓名,所属系id,上课号
图 2.1实体关系图
一名教师可以授多门课,一门课程可由多名教师上;一名学生可以选择多门课程,一门课程可由多名学生选择;一名教师属于一个系,一个系可以有多个教师;一名学生属于一个系,一个系可有多名学生;一个学院有多个系,一个系只能属于一个学院。
表 2.1实体与属性图
实体 | 属性 |
教师 | 工号,姓名,性别,身份证号,婚姻状况,联系方式,家庭住址,政治面貌,所在系id |
院 | 学院id,学院名 |
系 | 系id,系名,所属学院id |
课程 | 课程号,课程名,学时,学分,学期,教室 |
学生 | 学号,姓名,所属系id,上课号 |
表 2.2实体与类对应关系图
实体 | 类名 |
教师 | teacher |
院 | institute |
系 | department |
课程 | course |
学生 | student |
图 2.2教师E-R图
图 2.3课程E-R图
图 2.4院E-R图
图 2.5系E-R图
图 2.6学生E-R图
图 2.7全局E-R图
图 2.8类图
教师(工号,联系方式,姓名,性别,家庭住址,政治面貌,婚姻状况,身份证号,所在系id)主键:工号,外键:所在系id
院(学院id,学院名)主键:学院id
系(系id,系名,学院id)主键:系id,外键:学院id
课程(课程号,学时,学分,课程名,教室,学期)主键:课程号
学生(学号,姓名,所属系id,课程号)主键:学号,外键:所属系id,课程号
1.属性冲突
系实体中的学院id号与院的学院id号属性冲突。
·解决方法:引用外键
2.结构冲突:无
3.命名冲突
学生实体中的课程号与课程实体中课程号命名冲突。
·解决方法:改为课程号和上课号。
教师(工号,联系方式,姓名,性别,家庭住址,政治面貌,婚姻状况,身份证号,所在系id)主键:工号
院(学院id,学院名)主键:学院id
系(系id,系名,所属院id)主键:系id,外键:所属院id
课程(课程号,学时,学分,课程名,教室,学期)主键:课程号
学生(学号,姓名,所属系id,上课号)主键:学号,外键:所属系id,上课号
people类:
图 3.1people类属性
teacher类:
图 3.2teacher类属性
student类:
图 3.3student类属性
institute类:
图 3.4institute类属性
departments类:
图 3.5departments类属性
course类:
图 3.6course类属性
表 4.1教师表
teacher | ||
列名 | 类型 | 备注 |
id(工号) | int | primary key |
name(姓名) | varchar | not null |
sex(性别) | varchar | check 约束‘男’‘女’ |
id_card(身份证号) | varchar | not null and unique |
location(家庭住址) | varchar | not null |
tele(联系方式) | varchar | not null |
politics(政治面貌) | varchar | not null and check |
marriage(婚姻状况) | varchar | check 约束‘是’‘否’ |
id_SuozaiXi(所在系id) | int | not null |
表 4.2院信息表
institute | ||
列名 | 类型 | 备注 |
id_Xueyua(学院id) | int | primary key |
name_Xueyua(学院名) | varchar | not null |
表 4.3系信息表
departments | ||
列名 | 类型 | 备注 |
id_Xi(系id) | int | primary key |
name_Xi(系名) | varchar | not null |
id_SuoShuXueyuan(所属学院id) | int | not null |
表 4.4必修课课程表
b_course | ||
列名 | 类型 | 备注 |
id_b_class(课程号) | int | primary key |
name_b_class(课程名) | varchar | not null |
b_xueshi(学时) | int | not null |
b_score(学分) | int | not null |
b_classroom(教室) | varchar | not null |
b_term(学期) | varchar | check 约束 ‘1’‘2’ |
表 4.5选修课课程表
x_course | ||
列名 | 类型 | 备注 |
id_x_class(课程号) | int | primary key |
name_x_class(课程名) | varchar | not null |
x_xueshi(学时) | int | not null |
x_score(学分) | int | not null |
x_classroom(教室) | varchar | not null |
x_term(学期) | varchar | check 约束 ‘1’‘2’ |
表 4.6学生信息表
学生信息表 | ||
列名 | 类型 | 备注 |
学号 | int | primary key |
姓名 | varchar | not null |
所属系id | int | not null |
上课号 | int | not null |
- class OperationData {
- private val driver="com.mysql.cj.jdbc.Driver" //驱动
- private val url="jdbc:mysql://localhost:3306/quotes" //自己的ip地址:端口号/库名
- private val username="root" //用户名
- private val password="1234" //密码
-
- private var connection:Connection=null
-
- //加载驱动
- def getConnection():Unit={
- Class.forName(driver)
- connection= DriverManager.getConnection("jdbc:mysql://localhost:3306/quotes?user=root&password=1234&serverTimezone=UTC")
- println("数据库连接成功")
- }
- class OperationData {
-
- val teacher = new teacher
-
- val departments = new departments
-
- val institute = new institute
-
- val student = new student
-
- var b_course = new b_course
-
- var x_course = new x_course
-
- getConnection()
-
- // 增:
-
- // 添加基本信息
-
- def insert(yuJu: String):Int={
-
- try{
-
- val insertSqlString=yuJu
-
- val statement: PreparedStatement = connection.prepareStatement(insertSqlString)
-
- val i:Int=connection.createStatement().executeUpdate(insertSqlString)
-
- println("插入成功")
-
- i
-
- }
-
- finally{
-
- connection.close()
-
- }
-
- }
-
- //查:
-
- //查询“LiSi”所在院系名
-
- def select(yuJu:String):Unit={
-
- val selectStrSql=yuJu
-
- try{
-
- val rs:ResultSet=connection.createStatement().executeQuery(selectStrSql)
-
- while (rs.next()){
-
- teacher.id=rs.getInt("id")
-
- teacher.name=rs.getString("name")
-
- teacher.sex=rs.getString("sex")
-
- teacher.id_card = rs.getString("id_card")
-
- teacher.location = rs.getString("location")
-
- teacher.tele = rs.getString("tele")
-
- teacher.politics = rs.getString("politics")
-
- teacher.marriage = rs.getString("marriage")
-
- teacher.id_SuozaiXi = rs.getInt("id_SuozaiXi")
-
- departments.id_Xi=rs.getInt("id_Xi")
-
- departments.name_Xi=rs.getString("name_Xi")
-
- departments.id_SuoShuXueyuan = rs.getInt("id_SuoShuXueyuan")
-
- institute.name_Xueyuan = rs.getString("name_Xueyuan")
-
- institute.id_Xueyuan = rs.getInt("id_Xueyuan")
-
- b_course.id_class = rs.getInt("id_b_class")
-
- b_course.name_class = rs.getString("name_b_class")
-
- x_course.id_class = rs.getInt("id_x_class")
-
- x_course.name_class = rs.getString("name_x_class")
-
- println("查询到"+teacher.name+"信息如下:")
-
- teacher.outPutInfo()
-
- departments.outPutInfo()
-
- institute.outPutInfo()
-
- b_course.outPutInfo()
-
- x_course.outPutInfo()
-
- }
-
- }
-
- finally{
-
- connection.close()
-
- }
-
- }
-
- //改
-
- // 因学校安排,“张三”调到“logistics management”系(30003)。
-
- def updata(yuJu:String):Unit= {
-
- val updataString =yuJu
-
- try{
-
- val rs3 = connection.createStatement().executeUpdate(updataString)
-
- println("更新成功")
-
- }
-
- finally{
-
- connection.close()
-
- }
-
- }
-
- //删
-
- //“杨铭”因工作调动,不在本学校,将其基本信息删除。
-
- def deleteDb(name:String):Unit= {
-
- val sql = "delete from teacher where name= ?"
-
- try{
-
- val pstm = connection.prepareStatement(sql)
-
- pstm.setString(1,name)
-
- println("删除成功")
-
- }
-
- finally{
-
- connection.close()
-
- }
-
- }}
图 5.1教师数据库表
图 5.2学院信息数据库表
图 5.3系信息数据库表
图 5.4必修课课程表
图 5.5必修课授课数据库表:
图 5.6选修课程数据库表
图 5.7选修课授课数据库表
图 5.8学生信息数据库表
(1)向“教师表”中增添:工号为:10000010,姓名为:杨铭,性别:女,身份证号:411527198903025011,家庭住址:新5,联系方式:13782939067,政治面貌:党员,婚姻状况:否,所在系id:30001
驱动代码:
- val Opdata = new OperationData
-
- // 增:向“教师表”中增添 工号为:10000010,姓名为:杨铭,性别:女,身份证号:411527198903025011,家庭住址:新5,
-
- // 联系方式:13782939067,政治面貌:党员,婚姻状况:否,所在系id:30001
-
- Opdata.insert(
-
- """insert into teacher
- |values('1000010','YangMing','female','411527198903025011','new department5',13782939067,'member of Communist Party of China','no','30001');
- |""".stripMargin)
(2)查询“李四”个人全部信息
驱动代码:
- // 查询:查询李四所有个人信息
-
- Opdata.select(yuJu =
-
- """select *
- |from teacher,departments,institute,b_course,b_shouke,x_course,x_shouke
- |where teacher.name='LiSi' and
- |teacher.id_SuozaiXi = departments.id_Xi and
- |departments.id_SuoShuXueyuan = institute.id_Xueyuan and
- |b_shouke.b_id = teacher.id and
- |b_shouke.b_id_class = b_course.id_b_class and
- |x_shouke.x_id = teacher.id and
- |x_shouke.x_id_class = x_course.id_x_class;
- |""".stripMargin)
(3)“杨铭”因工作调动,不在本学校,将其基本信息删除。
驱动代码:
Opdata.deleteDb("YangMing")
(4)因学校安排,“张三”调到“logistics management”系(30003)
驱动代码:
- // 改:因学校安排,“张三”调到“logistics management”系(30003)。
-
- Opdata.updata(yuJu="""update teacher set id_SuozaiXi=30003
- |where name = "ZhangSan";
- |""".stripMargin)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。