SQLserver2008数据库课程设计范例——学生成绩管理系统报告
学生成绩管理系统——SQL数据库技术
《SQL数据库技术》课程设计一、题目:学生成绩管理二、因为我做的是学生成绩管理,所以数据库中至少有个一个表是来存储学生的各课成绩的。
有了学生成绩,得知道这个成绩是哪个学生的,所以此表中也得有学生姓名,但是学生姓名肯定有重复的,所以得必须有个标志来惟一标识一个学生,所以得给每个学生一个编号(学号),但是也得必须清楚,这个成绩是哪门课程的,所以给课程定义了一个编号。
之后,得想到有了学生成绩表,总得有个表来存放学生信息吧,所以又建立一个学生信息表,此表中的必须的字段得有学号、姓名、班级,其他的字段可以根据需要来添加。
然后就是得有个课程表来存放哪个教师教哪门课程信息,所以此表中至少得有课程号,课程名称和教师的惟一标识(教师编号),再有一个表来存放教师的信息的,其中的字段必须有教师编号,教师姓名和所在的部门,当然也可以有教师出生日期、职称、电话号码等字段。
总之,这个学生管理系统总共包括四个表学生信息表student、教师信息表teacher、成绩表score和课程表course。
Student表:在建表时,除了添加学号、姓名、班级必要字段,还添加一些其他的字段,比如:出生日期、性别、邮箱地址和类型等。
Teacher表:在建表时,除了添加教师编号,教师姓名,部门必要字段,还可以添加一些其他的字段,比如:出生日期、性别、和电话等。
Score表:此表应该包括学生学号、课程号和成绩等。
Course表:应包括课程号,对应的课程名称和教此课程的教师编号。
(1)、建立一个数据库,然后在此数据库中建立这四个数据表。
(2)、向表中添加记录。
(3)、用一些查询语句来查看表中的特定记录。
(4)、向表中添加一些字段。
如:向teacher表中添加字段tel(5)、创建一个自定义数据类型,并修改student表中的某个字段为此数据类型。
(6)、创建几个视图⏹查询某个班级的学生信息⏹查看每门课程的平均成绩⏹查看选修计算机课程的学生信息⏹查看所有男教师和所有男学生的信息(7)、创建几个存储过程● 显示成绩表中的课程号在课程表中且所任教师性别为男、计算机系的成绩表● 显示某学生的学号,姓名,所学课程号,课程名称和对应的成绩● 在执行此存储过程时,如果没有给出参数(学生姓名),则输入全部的学生的学号,姓名,班级,任课教师编号及其姓名,所学课程名称和成绩,如果有,则显示此学生的以上信息。
数据库学生成绩管理系统课程设计报告
数据库课程设计报告1.功能需求本报告主要介绍学生成绩管理系统的数据库设计,从需求分析到数据库的运行与维护都进行详细的叙述。
该系统是利用SQL开发出来的。
通过SQL建立学生成绩管理系统,大大方便和简化了数据的查询和处理,管理员可以通过SQL语言对表内数据进行添加,删除,修改,查询等操作,还可以建立多用户,对其使用权限进行分配和回收。
报告分为4部分,第一部分是课题简介及设计的内容与目的,需求分析,此阶段是数据库设计的起点。
第二部分是概念设计,逻辑结构设计,它是将需求分析的用户需求抽象为信息结构,并将概念模型转换为某个DBMS所支持的数据模型。
第三部分是数据库的实施与运行,它包括数据的载入及数据困的运行和数据库和数据表的创建(代码)。
第四部分是课程设计的总结。
1.1开发环境及开发语言本次课程设计是以学生信息管理系统为模拟模型,运用C++编程语言结合SQL 数据库所开发系统。
开发平台为VC6.0和SQL2008。
1.2 设计目的随着学生数量的日益增多,学校对学生的管理要求也越来越高,为了使学生成绩的管理更加系统化,数字化,因此我们设计了该学生信息管理系统。
1.3 设计内容运用基于E-R模型的数据库设计方法和关系规范化理论做指导完成从系统的分析到设计直至系统的最终实现,开发学生成绩管理系统,完成学生成绩管理系统的全部功能。
首先做好需求分析,并完成数据流图,其次做概念分析,利用实体联系的方法将需求分析的用户需求抽象为信息结构,得到E-R图,然后就是逻辑结构设计,将E-R图转换为计算机系统所支持的逻辑模型。
最后利用SQL完成具体的实例。
1.4.需求分析1、问题的提出:为了高效率的完成学生成绩的管理,决定开发学生成绩管理系统。
2、需完成的功能:(1)能提供管理员及普通用户(除删除和修改)录入、注销、显示当前用户、修改、删除、查询、输出,学生的档案信息,这些信息包括学生的成绩、课程、个人信息等。
(2)触发器,索引,存储过程的建立及使用。
学生成绩管理系统实验报告
数据库系统原理实验报告实验名称学生成绩管理系统院系计算机与信息工程学院班级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、执行学生信息更新(对已有的学生信息进行修改)的结果:三、单击“学生成绩录入”学生成绩录入结果如下:。
数据库学生成绩管理系统课程设计报告
02
系统需求分析
功能需求
用户管理
系统需要提供用户注册、登录、权限 管理等基本功能,以确保不同用户能 够安全、有效地使用系统。
报表生成与打印
系统需要支持生成各类报表,如学生 成绩单、成绩统计表等,并提供打印 功能。
01
02
学生信息管理
系统需要支持对学生基本信息的录入 、修改、查询和删除等操作,包括学 生姓名、学号、班级等。
性能测试
在压力测试下,系统能够保持稳定的性能表现, 响应时间、吞吐量等指标均满足设计要求。
3
安全测试
系统具有一定的安全防护能力,如用户身份验证 、权限控制等,但仍需加强数据安全保护措施。
系统性能评估
响应时间
系统响应时间较快,用户操 作流畅,无明显延迟现象。
吞吐量
系统能够处理较大的数据量 ,满足多用户同时使用的需 求。
定性和可靠性。
数据表设计
根据系统需求,设计合理的数 据表结构,包括学生表、课程 表、成绩表等,并建立表之间 的关系。
数据完整性保障
通过设定主键、外键、约束等 机制,确保数据的完整性和一 致性。
数据安全性
采用密码加密、权限控制等手 段,保障数据库的安全性。
界面设计
用户界面
设计简洁、直观的用户界面,提供友 好的用户操作体验。
界面风格
采用统一的界面风格,保持整体美观 和一致性。
交互设计
通过合理的交互设计,引导用户完成 操作流程,减少错误操作的可能性。
响应式设计
界面支持响应式布局,适应不同设备 和屏幕尺寸的显示需求。
04
系统实现
开发环境搭建
开发工具
Visual Studio Code
运行环境
《SQL数据库实训》学生成绩管理信息系统设计报告郭江涵
WORD格式山东理工大学课程实训报告——数据库实训题目:学生成绩管理信息系统学院:计算机科学与技术学院班级:软件1304姓名:郭江涵学号131105721XX指导教师:XX总评成绩指导教师签名2016年01月04日~2016年01月10日实训成绩评定表1.设计报告部分(30分)①封面设计符合要求(3分);②报告格式符合要求(7分);③功能叙述完备,错别字少,章节段落分布合理,无抄袭或雷同现象(10分);④排版质量高,图片处理且效果好(10分)。
2.设计内容部分得分点及分数数据流图15'E-R图15'数据流图、E-R图和数据库关数据库关系图20系图合计50'得分点及分数简要程序设计流程图代码20'程序设计说明书合计20'3.成绩评定综合评语指导教师签名:年月日目录第一章概述......................................................................... (1)第二章系统分析......................................................................... (2)第三章数据库设计......................................................................... .. (4)第四章系统实现......................................................................... (7)第五章结束语......................................................................... .. (19)第一章概述课程设计是实践性教学中的一个重要环节,它以某一课程为基础,可以涉及和课程相关的各个方面,是一门独立于课程之外的特殊课程。
数据库课程设计报告学生成绩管理系统完整版
数据库课程设计报告学生成绩管理系统HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】编号:数据库课程设计(论文)说明书题目:学生成绩管理系统系别:计算机科学与工程学院专业:计算机科学与技术学生姓名:学号:指导教师:年月日摘要随着科技的发展,基本上所有的具有一定数量数据的机构都开始使用计算机数据库来做管理。
几乎所有学校也都已经在使用计算机管理数据的机制,大大减少了学校学生成绩管理的工作量。
该课程设计要求设计一个学生成绩的数据库管理系统,数据库中要求包含学生的基本信息,课程基本信息,以及学生所学课程的考试成绩。
要方便学生进行成绩查询,通过该课程设计,应该达到把数据库理论知识更加的巩固加深,加强动手能力与实践能力,学以致用,与现实生活中的应用充分的结合起来。
本系统以Delphi 7为开发工具,SQL Server 2008为后台数据库。
主要功能模块包括:系统管理模块,数据管理模块,数据查询模块等。
关键词:Delphi 7 ; SQL Server 2008 ;学生成绩管理系统目录引言 (1)1 学生成绩管理系统概述 (1)学生成绩管理系统开发背景和意义 (1)学生成绩管理系统概述 (2)简单介绍本系统实现内容 (2)总结 (3)2 开发系统的工具,技术,开发环境的选择 (3)系统开发平台 (3)数据库的选择 (4)SQL Server 2008 数据库简介 (4)总结 (5)3 可行性设计 (5)社会可行性 (5)技术可行性 (5)经济可行性 (5)操作可行性 (5)设计原则 (6)4 需求分析 (6)开发目的 (6)功能需求 (6)数据需求 (7)数据流图 (8)5 数据库关系设计 (8)表格设计 (8)系统设计 (10)E—R关系略图 (11)数据库与组件链接 (11)6 学生成绩管理系统功能测试 (12)测试环境 (12)功能测试 (12)测试总结 (15)7 结论 (16)系统优缺点分析 (16)经验总结 (16)参考文献 (17)附录 (18)引言随着学校向全国及至世界范围的持续扩张,学生人数的增加,对于学生的信息管理也越来越复杂,要求也越来越高,因此需要一个全面、详细的信息管理系统,以便完成对学生信息的管理。
SQL server2008数据库课程设计范例——学生成绩管理系统
数据库技术与应用课程设计说明书题目:学生成绩管理系统院系:专业班级:学号:学生姓名:指导教师:2014年12 月22 日一概述1.1目的与要求随着科技的发展,基本上所有的具有一定数量数据的机构都开始使用计算机数据库来做管理。
几乎所有学校也都已经在使用计算机管理数据的机制,大大减少了学校学生成绩管理的工作量。
该课程设计要求设计一个学生成绩的数据库管理系统,数据库中要求包含学生的基本信息,学科基本信息,以及学生所学课程的考试成绩。
要方便学生进行成绩查询,通过该课程设计,应该达到把数据库理论知识更加的巩固加深,加强动手能力与实践能力,学以致用,与现实生活中的应用充分的结合起来。
1.2设计环境① Microsoft SQL Server 2000② Microsoft Visual C++ 6.0二需求分析2.1 系统功能要求设计此系统实现如下系统功能:(1)使得学生的成绩管理工作更加清晰、条理化、自动化。
(2)通过用户名和密码登录系统,查询课程基本资料,学生所选课程成绩,修改用户密码等功能。
容易地完成学生信息的查询操作。
(3) 设计人机友好界面,功能安排合理,操作使用方便,并且进一步考虑系统在安全性,完整性,并发控制,备份和恢复等方面的功能要求。
2.2 系统模块设计成绩管理系统大体可以分成二大模块如,一是学生的基本信息模块,里面应该包含学生的各方面的基本信息;再者便是课程管理模块,在该模块中应该包含有对学生成绩信息的查询和处理,如平均成绩、最好成绩、最差成绩以及不及格学生的统计等功能模块;再其次还有教师、课程等相关信息的模块;可以得到系统流程图:2.3数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名称、数据类型、长度、取值能否为空。
利用SQL Server 2000建立“学生选课”数据库,其基本表清单及表结构描述如下:三概念模型设计由需求分析的结果可知,本系统设计的实体包括:(1)学生基本信息:学号,姓名,性别,地址,年龄,专业。
数据库学生成绩管理系统课程设计报告
洛阳理工学院课程设计报告课程名称数据库课程设计设计题目学生成绩查询系统专业计算机科学与技术班级 B100506 学号 B10050634 姓名孙帅杰完成日期 2013年1月6号课程设计任务书设计题目:学生成绩管理系统设计内容与要求:设计内容:教务员可以输入学生、教师、班级、课程信息,一个班级只属于一个专业,一个学生只属于一个班级。
教务员负责输入每个专业、每个班级需要学习哪些课程,指定课程的任课教师。
一个教师可以教授多个班的多门课程。
教师可以查看学习该课程的学生名单。
课程结束后,教师可以录入课程成绩。
课程分两类,必修课和选修课。
学生可以选修课程,每学期几门。
学生可以查看自己各门课程的成绩。
学生还可以进行评教,给老师打分。
系统管理员可以输入教室信息,并结合班级、课程、教室信息实现自动排课。
设计要求:要求完成需求分析,写出功能需求和数据需求描述;在需求分析的基础上完成数据库的概念结构设计、逻辑结构设计、物理结构设计;用C#语言,完成管理系统的部分程序模块的界面设计。
指导教师:陶荣2012年12月28日课程设计评语成绩:指导教师:年月日目录1.绪论 01.1 设计目的 01.2 开发工具选择 01.3 开发环境 01.4 本报告的主要内容 02.需求分析 02.1系统需求简介 03.总体设计 (1)3.1设计概述 (1)3.2系统总体结构及功能模块划分 (1)3.3系统数据库概念结构设计 (2)3.4 逻辑结构设计 (6)4.主程序设计 (8)4.1登录系统 (8)4.2学生信息查询、保存、及修改 (11)4.3用户管理 (17)5. 设计总结与心得体会 (21)6.参考文献 (22)1.绪论1.1 设计目的本课程设计的目的是使学生能熟练掌握简单的简单Windows窗体应用程序的设计和的应用,希望通过本次课程设计锻炼学生使用C#语言解决实际问题的能力。
1.2 开发工具选择本系统后台数据库采用Microsoft SQL Server 数据库,该数据库系统在安全性、准确性和运行速度方面有绝对的优势,并且处理数据量大,效率高;前台采用Microsoft 公司的Visual Studio 2010作为主要开发工具,可与SQL Server 2008数据库无缝链接。
数据库课程设计教务管理系统(sql sever2008)
河南城建学院Henan University of Urban Construction 《数据库原理》课程设计报告课程名称:《数据库原理》课程设计设计题目:《教务管理系统》指导教师:何宗耀班级:0844141学号:084414144学生姓名:同组人员:成绩:评语:计算机科学与工程学院2016年6月目录第1章概述 (3)1.1选题的背景与意义 (3)1.2相关技术分析 (3)第2章系统功能设计 (4)2.1系统总体结构设计图 (4)2.2系统功能模块 (4)1.2.1 模块 (4)1.2.2 模块功能 (4)第3章数据库设计 (5)3.1需求分析 (5)3.1.1流程图 (5)3.1.2 数据字典 (7)3.2概念结构设计 (9)3.2.1 E—R图 (9)3.3逻辑结构设计 (11)3.3.2范式的判定(3NF) (11)3.3.3 子模式的设计(视图) (13)3.4物理结构设计 (15)3.4.1存储结构与存取方法 (15)3.4.2数据的易变与稳定部分 (16)3.4.3索引的建立 (16)3.5数据库、表建立的代码 (16)3.5.1建立视图 (20)3.5.2建立存储过程 (21)3.5.4建立触发器 (22)3.6数据库实施 (24)3.6.1 数据表截图 (24)3.6.2视图的截图 (27)3.6.3存储过程的截图 (29)3.6.4 触发器实现过程的截图 (30)第4章 (32)第1章概述1.1 选题的背景与意义现如今高等院校的招生人数越来越多,必然就会有大量的学生信息、教师信息及课程信息需要处理。
如果只靠人力来完成,这将会变成一项非常繁琐、复杂的工作,而且还有可能出现很多意想不到的错误,给管理这些数据带来了极大的不便,越来越不适合高校的发展需要。
教务管理系统是一个庞大而复杂的系统,它包括对教师信息的管理,对课程资料的管理,对学生信息的管理和对学生成绩的管理等主要功能。
教务管理系统是每所高校的一项必不可少的内容,但最基本的还是教务管理系统数据库的设计,它的好坏直接影响到学校的主要工作。
sql学生成绩信息管理系统数据库设计报告
哈尔滨理工大学软件学院课程设计报告课程:数据库课程设计题目:学生成绩信息管理的数据库设计班级:软件10-8班专业:软件工程姓名:岳世崇学号:1014010825指导教师:王春英日期:2011年12月30日一、数据库的背景及功能需求在要求你为哈尔滨理工大学设计一个学生成绩管理系统的数据库,背景如下:哈尔滨理工大学有多学科的大学,学生在自己本身必修课程之后选修课程,从而获得学分,学生成绩管理系统,通过按照,授课教师,学生信息,课程信息,成绩信息,建立起联系,例如:管理员可以修改学生的信息,删除,修改,学生信息,包括学生联系方式,住址等等,给学生的各科成绩打分.同时可以修改教师的个人信息,住址等信息。
二、数据库的概念结构设计每个学生都要有一个学号,并记录姓名,身份证号,年龄,性别,电话号码,主修,年级,班级,籍贯,学生密码等,每个教师都要有一个教师编号,并记录姓名,授课名称,性别,电话等信息。
每一门课都要有一个课程编号,课程名及所对应的教师编号等,成绩包括学生的学号及课程号和成绩的多少,管理员通过数据库对相应的学生信息(如名,身份证号,年龄,性别等),教师信息,课程信息,学生成绩进行编辑,学生成绩的录入。
学校的课程有计算机组成原理,离散数学,英语,机械电子,车辆工程,环境工程,软件编程,电气概念等科目,对应各自的课程编号。
学生的班级信息包括其专业年级,班级。
在网上查询系统中,每个用户都分配了用户名(全局唯一)和密码,其中,用户名就是学号,密码为学生自身的密码,可以修改。
三、数据库的逻辑结构设计四、数据库的物理结构设计第一范式在关系中属性都原子的Bc范式:在第一范式的基础上满足以下两个条件之一一a推出b是平凡的函数依赖二a是关系的一个超码第三范式:函数依赖集F是关系的一个函数依赖集F的闭包中所有的函数依赖型如a推出b至少有以下之一成立一a推出b是平凡的函数依赖二a是关系的一个超码三b—a中的每个属性都包含在关系的一个候选码中学生个人信息;学号,姓名,身份证号,年龄,性别,电话号码,主修,年级,班级,籍贯,学生密码属于,bc范式教师个人信息:教师编号、课程编号,姓名,住址,籍贯,电话号码,职务,性别,属于bc范式图书:图书编号,名称、作者、条形码、出版地、出版社、出版时间、属于bc范式课程信息:课程编号、课程名、教师编号、课程等级,属于bc范式学生成绩:学号、课程编号,成绩分数.属于bc范式选课:学号,课程号.属于bc范式教授:课程号,教师编号。
sqlsever学生成绩管理系统实验总结
sqlsever学生成绩管理系统实验总结
总结内容可以包括以下几个方面:
1. 实验目的:对学生成绩管理系统的开发目的进行简单介绍,明确实验的目标。
2. 设计:对系统设计进行分析,包括系统功能模块划分、数据库设计、系统界面设计等方面。
3. 实验过程:介绍开发过程中出现的问题和解决方案,以及使用的技术和工具等。
4. 实验结果:详细介绍系统的功能和特点,对系统进行评价,并对优化方案进行探讨。
5. 总结与感悟:结合实践经验对学生的知识体系进行梳理,并对今后的学习和职业规划进行展望和对比。
以上仅为参考,具体总结内容可以根据您的实验要求和重点进行调整和完善。
(2023)数据库课程设计报告学生成绩管理系统(一)
(2023)数据库课程设计报告学生成绩管理系统(一)数据库课程设计报告学生成绩管理系统项目介绍•项目名称:学生成绩管理系统•项目目的:为学校提供统一的学生成绩管理工具,实现对学生成绩、班级、评价等信息的管理和查询,以提高教学质量和效率。
•项目背景:目前,学校的学生成绩管理仍然以手工填写、存档、查询为主,效率低下,易出错,且无法及时反馈班级、教师及学生的情况,因此需要一个更加智能化、高效化的学生成绩管理系统。
项目需求•数据库表设计:学生成绩表、班级表、课程表、教师表、考试表、成绩输入表、评价表等。
•系统模块划分:学生信息管理、成绩管理、班级管理、评价管理、系统设置等。
•系统功能实现:学生基本信息、成绩录入、成绩查询、班级成绩汇总、学生评价、班级课表管理等。
•开发语言:Java•数据库:MySQL•前端框架:Bootstrap项目实现•系统架构设计:采用B/S结构,前端页面使用Bootstrap框架,后端使用Java开发,数据库采用MySQL。
•数据库设计:学生成绩表、班级表、课程表、教师表、考试表、成绩输入表、评价表等。
•系统模块划分:学生信息管理、成绩管理、班级管理、评价管理、系统设置等。
•系统功能实现:学生基本信息、成绩录入、成绩查询、班级成绩汇总、学生评价、班级课表管理等。
项目成果•学生成绩管理系统上线使用,为学校提供了快速、准确的学生管理服务,为提高教学质量和效率做出了贡献。
•项目开发过程中,团队成员掌握了Java、MySQL、Bootstrap等相关技术,并对团队协作、项目管理等方面也有了更深入的了解。
•进一步完善系统功能,提高系统的易用性和可靠性。
•探索应用新技术,如人工智能、大数据等,为学生成绩管理提供更大的帮助。
•推广应用学生成绩管理系统,让更多的学校受益。
项目总结该学生成绩管理系统的开发,是一个锻炼团队协作、技术应用、项目管理等多个方面能力的过程,从需求调研、技术选型、系统设计、代码编写到测试、上线、维护和优化,团队成员积极配合、充分合作,不断攻关,最终实现了可靠的成果。
数据库课程设计报告学生成绩管理系统
目录1 引言 (1)1.1课程设计选题 (1)1.2课程设计的目的 (1)1.3课程设计的背景 (1)2 系统分析与设计 (2)2.1 功能及性能分析 (2)2.1.1 功能需求 (2)2.2 系统的开发运行环境 (2)2.3 系统总体设计 (2)3 数据库设计 (3)3.1 数据库概念结构 (3)3.2 数据库逻辑结构 (4)3.2.1 关系模型 (4)3.2.2视图的设计 (5)3.3 数据库的实现 (5)3.3.1表 (5)4 详细设计与实现 (7)4.1 登录模块 (7)4.2主页面模块 (8)4.3学生查询模块 (9)4.4成绩查询模块 (9)4.5添加学生模块 (9)4.6添加成绩模块 (10)4.7留言模块 (10)4.8补考模块 (11)结论 (12)参考文献 (13)1 引言1.1课程设计选题《学生成绩管理系统》1.2课程设计的目的通过数据库系统课程设计,熟悉了SQL SERVER数据库管理系统的结构与组成;掌握了SQL SERVER数据库管理系统的应用技术和的使用;实践了《学生成绩管理系统》的数据库应用系统的设计方法、开发过程和SQL SERVER数据库的管理与维护。
最终达到掌握数据库管理系统的使用和开发,提高分析问题、解决问题和实践应用能力。
1.3课程设计的背景随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,有着手工管理所无法比拟的优点。
例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高学生成绩管理的效率。
因此,开发一套成绩管理系统成为很有必要的。
学生成绩管理系统提供了强大的学生成绩管理管理功能,方便系统管理员对学生成绩等信息的添加、修改,打印等操作,同时一样的方便学生对自己各科成绩查询,学习的交流。
sql学生成绩信息管理系统数据库设计报告
哈尔滨理工大学软件学院课程设计报告课程:数据库课程设计题目:学生成绩信息管理的数据库设计班级:软件10-8班专业:软件工程姓名:岳世崇学号:指导教师:王春英日期:2011年12月30日一、数据库的背景及功能需求在要求你为哈尔滨理工大学设计一个学生成绩管理系统的数据库,背景如下:哈尔滨理工大学有多学科的大学,学生在自己本身必修课程之后选修课程,从而获得学分,学生成绩管理系统,通过按照,授课教师,学生信息,课程信息,成绩信息,建立起联系,例如:管理员可以修改学生的信息,删除,修改,学生信息,包括学生联系方式,住址等等,给学生的各科成绩打分。
同时可以修改教师的个人信息,住址等信息。
二、数据库的概念结构设计每个学生都要有一个学号,并记录姓名,身份证号,年龄,性别,电话号码,主修,年级,班级,籍贯,学生密码等,每个教师都要有一个教师编号,并记录姓名,授课名称,性别,电话等信息。
每一门课都要有一个课程编号,课程名及所对应的教师编号等,成绩包括学生的学号及课程号和成绩的多少,管理员通过数据库对相应的学生信息(如名,身份证号,年龄,性别等),教师信息,课程信息,学生成绩进行编辑,学生成绩的录入。
学校的课程有计算机组成原理,离散数学,英语,机械电子,车辆工程,环境工程,软件编程,电气概念等科目,对应各自的课程编号。
学生的班级信息包括其专业年级,班级。
在网上查询系统中,每个用户都分配了用户名(全局唯一)和密码,其中,用户名就是学号,密码为学生自身的密码,可以修改。
三、数据库的逻辑结构设计四、数据库的物理结构设计 第一范式在关系中属性都原子的学生学号身份证号籍贯密码年龄性别电话专业年级照片班级选择课程学生学号教师号课程号课程名1N授 课教师教师号课程等级成绩密码 课程号 家庭住址电话职称 籍贯性别 照片MN姓名姓名Bc范式:在第一范式的基础上满足以下两个条件之一一a推出b是平凡的函数依赖二a是关系的一个超码第三范式:函数依赖集F是关系的一个函数依赖集F的闭包中所有的函数依赖型如a推出b至少有以下之一成立一a推出b是平凡的函数依赖二a是关系的一个超码三b-a中的每个属性都包含在关系的一个候选码中学生个人信息;学号,姓名,身份证号,年龄,性别,电话号码,主修,年级,班级,籍贯,学生密码属于,bc范式属性名类型主键约束学号长整型是姓名字符型身份证号长整型年龄字符型性别字符型男or 女电话长整形主修长整形年级长整形([Student_Grade]<=(4))and([Student_Grade]>=(1))班级长整形籍贯字符型学生密码字符型教师个人信息:教师编号、课程编号,姓名,住址,籍贯,电话号码,职务,性别,属于bc范式属性名类型主键约束教师编号长整型是课程编号长整型姓名字符型住址字符型籍贯字符型电话号码长整型职务字符型性别字符型男or 女图书:图书编号,名称、作者、条形码、出版地、出版社、出版时间、属于bc范式属性名类型主键约束图书编号长整型是名称字符型作者字符型条形码长整型出版地字符型出版时间时间类型出版社字符型单价浮点型字数长整型课程信息:课程编号、课程名、教师编号、课程等级,属于bc范式属性名类型主键约束课程编号长整型是课程名字符型教师编号长整型课程等级长整型学生成绩:学号、课程编号,成绩分数。
sql_server-学生成绩管理系统-课程设计
优化用户界面:提高用户体验,减少用 户操作时间
优化系统稳定性:提高系统可靠性,减 少系统故障发生率
优化系统安全性:提高系统安全性,防 止数据泄露和攻击
07
课程设计总结与展 望
课程设计总结
课程设计目标:提高学生成绩管理效率,提升学生成绩 课程设计内容:包括成绩录入、成绩查询、成绩统计等功能 课程设计方法:采用模块化设计,易于维护和扩展
学生表:存储学 生基本信息,如 学号、姓名、性
别等
课程表:存储课 程基本信息,如 课程号、课程名、
学分等
成绩表:存储学 生成绩信息,如 学号、课程号、
成绩等
关系设计:学生表 与课程表通过学号 和课程号建立关系, 成绩表与课程表通 过课程号建立关系, 成绩表与学生表通 过学号建立关系。
数据库存储过程和触发器设计
数据库逻辑结构设计
实体关系模型(ER模型):描述数据的 逻辑结构
关系:描述实体之间的联系,如学生选 课、课程开设等
实体:表示系统中的实体对象,如学生、 课程等
主键:唯一标识一个实体的属性或属性 组
属性:描述实体的特征,如学生的姓名、 年龄等
外键:引用其他实体的主键,表示实体 之间的联系
数据表关系设计
汇报人:
理等功能
系统安全与维 护:包括数据 备份、系统升 级、安全防护
等功能
系统架构设计
数据库:存储学生成绩信息
后端:数据处理,负责存储 和管理数据
前端:用户界面,负责与用 户交互
接口:连接前端和后端,实 现数据传输和交互
安全机制:确保系统安全, 防止数据泄露和攻击
性能优化:提高系统运行速 度和稳定性
03
提高教师的教学质量
促进学校的教育信息化建 设
基于sql的学生成绩管理系统(数据库)_课程设计报告
基于sql的学生成绩管理系统(数据库)_课程设计报告一、实验题目学生证管理系统数据库的设计与实现描述:设计一个学生证管理系统。
实现下列功能:1.录入某位学生的学生证信息2.给定学号,查询某位学生的学生证信息;3.给定班号,显示该班所有学生的学生证信息;4.给定学号,修改该学生的学生证信息;5.给定学号,删除该学生的学生证信息;三、实验目的数据库课程设计课程实验是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节,通过实验达到深化理解和灵活掌握教学内容的目的,以及提高学生分析问题、解决问题的应用能力。
同时,使学生的工作规范和科学作风得到培养。
通过该课程的学习,要求学生能独立分析问题,设计算法,实现程序的各项功能,得到正确的可执行程序,学会调试程序,对设计过程进行系统的总结。
本实践课的主要目的:1、掌握运用数据库原理进行系统分析和设计的方法;2、掌握关系数据库的设计方法;3、掌握利用SQL Server 2000技术;4、熟悉各种SQL语句及对数据库的访问方法。
四、实验要求1.对各个系统进行系统功能需求分析2. 数据库设计分析阶段,进行详细的数据库需求分析,进行概念数据库的设计,画出数据库的E-R图(局部和整体E-R图)3. 设计出详细的逻辑数据库结构,将各个实体和联系转化为相应的二维表即关系模式,指定各个关系的主关键字和外部关键字,并对各个关系的约束加以限定4. 通过企业管理器或是查询分析器实现各个二维关系(建议最好用SQL代码实现),要求建立相关的索引5. 根据系统功能需求设计相应的查询视图6. 要求根据系统功能需求建立存储过程7. 根据功能需求建立相应的触发器以保证数据的一致性8. 通过建立用户和权限分配实现数据库一定的安全性,考虑数据库的备份与恢复五、实现思路(一)系统需求分析需求分析师整个数据库设计过程的基础,要收集数据库所有用户的信息内容和处理要求,并加以规格化分析。
数据库学生成绩管理系统课程设计报告
洛阳理工学院课程设计报告课程名称数据库课程设计设计题目学生成绩查询系统专业计算机科学与技术班级B100506学号B10050634姓名孙帅杰完成日期2013年1月6号课程设计任务书设计题目:学生成绩管理系统设计内容与要求:设计内容:教务员可以输入学生、教师、班级、课程信息,一个班级只属于一个专业,一个学生只属于一个班级。
教务员负责输入每个专业、每个班级需要学习哪些课程,指定课程的任课教师。
一个教师可以教授多个班的多门课程。
教师可以查看学习该课程的学生名单。
课程结束后,教师可以录入课程成绩。
课程分两类,必修课和选修课。
学生可以选修课程,每学期几门。
学生可以查看自己各门课程的成绩。
学生还可以进行评教,给老师打分。
系统管理员可以输入教室信息,并结合班级、课程、教室信息实现自动排课。
设计要求:要求完成需求分析,写出功能需求和数据需求描述;在需求分析的基础上完成数据库的概念结构设计、逻辑结构设计、物理结构设计;用C#语言,完成管理系统的部分程序模块的界面设计。
指导教师:陶荣2012年12月28日课程设计评语成绩:指导教师:年月日目录1.绪论 01.1 设计目的 01.2 开发工具选择 01.3 开发环境 01.4 本报告的主要内容 02.需求分析 02.1系统需求简介 03.总体设计 (1)3.1设计概述 (1)3.2系统总体结构及功能模块划分 (1)3.3系统数据库概念结构设计 (2)3.4 逻辑结构设计 (6)4.主程序设计 (8)4.1.................................................................................................................................... 登录系统84.2............................................................................................. 学生信息查询、保存、及修改114.3.................................................................................................................................... 用户管理175. 设计总结与心得体会 (21)6.参考文献 (22)1.绪论1.1 设计目的本课程设计的目的是使学生能熟练掌握简单的简单Windows窗体应用程序的设计和的应用,希望通过本次课程设计锻炼学生使用C#语言解决实际问题的能力。
数据库课程设计报告学生成绩管理系统(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代码对数据进行分组、过滤等操作,大大提升了查询效率。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库技术与应用课程设计说明书题目:学生成绩管理系统院系:专业班级:学号:学生姓名:指导教师:2014年12 月22 日一概述1.1目的与要求随着科技的发展,基本上所有的具有一定数量数据的机构都开始使用计算机数据库来做管理。
几乎所有学校也都已经在使用计算机管理数据的机制,大大减少了学校学生成绩管理的工作量。
该课程设计要求设计一个学生成绩的数据库管理系统,数据库中要求包含学生的基本信息,学科基本信息,以及学生所学课程的考试成绩。
要方便学生进行成绩查询,通过该课程设计,应该达到把数据库理论知识更加的巩固加深,加强动手能力与实践能力,学以致用,与现实生活中的应用充分的结合起来。
1.2设计环境① Microsoft SQL Server 2000② Microsoft Visual C++ 6.0二需求分析2.1 系统功能要求设计此系统实现如下系统功能:(1)使得学生的成绩管理工作更加清晰、条理化、自动化。
(2)通过用户名和密码登录系统,查询课程基本资料,学生所选课程成绩,修改用户密码等功能。
容易地完成学生信息的查询操作。
(3) 设计人机友好界面,功能安排合理,操作使用方便,并且进一步考虑系统在安全性,完整性,并发控制,备份和恢复等方面的功能要求。
2.2 系统模块设计成绩管理系统大体可以分成二大模块如,一是学生的基本信息模块,里面应该包含学生的各方面的基本信息;再者便是课程管理模块,在该模块中应该包含有对学生成绩信息的查询和处理,如平均成绩、最好成绩、最差成绩以及不及格学生的统计等功能模块;再其次还有教师、课程等相关信息的模块;可以得到系统流程图:2.3数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名称、数据类型、长度、取值能否为空。
利用SQL Server 2000建立“学生选课”数据库,其基本表清单及表结构描述如下:三概念模型设计由需求分析的结果可知,本系统设计的实体包括:(1)学生基本信息:学号,姓名,性别,地址,年龄,专业。
(2)课程基本信息:课程名,课程号,分数,学时,学分。
这些实体间的联系包括:(1)每位学生可以学习多门课程,每门课程可供多位学生学习。
由上述分析可得到系统的E—R图:四逻辑和物理结构设计4.1由系统E—R图转化而得到的关系模式如下:(1)学生(学号,姓名,性别,年龄,地址,系别),其主关键字为学号;(2)课程(课程名,课程号,学时,学分),其中主关键字为课程号;(3)成绩(课程号,学号,分数)其中主关键字为学号和课程号。
可以与学生关系模式合并为:学生(学号,姓名,性别,年龄,地址,系别,成绩,课程号)。
4.2 确定关系模型的存取方法在将概念模型转换成物理模型之后,我们可以对物理模型进行设计,双击物理模型的关系,可以对该关系的名称、注释等信息进行查询。
可对该关系的属性列进行设计,可分别设置其名称、码、数据类型以及主码、是否为空等。
在实际设计中最常用的存取方法是索引发,使用索引可以大大减少数据的查询时间,在建立索引时应遵循:在经常需要搜索的列上建立索引;在主关键字上建立索引;在经常用于连接的列上建立索引,即在外键上建立索引;在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的等规则。
才能充分利用索引的作用避免因索引引起的负面作用。
4.3 确定数据库的存储结构确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份等的存储安排及存储结构,以及确定系统存储参数的配置。
因为该成绩管理系统的数据量小,所以我们只用把数据存储在使用的电脑硬盘上,不用作更多的安排。
(1)创建学生基本信息表:create table Student (学号varchar(11) not null,系别varchar(5) not null,姓名varchar(6) not null,性别varchar(2) not null,年龄char(2) not null,地址varchar(20) not null,constraint PK_STUDENT primary key (学号))goexecute sp_addextendedproperty 'MS_Description','学生基本信息描述','user', '', 'table', 'StudentsInfo'go(2)创建课程表:create table Course (cno varchar(5) not null,cname varchar(10) null,xueshi smallint null,xuefen int null,constraint PK_COURSE primary key (课程号))goexecute sp_addextendedproperty 'MS_Description',(3)创建学生与课程的成绩表create table SC ( sno varchar(11) not null,cno varchar(5) not null,chengji varchar(4) not nullconstraint PK_SC primary key (学号, 课程号))go在SC表上创建索引SC_FK与SC2_FKcreate index SC_FK on SC (学号ASC)Gocreate index SC2_FK on SC (课程号ASC)go建立课程号索引create index TC_FK on TC (课程号ASC)go下图显示了学生,课程和成绩三个关系的物理设计其中课程号与学号号分别为关系的主码。
五数据库的实施与维护5.1 数据库的实施:此阶段主要任务包括创建数据库,加载初始数据,数据库试运行,数据库的安全性和完整性控制数据库的备份与恢复,数据库性能的监督分析和改仅,数据库的重组和重构等。
首先在数据库中建立一个学生成绩管理系统数据库,然后新建一个数据源。
主要代码如下:#include "stdafx.h"#include "StudentScore.h"#include "Course.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;// CCourseIMPLEMENT_DYNAMIC(CCourse, CRecordset) CCourse::CCourse(CDatabase* pdb): CRecordset(pdb){ //{{AFX_FIELD_INIT(CCourse)//}}AFX_FIELD_INITm_nDefaultType = snapshot;CString CCourse::GetDefaultConnect(){ return _T("ODBC;DSN=");}CString CCourse::GetDefaultSQL(){ return _T("");}void CCourse::DoFieldExchange(CFieldExchange* pFX){//{{AFX_FIELD_MAP(CCourse)pFX->SetFieldType(CFieldExchange::outputColumn);//}}AFX_FIELD_MAP}// CCourse diagnosticsvoid CCourse::AssertValid() const{ CRecordset::AssertValid();}void CCourse::Dump(CDumpContext& dc) const{ CRecordset::Dump(dc);}// MainFrm.h : interface of the CMainFrame classclass CMainFrame : public CFrameWnd{protected: // create from serialization onlyCMainFrame();DECLARE_DYNCREA TE(CMainFrame)// Attributespublic:// Operationspublic:// Overrides// ClassWizard generated virtual function overrides//{{AFX_VIRTUAL(CMainFrame)virtual BOOL PreCreateWindow(CREATESTRUCT& cs);//}}AFX_VIRTUAL// Implementationpublic:virtual ~CMainFrame();protected: // control bar embedded members//CStatusBar m_wndStatusBar;//CToolBar m_wndToolBar;// Generated message map functionsprotected://{{AFX_MSG(CMainFrame)afx_msg int OnCreate(LPCREA TESTRUCT lpCreateStruct);afx_msg void OnPassword();afx_msg void OnUser();afx_msg void OnStudent();afx_msg void OnTeach();afx_msg void OnTeacher();afx_msg void OnScore();afx_msg void OnQueryTeach();afx_msg void OnQueryScore();afx_msg void OnCourse();//}}AFX_MSGDECLARE_MESSAGE_MAP()};//{{AFX_INSERT_LOCA TION}}// Microsoft Visual C++ will insert additional declarations immediately before the previous line. // CScoreAddDlg dialogCScoreAddDlg::CScoreAddDlg(CWnd* pParent /*=NULL*/): CDialog(CScoreAddDlg::IDD, pParent){/{{AFX_DA TA_INIT(CScoreAddDlg)//}}AFX_DA TA_INIT}void CScoreAddDlg::DoDataExchange(CDataExchange* pDX){CDialog::DoDataExchange(pDX);//{{AFX_DA TA_MAP(CScoreAddDlg)DDX_Control(pDX, IDC_SCORE_STUDENT, m_cStudent);DDX_Control(pDX, IDC_SCORE_SCORE, m_cScore);DDX_Control(pDX, IDC_SCORE_COURSE, m_cCourse);//}}AFX_DA TA_MAP}BEGIN_MESSAGE_MAP(CScoreAddDlg, CDialog)//{{AFX_MSG_MAP(CScoreAddDlg)//}}AFX_MSG_MAPEND_MESSAGE_MAP()void CScoreAddDlg::OnOK(){CString student,course,score,student_no,course_no;m_cStudent.GetWindowText(student);m_cCourse.GetWindowText(course);m_cScore.GetWindowText(score);else//成绩不为空{CString strSQL;//查出该学生的学号strSQL.Format("select * from student where active_status='Y' and student_name='%s'",student);CRecordset m_recordSet=&m_database;m_recordSet.Open(CRecordset::forwardOnly,strSQL);m_recordSet.GetFieldValue("student_no",student_no);m_recordSet.Close();//查出该课程的课程号strSQL.Format("select * from course where active_status='Y' and course_name='%s'",course);m_recordSet.Open(CRecordset::forwardOnly,strSQL);m_recordSet.GetFieldValue("course_no",course_no);;m_recordSet.Close();BOOL CScoreAddDlg::OnInitDialog(){CDialog::OnInitDialog();CRecordset m_recordSet;if(!m_database.IsOpen()){m_database.Open(_T("student"));m_recordSet.m_pDatabase=&m_database;}CString strSQL;strSQL.Format("select course_name from course where active_status='Y'");m_recordSet.Open(CRecordset::forwardOnly,strSQL);for(int i=0;i<m_recordSet.GetRecordCount();i++){CString temp;m_recordSet.GetFieldValue("course_name",temp);m_cCourse.AddString(temp);m_recordSet.MoveNext();}m_recordSet.Close();m_cCourse.SetCurSel(1);strSQL.Format("select student_name from student where active_status='Y'");m_recordSet.Open(CRecordset::forwardOnly,strSQL);for(int j=0;j<m_recordSet.GetRecordCount();j++){CString temp;m_recordSet.GetFieldValue("student_name",temp);m_cStudent.AddString(temp);m_recordSet.MoveNext();}m_recordSet.Close();m_cStudent.SetCurSel(1);{this->SetWindowText("成绩窗口");}return true;}void CScoreAddDlg::OnCancel(){// TODO: Add extra cleanup hereCDialog::OnCancel();}5.2部分操作截图:下图显示了学生登陆系统进行查询时界成绩查询功能:面:下图显示了进行课程查询时界面:5.3数据库的维护当试运行数据库合格后,数据库开发设计的工作就基本完成了,接下来就是正式运行中的调试,应为该系统比较简单,数据量小,数据库中几乎不会发生什么大的变化,但是还是需要做好数据的备份,在sqlserver中我们可以利用备份数据库的功能对已经设计好的数据做备份,如果数据库受到破坏或系统故障,我们便可轻松的利用备份文件恢复数据库的数据。