oracle数据库课程设计Word格式文档下载.docx
《oracle数据库课程设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《oracle数据库课程设计Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。
2系统E-R图和逻辑结构ﻩ3
2.1系统 E-R图3
2.2系统逻辑结构设计ﻩ4
3.1设计表空间6
3.2创建表6
4界面显示效果8
4.1用户登录界面8
4.2学生出勤信息管理界面ﻩ9
4.3学生信息管理界面10
4.4教师信息管理界面ﻩ11
参考文 献13
致 谢14
1 系统概述
1.1背景分析
随着高校校园信息化的逐步完善,有效地借助网络、数据库等技术提高工作和管理效率。
如今针对师生的成绩查询系统、教务管理系统、招生就业系统、BBS、校园网站等系统在各大高校纷纷出现,对全校师生的学习、生活、管理、办公带来了便利。
因此学生考勤管理系统能进一步加强高校学风建设,维护正常的教学秩序,给学生创造一个优良的学习环境。
目前高校学生上课考勤管理都是以任课老师上课点名,记录学生上课情况,对于时间比较长的请假,需要通过递交请假申请让班主任、院系领导都批准方能生效。
这种模式在目前高校管理中暴露了不可避免的弊端:
(1)学生请假不方便;
(2)学生请假对任课老师不透明;
(3)学生对自己整个学期的上课出勤情况没有整体的统计信息;
(4)班主任对本班学生整个学期的上课出勤情况不易查看;
(5)院系领导、学校领导不容易把握学生上课的出勤情况。
因此一个好的学生考勤管理系统在一定程度上可以解决这些弊端,本系统主要针对目前高校学生在线请假以及学生上课出勤管理而设计的信息系统。
本系统涉及到高校六大类用户:
学生、任课老师、班主任、院系领导、学校领导、系统管理员。
1.2功能描述
根据各类用户的需求描述,系统应当具备请假系统、考勤管理系统、后台管理系统这三大主要功能。
请假系统功能:
通过班主任以及院系领导批准请假信息。
请假最长时间不能超过1个月,特殊情况除外。
考勤管理功能:
任课老师通过考勤管理系统,对学生上课出勤信息进行公开。
请假系统要借助班主任才能完成,考勤管理系统要借助请假系统、班级课表安排才能完成,然而每学年课表都在变化,班主任安排也有在变化,学生也在变化,因此必须要求后台管理系统能根据系统需求,动态的、准确的更新系统数据。
系统管理员有系统的最高权限,负责系统所需所有数据的动态同步更新以及维护,根据系统针对各用户的设计,基本功能如下:
(1)管理学校各院系、年级、专业、班级的添加、删除、修改等。
(2)管理每个学期每个班级的课程安排及指定班主任和任课老师。
(3)管理系统所有用户。
(4)管理全校课表安排。
(5)管理系统的请假、考勤信息。
1.3功能模块划分
根据系统用户的需求,将本系统按功能划分成三大功能模块:
请假系统、考勤系统、后台管理模块,涉及到六大类用户:
学生、任课教师、班主任、院系领导、学校领导、系统管理员。
根据需求分析主要分为三大模块:
(1)请假系统模块:
本模块的功能是在线请假的实现及管理,主要涉及三大类用户:
学生、班主任及院系领导用户,学生通过此功能模块进行在线请假及查看请假记录信息;
班主任在线审批学生请假及查看请假记录信息;
院系领导在线审批学生长时间的请假及查看请假记录信息。
(2)考勤系统模块:
本模块的功能是学生考勤信息统计的实现、查看及管理,涉及六大类用户中的所有用户。
学生在线查看自己所有学年的出勤信息;
任课老师在线管理学生出勤信息;
班主任、院系领导、学校领导查看不同的范围的学生出勤信息。
(3)后台管理模块:
本模块的功能实现整个系统数据的同步更新及维护,只涉及系统管理员用户。
系统管理员动态的管理学生信息、课表安排、学年安排等信息,是整个系统实现的基础。
1.4可行性分析
(1)技术可行性
学生考勤管理系统在目前的学校中使用还不普遍,但也有许多类似的成功案例:
如教务管理系统、排课系统等。
本系统采用VisualC#高级语言及oracle数据库技术综合开发。
而这个系统尽管其在组织关系上存在着很大的复杂性,繁琐性,但是就整个系统的技术构成上来看,它还是属于一个数据库应用类的系统。
其基本操作还是对存在数据库进行添加、删除、查找、修改等。
所以就单纯的数据库应用来看,暂不存在太大的技术问题。
2 系统E-R图和逻辑结构
2.1系统 E-R图
本系统的功能是在线请假的实现及管理,主要涉及三大类用户:
学生、班主任及院系领导用户,学生通过此功能模块进行在线请假及查看请假记录信息;
班主任在线审批学生请假及查看请假记录信息;
同时实现生考勤信息统计的实现、查看及管理,涉及六大类用户中的所有用户。
然而每学年课表都在变化,班主任安排也有在变化,学生也在变化,因此必须要求后台管理系统能根据系统需求,动态的、准确的更新系统数据。
2.2系统逻辑结构设计
表2-1 学生表
字段名
数据类型
可否为空
键引用
备注
stu_no
char(10)
否
主键
学生学号
stu_name
varchar(30)
学生姓名
stu_sex
char
(2)
性别
stu_class
char(13)
外键
所属班级
stu_major
char(30)
所属专业
stu_faculty
char(40)
所属学院
表2-3学生上课考勤表
kaoqin_id
char(13)
上课出勤编号
sk_time
datetime
上课时间
stu_number
char(10)
stu_status
char(10)
学生上课考勤状态
teacher_no
char(10)
教师编号
course_no
char(13)
课程编号
表2-4 课程表
course_no
course_name
char(20)
课程名称
course_xz
char(4)
课程性质
表2-5学生请假表
id
number
请假代号
class_id
char(10)
班级代号
stu_no
varchar2 (20)
leave_reason
varchar2(200)
请假原因
start_time
datetime
开始时间
end_time
datetime
结束时间
day_number
number
请假天数
qingjia_time
datetime
申请请假时间
class_tea_id
char(5)
class_tea_sp_status
char(10)
班主任审批状态
class_tea_sp_time
datetime
班主任审批时间
coll_leader_sp_status
char(10)
院系领导审批状态
coll_leader_id
char(5)
院系领导代号
coll_leader_sp_time
datetime
院系领导审批时间
备注:
status表示审批状态:
0为等待审批,1为同意请假,2为不同意请假。
3数据库表空间和表设计
3.1设计表空间
创建一般的字典管理类表空间,目的是为了方便利用SQL字典跟踪磁盘的使用情况。
使用如下命令创建表空间:
createtablespacelinpeng_data
datafile‘/u01/oracle/oradata/tab01.dbf’size100M
defaultstorage(initial512Knext 128K minextents2 maxextents999 pctincrease 0)
online;
3.2创建表
(1)学生表student
reatetable student
(
ﻩstu_nochar(10) notnull,
stu_name varchar(30) notnull,
stu_sexchar
(2)check (stu_sex='
男'
orstu_sex='
女'),
stu_classchar(5)foreignkeyreferences classes(class_no),
ﻩstu_major numberforeignkeyreferences major(major_id),
stu_facultynumberforeignkeyreferencesfaculty(faculty_id),
constraintpk_studentprimarykey(stu_no)
)
tablespace linpeng_data;
(2)教师表teacher
create table teacher
tea_nochar(10)notnull,
tea_name char(20)notnull,
ﻩtea_sex char
(2)check(tea_sex='
ortea_sex='
女'),
ﻩtea_facultynumberforeign keyreferencesfaculty(faculty_id),
ﻩconstraintpk_teacher primarykey (tea_no)
tablespacelinpeng_data;
(3)学生上课出勤记录表 kaoqinrecord
createtable kaoqin_record
ﻩkaoqin_idchar(13)primary keynotnull,
ﻩsk_timedatetimenotnull,
stu_number char(10)foreignkeyreferencesstudent(stu_no),
ﻩstu_statuschar(10)not null,
ﻩteacher_nochar(10)foreignkeyreferencesteacher(tea_no),
course_nochar(13)foreign key referencescourse(course_no)
tablespacelinpeng_data;
4界面显示效果
4.1用户登录界面
用户登录界面,此界面主要用于用户进入主界面。
此界面对用户设置了权限,当用户类型为学生,就进入学生主界面,当用户类型为教师,进入教师主界面,当用户类型为管理员,进入管理员主界面。
其登录界面如图4.1所示。
图4.1用户登录界面
根据用户类型,当用户输入登录帐号和登录密码,点击“登录“按钮,系统将进入不同用户的主界面,其功能实现主要代码如下:
privatevoidbtnOK_Click(objectsender,EventArgse)
{intresult=-1;
//查找结果
if(ValidateInput())//调用自定义ValidateInput()方法,如果用户输入验证通过,则验证账号和密码是否正确
{string selectSql="";
//根据选择的用户类型,分别设置查询用的sql语句
if(cboUserType.Text.Trim()=="学生")
{selectSql= string.Format("
selectcount(*)from StudentswhereStuId='
{0}'
andStuPwd ='
{1}'
"
,txtLoginId.Text.Trim(), txtLoginPwd.Text.Trim());
}
elseif(cboUserType.Text.Trim() == "
教师"
{selectSql= string.Format("
select count(*)fromTeacherswhereTeacherId ='
{0}'
andTeacherPwd = '
{1}'
txtLoginId.Text.Trim(), txtLoginPwd.Text.Trim());
}
elseif(cboUserType.Text.Trim() =="
系统管理员")
{ selectSql=string.Format("
selectcount(*)fromUserswhere UserId='{0}'
andUserPwd ='{1}'
txtLoginId.Text.Trim(),txtLoginPwd.Text.Trim());
result= Convert.ToInt32(DBHelper.executeScalar(selectSql));
if(result==1)//账号和密码验证通过
{//调用了类CommonInfo类的userId、userType对象
CommonInfo.userId=txtLoginId.Text.Trim();
//设置当前登录用户的账号
CommonInfo.userType=cboUserType.Text.Trim();
//设置当前登录用户的类型
this.Hide();
frmMainmain=newfrmMain();
main.Show();
else{MessageBox.Show("
您输入的登录账号、登录密码或用户类型有误!
,"
登录提示"
MessageBoxButtons.OK, MessageBoxIcon.Error);
} }
4.2学生出勤信息管理界面
在界面中单击菜单“学生考勤管理—学生出勤信息管理”教师对学生的出勤进行考核后,将数据录入到学生出勤信息并写入到数据库。
图4.2学生出勤信息录入界面
4.3学生信息管理界面
在界面中单击窗体“学生信息查询”。
其界面如图:
图4.3学生学生信息管理界面
学生出勤信息管理窗体主要功能:
(1)单击“学生出勤信息管理”窗体,可以显示全部学生考勤信息。
(2)可以对学生的考勤记录进行增加、删除、修改、查看以及查询等操作。
关键代码为:
private voidbtnQuery_Click(objectsender, EventArgse)
{if (this.cboCondition.Text=="
{MessageBox.Show("请输入查询条件!
","
提示"
MessageBoxButtons.OK,MessageBoxIcon.Information);
this.cboCondition.Focus();
return;
}
//设置过滤条件,也即指定DataView 对象的 RowFilter属性。
try{//根据“查询条件组合框”中选择的项来决定按哪一列进行过滤
switch(this.cboCondition.Text)
{ case"
学年"
:
{//根据“查询值文本框”的值进行模糊查询
dataView.RowFilter = String.Format("SchoolYear like '
%{0}%'"
,this.txtCondition.Text);
break;
}
case"
学期":
{dataView.RowFilter=String.Format("
Semester like'
this.txtCondition.Text);
break;
case"
课程名称"
:
{ dataView.RowFilter= String.Format("
CourseNamelike '
%{0}%'
this.txtCondition.Text);
break;
}
case "
学号"
{dataView.RowFilter =String.Format("
StuIdlike'%{0}%'
,this.txtCondition.Text);
break;
default:
{//如果没有输入任何过滤条件,返回0条记录。
dataView.RowFilter= String.Format("
1= 0");
break;
}}}
catch(Exceptionex)
{MessageBox.Show(ex.Message,"
MessageBoxButtons.OK,MessageBoxIcon.Error);
}
4.4教师信息查询界面
图4.4教师信息查询界面
教师基本信息管理管理窗体主要功能:
单击“教师基本信息管理”窗体,可以可以查询不同学院的教师基本信息可以教师的记录记录进行增加、删除、修改、查看以及查询等操作。
结 论
通过本次Oracle数据库课程设计,将本学期所学的Oracle知识及数据库基础方面的知识得到了一综合性的应用,使我基本掌握了在软件项目的开发过程中数据库设计的基本流程,从需求分析到数据库的逻辑结构设计,再到数据库的物理结构设计等。
为了提高系统的效率和可靠性,一些比较关键的功能都采用存储过程或函数封装在数据库端,在其它程序设计语言中直接调用。
这是我借鉴开发的第一个系统,开发此系统也是对本学期的学习进行一个全方面的检验。
开发此系统的过程中,在同学及老师的大力支持与帮助下,发现自己还有诸多的不足之处。
要编一个功能完善的系统,绝不是一件简单的事情,这需要长期的实践经验积累。
因此,第一次开发这样的系统,千万不要把自己目标定的太高,根据自身的实力而定。
由于自身的知识肤浅,经验不足。
因此,在该学生考勤管理系统的设计与功能实现方面还有诸多不足,比如实现的主要功能不多,模块过少,有些界面的代码过于繁杂,界面整体效果不够醒目等问题。
但此次能认识到自己的不足,相信在今后的工作中,能根据工作的具体要求不断的修改完善,争取使该系统慢慢趋向全面。
ﻬ参考文献
[1]王永贵.《Oracle数据库管理与应用》.中国矿业大学出版社.2009
[2]赵文涛,数据库系统原理,中国矿业大学出版社,2006
[3]安葳鹏,软件工程,中国矿业大学出版社,2007
[4]张晓东,JSP+Oracle数据库开发与实例,
清华
大学出版社2008
[5]向隅编,数据库基础及应用
邮电大学
出版社2008
[6]孙晓非,冯冠.C#程序设计教程[M].北京:
清华大学出版社,2008.212-245.
[7]王小科,吕双.C#程序设计标准教程[M].北京:
人民邮电出版社,2009.404-489.
ﻩ
致 谢
本次毕业设计是在任利峰老师的悉心指导和热心帮助下完成的。
他给我的设计和论文提出了很多宝贵的意见,并给我作了仔细的修改。
在他的鼓励与耐心的指导下,我的设计和论文才能快速、保质量完成。
在和老师的接触中,他给我以毫不保留的指导,促进了我对专业知识的巩固和提高,让我受益匪浅。
为我打下博大精深的专业知识的基础,同时还要感谢组员们的相互配合,正是因为有了你们的支持和鼓励,此次课程设计设计才会顺利完成。
在此,衷心的谢谢您们!