高校成绩管理系统数据库设计与实现实验报告

合集下载

数据库课程设计报告-成绩管理系统

数据库课程设计报告-成绩管理系统

数据库原理与应用课程设计报告课程名称数据库原理与应用实验名称学生成绩管理系统学生学院自动化学院 _____ 专业班级______ xxxx________学号_xxxx学生姓名_xxxx____ _ 指导教师______ 黄永慧 __ _____2012 年 5 月 20日一、课程设计的内容:当前,应用数据库技术编写信息管理软件,已是很成熟的技术,关键是如何实现设计要求,如何设计出友好的人机界面,使程序运行稳定、使用方便、操作简便,建立学生成绩管理系统,采用计算机对学生成绩进行管理,进一步提高办学效益和现代化水平。

学生成绩管理系统的设计与实现主要包括如下内容:1)原始数据录入(包括学生信息、课程信息和学生成绩的录入);2)课程查询、学生信息和成绩查询查询;3)报表输出(包括学生成绩汇总报表、需重修的学生统计表、班级单科成绩表等);4)数据维护(包括数据备份、数据恢复等),该部分内容选做。

5)随着网络技术的发展,可考虑提供网络在线查询功能。

二、课程设计的要求与数据对于课程设计要求按照如下步骤进行:1)选题与搜集资料:根据分组,选择设计题目,在小组内进行分工,进行应用系统调查,搜集相关资料。

2)分析与设计:根据搜集的资料,进行功能与数据分析,并进行数据库、系统功能等设计。

撰写数据字典、使用E-R图为该数据库设计概念模型、将E-R数据模型转换成关系模型、对于设计好关系模式集,利用SQL语句定义各个关系模式,定义各关系模式之间的联系,以及参照完整性的约束。

3)程序设计:运用掌握的高级语言(如VB、VC、ASP、JSP等),结合选择的数据库管理系统(要求选择SQL SERVER 2000,或SQL SERVER 2005),编写程序,实现所设计的模块功能。

4)调试与测试:装入初始数据,自行调试程序,成员交叉测试程序,并记录测试情况。

装入一定量的测试数据,调试系统,并完成各项操作要求。

三、课程设计应完成的工作:学生成绩管理系统至少需要完成以下功能:1、基本信息的管理系统,基本功能如下:(1)能够完成新、老生信息的输入、修改、删除等工作,学生的基本信息,包括学号、姓名、性别、籍贯等,具体可根据需求自行设计;(2)能够完成课程信息的输入、修改、删除等工作,课程的基本信息,包括课程编号、课程名称、学时、学分、先修课等,具体可根据需求自行设计;(3)可以按照特定的信息进行查找,并按照特定的要求进行排序;2、学生成绩的管理,基本功能如下:(1)学生成绩的输入、修改、删除等基本操作;(2)成绩的查询功能,可以按学号、姓名等进行成绩查询;(3)成绩的综合统计功能,包括学生成绩按照不同条件进行排名,管理人员可以选择不同的排序条件。

学生成绩管理系统实验报告

学生成绩管理系统实验报告

数据库系统原理实验报告实验名称学生成绩管理系统院系计算机与信息工程学院班级2013级计算机科学与技术二班姓名郅伟远学号1308114088实验课程名称数据库系统原理实验项目名称学生成绩管理系统实验项目性质综合性主讲教师孟慧丽开课年级2013 开课专业计算机实验地点过街楼开课日期开课时间学号姓名1308114088 郅伟远一、实验目的:1、熟悉并掌握数据库系统原理这门课所应用的软件SQL Server2008,以及使用该软件的相关要求与具体用法。

2、在掌握SQL Server2008应用的基础上,建立相关学生成绩管理信息的数据库,并在此基础上与Visual 2008建立连接,进行相关的操作。

3、在Visual 2008上进行学生成绩管理信息系统的查询、更改以及成绩录入的相关界面的设计,使流程能够顺利进行。

二、总体设计(设计原理、设计方案及流程等)设计原理:1、以SQL Server2008软件的功能与作用为基础。

2、以Visual 2008软件的功能为平台。

设计方案及流程:以Visual 2008为前台开发工具进行操作,并以SQL Server2008软件为后台,使创建成功的一个学生成绩管理系统具有如下基本功能:1、学生信息查询,可根据学号,姓名及专业分别进行学生信息查询。

2、学生信息修改,可在数据库中插入,删除,修改学生记录3、学生成绩录入,可录入每个学生某门课程成绩。

在此基础的操作中上能够添加个人的信息,如添加个人的学号,姓名,专业和成绩等,并能够执行查询个人相关信息的操作。

三、实验步骤(包括主要步骤、代码分析等)主要步骤及相应的代码:1、在SQL Server 2008条件下以ID=sa,password=123456的身份进入数据库引擎,并将PXSCJ附加到数据库。

打开Visual 2008,将已有的数据库PXSCJ与VS2008建立连接。

