学生管理系统报告.docx
《学生管理系统报告.docx》由会员分享,可在线阅读,更多相关《学生管理系统报告.docx(27页珍藏版)》请在冰豆网上搜索。
学生管理系统报告
学生管理系统
目录
1开发背景1
2需求分析2
2.1整体要求2
2.2系统需求2
2.3功能需求3
2.4性能需求3
2.5分析过程3
3系统设计5
3.1概要设计5
4系统测试5
4.1黑盒测试5
4.2白盒测试7
5实现代码8
1开发背景
随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。
管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。
目前,在学校里,随着高校规模的不断扩大和招生人数的不断增加,需要处理大量的学生数据信息。
如何更好的组织学生信息,更加快捷的管理学生信息显得尤为的重要。
作为计算机应用的一部分,使用计算机对学生信息进行管理,有着手工管理所无法比拟的优点.例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高学生信息管理的效率,也是学校的科学化、正规化管理,与世界接轨的重要条件。
我们为此开发了一套学生信息管理系统,本系统面向学校的教务人员,目的是为学校办公管理提供一个快速、简单规范的管理平台,使学院在学生信息管理方面更加规范化,快捷化。
2需求分析
2.1整体要求
1.本文从技术、配置、经济、时间安排等方面对系统的实现做了详细的可行性分析,认为本系统是比较容易实现的。
2.本系统在技术上主要采用sql server2014+ vs2015+ excel 的结构模式,在研究期间已经系统学习过以上几种技术。
3.本系统以学校的学生信息管理为依托,结合教务教学管理,设计并开发一个学生信息管理系统,提供一个信息更新快捷、管理方便、功能设置合理的学生信息管理解决方案。
针对学校大量的学生信息,就学生管理的几个方面,提供一个互动式的学生管理平台。
系统目标如下:
Ø 通过学生信息管理系统的实现,使学校的学生信息管理更加科学化。
Ø 提供灵活、方便的操作。
Ø 节约学生信息管理的成本,提高学校管理的效率。
Ø 对系统提供必要的权限管理。
Ø 为学校考核学生的综合素质提供必要的数据支持。
2.2系统需求
(1)建立学生档案的管理和维护。
实现计算机自动化管理体制。
(2)建立学生成绩管理机制,在计算机的支持下快速的完成学生成绩的查询和修改。
(3)建立课程设置管理,在计算机的支持下实现课程的添加、删除、修改。
(4)建立班级设置管理,在计算机的支持下实现班级的添加、删除和修改。
(5)实现系统的权限设置管理,保证系统安全性。
2.3功能需求
•根据系统的需求分析,得到本系统的功能要求如下:
•
(1)班级、课程的设置管理:
学校的教务秘书可以根据本校具体情况在每学期开始时设置所需班级数量和人数。
并设置本学期的课程。
•
(2)权限管理:
为了很好的保证系统的安全性,学校相关负责人可以设置不同类型的人员的权限。
•(3)学生档案管理:
学生档案的数量十分庞大,教务管理人员进行新生入学的档案录入及更改。
其中包括学生个人信息的修改。
•(4)学生成绩管理:
教务管理人员可以查询和修改学生的历年考试成绩,掌握学生学习情况,作为评定学生素质的数据依据。
2.4性能需求
系统的运行对于运行环境的要求是:
1、目前,我们所开发的系统主要是应用在中小规模的学校内部,因此,一般配置的计算机硬件就可以满足系统需求。
考虑到学校规模的扩大和硬件价格的降低,为本系统配置在较优秀的服务器硬件,可以充分发挥本系统性能。
2、硬件环境:
•处理器:
IntelPentium43.06GX或更高
•内存:
256M(推荐)
•硬盘空间:
40GB
•显卡:
SVGA显示适配器
•2.软件环境
•操作系统:
Windows7/8/10
•开发软件:
MicrosoftVisualStudio.NET2015
•数据库:
MicrosoftSQLServer2010
2.5分析过程
E-R图:
DFD顶图:
DFD0图:
3系统设计
3.1概要设计
系统功能层次图:
4系统测试
4.1黑盒测试
1.黑盒测试又称为功能测试或数据驱动测试,是从用户观点出发,主要以软件规格说明书为依据,对程序功能和程序接口进行的测试。
2.黑盒测试是以用户的观点,从输入数据与输出数据的对应关系出发进行测试的,它不涉及到程序的内部结构。
很明显,如果外部特性本身有问题或规格说明书的规定有误,用黑盒测试方法是发现不了的。
黑盒测试方法着重测试软件的功能需求,是在程序接口上进行测试,主要是为了发现以下错误:
是否有不正确的功能,是否有遗漏的功能;
在接口上,是否能够正确地接收输入数据并产生正确的输出结果;
是否有数据结构错误或外部信息访问错误;
性能上是否能够满足要求;
是否有程序初始化和终止方面的错误。
3.等价类划分法是黑盒测试用例设计中一种常用的设计方法,它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性。
在规定了输入条件的取值范围或者个数,可以确定一个有效等价类和两个无效等价类。
在规定了输入值的集合,可以确定一个有效等价类和一个无效等价类。
在规定了输入数据的一组值,程序要对每一个输入值分别进行处理,可以为每一个值确定一个有效等价类,此外根据这组值确定一个无效等价类,即所有不允许的输入值的集合。
在规定了输入数据必须遵守的规则,则可以确定一个有效等价类和若干个无效等价类。
在已知的等价类中各个元素在程序中的处理方式不同,则应将该等价类进一步划分成更小的等价类。
登陆等价列表:
登陆测试用例:
4.2白盒测试
白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。
白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,清楚盒子内部的东西以及里面是如何运作的。
“白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。
“白盒”法是穷举路径测试。
在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。
基本路径测试法:
基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。
设计出的测试用例要保证在测试中程序的每个可执行语句至少执行一次。
在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例。
控制流图:
导出路径:
5实现代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace 数据库的操作
{
public partial class Form1 :
Form
{
public Form1()
{
InitializeComponent();
}
public String username;
private void Form1_Load(object sender, EventArgs e)
{
}
privatestringForm1zhi=null;
publicstringForm1ChuanZhi
{
get
{
returnForm1zhi;
}
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
this.Hide();
yanzheng1p1=newyanzheng1();
p1.ShowDialog();
}
privatevoidlinkLabel1_LinkClicked(objectsender,LinkLabelLinkClickedEventArgse)
{this.Hide();
yanzhengf2=newyanzheng();
f2.ShowDialog();
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
stringstr="server=.;user=sa;pwd=sa123;database=letyougo";
SqlConnectionmysql=newSqlConnection(str);
if(radiostu.Checked)
{
stringsql="select*fromxueshengwherestuna='"+textBox1.Text+"'andpassword='"+textBox2.Text+"'";
try
{
mysql.Open();
SqlCommandmycom=newSqlCommand(sql,mysql);
SqlDataReadermydr;
mydr=mycom.ExecuteReader();
if(mydr.Read())
{
Form1zhi="no";
//MessageBox.Show("登录成功");
this.Hide();
students1=newstudent();
s1.studetnChuanZhi=Form1zhi;
s1.ShowDialog();
}
else
{
MessageBox.Show("用户名不存在或密码错误");
}
}
catch(Exceptionex)
{
MessageBox.Show(ex.ToString());
}
finally
{
mysql.Close();
}
}
else
{stringsql="select*fromLoginwherename='"+textBox1.Text+"'andpassword='"+textBox2.Text+"'";
try
{
mysql.Open();
SqlCommandmycom=newSqlCommand(sql,mysql);
SqlDataReadermydr;
mydr=mycom.ExecuteReader();
if(mydr.Read())
{
Form1zhi="yes";
//MessageBox.Show("登录成功");
this.Hide();
students1=newstudent();
s1.studetnChuanZhi=Form1zhi;
s1.ShowDialog();
}
else
{
MessageBox.Show("用户名不存在或密码错误");
}
}
catch(Exceptionex)
{
MessageBox.Show(ex.ToString());
}
finally
{mysql.Close();
}
}
}
privatevoidbutton1_KeyDown(objectsender,KeyEventArgse)
{
if(e.KeyCode==Keys.Enter)
{
button1.PerformClick();
}
}
privatevoidaxShockwaveFlash1_Enter(objectsender,EventArgse)
{
//InitializeComponent();
//axShockwaveFlash1.Movie=@"C:
\Users\13622\documents\visualstudio2015\Projects\数据库的操作\数据库的操作\312.swf";
}
privatevoidlabel3_Click(objectsender,EventArgse)
{
}
}
}
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
usingSystem.Windows.Forms;
namespace数据库的操作
{
publicpartialclassstudent:
Form
{
publicstudent()
{
InitializeComponent();
timer1.Enabled=true;
}
privatestringstudentzhi;
publicstringstudetnChuanZhi;
{
set
{
studentzhi=value;
if(studetnChuanZhi=="yes")btnreasult.Enabled=true;
}
get
{
returnstudentzhi;
}
}
publicdoublepictureIndex;
privatevoidbutton3_Click_1(objectsender,EventArgse)
{this.Hide();
personcsp1=newpersoncs();
p1.personchuanzhi=studentzhi;
p1.ShowDialog();
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
this.Hide();
ClassC1=newClass();
C1.classchuanzhi=studentzhi;
C1.ShowDialog();
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
this.Hide();
gradeg1=newgrade();
g1.gradechuanzhi=studentzhi;
g1.ShowDialog();
}
privatevoidstudent_Load(objectsender,EventArgse)
{
}
privatevoidbutton5_Click(objectsender,EventArgse)
{
this.Hide();
teachert1=newteacher();
t1.tacherchuanzhi=studentzhi;
t1.ShowDialog();
}
privatevoidbtnstin_Click(objectsender,EventArgse)
{
xuetuanx1=newxuetuan();
x1.ShowDialog();
}
publicvoidbtnreasult_Click(objectsender,EventArgse)
{
this.Hide();
coursec1=newcourse();
c1.coursechuanzhi=studentzhi;
c1.ShowDialog();
}
privatevoidbutton4_Click(objectsender,EventArgse)
{
anpaia=newanpai();
a.ShowDialog();
}
privatevoidpictureBox2_Click(objectsender,EventArgse)
{
//timer1.Enabled=true;
}
privatevoidtimer1_Tick(objectsender,EventArgse)
{
pictureIndex=pictureIndex+0.5;
if(pictureIndex>=7)
pictureIndex=-0.5;
if(pictureIndex==0)
{
this.picture.Image=global:
:
数据库的操作.Properties.Resources._26645;
}
elseif(pictureIndex==1)
{
this.picture.Image=global:
:
数据库的操作.Properties.Resources.micbj;
}
elseif(pictureIndex==2)
{
this.picture.Image=global:
:
数据库的操作.Properties.Resources._22;
}
elseif(pictureIndex==3)
{
this.picture.Image=global:
:
数据库的操作.Properties.Resources._55;
}
elseif(pictureIndex==4)
{
this.picture.Image=global:
:
数据库的操作.Properties.Resources.psb;
}
elseif(pictureIndex==5)
{
this.picture.Image=global:
:
数据库的操作.Properties.Resources._77;
}
elseif(pictureIndex==6)
{
this.picture.Image=global:
:
数据库的操作.Properties.Resources._66;
}
else if (pictureIndex == 7)
{
this.picture.Image = global:
:
数据库的操作.Properties.Resources._5;
}
}
private void label1_Click(object sender, EventArgs e)
{
}
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
System.Diagnostics.Process.Start("
}
private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
System.Diagnostics.Process.Start("");
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace 数据库的操作
{
public partial class Form1 :
Form
{
public Form1()
{
InitializeComponent();
}
public String username;
private void Form1_Load(object sender, EventArgs e)
{
privatevoidyanzheng_Load(objectsender,EventArgse)
{
seleccom.Items.Add("教师");
seleccom.Items.Add("学生");
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
if(seleccom.Text=="教师")
{
stringconstr="server=.;user=sa;pwd=sa123;database=letyougo";
SqlConnectionmycon=newSqlConnection(constr);
mycon.Open();
stringstr="select*fromLoginwherename='"+seleccom.Text+"'andpassword='"+password.Text+"'";
SqlCommandmycom=newSqlCommand(str,mycon);
SqlDataReadermydr=mycom.ExecuteReader();
if(mydr.Read())
{
this.Hide();
yanzhengzhi="yes";
Formzf1=newFormz();
f1.formzchuanzhi=yanzhengzhi