学生成绩管理系统实验报告书
学生成绩管理系统实验报告
高校成绩管理系统数据库设计与实现班级计科1201 班学号201226100105 姓名何霞1、需求分析计算机已经深入到日常工作和生活的方方面面,成为我们学习和工作的得力助手,比如文字处理、信息管理、辅助设计、图形图像处理、教育培训以及游戏娱乐等。
随着越来越多的应用软件出现,人们对它的要求也越来越高;虽然现在世界上的各种软件层出不穷,但它们依然不能满足用户的各种特殊需要,所以人们仍是不得不开发适合特殊需求的软件。
高校成绩管理系统记录了一个大学生成绩的系统,它的出现使得查询、更新、插入简单化,高效化,成本也随之大大减少。
使用计算机对成绩信息的管理,具有手工管理所无法比拟的优点:信息存储及时,检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高学生成绩管理的效率,也是高校成绩正规化管理的重要途径。
本软件控件均以中文形式表示,对普通程序使用者的查询提供简单方便的快捷操作,不需要技术含量。
以SQL SERVER数据库管理系统为平台,通过设计数据库概念模型、逻辑模型以及利用标准SQL语言的数据库实现,掌握关系数据库系统的设计与实现方法,增强数据库设计和数据库应用系统开发能力。
操作人员与维护人员应懂的SQL语言。
运行环境:硬件环境:高性能计算机一台软件环境:A.windows系列B.Microsoft SQL Server 2012C.MyEclipse Professional1.1 数据需求描述①.系统整体需求分析②.系统重要功能需要分析成绩查询功能教师授课信息查询功能班级课程安排查询功能1.2 系统功能需求(1)学生成绩按每学年进行成绩统计;(2)学生成绩名次排定,按升序排列;(3)每门课程平均成绩统计;(4)学生所学课程及学分统计;(5)输入每个学生成绩时,自动生成该学生已修总学分;(6)学生成绩查询;(7)教师任课查询;(8)班级课程开设查询;系统功能图:1.3 其他性能需求(1)可供多用户同时使用(2)用户输入出错时,有错误提示(3)安全性高(4)存储需求描述2、概念结构设计局部E-R图全局E-R图3、逻辑结构设计3.1 关系模式设计教师(教师编号,教师姓名,教师性别,教师年龄,职称,联系电话)上课(教师编号,班级编号)授课(教师编号,课程编号)课程(课程编号,课程名称,教师姓名,开课学期,学时,考试或考察,学分)学习(学号,课程编号,学期,课程名称,成绩教师姓名)学生(学号,学生姓名,学生性别,学生年龄,生源所在地,已修学分总数,班级编号)开设(课程编号,班级编号)班级(班级编号,班级名称,专业编号)专业(专业编号,专业名称)3.2 数据类型定义(1)Dept_Hx(学院信息)数据项名数据类型长度完整性约束学院编号(Dno_hx) char 20 主键,唯一,非空学院名称(Dname_hx) char 20(2)Teacheres_Hx(教师信息)数据项名数据类型长度完整性约束教师编号(Tno_hx) char 10 主键,唯一,非空教师姓名(Tname_hx) char 20教师性别(Tsex_hx) char 2教师年龄(Tage_hx) int职称(Tposi_hx) char 20联系电话(Ttele_hx) char 20学院编号(Dno_hx) char 20(3)Major_Hx(专业信息)数据项名数据类型长度完整性约束专业编号(Mno_hx) char 20 主键,唯一,非空专业名称(Mname_hx) char 20学院编号(Dno_hx) char 20(4)Class_Hx(班级信息)数据项名数据类型长度完整性约束班级编号(CLno_hx) char 20 主键,唯一,非空班级名称(CLname_hx) char 20(5)Students_Hx(学生信息)长度完整性约束数据项名数据类型学号(Sno_hx) char 12 主键,唯一,非空学生姓名(Sname_hx) char 20学生性别(Ssex_hx) char 2学生年龄(Sage_hx) int生源所在地(Shome_hx) char 20int已修学分总数(ScreditAccess_hx)班级编号(CLno_hx) char 20 外键(6)Course_Hx(课程信息)数据项名数据类型长度完整性约束课程编号(Cno_hx) char 20 主键,唯一,非空课程名称(Cname_hx) char 20学时(Chour_hx) int >0考试或考察(Cexam_hx) char 4学分(Ccredit_hx) char 4 >0(7)Teach_Hx(教师授课信息)数据项名数据类型长度完整性约束教师编号(Tno_hx) char 20 外键,唯一,非空课程编号(Cno_hx) char 20 外键(8)Study_Hx(学生成绩信息)数据项名数据类型长度完整性约束学号(Sno_hx) char 12 外键,唯一,非空课程编号(Cno_hx) char 20 外键学期(STterm_hx) char 10成绩(STgrade_hx) char 10教师号(Tno_hx) char 10 外键(9)Setup_Hx(班级课程信息)数据项名数据类型长度完整性约束班级编号(CLno_hx) char 20 外键,唯一,非空课程编号(Cno_hx) char 20 外键(9)3.3 关系模式的优化对关系模式进行规范化处理,对关系模式进行评价与修正4、物理结构设计4.1 聚簇设计该高校成绩管理系统数据库可建立一下聚簇:Teachers_Hx(教师编号Tno_hx)Courses_Hx(课程编号Cno_hx)Students_Hx(学生学号Sno_hx,班级编号CLno_hx)Class_Hx(班级编号CLno_hx)这几个聚簇设计是因为这几张表都是实体表,,且聚簇中的属性都是主键或是外键,被访问的概率很高,而其他表或者这些表上的其他属性被访问的概率就相对较低。
学生成绩管理系统实验报告
数据库系统原理实验报告实验名称学生成绩管理系统院系计算机与信息工程学院班级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、执行学生信息更新(对已有的学生信息进行修改)的结果:三、单击“学生成绩录入”学生成绩录入结果如下:。
C语言程序设计学生成绩管理系统实验报告
移通学院C语言程序设计报告书设计名称:学生成绩管理系统专业:指导老师:班级:姓名:学号:座号:时间一、实验目的1.在编辑应用程序过程中,逐步加深对C语言编程的理解;2.加强实践的能力,动手能力,同时进一步对所学的知识进行巩固;3.培养初步编程的能力,为以后的学习奠定基础;二、实验内容运用所学的C语言知识编辑一个应用程序:学习成绩管理系统三.系统软件环境:本程序主要运行在: Visual C++ 6.0Turbo C/C++ 3.0四.课程设计题目:学生成绩管理系统程序说明:有N个学生,每个学生的数据包含学号不重复、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统,使之能提供以下功能:1主菜单2各菜单项功能①成绩录入:输入学生的学号、姓名及三门课的成绩;②成绩查询:按学号查询学生记录;③成绩统计:计算学生的平均分;根据学生的平均分高低,对学生的数据进行排序后输出;④退出系统:退出整个系统即主菜单;五.数据结构设计描述:↓int num; /定义学号,变量为整型/char name; /定义姓名,变量为字符型/int score; /定义课程的成绩,变量为整型/float average; /定义平均分,变量为浮点型/七.系统各函数的功能,、相互调用关系1.函数实现功能说明:1menu函数是定义一个菜单函数,其功能在于输出菜单界面供使用者选择;2input函数是定义用于输入学生信息;3select 函数是定义用于查询学生信息;包括学号、姓名及各科成绩;4statistics 函数计算学生的平均分;根据学生的平均分高低,对学生的数据进行排序输出;2.相互调用关系:Main函数调用menu函数;Menu 函数可以调用input 函数、select函数和statistics 函数八.心得体会C语言是一种较为基础和普遍的编程语言,应用相当广泛,这次课程设计的要求与C语言的广泛应用相比较还有很大的差距;我们对于C语言的理解和使用还处在一个初级的阶段,我们要想掌握它,要学习的还很多,同时要懂得创新,许多的编程方法都是人们一步一步总结出来的,我想我们也要努力拓展自己的思维,努力去寻求新的方法,以创造出更为完善的应用程序; 九.程序:include <stdio.h>include <stdlib.h>include <conio.h>define N 3 /学生人数/define M 3 /课程门数/struct student{int num; /学号/char name20; /姓名/int score3; /三门课成绩/float average;}stuN; /学生数/void input; /查询/void select; /统计/void menu;void input{int i,j;printf"\t\t①成绩录入\n\n";fori=0;i<N;i++{printf"请输入学号:";scanf"%d",&stui.num;printf"请输入姓名:";scanf"%s",&;forj=0;j<M;j++{printf"第%d门成绩的分数:",j+1;scanf"%d",&stui.scorej;}printf"\n\n";}printf"\n\n";printf"输入完毕按任意键返回主菜单";}/2.查询/void selectint no{int i;printf"学生%d号: \n",no; printf"学号: %d\n",stuno-1.num; printf"姓名: %s\n",;for i=0;i<M;i++{printf"第%d门课程的成绩为: ",i+1; printf"%d\n",stuno-1.scorei;}printf"\n按任意键返回主菜单";getch;}/3.统计/void statistics{float temp=0;int i=0;/学生成绩平均分/temp=0;printf"\t\t③成绩统计\n\n";forj=0;j<N;j++{fori=0;i<M;i++{temp=temp+stuj.scorei;}stuj.average=temp/N;printf"\n学生%s的成绩平均成绩为:",;printf"%0.2f分",stuj.average;temp=0;}/排序/for j=0;j<N;j++fori=0;i<N-j-1;i++ifstui.average<stui+1.average{ temp=stui.average;stui.average=stui+1.average;stui+1.average=temp;}printf"\n\n学生平均成绩前三名:";fori=0;i<3;i++{printf"\n第%d名:%0.2f分",i+1,stui.average;}printf"\n\n按任意键返回主菜单";getch;}void menu{ int num=0;int n=0;printf"\n\t\t\t学生成绩管理系统\n\n";printf"\n\t\t\t①成绩录入\n\t\t\t②成绩查询\n\t\t\t③成绩统计\n\t\t\t④退出系统\n";printf"\t\t\tchoose:";scanf"%d",#switchnum{case 1:system"cls";input;break;case 2:system"cls";printf"\t\t②成绩查询\n\n"; printf"请输入要查询的学生号1~3:";scanf"%d",&n;selectn;break;case 3:system"cls";statistics;break;case 4:exit0;default:;}}void main{while1{system"cls"; /清屏/menu;}}。
学生成绩信息管理系统 课程设计实验报告
《可视化程序设计》课程设计专业:班级:指导老师:姓名:目录一、需求分析 (3)1.1任务需求 (3)1.2功能需求 (3)1.3界面需求 (3)二、概要设计 (4)2.1流程图 (4)2.2数据库E-R图 (4)三、详细设计 (4)3.1模块分析 (5)3.2实现方法(相关代码及界面) (5)四、调试分析 (15)4.1稳定性测试 (15)4.2界面分析 (15)五、课设总结 (15)一、需求分析任务需求题目要求完成一个学生成绩的信息管理系统,要求能进行对学生成绩的录入、修改和删除,能查询学生的成绩,同时可以对学生的成绩进行排序。
在Visual C++环境下,使用MFC和DBCS进行开发。
系统必须是基于单文档的程序框架或者是基于对话框的应用程序,包含菜单控件,使用数据库进行数据的存储操作,可用Access数据库。
系统的使用,必须有权限的现在,即只有管理员才能登陆系统。
功能需求系统有以下几个功能性要求:1.学生成绩的录入:能够将学生的成绩信息进行录入,考虑到学生的添加问题,加入新学生的添加功能。
2.学生成绩的修改:满足老师对学生成绩的修改,包括对数学、英语、语文成绩的修改。
3.学生成绩的删除:能够删除指定学生的指定课程成绩信息的删除,将要删除的成绩的信息进行清零。
4.学生成绩的查询:输入学号,查询对应学生的全部信息。
5.学生成绩的排序:为了更好的了解学生的学习情况,要求可以对学生的成绩进行排序查询,直观了解班级学生的学习状态。
包含四种排序:根据数学成绩的排序,根据英语成绩的排序,根据语文成绩的排序,根据总分的排序。
6.权限验证:用户使用该系统,首先进行验证,使用管理员账号和密码,才能登入系统。
界面需求1.登陆界面:有登陆账号和密码的输入框,如果输入账号或密码,提醒用户输入相应的信息。
登陆失败,提醒用户登陆失败。
2.主界面:包含菜单、工具栏以及状态栏。
通过登陆,主界面可以直接显示学生信息,同时,通过使用工具栏的向后按钮,显示数据库后一个同学的信息。
学生成绩管理系统实验报告
软件工程实验报告学校:渤海大学班级:11-6学号:110520005姓名:朱美林一.需求分析1 系统需求成绩管理成为学校教学管理中十分重要又相当复杂的管理工作之一,单纯的采用传统的手工处理已经不符合教育和管理的要求,而计算机具有运算速度快,处理能力强等特点,很自然地进入到这一应用领域中。
因此为了保证学校的信息流畅,工作高效,有必要设计一个学生成绩管理系统。
这不但能使教务人员从复杂的成绩管理中解脱出来,而且对于推动教学的发展也起到非常重要的作用。
学校学生成绩管理工作都是采用传统的手工管理,这各传统人工的管理方式存在着许多缺点,如:效率低,保密性差,一方面导致教师,学生成绩情况不了解,教师对成绩管理工作倍感头痛,因为时间一长,将产生大量的文件和数据,这对于查找,更新和维护都带来了不少的困难,耗费大量劳动力,难于避免错误的产生。
选择Eclipse来开发学生成绩管理系统,由于以上的优点,帮助广大教师提高工作效率,实现学生成绩信息管理工作流程的系统化、规范化和自动化,所以选择Eclipse来开发学生成绩管理系统。
需求的收集及分析:学生成绩管理系统应该完成以下两个方面的内容:学生档案资料的管理、学生成绩的管理(包括必修课和选修课),每个内容均需要提供添加、修改和查询的功能。
学生成绩管理系统在开发过程中收集到的客户需求文档记录的关键部分可概括为以下几个部分:1、可能会使用到该系统的用户:系统管理员、教师、学生;2、各类用户的权限不一样。
例如系统管理员可以添加、修改、查询学生档案资料和学生的成绩,学生只能查询自己的档案、成绩以及一些公共的信息,教师可以发布学生的成绩信息,而且只能查询自己所授课程的信息以及一些公共信息。
3、要有系统备份功能,系统出故障时,因该有相应的应急措施或者系统恢复功能。
由此可见,学生成绩管理系统需要满足3个方面的需求:管理员使用系统对全部数据进行维护操作;教师对于自己相关的部分数据实体进行操作;学生作为查询者对数据实体进行查询操作。
学生成绩管理信息系统实验报告
学生成绩管理信息系统实验报告在如今数字化时代,信息系统已经被广泛运用在各行各业,在教育领域中也不例外。
学生成绩管理信息系统是一种管理学生成绩、帮助教师了解学生学习情况、为学生提供个性化学习方案等方面的软件工具。
本次实验的目的是在探究学生成绩管理信息系统的基础上,对该系统进行设计、实现和测试。
以下将从实验思路、设计、实现和测试四个方面来阐述本次实验。
实验思路在进行实验前,首先要确定实验目的和实验思路。
本次实验的重点在于学生选课,并且在选课后能够及时更新学生信息,以及对学生成绩进行统计、查询、打印,为教师提供了解学生学习情况和写作评价的依据,让学校和家长可以及时掌握学生的学习情况,从而有针对性地进行教育和指导。
因此,在确定实验目的和重点后,我们就可以开始进行系统的设计和实现了。
系统设计系统设计是本次实验的核心,也是整个实验过程的重点。
在系统设计阶段,首先需要建立系统数据库,涉及的数据有学生的基本信息、成绩和选课情况。
然后,需要对学生专业、班级和课程进行分类,建立相应的查询和统计模板,方便教师快速定位学生,及时进行反馈和评价。
同时,还需要建立学生和教师的账号登陆系统,保证系统的安全性和可靠性。
最后,需要对系统进行界面设计,使之简洁明了,方便使用。
系统实现在系统设计完成之后,我们需要进行系统的实现。
实现过程中,需要使用到多种编程语言、技术和工具,如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)四、数据库实现数据库实施是指建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。
学生成绩管理系统测试报告范本
学生成绩管理系统测试报告软件测试学生成绩管理系统学号:姓名:班级:指导老师:成绩:第一章数据字典1.1教师信息(Teacher):教师编号 Tno CHAR(7)教师姓名 Tname NCHAR(5)所在系 Tdept NVARCHAR(20)登录密码 Tpasword CHAR(6)学生信息(Student):学号 Sno CHAR(7)姓名 Sname NCHAR(5)性别 Sex NCHAR(1)年龄 Sage TINYINT (2)所在系 Sdept NVARCHAR(20)登录密码 Spasword CHAR(6)成绩信息(Grade):学号 Sno CHAR(7)姓名 Sname NCHAR(5)课程编号 Cno VARCHAR(5)课程名 Cname CHAR(20)平时成绩 PSgrade INT(2)实验成绩 SYgrade INT(2)课程设计 KCSJgrade INT(2)期末总成绩 Grade INT(2)课程信息(Course):课程编号 Cno CHAR(10)课程名 Cname CHAR(20)授课教师 Tname NCHAR(5)系别 dept NVARCHAR(20)1.2概念模型设计根据上面数据字典设计建立相对应的概念模型,从数据字典抽象出的实体有:教师信息实体、学生信息实体、成绩信息实体、课程信息实体。
各个实体具体的描述E-R图如下。
教师员信息实体E-R图:3 教师员信息实体E-R图学生信息实体E-R图:图4 学生信息实体E-R图成绩信息实体E-R图:图5 成绩信息实体E-R图课程信息实体E-R图:图6 课程信息实体E-R图第2章测试计划2.1简要说明软件测试是软件开发时期的最后一个阶段,也是软件质量和可靠性保证中至关重要的一个环节。
软件测试的基本任务是经过在计算机上执行程序,暴露出程序潜在的错误,以便进行纠错,从而保证程序的可靠运行,降低软件的风险。
所谓测试用例,就是意发现错误为目的而精心设计的一组测试数据。
学生成绩管理系统实验报告
云南财经大学本科实践报告课程管理信息系统班级信计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模块。
学生成绩管理系统实验报告
洛阳理工学院课程设计报告课程名称数据库课程设计设计题目学生成绩查询系统专业计算机科学与技术班级 B100506 学号姓名孙帅杰完成日期2013年1月6号课程设计任务书设计题目:学生成绩管理系统设计内容与要求:设计内容:教务员可以输入学生、教师、班级、课程信息,一个班级只属于一个专业,一个学生只属于一个班级。
教务员负责输入每个专业、每个班级需要学习哪些课程,指定课程的任课教师。
一个教师可以教授多个班的多门课程。
教师可以查看学习该课程的学生名单。
课程结束后,教师可以录入课程成绩。
课程分两类,必修课和选修课。
学生可以选修课程,每学期几门。
学生可以查看自己各门课程的成绩。
学生还可以进行评教,给老师打分。
系统管理员可以输入教室信息,并结合班级、课程、教室信息实现自动排课。
设计要求:要求完成需求分析,写出功能需求和数据需求描述;在需求分析的基础上完成数据库的概念结构设计、逻辑结构设计、物理结构设计;用C#语言,完成管理系统的部分程序模块的界面设计。
指导教师:陶荣2012年12月28日课程设计评语成绩:指导教师:年月日目录1.绪论 (1)1.1 设计目的 (1)1.2 开发工具选择 (1)1.3 开发环境 (1)1.4 本报告的主要内容 (1)2.需求分析 (1)2.1 需求分析的任务 (2)2.2 功能需求 (2)2.3 数据需求 (3)3.总体设计 (3)3.1设计概述 (3)3.2系统总体结构及功能模块划分 (3)3.3系统数据库概念结构设计 (4)3.4 逻辑结构设计 (5)4.主程序设计 (7)4.1 登录模块 (7)4.2 学生信息查询、保存、及修改 (8)4.3 用户管理 (10)5.设计总结 (11)6.心得体会 (12)参考文献 (12)1.绪论1.1 设计目的随着学生的数量的日益增多,学校对学生成绩管理的要求也越来越高,因此学校对学生信息的管理也更系统化,数字化,为了提高学生的实际应用数据库的能力,使学生锻炼简单的数据库开发能力,因此决定设计一个简单的学生成绩管理系统,包括学生信息,课程信息,以及成绩信息和任课教师信息,能够存储相应学生评教信息,和课程安排提供的学生成绩管理各种功能分为面向学生,教师和教务员三部分,其中教务员可以录入学生,教师,班级,课程信息,每个专业、每个班级需要学习哪些课程,指定课程的任课教师,给每个班的每门课程安排指定的认课老师。
学生成绩管理系统实训报告精篇
郑州轻工业学院实训报告实训名称:学生成绩管理系统姓名:褚超院(系):软件学院专业班级:网络软件开发14-01班学号:指导教师:孙海燕成绩:时间:2015 年1 月5 日至2015 年1 月9 日目录实训任务书………………………………………………………实训进度日历……………………………………………………实训报告…………………………………………………………实训感想………………………………………………………….实训任务书一、题目“学生成绩管理系统”设计二、学生信息专业学号姓名三、用户需求及约束条件1、用C语言实现“学生成绩管理系统”。
2、设计“学生成绩管理系统”的用户界面,系统启动进入后,只能通过界面菜单指令才能退出。
3、“学生成绩管理系统”具有以下功能:1)系统启动后,弹出一个用户界面,能实现人机交互的功能。
而且只能通过界面菜单命令实现各种功能(包括系统退出功能)。
2)录入学生成绩(信息有:班级、姓名、学号、五门课程成绩);3)计算每门功课的平均成绩和学生五门功课的平均成绩并存档。
下面的功能必须是第3)项功能完成以后才能进行。
4)输出学生的信息和对应的原始成绩以及平均成绩;5)按平均成绩进行排序,输出排序后的学生信息以及对应的课程成绩和平均成绩。
6)对成绩修改,分别有两种模式,一种是按学号查找后进行修改;另一种是按姓名查找后进行修改;修改后重新排序学生的顺序,并输出学生信息和对应课程成绩和平均成绩。
7)增补遗漏的学生以及对应的信息和对应的课程成绩,并计算出平均成绩,增补以后重新排序学生顺序,并输出学生信息和对应课程成绩和平均成绩。
8)附加功能:把学生信息和对应的课程成绩和平均成绩存入到文件中。
9)附加功能:输出文件中的内容。
10)附加功能:试着从文件中导入数据到成绩管理系统中,然后进行管理。
四、设计要求、技术参数及设计规格1、原始成绩由老师统一给出,在 Excel表中;2、设计的系统能够运行,提交源程序、目标文件和可执行文件;3、提交实训报告,实训报告中列写:1)软件需求分析;2)软件规格说明和设计要求;3)对数据的管理方案;4)“学生成绩管理系统”设计的思路和整体框架;5)各功能或者模块实现的思路(或者用带注释的程序代替)并交待模块之间的接口关系;6)“学生成绩管理系统”设计的结果(可以用一些屏幕拷贝的图来补充说明)。
学生成绩管理系统测试报告
软件测试学生成绩管理系统学号:XX:班级:指导教师:成绩:目录第1章引言 (1)1.1 编写目的 (1)1.2 工程背景 (1)1.3 定义 (1)1.4 参考资料 (1)第2章需求分析 (2)2.1 问题分析 (2)2.2 可行性分析 (2)2.2.1 性能需求分析 (2)2.2.2 运行需求 (3)2.2.3 其他需求 (3)2.3 系统功能分析 (3)2.4 关键设计和实现技术说明 (4)2.5顶层数据流图 (4)2.6系统功能模块 (4)2.7数据字典 (6)2.8概念模型设计 (6)2.9小结 (8)第3章系统测试 (9)3.1 简要说明 (9)3.2 测试进度安排 (9)3.3 等价分类法 (11)3.3.1 说明 (11)3.3.2 教师信息局部 (11)3.3.3 学生信息局部 (11)3.3.4 课程信息局部 (13)3.3.5 学生成绩局部 (14)3.4 路径分析法 (15)3.4.1 控制流图 (15)3.4.2 测试用例 (17)第4章评价准那么 (18)4.1 围 (18)4.2 准那么 (18)4.3 数据整理 (18)4.4 对性能的规定 (18)4.5 其他专门要求 (19)第5章总结 (19)第1章引言1.1编写目的为提高其平安性和响应速度,本系统是基于C/S构造的学生成绩管理系统,通过该系统可对学生成绩信息进展便管理,为学校学生和教师建立一个成绩信息沟通的平台,从而便学校学生的成绩管理。
为了保证学生信息管理系统的各项功能可靠的实现,特编写了此测试方案,对所开发软件的各功能模块和事例系统进展测试。
1.2工程背景随着社会信息量的与日俱增,学校需要有一个很好的学生成绩管理系统,以便对学生成绩进展有效的管理。
系统应具有既便教师对觉得成绩的查询和插入,也便学生对自己成绩和获得的学分进展查询的功能。
其中:➢软件系统名称:学生信息管理系统➢工程的任务提出者:?软件工程?珊燕教师➢用户:教务处信息管理人员、教师、学生和相关人员1.3定义从用户角度来看,系统首先应该能够提供便捷与强大的信息查询功能。
数据库实验报告--学生成绩管理系统
通信与信息工程学院数据库实验报告学生成绩管理数据库姓名:唐袁苹、李佼阳学号:09210373、09210375班级:0120903指导教师:邹洋二0一二年五月目录一、题目 (3)二、需求分析 (3)1.背景介绍 (3)2.任务概述 (3)3.功能需求 (3)三、设计工具 (4)四、详细设计 (4)五、关键技术 (25)六、心得体会 (27)七、参考文献 (27)一、题目学生成绩管理数据库二、需求分析1.背景介绍每个学校都有成千甚至上万的学生,而每个学生的基本信息以及成绩不仅是学校所关注的,也是每个学生所关心的。
每一年的的六月份,有大批的毕业生离去;同年九月份,又有一批新同学加入进来。
离去的学生信息要及时的从学校管理系统中删除,新来的同学的信息要及时的录入系统。
别看只有两项大的任务,其实操作起来远非想象中的简单。
为了解决学生基本信息以及成绩的管理问题,本小组开发了一个简单的“学生成绩管理数据库”应用系统,可以对学生的信息进行管理。
2.任务概述基于ACCESS,结合VBA和SQL语言,实现对学生基本信息以及成绩的管理,包括对学生信息的添加,删除,查询等。
管理员用自己的用户名和密码登录“学生成绩管理数据库”应用系统后,对学生相关的信息进行查看与管理。
3.功能需求系统主菜单包括:信息维护,信息浏览,报表,搜索查询,系统。
信息维护可以查看学生信息,课程信息,学生成绩;信息浏览可以查看学生信息,课程信息,成绩查询;报表可以打印输出学生信息,课程信息,学生成绩;搜索查询可以输入某一个学生的学号或姓名查看学生信息,学生成绩;系统里包含关于和退出两项功能。
系统总体功能结构图如下:三、设计工具ACCESS四、详细设计1.设计数据库概念模型数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效果以及实现的效果的影响。
合理的数据库结构设计可以提高数据库存储的效率,保证数据的完整和一致。
同时,合理的数据库结构设计也将有利于应用系统程序的实现。
学生成绩管理系统实验报告
C语言集中上机实习报告院系:光电工程学院班级: 02111507姓名:指导教师:***题目:学生成绩管理系统2016年 12月8日完成实验报告的正文有七部分,分别是:•题目名称:•设计思路:包括总体设计和每个模块的算法•最初程序代码:•调试过程(写明调试过程中出现的所有语法错误和逻辑错误,这是评定成绩的主要依据)•最终程序代码:•测试结果:(截图)•心得体会:下面以一个简单的题目为例:一、题目:学生成绩管理系统二、思路:先定义学生人数和学号和学生姓名和各科成绩变量,再调用函数,最后再输出,系统基本完善。
三、最初程序代码:#include <stdio.h>#include <string.h>#include <stdlib.h>#define NUMOFSTU 10 /* 定义学生人数 */#define NUMOFCOURSE 2 /* 定义考试科目 */struct student{int n umber; /* 每个学生的学号 */char name[10]; /* 每个学生的姓名 */int s core[NUMOFCOURSE]; /* 每个学生M门功课的成绩 */ float sum; /* 每个学生的总成绩 */float average; /* 每个学生的平均成绩 */};typedef struct student STU;void PrintScore(STU pt[], int n);void InputStudent(STU pt[],int n);void Total(STU pt[],int n);void Sort(STU pt[],int n);int SearchByNumber(STU pt[], int n,int number_to_search);int SearchByName(STU pt[], int n,char name_to_search[]);char Menu(void);四、调试过程:出现的提示如下:1.执行 cl.exe 时出错.执行结果:经过对整个程序的排错,发现在过程中,缺少一个结束语。
学生成绩管理系统实验报告1
学生成绩管理系统实学生成绩管理系统实学生成绩管理系统实学生成绩管理系统实验报告验报告验报告验报告指导老师:汪洋09级信管一班第八小组组长:李雪情成员:李儒浩、李默、杨善朋一一一一、、、、可行性分析可行性分析可行性分析可行性分析 1、、、、引言引言引言引言…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………1.11.11.11.1编写目的编写目的编写目的编写目的……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………1.2背景背景背景背景…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………1.3参考文献参考文献参考文献参考文献……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………1.4定义定义定义定义……………………………………………………………………………………………………………………………………………………………………………………………………… (2)222、、、、可行性研究可行性研究可行性研究可行性研究2.12.12.12.1目标目标目标目标…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………2.32.32.32.3开发资源要求开发资源要求开发资源要求开发资源要求………………………………………………………………………………………………………………………………………………………………………………………………………………………………2.42.42.42.4进行可行性研究的方法进行可行性研究的方法进行可行性研究的方法进行可行性研究的方法……………………………………………………………………………………………………………………………………………………………………………………2.52.52.52.5评价尺度评价尺度评价尺度评价尺度……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………二二二二、、、、系统分析系统分析系统分析系统分析1、、、、需求分析需求分析需求分析需求分析…………………………………………………………………………………………………………………………………………………………………………………………………………………… 1.11.11.11.1组织结构分析组织结构分析组织结构分析组织结构分析………………………………………………………………………………………………………………………………………………………………………………………………………………………………1.21.21.21.2结构功能分析结构功能分析结构功能分析结构功能分析………………………………………………………………………………………………………………………………………………………………………………………………………………………………2222、、、、信息系统流程图信息系统流程图信息系统流程图信息系统流程图…………………………………………………………………………………………………………………………………………………………………………………………………………2.12.12.12.1业务流程图业务流程图业务流程图业务流程图…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………2.22.22.22.2数据流程图数据流程图数据流程图数据流程图…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………2.32.32.32.3功能结构图功能结构图功能结构图功能结构图…………………………………………………………………………………………………………………………………………………………………………………………………………3、、、、数据字典数据字典数据字典数据字典……………………………………………………………………………………………………………………………………………………………………………………………………………………3.13.13.13.1数据流描述数据流描述数据流描述数据流描述…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………3.23.23.23.2数据加工处理的描述数据加工处理的描述数据加工处理的描述数据加工处理的描述………………………………………………………………………………………………………………………………………………………………………………………………5555、、、、数据存储的描述数据存储的描述数据存储的描述数据存储的描述……………………………………………………………………………………………………………………………………………………………………………………三三三三、、、、系统设计系统设计系统设计系统设计1111、、、、功能结构图设计功能结构图设计功能结构图设计功能结构图设计…………………………………………………………………………………………………………………………………………………………………………1.1.1.1. 1111功能需求描述功能需求描述功能需求描述功能需求描述……………………………………………………………………………………………………………………………………………………………………………………………………………………1. 2222功能结构图设计功能结构图设计功能结构图设计功能结构图设计 (2)222、、、、系统各模块说明系统各模块说明系统各模块说明系统各模块说明…………………………………………………………………………………………………………………………………………………………………………2.2.2.2.1111登陆界面设计登陆界面设计登陆界面设计登陆界面设计……………………………………………………………………………………………………………………………………………………………………………………………………………………2.2.2.2.2222主界面主界面主界面主界面……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………2222.3.3.3.3、、、、各子界面各子界面各子界面各子界面……………………………………………………………………………………………………………………………………………………………………………… (3)333、、、、输入设计输入设计输入设计输入设计……………………………………………………………………………………………………………………………………………………………………………………………………………………4444、、、、输出设计输出设计输出设计输出设计 (5)555、、、、代代代代码设计码设计码设计码设计……………………………………………………………………………………………………………………………………………………………………………………………………………………四四四四、、、、系统实施系统实施系统实施系统实施1111、、、、程序设计程序设计程序设计程序设计……………………………………………………………………………………………………………………………………………………………………………………………………………………1111、、、、程序框图程序框图程序框图程序框图……………………………………………………………………………………………………………………………………………………………………………………………………………………可行性分析部分可行性分析部分可行性分析部分可行性分析部分1111引言引言引言引言1.11.11.11.1编写目的编写目的编写目的编写目的建立学生成绩管理系统,采用计算机对学生成绩进行管理,帮助广大师生提高工作效率,实现学生成绩管理工作流程的系统化、规范化和自动化,减少人力财力投资。
学生成绩管理系统实验报告
学生成绩管理系统实验报告学生成绩管理系统实验报告一、引言学生成绩管理系统是一种利用计算机技术来管理学生学业成绩的工具。
它的出现使得学校教务工作更加高效、便捷,为教师和学生提供了一个更好的学习和管理平台。
本实验旨在通过设计和实现一个学生成绩管理系统,探索其在学校教务管理中的应用。
二、设计与实现1.需求分析在设计学生成绩管理系统之前,我们首先进行了需求分析。
通过与学生、教师和教务人员的交流,我们了解到他们对学生成绩管理系统的需求主要包括以下几个方面:- 学生成绩录入与查询:教师可以录入学生的成绩,学生和家长可以查询学生成绩。
- 成绩分析与统计:系统能够对学生成绩进行分析和统计,提供给教师、学生和家长参考。
- 课程管理:系统能够管理学校的课程信息,包括课程名称、教师信息等。
- 学生信息管理:系统能够管理学生的基本信息,包括姓名、学号、班级等。
2.系统设计基于需求分析的结果,我们设计了一个学生成绩管理系统的原型。
系统采用了B/S架构,即浏览器/服务器架构,用户通过浏览器访问系统,服务器进行数据处理和存储。
前端采用了HTML、CSS和JavaScript等技术,后端采用了Java语言和MySQL数据库。
3.系统实现在系统实现过程中,我们按照需求分析和系统设计的结果,逐步完成了系统的各个功能模块。
首先,我们实现了学生信息管理模块,包括学生基本信息的录入、修改和查询功能。
然后,我们实现了课程管理模块,包括课程信息的录入、修改和查询功能。
接着,我们实现了成绩录入与查询模块,教师可以录入学生的成绩,学生和家长可以查询学生成绩。
最后,我们实现了成绩分析与统计模块,系统能够对学生成绩进行分析和统计,并生成相应的报表。
三、实验结果与讨论通过对学生成绩管理系统的设计与实现,我们得到了一个功能完善、操作简便的学生成绩管理工具。
在实验过程中,我们邀请了教师、学生和家长来测试系统,并收集了他们的反馈意见。
1.用户反馈教师们表示,学生成绩管理系统大大减轻了他们的工作负担,提高了工作效率。
成绩管理系统实验报告
成绩管理系统实验报告一、引言在当今教育领域,成绩管理是学校教学管理工作的重要组成部分。
为了提高成绩管理的效率和准确性,开发一个功能完善的成绩管理系统具有重要的现实意义。
本实验旨在设计并实现一个成绩管理系统,以满足学校对学生成绩进行有效管理的需求。
二、系统需求分析(一)功能需求1、学生成绩录入:支持教师或管理员批量或单个录入学生的各科成绩。
2、成绩查询:学生和教师能够按照不同条件(如学号、课程名称、学期等)查询成绩。
3、成绩统计分析:能够对学生的成绩进行统计,如平均分、总分、排名等,并生成相应的报表。
4、成绩修改与删除:在特定条件下,允许教师或管理员对成绩进行修改和删除操作。
5、用户管理:对系统的用户(教师、学生、管理员)进行管理,包括用户的添加、删除、修改权限等。
(二)性能需求1、响应时间:系统在处理成绩录入、查询等操作时,响应时间应在可接受的范围内,一般不超过 5 秒。
2、稳定性:系统应能够稳定运行,在长时间的使用过程中不出现崩溃或数据丢失的情况。
3、安全性:确保系统中的成绩数据安全,对用户的操作进行权限控制,防止非法访问和数据篡改。
(三)数据需求1、学生信息:包括学号、姓名、班级等。
2、课程信息:课程名称、课程编号、学分等。
3、成绩信息:学号、课程编号、成绩、学期等。
三、系统设计(一)总体架构设计成绩管理系统采用 B/S 架构,即浏览器/服务器模式。
用户通过浏览器访问系统,服务器端负责处理业务逻辑和数据存储。
(二)数据库设计1、学生表(student):包含学号(student_id)、姓名(student_name)、班级(class)等字段。
2、课程表(course):包含课程编号(course_id)、课程名称(course_name)、学分(credit)等字段。
3、成绩表(score):包含学号(student_id)、课程编号(course_id)、成绩(grade)、学期(semester)等字段。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五《学生成绩管理系统》数据库设计实验报告一、实验目的运用了数据库原理和Oracle数据库知识,针对具体的数据库设计工具,完成数据库的设计与编程。
二、实验内容《学生成绩管理系统》保存系统用户信息、学生基本信息、班级(含系)信息、课程信息、选课信息、成绩信息。
三、实验仪器、设备软件:网络环境、Windows Server/NT或Linux或Unix操作系统、Oracle 9i、数据库设计工具ERWIN。
硬件:PIII 1G以上CPU、512 M以上内存、6.4GB以上的空闲磁盘空间和1000MB虚拟内存。
四、实验步骤1、分析《学生成绩管理系统》需求 ----见附件一学生成绩管理系统需求分析报告一、系统需求的收集及分析:学生成绩管理系统应该完成以下两个方面的内容:系统用户信息、学生基本信息、班级(含系)信息、课程信息、选课信息(包括必修课和选修课)、成绩信息,每个内容均需要提供CRUD操作。
学生成绩管理系统在开发过程中收集到的客户需求文档记录的关键部分可概括为以下几个部分:1、可能会使用到该系统的用户:系统管理员、教师、学生;2、各类用户的权限不一样。
例如系统管理员可以添加、修改、查询学生档案资料和学生的成绩,学生只能查询自己的档案、成绩以及一些公共的信息,教师可以发布学生的成绩信息,而且只能查询自己所授课程的信息以及一些公共信息。
学生成绩管理系统需要满足3个方面的需求:1)管理员使用系统对全部数据进行维护操作;2)教师对于自己相关的部分数据实体进行操作;3)学生作为查询者对数据实体进行查询操作。
现在的学生成绩管理系统基本上能做到这几个方面的要求,但多数系统在功能上依然存在缺陷和不足,尤其是在用户界面的友好性以及查询结果的可视化方面存在着很大的问题。
二、系统功能需求:我们的系统需要实现的功能主要包括以下几个方面:1、设计不同用户的操作权限和登录方法;2、管理员可以添加、修改和查询学生的档案记录,同时可以添加、修改和查询学生的成绩记录,有对学生成绩信息开放度的管理权;3、管理员对学生的档案和成绩进行审查,生成学生的档案记录报表和学生成绩报表;4、教师可以查询所授课程的学生信息,可以录入并查询所授课程的成绩;5、学生有查询个人档案信息和成绩信息的权利;满足上述要求的系统应该包括以下几个模块:基本数据维护功能;数据库管理功能;基本业务功能。
基本数据的维护功能添加学生的档案信息修改学生的档案信息删除学生的档案信息删除学生的成绩信息修改学生的成绩信息添加学生的成绩信息查询结果的可视化管理三、数据需求(1)学生信息包括:学号、学生姓名、性别、出生日期、所在学院、专业、班级等。
(2)课程信息包括:课程编号、课程名称、所属专业等。
(3)选课信息包括:学生姓名、课程名称、开课时间、成绩等。
一、基本数据维护功能1、添加学生的档案信息。
2、修改学生的档案信息。
3、删除学生的档案信息。
4、添加学生的成绩信息。
5、修改学生的成绩信息。
6、删除学生的成绩信息。
7、查询结果的可视化管理。
描述图如下:二、数据库管理功能1、档案和成绩信息管理。
2、帐户信息管理。
3、档案和成绩信息查看管理。
三、基本业务功能1、查看档案信息和成绩信息。
2、添加成绩信息。
2、设计完成《学生成绩管理系统》的数据库ER图3、编写《学生成绩管理系统》数据库设计文档----见附件三《学生成绩管理系统》数据库设计文档(共七张表)表名用户信息数据字段数据类型用户id integer(主键)密码Varchar2用户类型枚举(学生,老师,管理员)姓名Varchar2性别Varchar2生日Varchar2专业Integer(外键)表名选课信息选课id integer(主键)学生学号integer(外键)课程号integer(外键)开课时间Varchar2表名课程信息课程id integer(主键)课程名Varchar2所属专业integer(外键)表名专业信息专业id integer(主键)专业名Varchar2选课id integer(外键)表名成绩信息成绩id integer(主键)选课号Integer(外键)成绩分数float表名班级信息班级id integer(主键)班级名Varchar2所属专业Integer(外键)表名授课信息授课id Integer(主键)老师id Integer(外键)课程号Integer(外键)4、编写《学生成绩管理系统》的Oracle数据库SQL脚本------见stu_admin.sqlcreate table t_user --1 没有找到合适的工具导出,矮油......(user_id number not null primary key,user_pass varchar2(30),user_type varchar2(5),user_name varchar2(10),sex varchar2(3) default '男',birthday varchar2(21),profession number);create table t_profession --2(pro_id number not null primary key,pro_name varchar2(15),select_id number);alter table t_user --3,1中profession number --REFERENCES t_profession(pro_id) add constraint fk_pro foreign key(profession) references t_profession(pro_id);create table t_selection--4(select_id number not null primary key,stu_id number, --references t_user(user_id),course_id number, --references t_course(course_id),start_time varchar2(21));alter table t_profession --5 ,,2中select_id number --references t_selection(select_id) add constraint fk_pro_1 foreign key(select_id) references t_selection(select_id);create table t_course --6(course_id number not null primary key,course_name varchar(10) ,profession_id number references t_profession(pro_id));alter table t_selection --7 ,,4中stu_id number, --references t_selection(select_id), add constraint fk_pro_2 foreign key(stu_id) references t_user(user_id);alter table t_selection --8 ,,4中course_id number, --references t_selection(select_id), add constraint fk_pro_3 foreign key(course_id) references t_course(course_id);create table t_education --9(edu_id number not null primary key,teacher_id number references t_user(user_id),course_id number references t_course(course_id));create table t_grade --10(grade_id number not null primary key,select_id number references t_selection(select_id),score number(4,2));create table t_class_info--11(class_id number not null primary key,class_name varchar2(10),profession_id number references t_profession(pro_id));5、编写《学生成绩管理系统》的Oracle数据PL/SQL程序----见 pl_sql.sql--------------------------------以下仅以t_user表为例,其他表是类似的-----------------------------------------------------------------序列+触发器作为字段自增的工具----------------------------------create sequence sequence_1increment by 1start with 1maxvalue 1000000000nocachenocycle;create or replace trigger user_insertbefore insert on t_userfor each rowdeclaretable_id number;beginselect sequence_1.nextval into table_id from sys.dual;:er_id = table_id;end;---------------------------------------游标(查找user_id之后的用户的姓名)-------------------------------------declarecursor user_cursor(user_id number) isselect user_name from t_user where user_id = user_id;user_rec user_cursor%rowtype;beginopen user_cursor('&user_id');loopfetch user_cursor into user_rec;exit when user_cursor%notfound;dbms_output.put_line('user_name'||user_er_name);end loop;close user_cursor;end;------------------------------------- 创建函数查学生平均成绩------------------------------- create or replace function aval_grade(user_id in t_er_id%type)return number(4,2)is stu_grade t_grade.score%type := 0;beginselect aval(grade) into stu_gradefrom t_grade t_a, t_selection t_bwhere t_a.select_id = t_b.select_id and t_b.stu_id = user_id;return stu_grade;end get_sal;variable stu_id number(4,2)execute :stu_id := aval_grade(34)print ||'平均成绩是:'|| stu_id;6、在Oracle数据库服务器中执行SQL脚本和PL/SQL程序,创建《学生成绩管理系统》数据库。