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

数据库原理与应用课程设计报告课程名称数据库原理与应用实验名称学生成绩管理系统学生学院自动化学院 _____ 专业班级______ 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)学生基本信息:学号,姓名,性别,地址,年龄,专业。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 系统各功能设计和运行界面截图。