学生成绩管理系统课程设计报告.docx
《学生成绩管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统课程设计报告.docx(50页珍藏版)》请在冰豆网上搜索。
![学生成绩管理系统课程设计报告.docx](https://file1.bdocx.com/fileroot1/2023-2/3/2ce1095a-2e48-47e2-ba52-a3117df7209a/2ce1095a-2e48-47e2-ba52-a3117df7209a1.gif)
学生成绩管理系统课程设计报告
课程报告说明书
课程名称:
软件工程
系统名称:
学生成绩管理系统
年级/专业/班:
12软件工程班
学生姓名:
吕鹏飞
学 号:
201240450104
指导教师:
余钢
课程考核成绩:
系统开发(代码质量、完成度、规范性)(30)
创新性(10)
说明书撰写(规范性、图表、报告内容)(60)
总分(100)
2014年6月6日
1前言
1.1系统简介
本系统主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是用计算机对学生信息进行日常管理,如查询、修改、增加、删除,另外还考虑到用户登录的权限,针对学生信息和权限登录的学生成绩管理系统。
本系统主要包括注册管理、教师管理、学生信息查询、添加、修改、删除等部分。
其功能主要有:
(1)学生信息的添加,包括输入学生基本信息和成绩。
(2)学生信息的查询,包括查询学生基本信息和成绩。
(3)学生信息的修改,包括修改学生基本信息和成绩。
(4)学生信息的删除,包括修改学生基本信息和成绩。
(5)登录用户密码修改,用户登录到系统可进行相应的用户密码修改。
(6)管理员用户对用户名的管理,包括添加新用户、删除用户。
学生成绩管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前者要求建立起数据一致性和完整性强、数据安全性好的库。
而对于后者则要求应用程序功能完备,易使用等特点。
经过分析,我们使用Microsoft公司的开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。
1.2设计目的
近年来,随着学校的办学规模越来越大,在校学生数也日益增多,随之而来的是教务管理工作日趋复杂繁重,要耗费大量人力、物力,已愈来愈成为学校日常管理工作的一个瓶颈。
学生成绩管理是教务、教学管理中一个重要组成部分,也是比较烦琐的工作。
在学生成绩管理事务中,一般有成绩输入:
对各年级各班各学期学生的各科成绩进行输入;成绩统计:
需要对每个学生的成绩进行处理,例如排名次,成绩汇总,成绩升降;成绩报表:
将学生成绩以报表形式输出等等。
每次考试都需要大量的人力、物力,为了减轻学生成绩管理工作量和实现现代化的科学管理,特设计这个系统。
并根据学校的实际情况,制定以下数据和功能需求。
2需求分析
2.1功能模块划分
(1)
图2.1:
程序流程图
图2.2:
功能模块划分图
2.2功能模块描述
功能需求:
学生成绩管理系统主要提供方便高效的管理功能以及网上的信息查阅平台,学生可以通过该系统查阅相关信息,管理员可以管理所有信息。
对于本系统,我们需要实现以下一些基本功能:
1学生查询功能:
为了方便学生查找成绩等信息,将所有信息按照需要进行分类。
这样学生就能很方便的找到自己需要的信息。
2添加功能:
管理员可以通过填写表格的形式输入学生成绩等相关信息。
系统可以自动避免重复信息。
3修改功能:
管理员可以对数据库中的信息进行修改。
系统能够通过管理员给出的条件查找出所要修改的信息,对修改后的信息进行保存,并自动查找是否是重复信息。
4删除功能:
管理员可以对数据进行删除操作。
系统能够通过管理员给出的条件查找出要删除的信息,并提示是否确定删除,如果确定删除,则把相关信息从数据库中删除掉。
5管理员排序功能:
管理员可以通过条件选择查询所有信息,并进行排序。
性能需求分析:
登录、用户界面需求:
简洁、易懂、易用、友好的用户界面。
安全保密性需求:
只有凭借用户名和密码登陆系统,才能进行信息的管理等。
登录模块:
是用户可以进行各种操作的必须前提。
输入项目:
用户名、密码。
输出项目:
浏览区和基本资料区。
程序逻辑:
P1:
检查用户名、密码与数据库是否吻合(完整性和一致性)。
P2:
产生提示用户名或密码错误的消息窗口;
P3:
用户确认后退出程序运行;
P4:
进入主窗体;
P5:
进入事件等待状态。
功能编号
A1
功能名称
登录功能
调查者
A
调查时间
B
审核人
C
功能描述
用户(学生、教师、管理员)可以根据自己所也有的权限进行不同登陆界面的登录,是用户可以进行各种操作的必须前提。
输入项
用户名、密码。
处理描述
根据不同的权限进行不同的登陆界面,不同的操作。
程序逻辑:
1:
检查用户名、密码与数据库是否吻合(完整性和一致性)。
2:
产生提示用户名或密码错误的消息窗口;3:
用户确认后退出程序运行;4:
进入主窗体;5:
进入事件等待状态。
输出项
浏览区和基本资料区。
界面要求
美观即可
表2.2.1登录模块表
成绩录入模块
主要功能用来对学生的成绩进行收集和修改。
具体包括学生成绩录入、修改、增加、删除、查询、打印等功能,由于一些资料可以Word文档或Excel表格输入,故在此模块中增加了导入、导出数据功能。
。
修改要与成绩录入相对应。
增加、删除是对基本表的操作。
查询条件设置应该齐全,可以年级查询,也可以姓名查询,学号查询等等。
查询模块
功能:
完成查询功能。
性能:
相应时间应尽量快。
输入项目:
要查询的查询项。
输出项目:
查询项。
程序逻辑:
P1:
进入查询窗体;
P2:
若用户取消,则返回;
P3:
获得查询结果;
P4:
查询结果显示在主窗体上,并等待用户确认;
P5:
若查询结果项数等于零,返回。
功能编号
A1
功能名称
查询功能
调查者
A
调查时间
B
审核人
C
功能描述
完成各个用户需求的查询功能,性能相应时间应尽量快。
输入项
要查询的查询项。
处理描述
先进入查询窗体,根据不同的查询需求进行匹配查询, 若用户取消,则返回;
输出项
所需要的查询项。
界面要求
美观即可
表2.2.2查询模块表
图2.2.1查询模块流程图
修改模块
功能:
完成修改功能。
输入项目:
各种修改。
输出项目:
修改后的基本资料
程序逻辑:
P1:
点击要修改的表;
P2:
产生窗体;
P3:
等待用户修改。
功能编号
A1
功能名称
修改功能
调查者
A
调查时间
B
审核人
C
功能描述
完成各个用户不同需求的修改功能,性能响应时间应尽量快。
输入项
各种修改项。
处理描述
对表格的内容进行修改,若权限足够,则可以对其进行权限内的修改,否则不可产生修改项
输出项
修改后的基本资料
界面要求
美观即可
表2.2.3修改模块功能表
图2.2.2修改模块流程图
功能编号
A5
功能名称
排序功能
调查者
A
调查时间
6月1日
审核人
包先跃
功能描述
完成学生成绩的升序排列功能,性能响应时间应尽量快。
输入项
所有学生成绩。
处理描述
对学生的成绩进行排序,若权限足够,则可以对其进行成绩的排序,否则不可产生排序项
输出项
修改后的基本资料
界面要求
美观即可
表2.2.4:
排序功能模块
2.3数据字典与数据流图
2.3.1数据流图
图:
2.3.1顶层数据流图
图2.4.6学生数据流图1
2.4.7学生数据流图2
2.3.2数据字典
数据元素
系统名:
学生成绩管理系统别名:
theStudentresultmanagementsystem
条目名1:
学生成绩条目名2:
用户信息
属于数据流
学生成绩信息和用户信息
存储处
SQLServer20R2数据库中的学生成绩表和用户信息表
数据元素构成:
1.学生成绩=学号+姓名+课程名+分数
数据元素详述:
1)学号:
唯一标识某一用户的元素。
2)姓名:
这一元素在一定情形下可唯一标识某一学生,但一般和学号一起来作为主键。
3)课程名:
当要查询某一学生所学习的课程时,先找到其学号然后就可以找到他(她)所学习的课程名。
4)分数:
这一元素单独存在时无实际意义,作为学生成绩时,必须知晓学生的学号、姓名、课程名。
2.用户信息=用户名+密码+类别+科目
数据元素详述:
1)用户名:
唯一标识某一用户的元素。
2)密码:
系统登录时的通行证。
3)类别:
由学生、教师、管理员三个类别组成,而这三个类别又有着其各自的功能。
4)科目:
学生作为一个普通用户,科目为空,因为他(她)只能查询自己的成绩,是一个被动者,故不同的科目对于该用户本身无实际意义;教师拥有添加用户、成绩等功能,这几个功能就涉及到科目,故在数据库添加教师用户时就要强调科目;管理员作为整个系统的管理者,拥有最高权限,但他(她)只需要添加或删除用户来达到管理系统的目的即可。
修改记录:
编写
陈立阳
日期
2014年5月25日
审核
包先跃
日期
2014年6月14日
表2.3.1数据元素
数据流
系统名:
学生成绩管理系统别名:
theStudentresultmanagementsystem
条目名1:
查询个人成绩条目名2:
添加基本信息条目名3:
删除基本信息条目名4:
修改基本信息条目名5:
排序
来源:
成绩信息表和用户信息表
去处:
成绩信息表和用户信息表
数据结构:
查询个人成绩:
为了方便学生查找成绩等信息,将所有信息按照需要进行分类。
添加基本信息:
管理员通过该数据流添加用户,教师通过该数据流添加学生成绩。
删除基本信息:
管理员通过该数据流删除用户。
修改基本信息:
教师通过该数据流可以修改密码、成绩等监本信息。
排序:
教师拥有管理成绩的权限,所以可以对成绩进行排序。
修改记录:
编写
陈立阳
日期
2014年5月25日
审核
包先跃
日期
2014年6月14日
表2.3.2数据流
数据存储
系统名:
学生成绩管理系统别名:
theStudentresultmanagementsystem
条目名:
成绩、用户
存储组织:
每一个学生(按学号)拥有一条记录、每一用户(按用户名)拥有一条记录
记录数:
大约10000
(尽可能大并且符合实际)
主关键字:
学号、用户名
记录组成:
成绩:
学号+姓名+课程名+分数
用户:
用户名+密码+类别+科目
简要说明:
该系统主要包括成绩信息表和用户信息表。
修改记录:
编写
陈立阳
日期
2014年5月25日
审核
包先跃
日期
2014年6月14日
表2.3.3:
数据存储
加工
系统名:
学生成绩管理系统别名:
theStudentresultmanagementsystem
输入:
用户名、密码
输出:
用户基本信息窗口和功能窗口
输入:
要查找的内容
输出:
所查到的相关内容(一行或多行记录)
输入:
要修改的内容
输出:
修改后的内容(一次修改一条记录)
输入:
要添加或删除的用户名
输出:
创建成功或成功删除
加工逻辑:
1)根据不同的权限进行不同的登陆界面,不同的操作。
程序逻辑:
1:
检查用户名、密码与数据库是否吻合(完整性和一致性)。
2:
产生提示用户名或密码错误的消息窗口;3:
用户确认后退出程序运行;4:
进入主窗体;5:
进入事件等待状态。
2)进入查询窗口选择查询方式,然后输入相应的内容,通过点击查找按钮得到结果。
3)对表格的内容进行修改,若权限足够,则可以对其进行权限内的修改,否则不可产生修改项。
4)添加新用户时通过输入数据项然后与数据库连接将新用户加载到数据库中,删除用户通过从数据库中读取用户信息然后删除用户。
简要说明:
数据加工是为了让用户对整个系统的功能实现有一个更加深入的认识。
修改记录:
编写
陈立阳
日期
2014年5月25日
审核
包先跃
日期
2014年6月14日
表2.3.4数据加工
3概要设计
3.1软件功能结构
图3.1.1系统功能流程图
4详细设计
4.1数据库设计
本系统的数据库是SQLserver数据库,在SQL环境下创建数据库学生成绩管理系统.mdf文件。
该数据库包括学生成绩表、用户登录表用于纪录学生的基本信息数据库表结构如下所示:
4.0.1各表的物理结构
表4.0.1学生成绩表
表4.0.2用户登录表
4.0.2数据库连接代码
privatevoidbutton1_Click(objectsender,EventArgse)
{
stringstr="DataSource=(local);InitialCatalog=学生成绩管理系统;IntegratedSecurity=True";//数据库连接字符串,.表示本机服务器DataBase为表名,IntegratedSecurity=True是采用windows身份验证方式登录
SqlConnectionconn=newSqlConnection(connStr);//根据连接字符串,新建数据库连接
stringsqlStr="select*from[student1]";//查询student1表的查询语句
SqlCommandcmd=newSqlCommand(sqlStr,conn);//根据查询语句和数据库连接,等到查询命令对象
SqlDataReaderreader=cmd.ExecuteReader();//从查询命令对象中获得一个读取数据库数据的对象
while(reader.Read())//循环读取下一行数据,如果下一行没有数据返回false
{
stringid=reader["id"].ToString();//根据列名获得数据
stringname=reader["name"].ToString();
stringsex=reader["sex"].ToString();
MessageBox.Show(string.Format("id={0},name={1},sex={2}",id,name,sex));
}
}
4.2界面设计要求
用于输入用户名和密码登录,选择相应的用户类型进入系统,若是用户类型选择错误则不能进入系统。
输入用户名和密码后点击确定判断数据库中的用户是否为合法用户。
图4.1.1登录界面
设计代码:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.SqlClient;
namespace学生成绩管理系统
{
publicpartialclassLogin:
Form
{
staticpublicstringsn,sub;
publicLogin()
{
InitializeComponent();
}
Form2fr2=newForm2();Form3fr3=newForm3();Form4fr4=newForm4();//——————————————————————————创建新窗体
privatevoidLogin_Load(objectsender,EventArgse)
{
timer1.Start();//——————————————————————————Timer控件
}
privatevoidbtnlogin_Click(objectsender,EventArgse)
{//Password=bxy;PersistSecurityInfo=True;UserID=bxy;InitialCatalog=学生成绩管理系统;DataSource=(local)
stringstr="DataSource=(local);InitialCatalog=学生成绩管理系统;IntegratedSecurity=True";
//stringstr="Password=bxy;PersistSecurityInfo=True;UserID=bxy;InitialCatalog=学生成绩管理系统;DataSource=PC-200812051504";
SqlConnectionconn=newSqlConnection(str);//———————————————————————————————————连接数据库
conn.Open();
if(txtname.Text==""||txtpassword.Text=="")
MessageBox.Show("请不要遗漏信息!
");
if(rbtnmanager.Checked)
{
stringcstr="select*from用户登录where类别='管理员'and用户名='"+txtname.Text.Trim()+"'and密码='"+txtpassword.Text.Trim()+"'";
SqlCommandcomm=newSqlCommand(cstr,conn);
SqlDataReaderdr=comm.ExecuteReader();
if(dr.Read())
{sn=txtname.Text.Trim();fr4.Show();this.Visible=false;}
else
{
MessageBox.Show("输入有误,请重新输入!
");
txtname.Text="";txtpassword.Text="";
}
}
if(rbtnteacher.Checked)
{
stringcstr="select*from用户登录where类别='教师'and用户名='"+txtname.Text.Trim()+"'and密码='"+txtpassword.Text.Trim()+"'";
SqlCommandcomm=newSqlCommand(cstr,conn);
SqlDataReaderdr=comm.ExecuteReader();
if(dr.Read())
{sn=txtname.Text.Trim();sub=dr.GetValue(3).ToString();fr3.Show();this.Visible=false;}
else
{
MessageBox.Show("输入有误,请重新输入!
");
txtname.Text="";txtpassword.Text="";
}
}
if(rbtnstudent.Checked)
{
stringcstr="select*from用户登录where类别='学生'and用户名='"+txtname.Text.Trim()+"'and密码='"+txtpassword.Text.Trim()+"'";
SqlCommandcomm=newSqlCommand(cstr,conn);
SqlDataReaderdr=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();
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
Application.Exit();
}
privatevoidtimer1_Tick(objectsender,EventArgse)
{
label1.Text="当前时间为:
"+DateTime.Now.ToLongDateString()+""+DateTime.Now.ToLongTimeString();
}
privatevoidtxtname_TextChanged(objectsender,EventArgse)
{
}
privatevoidtxtpassword_TextChanged(objectsender,EventArgse)
{
}
privatevoidrbtnmanager_CheckedChanged(objectsender,EventArgse)
{
}
privatevoidrbtnteacher_CheckedChanged(objectsender,EventArgse)
{
}
}
4.3学生成绩管理界面设计
此部分主要针对学生信息的管理,可以查询学生的所有成绩信息,实现成绩的添加、删除、修改、计算平均分等功能。
还可以修改当前用户下的密码。
图4..1.2学生成绩管理界面
按模块写出详细设计说明表、按程序窗口写出对象说明表
设计代码:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;