2、在Visual 2008环境下,建立Windows窗体并命名为Form1,并添加相应的程序代码,同时需要添加相关联的子窗体分别双击窗体,双击3个botton按钮,添加相应的程序代码:private void button1_Click(object sender, EventArgs e){//建立学生信息查询窗体SearchForm searchfrm=new SearchForm();searchfrm.ShowDialog();}private void button2_Click(object sender, EventArgs e){//建立学生信息修改窗体ModifyForm modifyfrm= new ModifyForm();modifyfrm.ShowDialog();}private void button3_Click(object sender, EventArgs e){//建立学生信息录入窗体ScoreForm scorefrm = new ScoreForm();scorefrm.ShowDialog();}3、在窗体SearchForm上添加相应的控件,修改相应控件的添加控件,合理设计此界面控件的基础上,双击各个相应的控件,添加相应的程序代码:private string sql = "";private void SearchForm_Load(object sender, EventArgs e){string connStr = @"Data Source=C56;Initial Catalog=G:\数据库系统\PXSCJ\PXSCJ.MDF;User ID=sa; Password=123456";string _sql = "select XH as'学号',XM as'姓名',ZY as'专业',XB as'性别',"+ "CSSJ as'出生日期',ZXF as'总学分',BZ as'备注'from XSB";SqlConnection conn = new SqlConnection(connStr);SqlDataAdapter sda = new SqlDataAdapter(_sql, conn);DataSet ds = new DataSet();sda.Fill(ds);StuDGV.DataSource = ds.Tables[0].DefaultView;}private void MakeSqlStr(){sql="";if(stuXH.Text.Trim()!=string.Empty){sql="and XH like'%"+stuXH.Text.Trim()+"%'";}if(stuXM.Text.Trim()!=string.Empty){sql+="and XM like'%"+stuXM.Text.Trim()+"%'";}if(stuZY.Text!="所有专业"){sql += "and ZY='" + stuZY.Text + "'";}}private void button1_Click(object sender, EventArgs e){MakeSqlStr();string connStr = @"Data Source=C56;Initial Catalog=G:\数据库系统\PXSCJ\PXSCJ.MDF;User ID=sa; Password=123456";string _sql="select XH as'学号',XM as'姓名',ZY as'专业',XB as'性别',"+"CSSJ as'出生日期',ZXF as'总学分',BZ as'备注'from XSB where 1=1"+sql;SqlConnection conn=new SqlConnection(connStr);SqlDataAdapter sda=new SqlDataAdapter(_sql,conn);DataSet ds=new DataSet();sda.Fill(ds);StuDGV.DataSource=ds.Tables[0].DefaultView;}4、在窗体ModifyForm上添加相应的控件:在工具箱中合理的将控件摆放在窗体上,双击相应的控件,并添加相应的代码:private void ModifyForm_Load(object sender, EventArgs e){string connStr = @"Data Source=c56; Initial Catalog=G:\数据库系统\PXSCJ\PXSCJ.MDF; Persist Security Info=True; User ID=sa; Password=123456";string _sql="select XH as '学号',XM as '姓名',ZY as '专业',XB as '性别',"+"CSSJ as '出生年月',ZXF as '总学分',BZ as '备注' from XSB";SqlConnection conn=new SqlConnection(connStr);SqlDataAdapter sda=new SqlDataAdapter(_sql,conn);DataSet ds=new DataSet();sda.Fill(ds);StuDGV.DataSource=ds.Tables[0].DefaultView;}private void stuDelete_Click(object sender, EventArgs e){string connStr = @"Data Source=c56; Initial Catalog=G:\数据库系统\PXSCJ\PXSCJ.MDF; Persist Security Info=True; User ID=sa; Password=123456";DialogResult ret=MessageBox.Show("确定要删除记录吗?","删除",MessageBoxButtons.OKCancel, MessageBoxIcon.Question);if (ret==DialogResult.Cancel) return;string _sql="delete from XSB where XH='"+stuXH2.Text+"'";SqlConnection conn=new SqlConnection(connStr);SqlCommand cmd=new SqlCommand(_sql,conn);try{conn.Open();int rows = cmd.ExecuteNonQuery();ModifyForm_Load(null, null);if (rows == 1){MessageBox.Show("删除成功!", "提示", MessageBoxButtons.OK, rmation);}}finally{conn.Close();}}private void stuUpdate_Click(object sender, EventArgs e){string connStr = @"Data Source=c56; Initial Catalog=G:\数据库系统\PXSCJ\PXSCJ.MDF; Persist Security Info=True; User ID=sa; Password=123456";string _sql="select count(*) from XSB where XH='"+stuXH2.Text+"'";SqlConnection conn=new SqlConnection(connStr);SqlCommand cmd=new SqlCommand(_sql,conn);try{conn.Open();int cnt=(int)cmd.ExecuteScalar();if(cnt==1){_sql="update XSB set XM='"+stuXM2.Text+" ',ZY='"+stuZY2.Text+"',ZXF="+int.Parse(stuZXF2.Text)+",BZ='"+stuBZ.Text+"'where XH='"+stuXH2.Text+"'";}else{string sex=male.Checked ?"男":"女";_sql="insert into XSB (XH,XM,ZY,ZXF) values('"+stuXH2.Text+"','"+stuXM2.Text+" ','"+stuZY2.Text+" ',"+int.Parse(stuZXF2.Text)+")";}cmd=new SqlCommand(_sql,conn);cmd.ExecuteNonQuery();ModifyForm_Load(null,null);}finally{conn.Close();}}private void stuCancel_Click(object sender, EventArgs e){this .Close ();}private void StuDGV_RowHeaderMouseClick_1(object sender, DataGridViewCellMouseEventArgs e){DataGridViewRow dgvRow = StuDGV.Rows[e.RowIndex];DataGridViewCellCollection dgvCC = dgvRow.Cells;stuXH2.Text = dgvCC[0].Value.ToString();stuXM2.Text = dgvCC[1].Value.ToString();stuZY2.Text = dgvCC[2].Value.ToString();if (dgvCC[3].Value.ToString() == "男")male.Checked = true;elsefemale.Checked = true;stuCSSJ2.Text = Convert.ToDateTime(dgvCC[4].Value).ToShortTimeString();stuZXF2.Text = dgvCC[5].Value.ToString();stuBZ.Text = dgvCC[6].Value.ToString();}5、在窗体ScoreForm上添加相应的控件:添加1个Lable控件,并将Text改为“学生成绩录入”;拖拽6个Lable控件,将其属性Text分别设置为“姓名,成绩,课程名”;合理的将控件摆放在窗体上,双击相应的控件,并添加相应的代码:private void ScoreForm_Load(object sender, EventArgs e){string connStr = @"Data Source=C56;Initial Catalog=G:\数据库系统\PXSCJ\PXSCJ.MDF;User ID=sa; Password=123456";string _sql = "select distinct ZY from XSB";SqlConnection conn = new SqlConnection(connStr);SqlCommand cmd = new SqlCommand(_sql, conn);try{conn.Open();SqlDataReader dr = cmd.ExecuteReader();//读取专业名while (dr.Read()){stuZY3.Items.Add(dr[0]);}dr.Close();_sql = "select KCM from KCB";cmd = new SqlCommand(_sql, conn);dr = cmd.ExecuteReader();//读取课程名while (dr.Read()){stuKCM3.Items.Add(dr[0]);}dr.Close();}finally{conn.Close();}}private void update_btn_Click(object sender, EventArgs e){string connStr = @"Data Source=C56;Initial Catalog=G:\数据库系统\PXSCJ\PXSCJ.MDF;User ID=sa; Password=123456";string _sql = "select count(*)from CJB where CJB.XH='" + stuXH3.Text + "'and CJB.KCH=(select KCH from KCB where KCM='" + stuKCM3.Text.Trim () +"')";SqlConnection conn = new SqlConnection(connStr);SqlCommand cmd = new SqlCommand(_sql, conn);try{conn.Open();int cnt = (int)cmd.ExecuteScalar();if (cnt == 1){_sql = "update CJB set CJB.CJ='" + stuCJ3.Text + "' where CJB.XH='" + stuXH3.Text + "' and CJB.KCH=(select KCH from KCB where KCM='" + stuKCM3.Text + "')";}else{string _sql2 = "select KCH from KCB where KCM='" + stuKCM3.Text + "'";SqlCommand cmd2 = new SqlCommand(_sql2, conn);_sql = "insert into CJB values('" + stuXH3.Text.Trim() + "'," +cmd2.ExecuteScalar() + "," + int.Parse(stuCJ3.Text.Trim()) + ")";}cmd = new SqlCommand(_sql, conn);cmd.ExecuteNonQuery();_sql = "select XSB.XH as '学号',XSB.XM as '姓名',KCB.KCM as '课程名',CJB.CJ as '成绩',KCB.XF as '学分',KCB.XS as '学时',KCB.KKXQ as '开课学期' from XSB,KCB,CJB where XSB.XH=CJB.XH and KCB.KCH=CJB.KCH and KCB.KCM='" + stuKCM3.Text + "'" + "and XSB.XH='" + stuXH3.Text + "'";SqlDataAdapter sda = new SqlDataAdapter(_sql, conn);DataSet ds = new DataSet();sda.Fill(ds);scoreDGV.DataSource = ds.Tables[0].DefaultView;}finally{conn.Close();}}private void delete_btn_Click(object sender, EventArgs e){string connStr = @"Data Source=C56;Initial Catalog=G:\数据库系统\PXSCJ\PXSCJ.MDF;User ID=sa; Password=123456";DialogResult ret = MessageBox.Show("确定要删除记录吗?", "删除", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);if (ret == DialogResult.Cancel){return;}string_sql = "delete from CJB where XH=' "+ stuXH3.Text.Trim() + "'and KCH=(select KCH from KCB where KCM='" + stuKCM3.Text.Trim()+ "')";SqlConnection conn = new SqlConnection(connStr);SqlCommand cmd = new SqlCommand(_sql, conn);try{conn.Open();int rows = cmd.ExecuteNonQuery();if (rows == 1){MessageBox.Show("删除成功!", "提示", MessageBoxButtons.OK, rmation);}}finally{conn.Close();}}private void cancel_btn_Click(object sender, EventArgs e){this.Close();}private void stuZY3_SelectedIndexChanged(object sender, EventArgs e){string connStr = @"Data Source=C56;Initial Catalog=G:\数据库系统\PXSCJ\PXSCJ.MDF;User ID=sa;Password=123456";string _sql = "select XH from XSB where ZY='" + stuZY3.Text + "'";//清空现有的学号stuXH3.Items.Clear();SqlConnection conn = new SqlConnection(connStr);SqlCommand cmd = new SqlCommand(_sql, conn);try{conn.Open();SqlDataReader dr = cmd.ExecuteReader();//读取相应的学号while (dr.Read()){stuXH3.Items.Add(dr[0]);}dr.Close();_sql = "select XSB.XH as'学号',XSB.XM as'姓名',KCB.KCM as'课程名',CJB.CJ as'成绩'," + "KCB.XF as'学分',KCB.XS as'学时',KCB.KKXQ as'开课学期'from XSB,KCB,CJB where XSB.XH=CJB.XH and KCB.KCH =CJB.KCH and XSB.ZY='" + stuZY3.Text + "'";SqlDataAdapter sda = new SqlDataAdapter(_sql, conn);DataSet ds = new DataSet();sda.Fill(ds);scoreDGV.DataSource = ds.Tables[0].DefaultView;}finally{conn.Close();}}private void stuXH3_SelectedIndexChanged(object sender, EventArgs e){string connStr = @"Data Source=C56;Initial Catalog=G:\数据库系统\PXSCJ\PXSCJ.MDF;User ID=sa;Password=123456";string_sql = "select XSB.XH as'学号',XSB.XM as'姓名',KCB.KCM as'课程名',CJB.CJ as'成绩',KCB.XF as'学分',KCB.XS as'学时',KCB.KKXQ as'开课学期'from XSB,KCB,CJB where XSB.XH=CJB.XH and KCB.KCH=CJB.KCH and XSB.XH='" +stuXH3.Text + "'";if (stuKCM3.Text.Trim() != string.Empty){_sql += "and KCB.KCM='" + stuKCM3.Text + "";}SqlConnection conn = new SqlConnection(connStr);SqlDataAdapter sda = new SqlDataAdapter(_sql, conn);DataSet ds = new DataSet();sda.Fill(ds);scoreDGV.DataSource = ds.Tables[0].DefaultView;}private void stuKCM3_SelectedIndexChanged(object sender, EventArgs e){string connStr = @"Data Source=C56;Initial Catalog=G:\数据库系统\PXSCJ\PXSCJ.MDF;User ID=sa;Password=123456";string_sql = "select XSB.XH as'学号',XSB.XM as'姓名',KCB.KCM as'课程名',CJB.CJ as'成绩'," + "KCB.XF as'学分',KCB.XS as'学时',KCB.KKXQ as'开课学期'from XSB,KCB,CJB where XSB.XH=CJB.XH and KCB.KCH=CJB.KCH and KCB.KCM='" + stuKCM3.Text + "'";if (stuXH3.Text.Trim() != string.Empty){_sql += "and XSB.XH='" + stuXH3.Text + "'";SqlConnection conn = new SqlConnection(connStr);SqlDataAdapter sda = new SqlDataAdapter(_sql, conn);DataSet ds = new DataSet();sda.Fill(ds);scoreDGV.DataSource = ds.Tables[0].DefaultView;}}private void scoreDGV_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e){//获得选中的记录行DataGridViewRow dgvRow = scoreDGV.Rows[e.RowIndex];//获得航单元格集合DataGridViewCellCollection dgvCC = dgvRow.Cells;stuXM3.Text = dgvCC[1].Value.ToString();stuKCM3.SelectedItem = dgvCC[2].Value;stuCJ3.Text = dgvCC[3].Value.ToString();stuZXF3.Text = dgvCC[4].Value.ToString();}四、结果分析与总结实验结果总界面:一、单击“学生信息查询”的学生信息查询结果如下:二、单击“学生信息修改”的学生信息修改结果如下:1、执行学生信息更新(对已有的学生信息进行修改)的结果:三、单击“学生成绩录入”学生成绩录入结果如下:。

数据库课程设计报告(学生成绩管理系统)

数据库课程设计报告(学生成绩管理系统)

课程设计(数据库设计实践)班级姓名学号指导教师年月日课程设计任务书及成绩评定课题名称学生成绩管理系统Ⅰ、题目的目的和要求通过《数据库设计实践》课程的操作与实践,使学生了解关系数据库的相关理论知识和有关工具软件的使用技巧,在一定程度上提高应用程序的综合开发能力和创新意识、创新能力,具体掌握的基本能力有以下几方面:1、学习和巩固《数据库系统原理》的基本知识。

2、关系数据库管理系统的基本使用方法。

3、熟悉SQL语言的主要功能及SQL语句的使用操作。

4、熟悉数据库管理系统的设计过程,培养解决实际问题的能力。

5、小型数据库应用系统的设计方法。

要求独立完成该课题设计。

Ⅱ、设计进度及完成情况Ⅲ、主要参考文献及资料[1]王珊,萨师煊主编.数据库系统概论(第四版).北京:高等教育出版社,2006.5[2][3][4][5]学科部主任___________Ⅳ、成绩评定设计成绩:指导老师:二○一二年一月十一日目录第一章系统概述 (1)第二章系统分析 (2)第三章功能分析 (6)第四章系统实现 (7)第五章调试过程中的问题及系统测试情况 (21)第六章结束语 (26)第一章概述在如今的高校日常管理当中,学生成绩管理系统就是其中非常重要的一环,特别是当前学生规模大,课程门类多,校区分散等实际情况,学生成绩管理系统更具有非常大的实际应用意义。

但是,我们看到,其实我们学校的学生成绩管理系统在很多方面作的不是很完善,功能方面也有欠缺。

随着科技的发展,基本上所有的具有一定数量数据的机构都开始使用计算机数据库来做管理。

几乎所有学校也都已经在使用计算机管理数据的机制,大大减少了学校学生成绩管理的工作量。

该课程设计要求设计一个学生成绩的数据库管理系统,数据库中要求包含学生的基本信息,学科基本信息,以及学生所学课程的考试成绩。

要方便学生进行成绩查询,通过该课程设计,应该达到把数据库理论知识更加的巩固加深,加强动手能力与实践能力,学以致用,与现实生活中的应用充分的结合起来。

高校成绩管理系统数据库设计与实现

高校成绩管理系统数据库设计与实现

高校成绩管理系统数据库设计与实现一.数据库需求分析(1). 基本目的以SQL SERVER数据库管理系统为平台,通过设计数据库概念模型、逻辑模型以及利用标准SQL语言的数据库实现,掌握关系数据库系统的设计与实现方法,增强数据库设计和数据库应用系统开发能力。

建立一套在现有window操作系统下的c/s高校学生成绩管理系统帮助广大教师教务人员提高工作效率.(2).用户需求某校管理学生成绩的工作人员,根据实际工作需要,提出了以下数据和业务处理需求:1、学校设置了各专业,在专业下开设班级,每个班级包含若干学生,学生信息至少需要包含学号、姓名、性别、年龄、生源所在地、已修学分总数等数据项;另外,需要有地区信息,用于统计某一地区的学生数;2、课程信息表至少需包含课程编号、课程名称、任课教师、开课学期、学时、考试或考查、学分等数据项,课程根据班级开设。

3、教师信息至少需要包含教师编号、姓名、性别、年龄、职称、联系电话等数据项;4、学生成绩至少需要学号,学期,课程名称,成绩,任课老师等数据项;5、需要实现以下业务处理和查询功能1.学生成绩按每学年成绩统计2.学生成绩名次排定3.每门课程平均成绩统计4.学生所学课程及学分统计5.对每个学生输入成绩的时候,自动生成学生的已修学分总数6.学生成绩查询7.教师任课查询8.班级课程开设查询补充说明:✧假设学籍管理制度是采用学年制,且暂不考虑选修课情况。

✧同一专业可能有多个班,所以同一门课可能需要多个教师上课,一个教师在一学期可能上多门课程。

✧考试和考查课均采用百分制记分。

(3)学生成绩管理的数据流图二.数据库概念结构设计在学生成绩管理系统中采用了E-R图的方法来进行数据库概念结构设计,本系统设计采用的是自底向上的设计方法,先设计分局部E-R图,再合并成总体E-R图 ,学生成绩管理系统的E-R图(实体的各属性略)如下图所示:(1)E-R图如下图1. 主体E-R图1.学生实体型2.教师实体型3.课程实体型4班级实体型5.专业实体型(2)数据库的结构(3)视图为了方便学生以及教师的操作,使学生成绩管理系统更易于实现,我实现了以下视图1.avgGrade_wq用于平均成绩的查询2.classCourse_wq用于班级开设课程查询3.sCourseGrade_wq用于学生课程成绩查询4.sGE_wq用于学生成绩修改5.studentGrade_wq用于学生成绩的查询6.studentInF_wq 用于学生信息的查询7.teacherCourse_wq用于教师自己开设课程的查询(4)存储过程在本数据库中我实现了俩个存储过程,它们的具体用途如下1.dt_delete_student用于实现学生的删除,当他的已修学分达到所要求的最大学分时,把该学生的信息进行删除2.dt_delete_teacher用于实现教师的删除,当他的年龄达到所要求的最大年龄时,把该教师的信息进行删除(5)触发器在本数据库中我实现了一个触发器 upORin_grade用于实现在成绩表中输入合格的成绩时,在学生表中已修学分栏上加上该课程的学分三.数据库逻辑结构设计数据库逻辑设计的任务是把概念数据库设计阶段产生的概念数据库模式变换为逻辑数据库模式。

学生成绩管理系统数据库设计报告书.

学生成绩管理系统数据库设计报告书.

二.课程设计任务与要求: 1、任务:
学生成绩管理系统问题描述: 1) 2) 3) 4) 全校学生上万名。 每个学生都有学号,姓名等各种信息。 每个学生每学期都会学习多门课程,拥有多门成绩,不同的专业学习的课程也不同,对应的成绩也 不相同。 对学生成绩的管:
1) 实现教师对学生录入新修课程的成绩。 2) 实现对所有学生成绩精细查询和分类统计。 3) 能够按学号,姓名,班级等分类查询学生成绩。 4) 能够对成绩进行精确,比较,范围,无成绩查找。 5) 能够进行学生信息管理。 6)设计一完整的数据库。要求掌握数据库的设计的每个步骤;掌握数据设计各阶段的输入、输出、设 计环境、目标和方法;熟练的使用 SQL 语言实现数据库以及数据库重要对象的建立、应用和维护。
三.课程设计说明书 1 需求分析
(1)功能需求
学生成绩管理系统需要完成功能主要有: 学生管理:主要是对学生进行统一管理,主要操作有查询、新增、修改、删除、导出,查看详 情。 查询学生:可以根据学号、姓名、班级、专业、院系等进行查询,显示所有符合条件的学生。 修改学生:修改选中的学生; 删除学生:删除选中的学生; 导出学生:将学生列表导出到 Excel 表格文档中,供用户下载查看; 查看学生详情:查看选中的学生详情; 新增学生:既录入新的学生
2 概要设计
(1)实体属性图及实体联系(E-R)图
根据 1)所要实现的功能设计,可能建立它们之间的关系,进而实现逻辑结构功能。 图书管理信息系统可以划分的实体有:书籍类别信息实体、读者信息实体、书籍信息实体、借阅记录 信息实体,归还记录信息实体。用 E-R 图一一描述这些实体。
图 2-1 学生类别实体及其属性图
教师管理:主要是对教师进行统一管理,主要操作有查询、新增、修改、删除、导出,查看详 情。 查询教师:可以根据工号、姓名、院系等进行查询,显示所有符合条件的教师。 修改教师:修改选中的教师; 删除教师:删除选中的教师; 导出教师:将教师列表导出到 Excel 表格文档中,供用户下载查看; 查看教师详情:查看选中的教师详情; 新增教师:既录入新的教师 院系管理:主要是对院系进行统一管理,主要操作有查询、新增、修改、删除、查看详情。 专业管理:主要是对专业进行统一管理,主要操作有查询、新增、修改、删除、查看详情。 班级管理:主要是对班级进行统一管理,主要操作有查询、新增、修改、删除、查看详情。 课程管理:主要对课程的统一管理安排,主要操作有查询、新增、修改、删除、查看详情。 学生成绩管理:主要按教师工号、学生学号、学生姓名、班级、精确成绩、比较成绩、成绩范围、 无成绩,成绩集合查找成绩信息。删除摸个学生的成绩,批量修改学生成绩, 批量录入学生成绩。

