实验十九Oracle数据库系统开发实例学生成绩管理系统课案Word文档格式.docx
《实验十九Oracle数据库系统开发实例学生成绩管理系统课案Word文档格式.docx》由会员分享,可在线阅读,更多相关《实验十九Oracle数据库系统开发实例学生成绩管理系统课案Word文档格式.docx(51页珍藏版)》请在冰豆网上搜索。
![实验十九Oracle数据库系统开发实例学生成绩管理系统课案Word文档格式.docx](https://file1.bdocx.com/fileroot1/2023-1/26/0553e407-5553-4758-ab09-eeff8bb45a82/0553e407-5553-4758-ab09-eeff8bb45a821.gif)
char
(2)
性别,只能取“男”或“女”
出生日期
date
班号
表19-4teacher表的结构
编号
职称
单位
char(16)
表19-5course表的结构
课程号
课程名
表19-6allocate表的结构
(班号,课程号)主键
课程号为外键
教师编号
教师编号为外键
表19-7score表的结构
(学号,课程号)主键
学号为外键,课程号为外键
分数
float
分数在0-100之间
一、系统功能
1.实现学生基本数据的编辑和相关查询。
2.实现教师基本数据的编辑和相关查询。
3.实现课程基本数据的编辑和相关查询。
4.实现各课程任课教师安排和相关查询。
5.实现学生成绩数据的编辑和相关查询。
6.实现用户管理和控制功能。
二、系统结构
本系统对应的项目为“学生成绩管理系统.sln”,共有20个窗体和1个公共模块。
本项目的启动窗体为pass,该窗体提示用户输入相应的用户名/密码,并判断是否为合法用户。
如果是非法用户(用户名/密码输入错误),则提示用户再次输入用户名/密码,若用户非法输入3次,便自动退出系统运行。
如果是合法用户,则调用main多文档窗体启动相应的菜单,用户通过该系统菜单执行相应的操作。
系统结构图,如图19-1所示。
图19-1系统结构图
三、系统实现
1.公共模块
本项目中包含一个公共模块即CommModule.vb模块,包含一些全局变量和全局函数Exesql。
其中全局变量被本项目中的一些窗体用于在窗体之间传递数据。
全局函数Exesql可以对school数据库中任何表执行Select、Insert、Update和Delete操作,如果是Select操作,返回相应的DataTable对象,如果是Insert、Update或Delete操作,对数据表执行更新,返回空(Nothing)。
具体代码如下:
2.pass窗体
pass窗体用于接受用户的用户名/密码输入,判断是否为合法用户。
如果是合法用户,释放该窗体并启动main窗体;
否则释放该窗体不启动main窗体即退出系统运行。
对于合法用户,用全局变量userlevel保存当前用户的级别。
pass窗体设计如图19-2、如表19-8所示。
图19-2pass窗体设计
表19-8pass窗体的控件属性表
控件类型
Name
Text
备注
Form
Pass
用户登录
StartPosition属性:
CenterScreen;
Controlbox属性:
false
GroupBox
GroupBox1
登录
Label
Label1
学生成绩管理系统
Label2
Label3
密码
Button
Button1
Button2
取消
TextBox
TextBox1
TextBox2
PasswordChar属性:
*
3.main窗体
main窗体是一个多文档窗体,其中有菜单栏MenuStrip对象和状态栏StatusStrip对象。
main窗体设计如图19-3、如表19-9所示。
图19-3main窗体设计
表19-9main窗体的控件属性表
main
false;
WindowState属性:
Maximized
IsMdiContainer属性:
True
MenuStrip
MenuStrip1
StatusStrip
StatusStrip1
添加ToolStripStatusLabel1
4.editstudent窗体
editstudent窗体用于编辑学生数据,用户可以单击“添加”、“修改”和“删除”按钮执行相应的功能。
当DataGridView1控件中不存在任何学生记录时,“修改”和“删除”按钮不可用。
editstudent窗体设计如图19-4、如表19-10所示。
图19-4editstudent窗体设计
表19-10editstudent窗体的控件属性表
editstudent
编辑学生数据
CenterScreen
DataGridView
DataGridView1
学生记录操作
AddButton
添加
UpdateButton
修改
DeleteButton
删除
ReturnButton
返回
5.editstudent1窗体
editstudent1窗体被editstudent窗体所调用,以实现student表中记录基本数据的编辑。
用户单击“确定”按钮时,记录编辑有效,即保存用户的修改;
单击“取消”按钮时,记录编辑无效,即不保存用户的修改。
editstudent1窗体设计如图19-5、如表19-11所示。
图19-5editstudent1窗体设计
表19-11editstudent1窗体的控件属性表
editstudent1
编辑单个学生记录
学生记录
姓名
Label4
Label5
Label6
yyyy/mm/dd
TextBox1-4
Radiosex
Radiosex1
男
Radiosex2
女
OkButton
确定
CancelButton
6.querystudent窗体
querystudent窗体实现学生记录的查询。
在设置条件时可以直接从组合框中选择1个班号等。
用户可以通过在“设置查询条件”分组框中输入相应的条件后,单击“确定”按钮,在上方的DataGridView1控件中仅显示满足指定条件的学生记录。
querystudent窗体设计如图19-6、如表19-12所示。
图19-6querystudent窗体设计
表19-12querystudent窗体的控件属性表
querystudent
查询学生数据
设置查询条件
TextBox1-2
ComboBox
ComboBox1
ReSetButton
重置
7.editteacher窗体
editteacher窗体用于编辑教师基本数据,用户可以单击“添加”、“修改”和“删除”按钮执行相应的功能。
。
当DataGridView1控件中不存在任何教师记录时,右下方的“修改”和“删除”按钮不可用。
editteacher窗体设计如图19-7、如表19-13所示。
图19-7editteacher窗体设计
表19-13editteacher窗体的控件属性表
editteacher
编辑教师数据
教师记录操作
8.editteacher1窗体
editteacher1窗体被editteacher窗体所调用,以实现teacher表中记录基本数据的编辑。
editteacher1窗体设计如图19-8、如表19-14所示。
图19-8editteacher1窗体设计
表19-14editteacher1窗体的控件属性表
editteacher1
编辑单个教师记录
教师记录
Label7
TextBox1-3
ComboBox2
9.queryteacher窗体
queryteacher窗体用于教师记录的查询。
用户可以通过在设置查询条件分组框中输入相应的条件后,单击“确定”按钮,在上方的DataGridView1控件中仅显示满足指定条件的教师记录。
queryteacher窗体设计如图19-9、如表19-15所示。
图19-9queryteacher窗体设计
表19-15queryteacher窗体的控件属性表
queryteacher
查询教师数据
10.editcourse窗体
editcourse窗体用于编辑课程基本数据,用户可以单击“添加”、“修改”和“删除”按钮执行相应的功能。
当DataGridView1控件中不存在任何课程记录时,“修改”和“删除”按钮不可用。
editcourse窗体设计如图19-10、如表19-16所示。
图19-10editcourse窗体设计
表19-16editcourse窗体的控件属性表
editcourse
编辑课程数据
课程记录操作
11.editcourse1窗体
editcourse1窗体被editcourse窗体所调用,以实现course表中记录基本数据的编辑。
editcourse1窗体设计如图19-11、如表19-17所示。
图19-11editcourse1窗体设计
表19-17editcourse1窗体的控件属性表
editcourse1
编辑单个课程记录
课程记录
12.querycourse窗体
querycourse窗体实现学生记录的通用查询。
用户可以通过在设置查询条件分组框中输入相应的条件后,单击“确定”按钮,在上方的DataGridView1控件中仅显示满足指定条件的课程记录。
querycourse窗体设计如图19-12、如表19-18所示。
图19-12querycourse窗体设计
表19-18querycourse窗体的控件属性表
查询课程数据
13.allocateCourse窗体
allocateCourse窗体用于安排某班某课程的任课教师。
用户可以单击“安排新课程”、“修改任课教师”和“删除课程安排”按钮执行相应的功能。
当DataGridView1控件中不存在任何课程安排记录时,“修改任课教师”和“删除课程安排”按钮不可用。
allocateCourse窗体设计如图19-13、如表19-19所示。
图19-13allocateCourse窗体设计
表19-19allocateCourse窗体的控件属性表
allocateCourse
安排任课教师
任课教师操作
安排新课程
修改任课教师
删除课程安排
14.allocateCourse1窗体
allocateCourse1窗体被allocateCourse窗体所调用,以实现某班某课程的任课教师编辑。
若是安排新课程,需选择班号和课程号,然后指定对应的教师编号;
若是修改任课教师,班号和课程号不能修改,只需选择相应的任课教师编号。
用户单击“确定”按钮时,本次安排或修改任课教师记录有效,即保存所作的修改;
单击“取消”按钮时,本次安排或修改任课教师记录无效,即不保存所作的修改。
allocateCourse1窗体设计如图19-14、如表19-20所示。
图19-14allocateCourse1窗体设计
表19-20allocateCourse1窗体的控件属性表
allocateCourse1
安排课程记录
ComboBox1-3
DropDownStyle属性设置为DropDownList
15.queryallocate窗体
queryallocate窗体实现课程安排记录的通用查询。
用户可以通过在设置查询条件分组框中输入相应的条件后,单击“确定”按钮,在上方的DataGridView1控件中仅显示满足指定条件的课程安排记录。
queryallocate窗体设计如图19-15、如表19-21所示。
图19-15queryallocate窗体设计
表19-21queryallocate窗体的控件属性表
queryallocate
查询课程安排数据
16.editscore窗体
editscore窗体用于产生和编辑学生成绩数据。
DataGridView1控件中仅显示满足指定条件的学生成绩记录,其中学号和课程号是不可修改的,只可以编辑分数。
如果指定课程号的学生成绩记录不存在,可以单击“产生空白成绩表”按钮,先产生一个没有分数的成绩表,然后再输入学生分数。
如果指定课程号的学生成绩记录已存在,可以单击“清除课程成绩表”按钮,删除该课程号的学生成绩记录。
输入或修改学生的分数,单击“保存成绩”按钮将本次编辑保存到score表中。
editscore窗体设计如图19-16、如表19-22所示。
注意:
由于Oracle中,由于有1个score的公有同义词,和scor