学生课程管理Oracle数据库论文文档格式.docx
《学生课程管理Oracle数据库论文文档格式.docx》由会员分享,可在线阅读,更多相关《学生课程管理Oracle数据库论文文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
通过《大型数据库系统应用》课程的学习,将数据结构、数据库应用在具体的编程方面,更加了解课程所学习的内容及思维逻辑。
(3)实训意义:
利用信息系统开发与实践课程设计,了解学生对Oracle数据库的理解、应用,以及加强学生对软件开发方面的应用知识。
希望今后学生好好利用所学的软件开发方面的知识和思想,解决各方面的编程难题。
(4)实训内容:
按照系统开发基本原理,综合运用所学的知识,设计开发一个小型的管理系统。
(5)实训预期实现效果:
系统开发文档+能运行的小系统或者部分模块
1.2方案及其论证
语言:
VB+Oracle11g
运行环境:
MicrosoftVisualStudio2010
2需求分析
2.1可行性分析
(1)技术可行性:
学生选课系统,数据库方面采用Oracle11g,采用VB语言。
(2)经济可行性:
随着网络技术的发展,各高校纷纷建立自己的高速校园网,并建有属于的学生选课系统,利用计算机对学生的信息进行管理,减少了人力的投资;
而且学校对选课系统大力支持,开发经费没有问题。
从长远来看,其好处是乐观的。
(3)操作可行性:
界面设计时充分考虑管理人员的习惯,使得操作简单;
数据录入迅速、规范、可靠;
统计准确;
制表灵活;
适应力强;
容易扩充。
2.2性能需求
为了保证系统能够长期、安全、稳定、可靠、高校地运行,学生选课管理系统应该满足以下几个性能需求。
(1)数据精确度
系统对数据处理的准确性和精度要求高。
(2)适应性(运行环境、计划发生变化等应具有的适应能力)
在开发过程中,应该充分考虑以后的可扩充性。
例如管理系统的方式的改变,用户查询的需求也会不断地更新和完善。
所有这些,都要求系统提供足够的手段进行功能的调整和扩充。
而要实现这一点,应通过系统的开放性来完成。
即系统应是一个开放系统,可以在符合一定规范的前提下,简单的加入和减少系统的模块,配置系统的硬件,通过软件的修补、替换完成系统的升级和更新换代。
(3)出错处理
系统中涉及到的数据是学校重要的信息,系统要提供方便的手段供系统维护人员进行数据的辈分,日常的安全管理系统意外崩溃时的数据恢复等工作。
①系统应具有相当健壮性,避免或降低由系统错误所造成的数据库损坏。
②对关键性操作,如删除等警告和确认机制。
(4)安全
系统提供严格的身份验证机制和密码管理。
(5)维护
系统严格按照设计规范进行设计,并保持各阶段文档的完整性,为以后对软件的维护打好基础。
3概念结构设计
3.1功能模块设计
学生选课系统必须能够完成学生管理、管理员管理,教师管理,课程管理。
按照用户需求,可将“学生选课管理系统”设计成以下层次:
图3.1学生选课管理系统层次结构图
通过分析,得到“学生管理系统”的数据流图:
图3.3学生选课管理系统顶层数据流图
3.2E-R图
图3.6学生、课程实体e-r图
4逻辑结构设计
4.1关系模式
(1)管理员(管理员号,姓名,密码)主键:
管理员号
(2)课程表(课程号,课程名,课程内容)主键:
课程号
(3)学生(学号,姓名,性别,班级)主键:
学号
(4)教师表(教职工号,姓名,性别)主键:
教职工号
4.2规范处理
第一范式(无重复的列)定义:
数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项。
如果实体中的某个属性有多个值时,必须拆分为不同的属性通俗解释:
一个字段只存储一项信息。
第二范式(属性完全依赖于主键)定义:
满足第一范式前提,当存在多个主键的时候,才会发生不符合第二范式的情况。
比如有两个主键,不能存在这样的属性,它只依赖于其中一个主键,这就是不符合第二范式通俗解释:
任意一个字段都只依赖表中的同一个字段。
第三范式(属性不能传递依赖于主属性)定义:
满足第二范式前提,如果某一属性依赖于其他非主键属性,而其他非主键属性又依赖于主键,那么这个属性就是间接依赖于主键,这被称作传递依赖于主属性。
通俗理解:
一张表最多只存2层同类型信息。
4.3视图设计
l_Course表
COU_ID
COU_NAME
COU_CONTENT
1
计算机基础
第一章
2
管理学
绪论
3
数据库
mana表
MANA_ID
MANA_NAME
MANA_PASSWORD
lxx
123
l_student表
STU_ID
STU_NAME
STU_SEX
STU_CLASS
李晓雪
女
2班
晓雪
3班
l_tea表
TEA_ID
TEA_NAME
TEA_SEX
刘俊德
男
4
5
5详细设计
5.1数据库设计部分代码
创建l_Course表:
createtablel_Course(
cou_idintprimarykey,
cou_namevarchar2(20)notnull,
cou_contentvarchar2(20)notnull
);
commit;
插入l_Course表:
insertintol_Coursevalues(1,'
计算机基础'
'
第一章'
insertintol_Coursevalues(2,'
管理学'
绪论'
insertintol_Coursevalues(3,'
数据库'
目录'
查询l_Course表:
select*froml_Course;
创建mana表:
createtablemana(
mana_idintprimarykey,
mana_namevarchar2(20)notnull,
mana_passwordvarchar2(20)notnull
插入mana表:
insertintol_studentvalues(1,'
lxx'
123'
'
5.2前台界面开发部分代码
用户登录代码:
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
IfTextBox1.Text="
"
OrTextBox2.Text="
Then
MsgBox("
用户名和密码不能为空"
)
Else
checkLoginName()
EndIf
EndSub
SubcheckLoginName()
DimstrconAsString="
provider=oraoledb.oracle.1;
password=System001;
persistsecurityinfo=true;
userid=system;
datasource=o"
DimconAsOleDbConnection=NewOleDbConnection(strcon)
con.Open()
DimsqlAsString="
select*frommanawheremana_name='
&
TextBox1.Text.ToString().Trim()&
"
andmana_password='
TextBox2.Text.ToString().Trim()&
DimcmdAsNewOleDbCommand(sql,con)
DimreaderAsOleDbDataReader
reader=cmd.ExecuteReader
Ifreader.Read()=TrueThen
Me.Hide()
frmMain.Show()
登录失败,请检查你用户名,密码,以及权限是否正确"
PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.Click
Me.Close()
EndClass
图5.1用户登录
添加用户代码:
DimynoAsString=Me.TextBox1.Text
DimynameAsString=Me.TextBox2.Text
DimypwdAsString=Me.TextBox3.Text
DimaddclassAsString=String.Format("
insertintomana(mana_id,mana_name,mana_password)values('
{0}'
{1}'
{2}'
)"
yno,yname,ypwd)
DimcmdAsOleDbCommand=NewOleDbCommand(addclass,con)
DimresultAsInteger=cmd.ExecuteNonQuery()
If(result<
1)Then
MessageBox.Show("
添加失败!
"
操作提示"
MessageBoxButtons.OK,MessageBoxIcon.Warning)
添加成功!
MessageBoxButtons.OK,MessageBoxIcon.Information)
PrivateSubLabel1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesLabel1.Click
图5.2用户添加
查询课程代码:
PrivateSubfrmSearchStudent_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
DimselectEmpAsString="
select*frommana"
DimdsAsDataSet=NewDataSet()
DimdaAsOleDbDataAdapter=NewOleDbDataAdapter(selectEmp,con)
da.Fill(ds,"
mana"
Me.DataGridView1.DataSource=ds.Tables("
con.Close()
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
DimyhNumAsString=Me.TextBox1.Text
select*frommanawheremana_id='
+yhNum+"
PrivateSubDataGridView1_CellContentClick(ByValsenderAsSystem.Object,ByValeAsSystem.Windows.Forms.DataGridViewCellEventArgs)HandlesDataGridView1.CellContentClick
DimstuidAsString=Me.DataGridView1.Rows(e.RowIndex).Cells(0).Value.ToString().Trim()
IfMessageBox.Show("
确定要删除该用户吗?
操作警告"
MessageBoxButtons.YesNo,MessageBoxIcon.Warning)=Windows.Forms.DialogResult.YesThen
DimdeleteEmpAsString=String.Format("
DELETEFROMStuWHERES_ID='
+stuid+"
DimcmdAsOleDbCommand=NewOleDbCommand(deleteEmp,con)
DimresultAsInteger=Convert.ToInt32(cmd.ExecuteNonQuery())
删除失败!
操作结果"
MessageBoxButtons.OK,MessageBoxIcon.Exclamation)
删除成功!
Me.frmSearchStudent_Load(sender,e)
PrivateSubButton3_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton3.Click
PrivateSubTextBox1_TextChanged(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesTextBox1.TextChanged
图5.3查询
5.3数据库连接部分代码
SubcheckLoginName()
6总结与体会
通过本次模拟实习,初步的掌握了该开发工具,通过这次的开发过程,也亲身体验了一回开发人员的酸甜苦辣,同时也锻炼了自己,加深了自己对软件开发工作的认识,同时也提高了自己的学习能力、解决问题的能力和实际工作的能力。
希望在今后的工作中能学以致用,将自己的知识运用到实际工作中。
7参考文献
[1]孙风栋、王澜、程卓.Oracles数据库应用技术[M].清华大学出版社,2013,7
[2]张燕;
兰彬;
;
浅谈数据库管理信息系统的结构设计[J];
北京农学院学报;
2007年S1
[3]宁德琼;
VB下学生选课系统的设计方法[J];
曲靖师范学院学报;
2005年06期