学生成绩管理信息系统实验报告

学生成绩管理信息系统实验报告

学生成绩管理信息系统实验报告在如今数字化时代,信息系统已经被广泛运用在各行各业,在教育领域中也不例外。

学生成绩管理信息系统是一种管理学生成绩、帮助教师了解学生学习情况、为学生提供个性化学习方案等方面的软件工具。

本次实验的目的是在探究学生成绩管理信息系统的基础上,对该系统进行设计、实现和测试。

以下将从实验思路、设计、实现和测试四个方面来阐述本次实验。

实验思路在进行实验前,首先要确定实验目的和实验思路。

本次实验的重点在于学生选课,并且在选课后能够及时更新学生信息,以及对学生成绩进行统计、查询、打印,为教师提供了解学生学习情况和写作评价的依据,让学校和家长可以及时掌握学生的学习情况,从而有针对性地进行教育和指导。

因此,在确定实验目的和重点后,我们就可以开始进行系统的设计和实现了。

系统设计系统设计是本次实验的核心,也是整个实验过程的重点。

在系统设计阶段,首先需要建立系统数据库,涉及的数据有学生的基本信息、成绩和选课情况。

然后,需要对学生专业、班级和课程进行分类,建立相应的查询和统计模板,方便教师快速定位学生,及时进行反馈和评价。

同时,还需要建立学生和教师的账号登陆系统,保证系统的安全性和可靠性。

最后,需要对系统进行界面设计,使之简洁明了,方便使用。

系统实现在系统设计完成之后,我们需要进行系统的实现。

实现过程中,需要使用到多种编程语言、技术和工具,如HTML、CSS、Python、MySQL等。

其中,Python作为本次实验的主要编程语言,被广泛应用在后端开发和数据交互方面。

在实现过程中,需要将系统设计好的功能逐一实现,并进行模块测试和数据校验,确保系统的正确性和稳定性。

系统测试在系统实现完成之后,需要对系统进行测试,以确保系统的功能完善和容错性能。

系统测试分为两个阶段,第一阶段为单元测试,主要测试系统各个功能模块的正确性和稳定性。

第二阶段为集成测试,主要测试各个功能模块之间的协同性和兼容性。

在测试过程中,需要注意数据的完整性和正确性,并进行数据备份和恢复,以避免数据丢失和系统崩溃。

学生成绩管理系统数据库设计实验报告

