实验十九Oracle数据库系统开发实例-学生成绩管理系统.docx
-
资源ID:50262563
资源大小:1.38MB
全文页数:47页
- 资源格式: DOCX
下载积分:20金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
实验十九Oracle数据库系统开发实例-学生成绩管理系统.docx
实验十九实验十九 Oracle 数据库系统开发实例数据库系统开发实例学生成绩管理系统学生成绩管理系统【一】实验目的【一】实验目的1.掌握采用 VB.NET 开发 Oracle 数据库系统的方法;2.掌握开发 C/S 模式的数据库系统的方法。【二】实验内容【二】实验内容利用 SQL Developer,在 scott 用户下创建 6 张表:student、teacher、course、allocate、score和 users 表,如表 19-1 至 19-7 所示。表 19-1 users 表结构列名列名数据类型数据类型非空非空说明说明用户名char(10)主键主键密码char(10)级别char(10)表 19-2 users 表的数据用户名用户名密码密码级别级别admin123456系统管理员表 19-3 student 表的结构列名列名数据类型数据类型非空非空说明说明学号char(10)主键主键姓名char(10)性别char(2)性别,只能取只能取“男男”或或“女女”出生日期date班号char(10)表 19-4 teacher 表的结构列名列名数据类型数据类型非空非空说明说明编号char(10)主键主键姓名char(10)性别char(2)性别,只能取只能取“男男”或或“女女”出生日期date职称char(10)单位char(16)表 19-5 course 表的结构列名列名数据类型数据类型非空非空说明说明课程号char(10)主键主键课程名char(16)表 19-6 allocate 表的结构列名列名数据类型数据类型非空非空说明说明班号char(10)(班号(班号,课程号)主键课程号)主键课程号为外键课程号为外键课程号char(10)教师编号char(10)教师编号为外键教师编号为外键表 19-7 score 表的结构列名列名数据类型数据类型非空非空说明说明学号char(10)(学号,课程号)主键(学号,课程号)主键学号为外键,课程号为外键学号为外键,课程号为外键课程号char(10)分数float分数在分数在 0-100 之间之间一、一、系统功能系统功能1.实现学生基本数据的编辑和相关查询。2.实现教师基本数据的编辑和相关查询。3.实现课程基本数据的编辑和相关查询。4.实现各课程任课教师安排和相关查询。5.实现学生成绩数据的编辑和相关查询。6.实现用户管理和控制功能。二、二、系统结构系统结构本系统对应的项目为“学生成绩管理系统.sln”,共有 20 个窗体和 1 个公共模块。本项目的启动窗体为 pass,该窗体提示用户输入相应的用户名/密码,并判断是否为合法用户。如果是非法用户(用户名/密码输入错误),则提示用户再次输入用户名/密码,若用户非法输入 3 次,便自动退出系统运行。如果是合法用户,则调用 main 多文档窗体启动相应的菜单,用户通过该系统菜单执行相应的操作。系统结构图,如图 19-1 所示。main 窗体学生数据管理menu13_Click 过程系统维护setuser 窗体setuser1 窗体pass窗体editstudent 窗体editstudent1 窗体querystudent窗体教师数据管理editteacher 窗体editteacher1 窗体queryteacher 窗体课程数据管理editcourse窗体editcourse1 窗体querycourse 窗体成绩数据管理editscore 窗体queryscore窗体课程安排管理allocatecourse 窗体allocatecourse1 窗体queryallocate 窗体menu62_Click 过程图 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-2 pass 窗体设计表 19-8 pass 窗体的控件属性表控件类型控件类型NameText备注备注FormPass用户登录StartPosition 属性:CenterScreen;Controlbox 属性:falseGroupBoxGroupBox1登录LabelLabel1学生成绩管理系统LabelLabel2用户名LabelLabel3密 码ButtonButton1登录ButtonButton2取消TextBoxTextBox1TextBoxTextBox2PasswordChar 属性:*3.main 窗体窗体main 窗体是一个多文档窗体,其中有菜单栏 MenuStrip 对象和状态栏 StatusStrip 对象。main 窗体设计如图 19-3、如表 19-9 所示。图 19-3 main 窗体设计表 19-9main 窗体的控件属性表控件类型控件类型NameText备注备注Formmain学生成绩管理系统StartPosition 属性:CenterScreen;Controlbox 属性:false;WindowState 属性:MaximizedIsMdiContainer 属性:TrueMenuStripMenuStrip1MenuStrip1StatusStripStatusStrip1StatusStrip1添加 ToolStripStatusLabel14.editstudent 窗体窗体editstudent 窗体用于编辑学生数据,用户可以单击“添加”、“修改”和“删除”按钮执行相应的功能。当 DataGridView1 控件中不存在任何学生记录时,“修改”和“删除”按钮不可用。editstudent 窗体设计如图 19-4、如表 19-10 所示。图 19-4 editstudent 窗体设计表 19-10 editstudent 窗体的控件属性表控件类型控件类型NameText备注备注Formeditstudent编辑学生数据StartPosition 属性:CenterScreenControlbox 属性:falseLabelLabel1Label1DataGridViewDataGridView1GroupBoxGroupBox1学生记录操作ButtonAddButton添加ButtonUpdateButton修改ButtonDeleteButton删除ButtonReturnButton返回5.editstudent1 窗体窗体editstudent1 窗体被 editstudent 窗体所调用,以实现 student 表中记录基本数据的编辑。用户单击“确定”按钮时,记录编辑有效,即保存用户的修改;单击“取消”按钮时,记录编辑无效,即不保存用户的修改。editstudent1 窗体设计如图 19-5、如表 19-11 所示。图 19-5editstudent1 窗体设计表 19-11 editstudent1 窗体的控件属性表控件类型控件类型NameText备注备注Formeditstudent1编辑单个学生记录StartPosition 属性:CenterScreenControlbox 属性:falseGroupBoxGroupBox1学生记录LabelLabel1学号LabelLabel2姓 名LabelLabel3性别LabelLabel4出生日期LabelLabel5班号LabelLabel6yyyy/mm/ddTextBoxTextBox1-4RadiosexRadiosex1男RadiosexRadiosex2女ButtonOkButton确定ButtonCancelButton取消6.querystudent 窗体窗体querystudent 窗体实现学生记录的查询。在设置条件时可以直接从组合框中选择 1 个班号等。用户可以通过在“设置查询条件”分组框中输入相应的条件后,单击“确定”按钮,在上方的 DataGridView1 控件中仅显示满足指定条件的学生记录。querystudent 窗体设计如图 19-6、如表 19-12 所示。图 19-6querystudent窗体设计表 19-12querystudent窗体的控件属性表控件类型控件类型NameText备注备注Formquerystudent查询学生数据StartPosition 属性:CenterScreenControlbox 属性:falseLabelLabel1Label1DataGridViewDataGridView1GroupBoxGroupBox1设置查询条件LabelLabel2学号LabelLabel3姓 名LabelLabel4性别LabelLabel5班号TextBoxTextBox1-2RadiosexRadiosex1男RadiosexRadiosex2女ComboBoxComboBox1ButtonOkButton确定ButtonReSetButton重置ButtonReturnButton返回7.editteacher 窗体窗体editteacher 窗体用于编辑教师基本数据,用户可以单击“添加”、“修改”和“删除”按钮执行相应的功能。当 DataGridView1 控件中不存在任何教师记录时,右下方的“修改”和“删除”按钮不可用。editteacher 窗体设计如图 19-7、如表 19-13 所示。图 19-7editteacher窗体设计表 19-13editteacher窗体的控件属性表控件类型控件类型NameText备注备注Formeditteacher编辑教师数据StartPosition 属性:CenterScreenControlbox 属性:falseLabelLabel1Label1DataGridViewDataGridView1GroupBoxGroupBox1教师记录操作ButtonAddButton添加ButtonUpdateButton修改ButtonDeleteButton删除ButtonReturnButton返回8.editteacher1 窗体窗体editteacher1窗体被editteacher窗体所调用,以实现teacher表中记录基本数据的编辑。用户单击“确定”按钮时,记录编辑有效,即保存用户的修改;单击“取消”按钮时,记录编辑无效,即不保存用户的修改。editteacher1 窗体设计如图 19-8、如表 19-14 所示。图 19-8editteacher1窗体设计表 19-14editteacher1窗体的控件属性表控件类型控件类型NameText备注备注Formeditteacher1编辑单个教师记录StartPosition 属性:CenterScreenControlbox 属性:falseGroupBoxGroupBox1教师记录LabelLabel1编号LabelLabel2姓 名LabelLabel3性别LabelLabel4出生日期LabelLabel5职称LabelLabel6单位LabelLabel7yyyy/mm/ddTextBoxTextBox1-3TextBox1-3RadiosexRadiosex1男RadiosexRadiosex2女ComboBoxComboBox1ComboBox1ComboBoxComboBox2ComboBox2ButtonOkButton确定ButtonCancelButton取消9.queryteacher 窗体窗体queryteacher 窗体用于教师记录的查询。用户可以通过在设置查询条件分组框中输入相应的条件后,单击“确定”按钮,在上方的 DataGridView1 控件中仅显示满足指定条件的教师记录。queryteacher 窗体设计如图 19-9、如表 19-15 所示。图 19-9queryteacher 窗体设计表 19-15 queryteacher 窗体的控件属性表控件类型控件类型NameText备注备注Formqueryteacher查询教师数据StartPosition 属性:CenterScreenControlbox 属性:falseLabelLabel1Label1DataGridViewDataGridView1GroupBoxGroupBox1设置查询条件LabelLabel2编号LabelLabel3姓名LabelLabel4性别LabelLabel5职称LabelLabel6单位TextBoxTextBox1-2RadiosexRadiosex1男RadiosexRadiosex2女ComboBoxComboBox1ComboBoxComboBox2ButtonOkButton确定ButtonReSetButton重置ButtonReturnButton返回10.editcourse 窗体窗体editcourse 窗体用于编辑课程基本数据,用户可以单击“添加”、“修改”和“删除”按钮执行相应的功能。当 DataGridView1 控件中不存在任何课程记录时,“修改”和“删除”按钮不可用。editcourse 窗体设计如图 19-10、如表 19-16 所示。图 19-10editcourse窗体设计表 19-16editcourse窗体的控件属性表控件类型控件类型NameText备注备注Formeditcourse编辑课程数据StartPosition 属性:CenterScreenControlbox 属性:falseLabelLabel1Label1DataGridViewDataGridView1GroupBoxGroupBox1课程记录操作ButtonAddButton添加ButtonUpdateButton修改ButtonDeleteButton删除ButtonReturnButton返回11.editcourse1 窗体窗体editcourse1 窗体被 editcourse 窗体所调用,以实现 course 表中记录基本数据的编辑。用户单击“确定”按钮时,记录编辑有效,即保存用户的修改;单击“取消”按钮时,记录编辑无效,即不保存用户的修改。editcourse1 窗体设计如图 19-11、如表 19-17 所示。图 19-11editcourse1窗体设计表 19-17editcourse1窗体的控件属性表控件类型控件类型NameText备注备注Formeditcourse1编辑单个课程记录StartPosition 属性:CenterScreenControlbox 属性:falseGroupBoxGroupBox1课程记录LabelLabel1课程号LabelLabel2课程名TextBoxTextBox1-2TextBox1-2ButtonOkButton确定ButtonCancelButton取消12.querycourse 窗体窗体querycourse 窗体实现学生记录的通用查询。用户可以通过在设置查询条件分组框中输入相应的条件后,单击“确定”按钮,在上方的 DataGridView1 控件中仅显示满足指定条件的课程记录。querycourse 窗体设计如图 19-12、如表 19-18 所示。图 19-12querycourse窗体设计表 19-18querycourse窗体的控件属性表控件类型控件类型NameText备注备注Formqueryteacher查询课程数据StartPosition 属性:CenterScreenControlbox 属性:falseLabelLabel1Label1DataGridViewDataGridView1GroupBoxGroupBox1设置查询条件LabelLabel2课程号LabelLabel3课程名TextBoxTextBox1-2ButtonOkButton确定ButtonReSetButton重置ButtonReturnButton返回13.allocateCourse 窗体窗体allocateCourse 窗体用于安排某班某课程的任课教师。用户可以单击“安排新课程”、“修改任课教师”和“删除课程安排”按钮执行相应的功能。当 DataGridView1 控件中不存在任何课程安排记录时,“修改任课教师”和“删除课程安排”按钮不可用。allocateCourse 窗体设计如图 19-13、如表 19-19 所示。图 19-13allocateCourse窗体设计表 19-19allocateCourse窗体的控件属性表控件类型控件类型NameText备注备注FormallocateCourse安排任课教师StartPosition 属性:CenterScreenControlbox 属性:falseLabelLabel1Label1DataGridViewDataGridView1GroupBoxGroupBox1任课教师操作ButtonAddButton安排新课程ButtonUpdateButton修改任课教师ButtonDeleteButton删除课程安排ButtonReturnButton返回14.allocateCourse1 窗体窗体allocateCourse1 窗体被 allocateCourse 窗体所调用,以实现某班某课程的任课教师编辑。若是安排新课程,需选择班号和课程号,然后指定对应的教师编号;若是修改任课教师,班号和课程号不能修改,只需选择相应的任课教师编号。用户单击“确定”按钮时,本次安排或修改任课教师记录有效,即保存所作的修改;单击“取消”按钮时,本次安排或修改任课教师记录无效,即不保存所作的修改。allocateCourse1 窗体设计如图 19-14、如表 19-20 所示。图 19-14allocateCourse1窗体设计表 19-20allocateCourse1窗体的控件属性表控件类型控件类型NameText备注备注FormallocateCourse1安排任课教师StartPosition 属性:CenterScreenControlbox 属性:falseGroupBoxGroupBox1安排课程记录LabelLabel1班号LabelLabel2课程号LabelLabel3教师编号ComboBox1-3ComboBox1-3DropDownStyle 属性设置为 DropDownListButtonOkButton确定ButtonCancelButton取消15.queryallocate 窗体窗体queryallocate 窗体实现课程安排记录的通用查询。用户可以通过在设置查询条件分组框中输入相应的条件后,单击“确定”按钮,在上方的 DataGridView1 控件中仅显示满足指定条件的课程安排记录。queryallocate 窗体设计如图 19-15、如表 19-21 所示。图 19-15queryallocate窗体设计表 19-21queryallocate窗体的控件属性表控件类型控件类型NameText备注备注Formqueryallocate查询课程安排数据StartPosition 属性:CenterScreenControlbox 属性:falseLabelLabel1Label1DataGridViewDataGridView1GroupBoxGroupBox1设置查询条件LabelLabel2班号LabelLabel3课程号LabelLabel4教师编号ComboBox1-3ComboBox1-3ButtonOkButton确定ButtonReSetButton重置ButtonReturnButton返回16.editscore 窗体窗体editscore 窗体用于产生和编辑学生成绩数据。DataGridView1 控件中仅显示满足指定条件的学生成绩记录,其中学号和课程号是不可修改的,只可以编辑分数。如果指定课程号的学生成绩记录不存在,可以单击“产生空白成绩表”按钮,先产生一个没有分数的成绩表,然后再输入学生分数。如果指定课程号的学生成绩记录已存在,可以单击“清除课程成绩表”按钮,删除该课程号的学生成绩记录。输入或修改学生的分数,单击“保存成绩”按钮将本次编辑保存到 score 表中。editscore 窗体设计如图 19-16、如表 19-22 所示。注意:注意:由于 Oracle 中,由于有 1 个 score 的公有同义词,和 score 表有冲突,所以要删除score 公有同义词。图 19-16editscore窗体设计表 19-22editscore窗体的控件属性表控件类型控件类型NameText备注备注Formeditscore编辑成绩数据StartPosition 属性:CenterScreenControlbox 属性:falseLabelLabel1Label1DataGridViewDataGridView1GroupBoxGroupBox1设置查询条件LabelLabel2课程号ComboBox1ComboBox1DropDownStyle 属性设置为 DropDownListButtonSpcButton产生空白成绩表ButtonClearScoreButton清除课程成绩表ButtonSaveButton保存成绩ButtonReturnButton返回17.queryscore 窗体窗体queryscore 窗体用于实现学生成绩数据的查询。用户可以通过在设置查询条件分组框中输入相应的条件后,单击“确定”按钮,在上方的 DataGridView1 控件中仅显示满足指定条件的学生成绩记录。queryscore 窗体设计如图 19-17、如表 19-23 所示。图 19-17queryscore窗体设计表 19-23queryscore窗体的控件属性表控件类型控件类型NameText备注备注Formqueryscore成绩数据查询StartPosition 属性:CenterScreenControlbox 属性:falseLabelLabel1Label1DataGridViewDataGridView1GroupBoxGroupBox1设置查询条件LabelLabel2学号LabelLabel3姓名LabelLabel4课程号LabelLabel5分数范围:LabelLabel6为LabelLabel7之间TextBoxTextBox1-3ComboBoxComboBox1-2ButtonOkButton确定ButtonReSetButton重置ButtonReturnButton返回18.setuser 窗体窗体setuser 窗体用于添加、删除和修改使用本系统的用户。DataGridView1 控件中显示所有的用户。通过“添加”按钮增加新用户,“修改”按钮修改当前选择的用户,“删除”按钮删除当前选择的用户。但不得删除“admin”的系统管理员用户。setuser 窗体设计如图 19-18、如表 19-24 所示。图 19-18setuser窗体设计表 19-24setuser窗体的控件属性表控件类型控件类型NameText备注备注Formsetuser设置系统用户StartPosition 属性:CenterScreenControlbox 属性:falseDataGridViewDataGridView1ButtonAddButton添加ButtonUpdateButton修改ButtonDeleteButton删除ButtonReturnButton返回19.setuser1 窗体窗体setuser1 窗体被 setuser 窗体调用以编辑用户记录。在操作中,用户单击“确定”按钮时,记录编辑有效;单击“取消”按钮时,记录编辑无效。Setuser1 窗体设计如图 19-19、如表 19-25所示。图 19-19 setuser1 窗体设计表 19-25setuser1 窗体的控件属性表控件类型控件类型NameText备注备注Formsetuser1编辑用户记录StartPosition 属性:CenterScreenControlbox 属性:falseGroupBoxGroupBox1用户记录LabelLabel1用户名LabelLabel2密码LabelLabel3级别TextBoxTextBox1-2ComboBoxComboBox1ComboBox1ButtonOkButton确定ButtonCancelButton取消7.7.系统运行系统运行启动“学生成绩管理系统”,出现登录界面如图 19-20 所示。用户输入正确的用户名和密码后,单击“登录”按钮,进入系统菜单操作界面,如图 19-21 所示。图 19-20 登录界面图 19-21 系统菜单操作界面单击“学生数据管理”“学生数据编辑”菜单项,其操作界面如图 19-22 所示,可以增加、修改和删除学生记录。图 19-22 学生数据编辑界面单击“教师数据管理”“教师数据编辑”菜单项,其操作界面如图 19-23 所示,可以增加、修改和删除教师记录。图 19-23 教师数据编辑界面单击“课程数据管理”“课程数据编辑”菜单项,其操作界面如图 19-24 所示,可以增加、修改和删除课程记录。图 19-24 课程数据编辑界面单击“课程安排管理”“安排任课教师”菜单项,其操作界面如图 19-25 所示,可以增加、修改和删除任课教师安排记录。图 19-25 安排任课教师界面单击“成绩数据管理”“成绩数据编辑”菜单项,其操作界面如图 19-26 所示,这里不能直接增加成绩记录,只能通过 DataGridView1 控件中的分数列来输入学生某课程的成绩。图 19-26 成绩数据编辑界面单击“系统维护”“设置系统用户”菜单项,其操作界面如图 19-27 所示,可以增加、修改和删除用户记录。图 19-27 设置系统用户界面【上机作业】【上机作业】1.oracle 数据库:增加班级表 class。列名列名数据类型数据类型非空非空说明说明班号char(10)主键主键班级名char(20)设置 student 表的班号为外键,参照 class 表的班号。设置 allocate 表的班号为外键,参照 class 表的班号。2.在 main 的菜单栏增加“班级数据管理”,并增加相应的代码。