《成绩管理系统软件工程课程设计报告.doc》由会员分享,可在线阅读,更多相关《成绩管理系统软件工程课程设计报告.doc(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、课程报告说明书课 程 名 称: 软件工程 系 统 名 称: 学生成绩管理系统 年级/专业/班: 12软件工程班 学 生 姓 名: 林 科 辰 学 号: 201240450141 指 导 教 师: 余 钢 课程考核成绩:系统开发(代码质量、完成度、规范性)(30)创新性(10)说明书撰写(规范性、图表、报告内容)(60)总 分(100) 2014 年 6 月 6 日目 录1 前言11.1系统简介11.2设计目的12 需求分析22.1 功能模块划分22.2 功能模块描述32.3数据字典与数据流图83 概要设计143.1 软件功能结构144 详细设计154.1数据库设计154.2界面设计要求164.
2、3学生成绩管理界面设计194.4教师管理界面设计244.5管理员界面设计305 实现355.1 实现环境355.2 语言选择356 测试分析36总 结40参考文献41 1 前言1.1系统简介 本系统主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是用计算机对学生信息进行日常管理,如查询、修改 、增加、删除,另外还考虑到用户登录的权限,针对学生信息和权限登录的学生成绩管理系统。 本系统主要包括注册管理、教师管理、学生信息查询、添加、修改、删除等部分。其功能主要有:(1)学生信息的添加,包括输入学生基本信息和成绩。(2)学生信息的查询,包括查询学生基本信息和
3、成绩。(3)学生信息的修改,包括修改学生基本信息和成绩。(4)学生信息的删除,包括修改学生基本信息和成绩。(5)登录用户密码修改,用户登录到系统可进行相应的用户密码修改。(6)管理员用户对用户名的管理,包括添加新用户、删除用户。 学生成绩管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。 经过分析,我们使用Microsoft公司的开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内
4、建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。1.2设计目的 近年来,随着学校的办学规模越来越大,在校学生数也日益增多,随之而来的是教务管理工作日趋复杂繁重,要耗费大量人力、物力,已愈来愈成为学校日常管理工作的一个瓶颈。学生成绩管理是教务、教学管理中一个重要组成部分,也是比较烦琐的工作。在学生成绩管理事务中,一般有成绩输入:对各年级各班各学期学生的各科成绩进行输入;成绩统计:需要对每个学生的成绩进行处理,例如排名次,成绩汇总,成绩升降;成绩报表:将学生成绩以报表形式输出等等。每次考试都需要大量的人力、物力,为了减轻学生成绩管理工作量和实现现代化
5、的科学管理,特设计这个系统。并根据学校的实际情况,制定以下数据和功能需求。2 需求分析2.1 功能模块划分登录系统请求用户名及密码用户不存在或密码错误登录密码及用户类型验证用户存在且密码正确是否系统管理员?进入队员管理模块否是是进入后台管理模块操作结束?否是操作结束?是是退出系统 图2.1:程序流程图 图2.2:功能模块划分图2.2 功能模块描述 功能需求:学生成绩管理系统主要提供方便高效的管理功能以及网上的信息查阅平台,学生可以通过该系统查阅相关信息,管理员可以管理所有信息。对于本系统,我们需要实现以下一些基本功能:1 学生查询功能:为了方便学生查找成绩等信息,将所有信息按照需要进行分类。这
6、样学生就能很方便的找到自己需要的信息。2 添加功能:管理员可以通过填写表格的形式输入学生成绩等相关信息。系统可以自动避免重复信息。3 修改功能:管理员可以对数据库中的信息进行修改。系统能够通过管理员给出的条件查找出所要修改的信息,对修改后的信息进行保存,并自动查找是否是重复信息。4 删除功能:管理员可以对数据进行删除操作。系统能够通过管理员给出的条件查找出要删除的信息,并提示是否确定删除,如果确定删除,则把相关信息从数据库中删除掉。 5 管理员排序功能:管理员可以通过条件选择查询所有信息,并进行排序。性能需求分析:登录、用户界面需求:简洁、易懂、易用、友好的用户界面。安全保密性需求:只有凭借用
7、户名和密码登陆系统,才能进行信息的管理等。 登录模块 : 是用户可以进行各种操作的必须前提。输入项目:用户名、密码。输出项目:浏览区和基本资料区。程序逻辑:P1:检查用户名、密码与数据库是否吻合(完整性和一致性)。P2:产生提示用户名或密码错误的消息窗口;P3:用户确认后退出程序运行;P4:进入主窗体;P5:进入事件等待状态。功能编号A1功能名称登录功能调查者 A调查时间 B审核人 C功能描述用户(学生、教师、管理员)可以根据自己所也有的权限进行不同登陆界面的登录,是用户可以进行各种操作的必须前提。输入项用户名、密码。处理描述根据不同的权限进行不同的登陆界面,不同的操作。程序逻辑:1:检查用户
8、名、密码与数据库是否吻合(完整性和一致性)。2:产生提示用户名或密码错误的消息窗口;3:用户确认后退出程序运行;4:进入主窗体;5:进入事件等待状态。输出项浏览区和基本资料区。界面要求美观即可 表2.2.1登录模块表 成绩录入模块 主要功能用来对学生的成绩进行收集和修改。具体包括学生成绩录入、修改、增加、删除、查询、打印等功能,由于一些资料可以Word文档或Excel表格输入,故在此模块中增加了导入、导出数据功能。修改要与成绩录入相对应。增加、删除是对基本表的操作。查询条件设置应该齐全,可以年级查询,也可以姓名查询,学号查询等等。查询模块 功能:完成查询功能。性能:相应时间应尽量快。输入项目:
9、要查询的查询项。输出项目:查询项。程序逻辑:P1:进入查询窗体;P2:若用户取消,则返回;P3:获得查询结果;P4:查询结果显示在主窗体上,并等待用户确认;P5:若查询结果项数等于零,返回。功能编号A1功能名称查询功能调查者 A调查时间 B审核人 C功能描述完成各个用户需求的查询功能,性能相应时间应尽量快。输入项要查询的查询项。处理描述先进入查询窗体,根据不同的查询需求进行匹配查询,若用户取消,则返回;输出项所需要的查询项。界面要求美观即可 表2.2.2查询模块表查询不符合条件条件 满足条件 数据库显示结果退出 图2.2.1 查询模块流程图修改模块功能:完成修改功能。输入项目:各种修改。输出项
10、目:修改后的基本资料程序逻辑:P1:点击要修改的表;P2:产生窗体;P3:等待用户修改。功能编号A1功能名称修改功能调查者 A调查时间 B审核人 C功能描述完成各个用户不同需求的修改功能,性能响应时间应尽量快。输入项各种修改项。处理描述对表格的内容进行修改,若权限足够,则可以对其进行权限内的修改,否则不可产生修改项输出项修改后的基本资料界面要求美观即可 表2.2.3修改模块功能表登入成绩管理系统维护查找记录查找成功显示出错信息修改增加记录继续?继续?退出 图2.2.2修改模块流程图功能编号A5功能名称排序功能调查者 A调查时间6月1日审核人包先跃功能描述完成学生成绩的升序排列功能,性能响应时间
11、应尽量快。输入项所有学生成绩。处理描述对学生的成绩进行排序,若权限足够,则可以对其进行成绩的排序,否则不可产生排序项输出项修改后的基本资料界面要求美观即可 表2.2.4 :排序功能模块2.3数据字典与数据流图2.3.1数据流图图:2.3.1顶层数据流图图2.4.6学生数据流图12.4.7学生数据流图22.3.2数据字典 数据元素系统名:学生成绩管理系统 别名:the Student result management system条目名1:学生成绩 条目名2:用户信息 属于数据流 学生成绩信息和用户信息 存储处 SQL Server 20R2数据库中的学生成绩表和用户信息表数据元素构成: 1.
12、学生成绩=学号+姓名+课程名+分数 数据元素详述:1)学号:唯一标识某一用户的元素。2)姓名:这一元素在一定情形下可唯一标识某一学生,但一般和学号一起来作为主键。 3)课程名:当要查询某一学生所学习的课程时,先找到其学号然后就可以找到他(她)所学习的课程名。4)分数:这一元素单独存在时无实际意义,作为学生成绩时,必须知晓学生的学号、姓名、课程名。 2.用户信息=用户名+密码+类别+科目数据元素详述:1)用户名:唯一标识某一用户的元素。2)密码:系统登录时的通行证。3)类别:由学生、教师、管理员三个类别组成,而这三个类别又有着其各自的功能。4)科目:学生作为一个普通用户,科目为空,因为他(她)只
13、能查询自己的成绩,是一个被动者,故不同的科目对于该用户本身无实际意义;教师拥有添加用户、成绩等功能,这几个功能就涉及到科目,故在数据库添加教师用户时就要强调科目;管理员作为整个系统的管理者,拥有最高权限,但他(她)只需要添加或删除用户来达到管理系统的目的即可。修改记录:编写陈立阳日期2014年5月25日 审核 包先跃日期2014年6月14日表2.3.1数据元素 数据流系统名:学生成绩管理系统 别名:the Student result management system 条目名1:查询个人成绩 条目名2:添加基本信息 条目名3:删除基本信息 条目名4:修改基本信息 条目名5:排序 来源: 成绩
14、信息表和用户信息表去处: 成绩信息表和用户信息表数据结构: 查询个人成绩:为了方便学生查找成绩等信息,将所有信息按照需要进行分类。 添加基本信息:管理员通过该数据流添加用户,教师通过该数据流添加学生成绩。 删除基本信息:管理员通过该数据流删除用户。 修改基本信息:教师通过该数据流可以修改密码、成绩等监本信息。 排序:教师拥有管理成绩的权限,所以可以对成绩进行排序。修改记录:编写陈立阳日期2014年5月25日 审核包先跃日期2014年6月14日 表2.3.2数据流 数据存储系统名:学生成绩管理系统 别名:the Student result management system 条目名:成绩、用户
15、 存储组织:每一个学生(按学号)拥有一条记录、每一用户(按用户名)拥有一条记录记录数:大约10000(尽可能大并且符合实际)主关键字:学号、用户名记录组成: 成绩:学号+姓名+课程名+分数 用户:用户名+密码+类别+科目简要说明:该系统主要包括成绩信息表和用户信息表。修改记录:编写陈立阳日期2014年5月25日 审核包先跃日期2014年6月14日表2.3.3:数据存储 加工系统名:学生成绩管理系统 别名:the Student result management system 输入:用户名、密码输出:用户基本信息窗口和功能窗口输入:要查找的内容输出:所查到的相关内容(一行或多行记录)输入:要修
16、改的内容 输出:修改后的内容(一次修改一条记录)输入:要添加或删除的用户名输出:创建成功或成功删除加工逻辑:1)根据不同的权限进行不同的登陆界面,不同的操作。程序逻辑:1:检查用户名、密码与数据库是否吻合(完整性和一致性)。2:产生提示用户名或密码错误的消息窗口;3:用户确认后退出程序运行;4:进入主窗体;5:进入事件等待状态。2)进入查询窗口选择查询方式,然后输入相应的内容,通过点击查找按钮得到结果。3)对表格的内容进行修改,若权限足够,则可以对其进行权限内的修改,否则不可产生修改项。4)添加新用户时通过输入数据项然后与数据库连接将新用户加载到数据库中,删除用户通过从数据库中读取用户信息然后
17、删除用户。简要说明:数据加工是为了让用户对整个系统的功能实现有一个更加深入的认识。修改记录:编写陈立阳日期2014年5月25日 审核包先跃日期2014年6月14日 表2.3.4数据加工3 概要设计3.1 软件功能结构 图3.1.1系统功能流程图 4 详细设计4.1数据库设计本系统的数据库是SQL server数据库,在SQL环境下创建数据库学生成绩管理系统.mdf文件。该数据库包括学生成绩表、用户登录表用于纪录学生的基本信息数据库表结构如下所示:4.0.1 各表的物理结构表4.0.1 学生成绩表表4.0.2 用户登录表4.0.2数据库连接代码private void button1_Click
18、(object sender, EventArgs e) string str = Data Source=(local);Initial Catalog=学生成绩管理系统;Integrated Security=True; /数据库连接字符串,.表示本机服务器DataBase为表名,Integrated Security=True是采用windows身份验证方式登录 SqlConnection conn = new SqlConnection(connStr); /根据连接字符串,新建数据库连接 string sqlStr = select * from student1; /查询stude
19、nt1表的查询语句 SqlCommand cmd = new SqlCommand(sqlStr, conn); /根据查询语句和数据库连接,等到查询命令对象 SqlDataReader reader = cmd.ExecuteReader();/从查询命令对象中获得一个读取数据库数据的对象 while (reader.Read() /循环读取下一行数据,如果下一行没有数据返回false string id = readerid.ToString();/根据列名获得数据 string name = readername.ToString(); string sex = readersex.To
20、String(); MessageBox.Show(string.Format(id=0,name=1,sex=2, id, name, sex);4.2界面设计要求 用于输入用户名和密码登录,选择相应的用户类型进入系统,若是用户类型选择错误则不能进入系统。输入用户名和密码后点击确定判断数据库中的用户是否为合法用户。图4.1.1登录界面设计代码:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.
21、Text;using System.Windows.Forms;using System.Data.SqlClient;namespace 学生成绩管理系统 public partial class Login : Form static public string sn,sub; public Login() InitializeComponent(); Form2 fr2 = new Form2(); Form3 fr3 = new Form3(); Form4 fr4 = new Form4();/创建新窗体 private void Login_Load(object sender,
22、EventArgs e) timer1.Start(); / Timer控件 private void btnlogin_Click(object sender, EventArgs e) /Password=bxy;Persist Security Info=True;User ID=bxy;Initial Catalog=学生成绩管理系统;Data Source=(local) string str = Data Source=(local);Initial Catalog=学生成绩管理系统;Integrated Security=True; / string str = Password
23、=bxy;Persist Security Info=True;User ID=bxy;Initial Catalog=学生成绩管理系统;Data Source=PC-200812051504; SqlConnection conn = new SqlConnection(str);/连接数据库 conn.Open(); if( txtname .Text=|txtpassword .Text=) MessageBox.Show (请不要遗漏信息!); if (rbtnmanager.Checked) string cstr=select * from 用户登录 where 类别=管理员and
24、 用户名=+txtname.Text.Trim ()+and 密码=+txtpassword .Text.Trim ()+; SqlCommand comm=new SqlCommand (cstr,conn ); SqlDataReader dr=comm.ExecuteReader (); if (dr.Read() sn = txtname.Text.Trim(); fr4.Show(); this.Visible = false; else MessageBox.Show(输入有误,请重新输入!); txtname.Text = ; txtpassword.Text = ; if (r
25、btnteacher.Checked) string cstr = select * from 用户登录 where 类别=教师and 用户名= + txtname.Text.Trim() + and 密码= + txtpassword.Text.Trim() + ; SqlCommand comm = new SqlCommand(cstr, conn); SqlDataReader dr = comm.ExecuteReader(); if (dr.Read() sn = txtname.Text.Trim(); sub = dr.GetValue(3).ToString (); fr3.
26、Show(); this.Visible = false; else MessageBox.Show(输入有误,请重新输入!); txtname.Text = ; txtpassword.Text = ; if (rbtnstudent.Checked) string cstr = select * from 用户登录 where 类别=学生and 用户名= + txtname.Text.Trim() + and 密码= + txtpassword.Text.Trim() + ; SqlCommand comm = new SqlCommand(cstr, conn); SqlDataRead
27、er dr = comm.ExecuteReader(); if (dr.Read() sn = txtname.Text.Trim();fr2.Show(); this.Visible=false ; else MessageBox.Show(输入有误,请重新输入!); txtname.Text = ; txtpassword.Text = ; conn.Close(); conn.Dispose(); private void button2_Click(object sender, EventArgs e) Application.Exit(); private void timer1_
28、Tick(object sender, EventArgs e) label1.Text = 当前时间为: +DateTime.Now .ToLongDateString() + +DateTime.Now.ToLongTimeString(); private void txtname_TextChanged(object sender, EventArgs e) private void txtpassword_TextChanged(object sender, EventArgs e) private void rbtnmanager_CheckedChanged(object sen
29、der, EventArgs e) private void rbtnteacher_CheckedChanged(object sender, EventArgs e)4.3学生成绩管理界面设计 此部分主要针对学生信息的管理,可以查询学生的所有成绩信息,实现成绩的添加、删除、修改、计算平均分等功能。还可以修改当前用户下的密码。图4.1.2学生成绩管理界面按模块写出详细设计说明表、按程序窗口写出对象说明表设计代码:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data
30、;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace 学生成绩管理系统 public partial class Form2 : Form public Form2() InitializeComponent(); private void Form2_Load(object sender, EventArgs e) label1.Text = Login.sn + 同学,欢迎您使用本成绩管理系统!;/用窗体掉用静态变量 timer1.St
31、art(); groupBox1.Visible = false; groupBox2.Visible = false; private void button1_Click(object sender, EventArgs e) private void button3_Click(object sender, EventArgs e) /string str = Password=bxy;Persist Security Info=True;User ID=bxy;Initial Catalog=学生成绩管理系统;Data Source=(local); /SqlConnection co
32、nn = new SqlConnection(str); /conn.Open(); /SqlDataAdapter da = new SqlDataAdapter(Select * from 学生成绩表 where 姓名=+textBox1 .Text , conn); /DataSet ds = new DataSet(); /da.Fill(ds, usertable); /dataGridView1.DataSource = ; private void toolStripButton1_Click(object sender, EventArgs e) string str = Da
33、ta Source=(local);Initial Catalog=学生成绩管理系统;Integrated Security=True; SqlConnection conn = new SqlConnection(str); conn.Open(); SqlDataAdapter da = new SqlDataAdapter(Select * from 学生成绩表 where 姓名= + Login.sn.Trim ()+,conn);/详细信息 DataSet ds = new DataSet(); da.Fill(ds, usertable); dataGridView1.DataSo
34、urce = ds.Tablesusertable.DefaultView; conn.Close(); conn.Dispose(); private void toolStripButton2_Click(object sender, EventArgs e) private void toolStripButton4_Click(object sender, EventArgs e) groupBox1.Visible = true; private void button1_Click_1(object sender, EventArgs e) string str = Data So
35、urce=(local);Initial Catalog=学生成绩管理系统;Integrated Security=True; SqlConnection conn = new SqlConnection(str); conn.Open(); if (txtnpd.Text != txtnpassword.Text) MessageBox.Show(请确认信密码的正确性!); if (txtnpd.Text =& txtnpassword.Text = ) MessageBox.Show(密码不允许为空!); if (txtnpd.Text = txtnpassword.Text & txtn
36、pd.Text!= ) SqlCommand com = new SqlCommand(update 用户登录 set 密码= + txtnpassword.Text.Trim() + where 用户名= + Login.sn.Trim() + , conn); if (com.ExecuteNonQuery() = 1) MessageBox.Show(密码修改成功!); groupBox1.Visible = false; conn.Close(); conn.Dispose(); private void toolStripButton5_Click(object sender, Ev
37、entArgs e) this.Close(); Login l = new Login(); l.Visible = true;/?、 private void toolStripButton6_Click(object sender, EventArgs e) / string str = Password=bxy;Persist Security Info=True;User ID=bxy;Initial Catalog=学生成绩管理系统;Data Source=(local); / SqlConnection conn = new SqlConnection(str); / conn.Open(); / SqlDataAdapter da = new SqlDataAdapter(Select * from 学生成绩表 where 姓名= + Login.sn.Trim() + , conn); /DataSet ds = new DataSet(); / da.Fill(ds, usertable); / string s