学生成绩管理系统数据库设计实验报告

学生成绩管理系统数据库课题: 雇员信息管理系统姓名:学号:同组姓名:专业班级:指导教师:设计时间:2012年6月4号----2012年6月10日一、需求分析阶段1.信息需求对学校而言,学生成绩管理系统是所有工作的首要之选,但是高校学生的成绩管理工作量大、繁杂,人工处理非常困难。

因此,借助于强大计算机的处理能力,能够把人从繁重的成绩管理工作中解脱出来,并且更加准确、安全、清晰的管理环境。

2.功能需求能够进行数据库的数据定义、数据操纵、数据控制等处理功能。

具体功能应包括:系统应该提供课程安排数据的添加、插入、删除、更新、查询;成绩的添加、修改、删除、查询,学生及教职工基本信息查询的功能。

3. 安全性与完整性要求对于学生成绩管理系统数据库来讲,由于其主要数据是学生成绩,只能由本人以及所教老师及教务处知道,因此做好数据安全性是重中之重。

另外,要求所有在校学生的信息都要录入其中,并且要设计好个别情况。

二、概念结构设计阶段概念结构设计阶段是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。

设计成绩管理数据库包括学生、成绩、课程、教师四个关系。

E-R图如下三、详细设计阶段详细结构是独立于任何一种数据模型的信息结构。

详细结构的任务是把概念结构设计阶段设计好的基本E-R图转化为宜选用的DBMS所支持的数据模型相符合的逻辑结构,并对其进行优化。

E-R图向关系模型转化要解决的问题是如何将实体型和实体间的联系转化为关系模式,如何确定这些关系模式的属性和码。

设计学生成绩管理数据库,包括课程、学生、教师、成绩四个关系, 其关系模式中对每个实体定义的属性如下:课程信息表Class:(课程号,课程名,教师号,学分,学时)学生信息表Student1:(学号,姓名,性别,年龄,专业,系别)成绩表Score:(学号号,课程名,成绩)教师表Teacher1:(教师号,教师名,教师性别,教师系别)2、学生信息表(student1)四、数据库实现数据库实施是指建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。

数据库综合实验报告(学生成绩管理系统)

数据库综合实验报告(学生成绩管理系统)

数据库综合实验报告班级:计科*** 班学号: ****姓名: ***2011年12月数据库应用系统的初步开发一、实验类别:综合型实验 二、实验目的1.掌握数据库设计的基本技术,熟悉数据库设计的每个步骤中的任务和实施方案,并加深对数据库系统系统概念和特点的理解。

2.初步掌握基于C/S 的数据库应用系统分析、设计和实现方法。

3.进一步提高学生的知识综合运用能力。

三、实验内容在SQL Server2000数据库管理系统上,利用 Microsoft Visual C++ 6.0开发工具开发一个学生成绩管理系统的数据库应用系统。

四、实验过程(一.)系统需求说明1 系统功能要求设计:此系统实现如下系统功能:(1)使得学生的成绩管理工作更加清晰、条理化、自动化。

(2)通过用户名和密码登录系统,查询课程基本资料,学生所选课程成绩,修改用户密码等功能。

容易地完成学生信息的查询操作。

(3) 设计人机友好界面,功能安排合理,操作使用方便,并且进一步考虑系统在安全性,完整性,并发控制,备份和恢复等方面的功能要求。

2 系统模块设计成绩管理系统大体可以分成二大模块如, 一是学生的基本信息模块,里面应该包含学生的各方面的基本信息;再者便是课程管理模块, 在该模块中应该包含有对学生成绩信息的查询和处理,如平均成绩、最好成绩、最差成绩以及不及格学生的统计等功能模块;再其次还有教师、课程等相关信息的模块;可以得到系统流程图:登陆失败退出系统用户 验证登陆成功3 数据字典数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名称、数据类型、长度、取值能否为空。

利用SQL Server 2000建立“学生选课”数据库,其基本表清单及表结构描述如下:数据库中用到的表:数据库表名关系模式名称备注Student 学生学生学籍信息表Course 课程课程基本信息表Score 成绩选课成绩信息表Student基本情况数据表,结构如下:字段名字段类型Not Null 说明Student _sno Char Primary key 学号Student _sn char Not Null 学生姓名Student _sex char ‘男’或‘女’性别Student _dept char 系别Student_age char 年龄Student_address char 地址course数据表,结构如下:字段名字段类型约束控制说明course_cno char 主键(primary key)课程号char not null 课程名称course_cnamecourse_hour int not null 课时course_score numeric(2,1) not null 学分score情况数据表,结构如下:字段名字段类型约束控制说明score_id int not null 成绩记录号course_cno char 外部键课程号student_sno char 外部键学号score int 成绩(二)数据库结构设计1.概念结构设计由需求分析的结果可知,本系统设计的实体包括:(1)学生基本信息:学号,姓名,性别,地址,年龄,专业。

学生成绩管理系统实训报告

学生成绩管理系统实训报告

枣庄学院数学与统计学院实训报告实训科目:Visual FoxPro课程设计实训课题:学生成绩管理系统的设计与实现班级____________学号____________姓名____________成绩____________指导教师____________20 __ 年 __ 月 __ 日一、设计题目学生成绩管理系统二、开发软件Visual FoxPro 6.0三、课题要求1.掌握课堂讲授的基本数据库知识和VFP的基本技巧:(1)数据库管理系统和VFP的界面组成与操作(2)表的基本操作(表的建立与修改、表达式、维护命令)(3)表的查询与统计(排序与索引,SELECT—SQL查询,数据库于视图)(4)程序设计初步(程序文件,程序的控制,多模块程序)(5) 表单设计;(6)菜单设计;(7)实例:学生成绩管理系统的开发.2.要求能够独立设计。

完成一个简单的学生成绩管理系统,此系统必须有如下基本功能:(1)数据的查询;(2)记录的增加,删除,修改等功能;(3)系统界面良好;(4) 操作方便,运行稳定。

四、系统开发目标:本系统是将现代化的计算机技术和传统的教学、教务工作相结合,按照学院的工作流程设计完成的。

为了使系统在学院的管理中发挥更大的作用,实现工作过程的计算机化,提高工作效率和工作质量,现提出如下的系统开发目标:1.系统应具有实用性、可靠性和适用性,同时注意到先进性.2.对数据库进行动态管理,防止混乱。

3.能够按照用户选择的不同的条件进行简单查询和复合查询。

4.能够对查询结果进行分类汇总,实现报表打印。

5.方便用户的操作,尽量减少用户的操作。

五、设计时间第16周六、系统设计1.总体设计:学生成绩管理系统包含数据编辑、数据查询、数据统计、打印输出、退出系统五个模块。

如图:2.数据库设计“学生成绩管理系统”中含有三个表,下面是三个表的结构.表1 学生表的结构表2 成绩表的结构表3 课程表的结构3.界面设计(1)设计系统说明表单表单功能:系统说明表单,是关于系统功能或系统使用的说明窗口,设计者通过它可以向用户说明系统相关信息。

数据库大型实验-实验报告

数据库大型实验-实验报告

高校成绩管理系统数据库设计与实现专业班级:机自1001班学号: ************学生姓名:***1、需求分析1.1系统开发意义随着学校规模的不断扩大,专业,班级,学生的数量急剧增加,有关学生选课的各种信息量也成倍增长,而目前许多高校的学生选课管理荏苒停留在复杂的人工操作上,重复工作较多,工作量大,效率地,因此,迫切需要开发基于互联网的学生信息管系统来提高管理工作的效率。

基于这种学生信息管理系统在学生选课的规范管理,科学统计和快速查询方面具有较大的实用意义。

它提高了信息的开发性,达到地改善了学生,教师对其最新信息查询的准确性。

学生成绩管理系统是一个教育单位不可或缺的部分,它的内容对于学校的决策者和管理者来说都是至关重要的,所以学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段,对学生来说可以轻松地查阅自己在校的成绩已经信息等。

但是一直以来人们都是靠传统人工的方式管理学生成绩,这种管理方式存在着许多缺点,效率低,保密性差,另外时间一长,将产生大量的文件和数据,这对于查找,更新和维护都带来了不是困难。

因此,开发这样的一套成绩管理系统成为很必要的事情。

学生成绩管理系统提供了强大学生成绩管理功能,方便系统管理员对学生成绩等信息的添加,修改,删除,查询等操作,同时也方便学生对自己各科成绩的查询学习的必要性。

1.2 功能需求学生成绩管理系统主要提供学生成绩的查询、维护,方便管理的网上的信息查阅平台,学生可以通过该系统查阅与自己相关信息。

教师可以通过成绩管理系统查阅学生信息,教师信息、以及自己所执教课程学生成绩的录入。

系统管理员可以实现以上的所以功能,还有对学生信息的添加,删除,修改;教师信息的添加,删除,修改;课程信息的添加,删除,修改。

具体功能如下:a,管理员模块主要功能是对每学期课课程信息的添加,修改,删除;教师信息的添加,删除,修改;学生信息的添加,修改,删除;还可以对全体学生信息,教师信息的查询,学生成绩的查询以及自己登陆密码的修改等。

学生成绩管理系统实验报告

学生成绩管理系统实验报告

云南财经大学本科实践报告课程管理信息系统班级信计14-1学生姓名任课教师日期一、需求分析学生信息的管理,包括了队在校学生的基本信息,开设的课程信息,考试完成后的成绩信息的录入,查询,修改和删除等各项工作。

它是学校管理工作中的一项重要的内容。

随着信息技术的发展,越来越多的高校开始使用自己开发的学生信息管理系统,以便对本校的学生信息进行管理,并在自行开发的系统中,添加一些符合自己学校特色的功能。

如前面所诉,为了让同学们更快地将所学知识运用到实践。

本系统利用VB+Access,开发了一个简单的学生成绩管理系统。

二、数据库设计下面的界面为数据库所需设计的图:三、总体设计总体设计为;1.用户管理:可以进行添加用户,修改用户密码和退出系统。

2.学生信息管理:可以继续学生信息的查询、修改、添加和删除。

3.学生成绩管理:可以继续学生成绩的查询、修改、添加和删除。

学生成绩管理系统功能模块如图:四、详细设计1.界面设计如图;进入的主界面如图:代码设计:登录窗体代码:Private Sub Command1_Click()Dim SQL As StringDim RS_LOGIN As New ADODB.RecordsetIf Trim(Text1.Text) = "" Or Trim(Text2.Text) = "" ThenMsgBox "输入的用户或者密码不能为空,请重新输入!", vbOKOnly + vbExclamationText1.SetFocusElseSQL = "SELECT*FROM USERINFO WHERE USERNAME ='" & Text1.Text & "'"RS_LOGIN.Open SQL, CONN, adOpenKeyset, adLockPessimisticIf RS_LOGIN.EOF = True ThenMsgBox "系统没有该用户,请重新输入!", vbOKOnly + vbExclamationText1.SetFocusElseIf Trim(Text2.Text) = Trim(RS_LOGIN.Fields(1)) ThenUSERNAME = Trim(Text1.Text)Unload MeMDIForm1.ShowElseMsgBox "输入用户密码有误,请重新输入!", vbOKOnly + vbExclamationText2.Text = ""Text2.SetFocusEnd IfEnd IfEnd IfEnd SubPrivate Sub Command2_Click()Unload MeEnd SubPrivate Sub Form_Load()Dim CONNECTIONSTRING As StringCONNECTIONSTRING = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;" & _"DATA SOURCE=.\STUREPORT.MDB"CONN.Open CONNECTIONSTRINGEnd Sub下面是主窗体的代码:Private Sub Menubjxscj_Click()Form9.ShowEnd SubPrivate Sub Menubjxsxx_Click() Form6.ShowEnd SubPrivate Sub Menuczxscj_Click() Form10.ShowEnd SubPrivate Sub Menuczxsxx_Click() Form7.ShowEnd SubPrivate Sub Menuscyh_Click() Form3.ShowEnd SubPrivate Sub Menutcxt_Click() EndEnd SubPrivate Sub Menutjxscj_Click() Form8.ShowEnd SubPrivate Sub Menutjxsxx_Click() Form5.ShowEnd SubPrivate Sub Menutjyh_Click() Form2.ShowEnd SubPrivate Sub Menuxgmm_Click() Form4.ShowEnd SubPrivate Sub Menuzx_Click() CONN.CloseForm1.ShowMDIForm1.HideEnd Sub运行如图:2.用户管理界面:添加用户如图:代码:Private Sub Command1_Click()Dim SQL As String'DIM RS_CHECK AS NEW ADODB.RECORDSETDim RS_NEW As New ADODB.RecordsetIf Trim(Text1.Text) = "" Or Trim(Text2.Text) = "" Or Trim(Text3.Text) = "" Then MsgBox "新的用户名,密码和确认密码不能为空!", vbOKOnly + vbExclamationText2.Text = ""Text3.Text = ""Text1.SetFocusExit SubElseIf Trim(Text2.Text) <> Trim(Text3.Text) ThenMsgBox "密码和确认密码不一致,请重新输入!", vbOKOnly + vbExclamationText2.Text = ""Text3.Text = ""Text2.SetFocusExit SubElseSQL = "SELECT*FROM USERINFO WHERE USERNAME='" & Text1.Text & "'"RS_NEW.Open SQL, CONN, adOpenKeyset, adLockPessimisticWhile (RS_NEW.EOF = False)If Trim(RS_NEW.Fields(0)) = Trim(Text1.Text) ThenMsgBox "该用户已经存在,请重新输入!", vbOKOnly + vbExclamationText1.Text = ""Text2.Text = ""Text3.Text = ""Text1.SetFocusExit SubElseRS_NEW.MoveNextEnd IfWendRS_NEW.AddNewRS_NEW.Fields(0) = Trim(Text1.Text)RS_NEW.Fields(1) = Trim(Text2.Text)RS_NEW.UpdateRS_NEW.CloseMsgBox "新用户已经添加成功,请确认返回!", vbOKOnly + vbExclamationUnload MeEnd IfEnd IfEnd Sub删除用户:运行如图代码如下:Private Sub Command1_Click()Adodc1.Recordset.DeleteAdodc1.Recordset.MovePreviousIf Adodc1.Recordset.BOF Then Adodc1.Recordset.MoveNext End SubPrivate Sub Command2_Click()Form3.HideEnd Sub修改用户密码:运行如图代码如下:Private Sub Command1_Click()Dim SQL As StringDim RS_CHANGE As New ADODB.RecordsetIf Trim(Text1.Text) = "" Or Trim(Text2.Text) = "" Or Trim(Text3.Text) = "" Then MsgBox "旧密码,新密码和确认密码不能为空,请重新输入!", vbOKOnly + vbExclamationText1.Text = ""Text2.Text = ""Text3.Text = ""Text1.SetFocusExit SubElseIf Trim(Text2.Text) <> Trim(Text3.Text) ThenMsgBox "密码和确认密码不一致,请重新输入!", vbOKOnly + vbExclamation Text2.Text = ""Text3.Text = ""Text2.SetFocusExit SubElseSQL = "SELECT*FROM USERINFO WHERE USERNAME='" & USERNAME & "'"RS_CHANGE.Open SQL, CONN, adOpenKeyset, adLockPessimisticIf Trim(RS_CHANGE.Fields(1)) <> Trim(Text1.Text) ThenMsgBox "旧密码不正确,请重新输入!", vbOKOnly + vbExclamationText1.Text = ""Text1.SetFocusExit SubElseRS_CHANGE.Fields(1) = Trim(Text2.Text)RS_CHANGE.UpdateRS_CHANGE.CloseMsgBox "密码修改成功,请牢记您的密码!", vbOKOnly + vbExclamation, ""Unload MeEnd IfEnd IfEnd IfEnd SubPrivate Sub Command2_Click()Unload MeEnd Sub3.学生信息管理界面:学生信息的添加:运行如图代码如下:Private Sub Combo1_Click()Combo2.ClearDim SQL2 As StringDim RS2 As New ADODB.RecordsetSQL2 = "SELECT DISTINCT CLASS FROM STUINFO WHERE SPECIALTY='" & Trim(Combo1.Text) & "'"RS2.Open SQL2, CONN, adOpenKeyset, adLockPessimisticDim RECORD As StringFor I = 0 To Val(RS2.RecordCount) - 1RECORD = Trim(RS2.Fields(0).Value)RS2.MoveNextCombo2.AddItem RECORDNext IRS2.CloseEnd SubPrivate Sub Command1_Click()Combo1.Enabled = TrueCombo2.Enabled = TrueCombo3.Enabled = TrueText1.Enabled = TrueText2.Enabled = TrueText3.Enabled = TrueText1.Text = ""Text2.Text = ""Text3.Text = ""Command3.Enabled = TrueCommand1.Enabled = FalseDim SQL1 As StringDim RS1 As New ADODB.RecordsetSQL1 = "SELECT DISTINCT SPECIALTY FROM STUINFO"RS1.Open SQL1, CONN, adOpenKeyset, adLockPessimisticDim RECORD As StringFor I = 0 To Val(RS1.RecordCount) - 1RECORD = Trim(RS1.Fields(0).Value)RS1.MoveNextCombo1.AddItem RECORDNext IRS1.CloseEnd SubPrivate Sub Command2_Click()Form5.HideEnd SubPrivate Sub Command3_Click()If Combo1.Text = "" Or Combo2.Text = "" Or Combo3.Text = "" Or Text1.Text = "" Or _Text2.Text = "" Or Text3.Text = "" ThenMsgBox "学生各项信息不能为空,请返回重新输入!", vbOKOnly + vbCriticalElseDim SQL As StringDim RS As New ADODB.RecordsetSQL = "SELECT*FROM StuInfo WHERE STUNO='" & Trim(Text1.Text) & _"'AND specialty='" & Trim(Combo1.Text) & "'"RS.Open SQL, CONN, adOpenDynamic, adLockPessimisticIf RS.EOF = False ThenMsgBox "该学生信息已经录入,请输入其他学生信息!", vbOKOnly + vbCriticalText1.Text = ""Text1.SetFocusElseRS.AddNewRS.Fields("SPECIALTY") = Trim(Combo1.Text)RS.Fields("CLASS") = Trim(Combo2.Text)RS.Fields("STUNO") = Trim(Text1.Text)RS.Fields("NAME") = Trim(Text2.Text)RS.Fields("TEL") = Trim(Text3.Text)RS.Fields("SEX") = Trim(Combo3.Text)RS.UpdateRS.CloseMsgBox "学生信息添加成功!", vbOKOnly + vbInformation Command1.Enabled = TrueCommand3.Enabled = FalseCombo1.Enabled = FalseCombo2.Enabled = FalseCombo3.Enabled = FalseText1.Enabled = FalseText2.Enabled = FalseText3.Enabled = FalseEnd IfEnd IfEnd SubPrivate Sub Form_Load()Combo3.AddItem "男"Combo3.AddItem "女"Combo1.AddItem "计算机应用技术"Combo1.AddItem "办公自动化"End Sub学生信息的编辑(包括删除、修改):运行如图代码如下:Private Sub Command1_Click()Adodc1.Recordset.MoveFirstEnd SubPrivate Sub Command2_Click()Adodc1.Recordset.MovePrevious Command2.Enabled = TrueCommand3.Enabled = TrueIf Adodc1.Recordset.BOF ThenAdodc1.Recordset.MoveFirst Command2.Enabled = FalseCommand3.Enabled = TrueEnd IfEnd SubPrivate Sub Command3_Click()Adodc1.Recordset.MoveNext Command2.Enabled = TrueCommand3.Enabled = TrueIf Adodc1.Recordset.EOF ThenAdodc1.Recordset.MoveLast Command3.Enabled = FalseCommand2.Enabled = TrueEnd IfEnd SubPrivate Sub Command4_Click()Adodc1.Recordset.MoveLastEnd SubPrivate Sub Command5_Click()If Command5.Caption = "修改记录" Then Command5.Caption = "保存记录" Command1.Enabled = FalseCommand2.Enabled = FalseCommand3.Enabled = FalseCommand4.Enabled = FalseText1.Enabled = TrueText2.Enabled = TrueText3.Enabled = TrueText5.Enabled = TrueText4.Enabled = TrueText6.Enabled = TrueText1.SetFocusElseCommand1.Enabled = TrueCommand2.Enabled = TrueCommand3.Enabled = TrueCommand4.Enabled = TrueText1.Enabled = FalseText2.Enabled = FalseText3.Enabled = FalseText5.Enabled = FalseText4.Enabled = FalseText6.Enabled = FalseAdodc1.Recordset.UpdateCommand5.Caption = "修改记录"End IfEnd SubPrivate Sub Command6_Click()Adodc1.Recordset.DeleteAdodc1.Recordset.MovePreviousIf Adodc1.Recordset.BOF Then Adodc1.Recordset.MoveNext End SubPrivate Sub Command7_Click()Form7.ShowEnd SubPrivate Sub Command8_Click()Unload MeEnd Sub学生信息的查询:运行如图代码如下:Private Sub Command1_Click()If Combo1.Text = "no" ThenAdodc1.RecordSource = "select * from stuinfo where stuNo='" & Trim(Text1.Text) & "'"Adodc1.RefreshExit SubElseIf Combo1.Text = "name" ThenAdodc1.RecordSource = "select * from stuinfo where name='" & Trim(Text1.Text) & "'"Adodc1.RefreshExit SubElseIf Combo1.Text = "sex" ThenAdodc1.RecordSource = "select * from stuinfo where sex= '" & Trim(Text1.Text) & "'"Adodc1.RefreshExit SubElseIf Combo1.Text = "tel" ThenAdodc1.RecordSource = "select * from stuinfo where tel like '%" & Trim(Text1.Text) & "%'"Adodc1.RefreshExit SubElseIf Combo1.Text = "specialty" ThenAdodc1.RecordSource = "select * from stuinfo where specialty like '%" & Trim(Text1.Text) & "%'"Adodc1.RefreshExit SubElseIf Combo1.Text = "class" ThenAdodc1.RecordSource = "select * from stuinfo where class like '%" & Trim(Text1.Text) & "%'"Adodc1.RefreshExit SubEnd IfEnd SubPrivate Sub Command2_Click()Unload MeEnd SubPrivate Sub Form_Load()Combo1.AddItem "No"Combo1.AddItem "Name"Combo1.AddItem "Sex"Combo1.AddItem "Tel"Combo1.AddItem "Specialty"Combo1.AddItem "Class"End Sub4.学生成绩的管理界面学生成绩的添加:运行如图代码如下:Private Sub Command1_Click()Combo1.Enabled = TrueCombo2.Enabled = TrueCombo3.Enabled = TrueText1.Enabled = TrueText2.Enabled = TrueText3.Enabled = TrueText1.Text = ""Text2.Text = ""Text3.Text = ""Command3.Enabled = TrueCommand1.Enabled = FalseDim SQL1 As StringDim RS1 As New ADODB.RecordsetSQL1 = "SELECT DISTINCT SPECIALTY FROM STUINFO"RS1.Open SQL1, CONN, adOpenKeyset, adLockPessimisticDim RECORD As StringFor I = 0 To Val(RS1.RecordCount) - 1RECORD = Trim(RS1.Fields(0).Value)RS1.MoveNextCombo1.AddItem RECORDNext IRS1.CloseEnd SubPrivate Sub Command2_Click()Unload MeEnd SubPrivate Sub Command3_Click()If Combo1.Text = "" Or Combo2.Text = "" Or Combo3.Text = "" Or Text1.Text = "" Or _Text2.Text = "" Or Text3.Text = "" ThenMsgBox "学生各项情况不能为空,请返回重新输入!", vbOKOnly + vbCriticalCombo1.SetFocusElseIf IsNumeric(Trim(Text2.Text)) = False ThenMsgBox "课程成绩必须为数字!", vbOKOnly + vbCriticalText2.Text = ""Text2.SetFocusElseDim SQL As StringDim RS As New ADODB.RecordsetSQL = "SELECT*FROM SUBINFO WHERE STUNO='" & Trim(Combo3.Text) & _"'AND SUBJECT='" & Trim(Text1.Text) & "'"RS.Open SQL, CONN, adOpenDynamic, adLockPessimisticIf RS.EOF = False ThenMsgBox "该学生的该课程成绩已经录入,请输入其他科目成绩!", vbOKOnly + vbCriticalText1.Text = ""Text1.SetFocusElseRS.AddNewRS.Fields("SPECIALTY") = Trim(Combo1.Text)RS.Fields("CLASS") = Trim(Combo2.Text)RS.Fields("STUNO") = Trim(Combo3.Text)RS.Fields("NAME") = Trim(Text3.Text)RS.Fields("SUBJECT") = Trim(Text1.Text)RS.Fields("SCORE") = Trim(Text2.Text)RS.UpdateRS.CloseMsgBox "学生成绩添加成功!", vbOKOnly + vbInformationCommand1.Enabled = TrueCommand3.Enabled = FalseCombo1.Enabled = FalseCombo2.Enabled = FalseCombo3.Enabled = FalseText1.Enabled = FalseText2.Enabled = FalseText3.Enabled = FalseEnd IfEnd IfEnd SubPrivate Sub Form_Load()Combo1.Enabled = FalseCombo2.Enabled = FalseCombo3.Enabled = FalseText1.Enabled = FalseText2.Enabled = FalseText3.Enabled = FalseCommand3.Enabled = FalseEnd Sub学生成绩的编辑(包括修改、删除):运行如图代码如下:Private Sub Command1_Click()Adodc1.Recordset.MoveFirstEnd SubPrivate Sub Command10_Click()Unload MeEnd SubPrivate Sub Command2_Click()Adodc1.Recordset.MovePrevious Command2.Enabled = True Command3.Enabled = TrueIf Adodc1.Recordset.BOF Then Adodc1.Recordset.MoveFirst Command2.Enabled = False Command3.Enabled = TrueEnd IfEnd SubPrivate Sub Command3_Click() Adodc1.Recordset.MoveNext Command2.Enabled = True Command3.Enabled = TrueIf Adodc1.Recordset.EOF Then Adodc1.Recordset.MoveLast Command3.Enabled = False Command2.Enabled = TrueEnd IfEnd SubPrivate Sub Command4_Click() Adodc1.Recordset.MoveLast End SubPrivate Sub Command5_Click() Form7.ShowEnd SubPrivate Sub Command6_Click() mcclean = FalseCommand1.Enabled = False Command2.Enabled = False Command3.Enabled = False Command4.Enabled = False Command5.Enabled = False Command6.Enabled = False Command7.Enabled = True Text1.Enabled = TrueText2.Enabled = TrueText3.Enabled = TrueText5.Enabled = TrueText4.Enabled = TrueText6.Enabled = TrueEnd SubPrivate Sub Command7_Click()Adodc1.Recordset.UpdateCommand1.Enabled = TrueCommand2.Enabled = TrueCommand3.Enabled = TrueCommand4.Enabled = TrueCommand5.Enabled = TrueCommand6.Enabled = TrueCommand7.Enabled = FalseText1.Enabled = FalseText2.Enabled = FalseText3.Enabled = FalseText5.Enabled = FalseText4.Enabled = FalseText6.Enabled = FalseEnd SubPrivate Sub Command8_Click()Adodc1.Recordset.DeleteAdodc1.Recordset.MovePreviousIf Adodc1.Recordset.BOF Then Adodc1.Recordset.MoveNext End SubPrivate Sub Command9_Click()Form10.ShowEnd SubPrivate Sub Form_Load()Text1.Enabled = flaseText2.Enabled = flaseText3.Enabled = flaseText5.Enabled = flaseText4.Enabled = flaseText6.Enabled = flaseEnd Sub学生成绩的查询:运行如图代码如下:Private Sub Command1_Click()If Combo1.Text = "no" ThenAdodc1.RecordSource = "select * from stuinfo where stuNo='" &Trim(Text1.Text) & "'"Adodc1.RefreshExit SubElseIf Combo1.Text = "name" ThenAdodc1.RecordSource = "select * from stuinfo where name='" & Trim(Text1.Text) & "'"Adodc1.RefreshExit SubElseIf Combo1.Text = "sex" ThenAdodc1.RecordSource = "select * from stuinfo where sex= '" & Trim(Text1.Text) & "'"Adodc1.RefreshExit SubElseIf Combo1.Text = "tel" ThenAdodc1.RecordSource = "select * from stuinfo where tel like '%" & Trim(Text1.Text) & "%'"Adodc1.RefreshExit SubElseIf Combo1.Text = "specialty" ThenAdodc1.RecordSource = "select * from stuinfo where specialty like '%" & Trim(Text1.Text) & "%'"Adodc1.RefreshExit SubElseIf Combo1.Text = "class" ThenAdodc1.RecordSource = "select * from stuinfo where class like '%" & Trim(Text1.Text) & "%'"Adodc1.RefreshExit SubEnd IfEnd SubPrivate Sub Command2_Click()Unload MeEnd SubPrivate Sub Form_Load()Combo1.AddItem "No"Combo1.AddItem "Name"Combo1.AddItem "Sex"Combo1.AddItem "Tel"Combo1.AddItem "Specialty"Combo1.AddItem "Class"End Sub5.最后还需弄一个Modulel模块。

高校成绩管理系统数据库设计与实现实验报告

高校成绩管理系统数据库设计与实现实验报告

高校成绩管理系统数据库设计与实现班级计科1201 学号姓名XXX目录:------------------------------------------1.需求分析1.1数据需求描述1.2 系统功能需求1.3 其他性能需求------------------------------------------2.概念结构设计2.1画出局部E-R图;2.2合并成全局E-R图;------------------------------------------3.逻辑结构设计3.1 关系模式设计3.2 数据类型定义------------------------------------------4.物理结构设计4.1 聚簇设计4.2 索引设计4.3 分区设计------------------------------------------5.数据库实施5.1 基本表建立5.2 数据输入5.3 视图的建立5.4 索引的建立5.5 触发器建立5.6 建存储过程------------------------------------------6.应用系统开发与试运行6.1 开发平台和开发环境介绍。

6.2 前台界面与后台数据库连接说明,代码实现。

6.3 系统各功能设计和运行界面截图。

------------------------------------------7.实验总结7.1 遇到的问题和解决的办法7.2 系统设计的不足7.3 进一步改进思路和体会1、需求分析高校成绩管理系统是一个记录了大学生成绩的系统,它的出现使得查询、更新、插入简单化,高效化,成本也随之大大减少。

使用计算机对成绩信息的管理,具有手工管理所无法比拟的优点:信息存储及时,检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

这些优点能够极大地提高学生成绩管理的效率,也是高校成绩正规化管理的重要途径。

根据实际工作需要,提出了以下数据和业务处理需求:◆学生信息至少需要包含学号、姓名、性别、年龄、生源所在地、已修学分总数等数据项;◆课程信息表至少需包含课程编号、课程名称、任课教师、开课学期、学时、考试或考查、学分等数据项,课程根据班级开设。

高校成绩管理数据库系统的设计与实现

高校成绩管理数据库系统的设计与实现
该高校成绩管理系统数据库可建立以下索引:
教师cxy(教师编号cxy)
课程cxy(课程编号cxy)
学生cxy(学号cxy)
班级cxy(班级编号cxy,专业编号cxy)
专业cxy(专业编号cxy)的升序建立索引。
4.3
磁盘分区设计的一般原则:
(1)减少访问冲突,提高I/O并发性。多个事物并发访问同一磁盘时,会产生磁盘访问冲突而导致效率低下,如果事务访问数据均能分布于不同磁盘上,则I/O可并发执行,从而提高数据库访问速度。
数据项名
数据类型
数据长度
完整性约束
教师编号cxy
char
20
主键,唯一,非空
教师姓名cxy
char
20
教师性别cxy
char
20
男 or 女
教师年龄cxy
int
>0
职称cxy
char
20
联系电话cxy
char
20
上课cxy
数据项名
数据类型
数据长度
完整性约束
教师编号cxy
char
20
主键,唯一,非空
班级编号cxy
该成绩管理系统由于程序较小,所以不进行分区设计。
5.
5.1
基本表教师cxy的建立
createtable教师cxy
(
教师编号cxychar(20)primarykey,
教师姓名cxychar(20)notnull,
教师性别cxychar(20)check(教师性别cxy='男'or教师性别cxy='女')notnull,
char
20
外键
教授cxy
数据项名

学生成绩管理数据库建立-实验报告

学生成绩管理数据库建立-实验报告

课实验报告课程名:数据库系统概论任课教师:专业:学号:姓名:二○至二○年度第学期邮电大学管理学院1.数据库表学生表教师表课程表成绩表2.查询(使用SQL语句)1.SELECT FROM SWHERE (((S.XB)="男"));2.SELECT *FROM SWHERE SNO NOT IN(SELECT SNOFROM SWHERE CLASSNO='B131115');3.SELECT CNAME, XFFROM T, CWHERE NAME="峰" And T.TNO=C.TNO;4.SELECT S.*FROM S INNER JOIN G ON S.SNO=G.SNOWHERE O Like '3' And EXISTS(SELECT * FROM G AS G2 WHERE G.SNO=G2.SNO AND O Like '5' );5.SELECT , S.SNOFROM (S INNER JOIN G ON S.SNO=G.SNO) INNER JOIN C ON O=OWHERE ((O)="7" Or (O="10"))GROUP BY , S.SNO;6.SELECT , S.SNOFROM S INNER JOIN G ON S.SNO=G.SNOWHERE (((O)="8"));7.SELECT S.SNO, O, AMEFROM (S INNER JOIN G ON S.SNO=G.SNO) INNER JOIN C ON O=OWHERE (((S.SNO) Like 'B13111502') AND ((Exists (SELECT * FROM G AS G2 WHERE O=O AND G2.SNO LIKE 'B13111604'))<>False));8. SELECT *FROM CWHERE (((O) Not In (SELECT O FROM G)));9.SELECT S.SNO, Avg(G.GRADE) AS GREAT之平均值, Sum(G.GRADE) AS GREAT之总计FROM S INNER JOIN G ON S.SNO = G.SNOGROUP BY S.SNO;10. SELECT , S.SNO, Count(G.GRADE) AS GRADE之计数FROM S INNER JOIN G ON S.SNO = G.SNOWHERE (((G.GRADE)>90))GROUP BY , S.SNOHAVING (((Count(G.GRADE))>2));11. SELECT S.SNO, , Sum(G.GRADE) AS GREAD之总计FROM S INNER JOIN G ON S.SNO=G.SNOGROUP BY S.SNO, HAVING Sum(G.GRADE)>200;12. SELECT AME, O, Count(G.GRADE) AS GRADE之计数FROM (S INNER JOIN G ON S.SNO=G.SNO) INNER JOIN C ON O=O GROUP BY AME, OHAVING (((Count(G.GRADE))<10));13.SELECT , Count(G.GRADE) AS GRADE之计数FROM S INNER JOIN G ON S.SNO = G.SNOWHERE (((G.GRADE)<60))GROUP BY HAVING (((Count(G.GRADE))=4));14. SELECT C.TNO, , Sum(C.XF) AS XF之总计FROM C INNER JOIN T ON C.TNO=T.TNOGROUP BY C.TNO, ;15. SELECT , T.TNO, Count(O) AS CNO之计数FROM T INNER JOIN C ON T.TNO=C.TNOGROUP BY , T.TNOHAVING (((Count(O))>=3));16. SELECT , T.TNO, Count(O) AS CNO之计数FROM T INNER JOIN C ON T.TNO=C.TNOGROUP BY , T.TNOHAVING (((Count(O))=1));17. SELECT S.CLASSNO, O, Max(G.GRADE) AS GRADE之最大值FROM S INNER JOIN G ON S.SNO = G.SNOGROUP BY S.CLASSNO, O;实验心得通过本次学生成绩管理数据库的建立实验,我深入了解了有关关系数据库设计的基本思想方法。

数据库课程设计报告学生成绩管理系统(1)

数据库课程设计报告学生成绩管理系统(1)

数据库课程设计报告学生成绩管理系统(1)数据库课程设计报告:学生成绩管理系统一、项目简介学生成绩管理系统是一款基于数据库系统开发的教务管理应用软件,旨在协助学校高效地管理学生的课程、成绩等信息。

系统采用B/S架构,支持在线操作,管理员可以在管理后台对数据进行增删改查、统计分析等操作,同时提供了学生、教师角色的登录入口,方便他们查询自己的相关信息。

二、功能模块本系统主要包含以下模块:1. 登录模块:管理员、教师、学生可分别进行登录,每个用户登录后只能访问到自己相关的信息。

2. 学生信息管理模块:包括学生基本信息维护、学生选课管理、学生成绩查询等功能。

3. 课程信息管理模块:包括课程信息维护、课程成绩录入、课程信息查询等功能。

4. 教师信息管理模块:包括教师信息维护、教师授课情况查询等功能。

5. 成绩统计分析模块:提供按班级、学年学期、课程等多维度统计分析成绩的功能。

6. 系统管理模块:包括管理员信息维护、系统日志查看等功能。

三、数据库设计本系统主要采用关系型数据库MySQL进行设计,将相关数据表分为学生信息表、教师信息表、课程信息表、成绩信息表、登录信息表等五个部分。

其中每个表都有主键和多个字段,并建立了适当的索引,以提高访问速度。

四、技术选型与开发环境本系统的后端采用Java语言进行开发,使用了SpringMVC、MyBatis 等框架。

前端则采用了Bootstrap、jQuery、AJAX等技术,使页面呈现出良好的用户交互体验。

此外,使用了Tomcat作为Web服务器,Eclipse作为IDE,Navicat作为数据库管理工具。

五、存在问题及解决方案在系统开发过程中,我们也遇到了一些问题。

比如对于成绩的多维度查询与统计,我们最初的设计中采用了多个SQL语句进行计算,但这样会导致效率低下,而且SQL语句嵌套过多,难以维护。

因此,我们改变了思路,采用了Java代码对数据进行分组、过滤等操作,大大提升了查询效率。

学生成绩管理系统数据库设计报告书

学生成绩管理系统数据库设计报告书
2、设计要求:
1) 实现教师对学生录入新修课程的成绩。 2) 实现对所有学生成绩精细查询和分类统计。 3) 能够按学号,姓名,班级等分类查询学生成绩。 4) 能够对成绩进行精确,比较,范围,无成绩查找。 5) 能够进行学生信息管理。 6)设计一完整的数据库。要求掌握数据库的设计的每个步骤;掌握数据设计各阶段的输入、输出、设 计环境、目标和方法;熟练的使用 SQL 语言实现数据库以及数据库重要对象的建立、应用和维护。
(2)存储结构 确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份
等的存储安排及存储结构,以及确定系统存储参数的配置。 将日志文件和数据库对象(表、索引等)分别放在不同的磁盘可以改进系统的性能。所以系统将日志
文件和数据文件存放在不同磁盘上。
6 数据库建立
(1)创建数据库 create database ssms on (name='ssms_data', filename='d:\2016qiu\ssms.mdf', size=100, maxsize=5000, filegrowth=10 ) log on (name='ssms_log',
on update cascade
--(8) 课程表表建立
CREATE TABLE course( cid varchar(10) PRIMARY KEY,--课程编号 cName varchar(60) unique ,--课程名 cType varchar(10) DEFAULT NULL,--课程属性 cExamtype varchar(10),--考试类别 cOpenyear tinyint, --开课学年 cOpenterm tinyint,--开课学期 cTheoryHours int,--理论学时 cExperimentalHours int,----实验学时
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

高校成绩管理系统数据库设计与实现班级计科1201 学号 2012261001XX 姓名XXX目录:------------------------------------------1.需求分析1.1数据需求描述1.2 系统功能需求1.3 其他性能需求------------------------------------------2.概念结构设计2.1画出局部E-R图;2.2合并成全局E-R图;------------------------------------------3.逻辑结构设计3.1 关系模式设计3.2 数据类型定义------------------------------------------4.物理结构设计4.1 聚簇设计4.2 索引设计4.3 分区设计------------------------------------------5.数据库实施5.1 基本表建立5.2 数据输入5.3 视图的建立5.4 索引的建立5.5 触发器建立5.6 建存储过程------------------------------------------6.应用系统开发与试运行6.1 开发平台和开发环境介绍。

6.2 前台界面与后台数据库连接说明,代码实现。

6.3 系统各功能设计和运行界面截图。

------------------------------------------7.实验总结7.1 遇到的问题和解决的办法7.2 系统设计的不足7.3 进一步改进思路和体会1、需求分析高校成绩管理系统是一个记录了大学生成绩的系统,它的出现使得查询、更新、插入简单化,高效化,成本也随之大大减少。

使用计算机对成绩信息的管理,具有手工管理所无法比拟的优点:信息存储及时,检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

这些优点能够极大地提高学生成绩管理的效率,也是高校成绩正规化管理的重要途径。

根据实际工作需要,提出了以下数据和业务处理需求:◆学生信息至少需要包含学号、姓名、性别、年龄、生源所在地、已修学分总数等数据项;◆课程信息表至少需包含课程编号、课程名称、任课教师、开课学期、学时、考试或考查、学分等数据项,课程根据班级开设。

◆教师信息至少需要包含教师编号、姓名、性别、年龄、职称、联系电话等数据项;◆学生成绩至少需要学号,学期,课程名称,成绩,任课老师等数据项;◆班级信息至少需要班级号,所设置课程编号,任课教师等数据项;◆需要实现以下业务处理和查询功能:学生成绩按每学年成绩统计学生成绩名次排定每门课程平均成绩统计学生所学课程及学分统计学生已修学分总数查询教师任课查询班级课程开设查询◆硬件环境:LENOVO-G470◆软件环境:Windows 7旗舰版Microsoft SQL Server 2008Microsoft Visual Studio 20101.1数据需求描述顶层数据流图详细数据流图1.2 系统功能需求(1)学生成绩按每学年进行成绩统计;(2)学生成绩名次排定;(3)每门课程平均成绩统计;(4)学生所学课程及学分统计;(5)输入每个学生成绩时,自动生成该学生已修总学分;(6)学生成绩查询;(7)教师任课查询;(8)班级课程开设查询;系统功能图1.3 其他性能需求(1)可供多用户同时使用。

(2)用户输入出错时,有错误提示。

(3)安全性高。

(4)存储需求描述。

(5)响应时间2、概念结构设计2.1局部E-R 图:成 绩 管 理 系 统信息维护 系统登入退出 成绩查询学生所学课程学分查询 班级设置课程信息查询 教师任信息查询 调用存储过程2.2合并成全局E-R图:3、逻辑结构设计3.1 关系模式设计教师wmq(教师编号wmq、教师姓名wmq、教师性别wmq、教师年龄wmq、职称wmq、联系电话wmq)上课wmq(教师编号wmq,班级编号wmq)授课wmq(教师编号wmq,课程编号wmq)课程wmq(课程编号wmq、课程名称wmq、教师姓名wmq、开课学期wmq、课程学时wmq、考核方式wmq、学分wmq)学习wmq(学号wmq,课程编号wmq,学期wmq,成绩wmq,教师姓名wmq)学生wmq(学号wmq、姓名wmq、性别wmq、年龄wmq、生源所在地wmq、已修学分总数wmq,班级编号wmq)开设wmq(课程编号wmq,班级编号wmq)班级wmq(班级编号wmq,班级名称wmq,专业编号wmq)专业wmq(专业编号wmq,专业名称wmq)登陆wmq(用户名wmq,密码wmq,权限wmq)3.2 数据类型定义4、物理结构设计4.1 聚簇设计教师wmq(教师编号wmq)课程wmq(课程编号wmq)学生wmq(学号wmq,班级编号wmq)班级wmq(班级编号wmq)这几个聚簇设计是因为这几张表都是实体表,且聚簇中的属性都是主键或是外键,被访问的概率很高,而其他表或者这些表上的其他属性被访问的概率就相对较低。

4.2 索引设计建立索引的一般规则:(1)在主键属性列和外键属性列上通常都可以分别建立索引,不仅有助于唯一性检查和完整性检查,而且可以加快连接查询的速度。

(2)以查询为主的关系可建立尽可能多的索引。

(3)对等值连接,但满足条件的元组较少的查询可以考虑建立索引。

(4)如果查询可以从索引直接得到结果而不必访问关系,则对此种查询可以建立索引。

所以在高线成绩管理数据库中建立索引如下:教师wmq(教师编号wmq)课程wmq(课程编号wmq)学生wmq(学生学号wmq,班级编号wmq)班级wmq(班级编号wmq)学习wmq(学号wmq,课程编号wmq)4.3 分区设计涉及到数据库文件和日志文件的分区问题。

磁盘分区设计的一般原则:(1)减少访问冲突,提高I/O并发性。

多个事物并发访问同一磁盘时,会产生磁盘访问冲突而导致效率低下,如果事务访问数据均能分布于不同磁盘上,则I/O可并发执行,从而提高数据库访问速度。

(2)分散热点数据,均衡I/O负担。

在数据库中数据访问的频率是不均匀的,那些经常被访问的数据成为热点数据,此类数据宜分散存在于不同的磁盘上,以均衡各个磁盘的负荷,充分发挥多磁盘的并行操作的优势。

(3)保证关键数据快速访问,缓解系统瓶颈。

在数据库中有些数据如数据字典等的访问频率很高,为保证对它的访问不直接影响整个系统的效率,可以将其存放在某一固定磁盘上,以保证其快速访问。

该成绩管理系统由于程序较小,所以不进行分区设计。

5、数据库实施数据库的建立:5.1 基本表建立(1)教师wmq表建立:(2)课程wmq表建立:(3)专业wmq表建立:(4)班级wmq表建立:(5)学生wmq表建立:(6)上课wmq表建立:(7)授课wmq表建立:(8)学习wmq表建立:(9)开设wmq表建立:(10)登陆wmq表建立:5.2数据输入(1)专业表数据插入:(2)班级表数据插入:(3)学生表数据插入:(4)教师表插入:(5)课程表数据插入:(6)授课表数据插入:(7)学习表数据插入:(8)开设表数据插入:(9)上课表数据插入:(10)登陆表数据插入:5.3 视图的建立(1)学生成绩统计:(2)每门课程平均成绩统计:(3)学生所学课程及学分统计(4)教师任课查询:(5)班级课程开设查询:(6)生源地平均成绩查询5.4 索引的建立因为每一个表建立,SSMS会自动生成一个聚集索引,所以不需要再手动建立聚集索引。

下面根据4.2来设计索引:(1)教师编号wmq:(2)专业编号wmq:(3)班级编号wmq,专业编号wmq:(4)课程编号wmq:(5)学生学号wmq,班级编号wmq:(6)学生学号wmq,课程编号wmq:5.5 触发器建立(1)学分统计wmq当用户insert新的成绩且该成绩>=60分时,增加相应学分(2)删除教师wmq当删除教师表中的教师编号wmq记录时,需要相应地删除授课表和上课表里的教师编号wmq,所以在教师表上建立触发器(3)更新教师wmq当更新教师表中的教师编号wmq记录时,需要相应地更新授课表和上课表里的教师编号wmq,所以在教师表上建立触发器5.6 建存储过程(1)建立一个对学生表插入信息的存储过程:(2)建立一个输入成绩,自动生成其总学分的存储过程:6、应用系统开发与试运行6.1 开发平台和开发环境介绍。

开发平台:Microsoft Visual Studio 2010开发环境:Visual Studio是微软公司推出的开发环境。

是目前最流行的Windows平台应用程序开发环境。

Visual Studio 2010版本于2010年4月12日上市,其集成开发环境(IDE)的界面被重新设计和组织,变得更加简单明了。

Visual Studio 2010同时带来了NET Framework 4.0、Microsoft Visual Studio 2010 CTP( Community Technology Preview--CTP),并且支持开发面向Windows 7的应用程序。

除了Microsoft SQL Server,它还支持 IBM DB2和Oracle数据库。

与此同时,微软还引入了一门新的语言C#,C#是一门建立在C++和Java基础上的编写.NET框架的现代语言。

6.2 前台界面与后台数据库连接说明,代码实现:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using System.Data.SqlClient;using System.Windows.Forms;namespace D01wangminqian{class sqlConnect{public SqlConnection coon = null;public sqlConnect(){if (coon == null){coon = new SqlConnection("Data source =(local);Integrated Security=SSPI;" + "Initial Catalog =D01wangminqian");if (coon.State == ConnectionState.Closed) coon.Open();}}public void closeConnect(){if (coon.State == ConnectionState.Open) coon.Close();}public DataSet Getds(string sql){if (coon.State == ConnectionState.Closed) coon.Open();DataSet ds = new DataSet();SqlDataAdapter da = new SqlDataAdapter(sql, coon);da.Fill(ds);coon.Close();return ds;}public int OperateData(string sql){if (coon.State == ConnectionState.Closed) coon.Open();SqlCommand sqlcom = new SqlCommand();mandText = sql;mandType = CommandType.Text;sqlcom.Connection = coon;int x = sqlcom.ExecuteNonQuery();coon.Close();return x;}public DataSet BinDataGriView(DataGridView dgv, string sql){if (coon.State == ConnectionState.Closed) coon.Open();SqlDataAdapter da = new SqlDataAdapter(sql, coon);DataSet ds = new DataSet();da.Fill(ds);dgv.DataSource = ds.Tables[0];return ds;}}}6.3 系统各功能设计和运行界面截图。

相关文档
最新文档