《电气自动化技术专业综合实训》任务报告书
第二篇:实训报告初版
软件专业综合实习报告
设计题目: 学生信息管理系统
院 系: 信息工程学院
专 业: 软件技术
班 级: 软件A1302,1301
姓 名: 张传浩
学 号: 0402130202
起止日期: 2015/11/2到2016/1/6
指导教师: 单光庆
20##年1月4日
摘要
本文描述的是基于Windows环境的学生信息管理系统,主要功能模块包括:学生信查询,学生信息管理,主要工具Microsoft Visual Studio 20## 设计窗体, SQL server2014建立数据库,实现学校信息管理的各个功能。
本篇报告介绍一个学生信息管理系统的从分析到设计最后到开发的全过程为,给出了学生信息管理系统的设计和技术实现的过程,特别在细节上分析功能和函数的实现思想。涉及到学生信息管理的基本功能在本报告中都有相应的描述。
1.引言
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对学生信息进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生档案管理的效率,也是进行科学化、正规化管理,与世界接轨的重要条件。
随着国家对于教育的重视逐渐加大,学校正向着大型化、规模化发展,而对于大中型学校,跟学生信息管理有关的信息随之急剧增加。在这种情况下单靠人工来处理员工的工资不但显得力不从心,而且极容易出错。该系统就是设计一个学生信息数据库管理系统,由计算机代替人工执行一系列诸如增加新学生,删除旧学生,学生信息修改,查询,维护及打印等操作。这样就使学生部门管理人员可以轻松快捷地完成学生信息管理的任务。
2.需求分析
2.1.1系统目标
(1) 根据查询条件实现学生信息的查询
(2) 对基本信息完成增加、删除、修改时,需注意表与表之间的关联
2.1.2功能需求分析
本系统的功能需求分析如下:
(1) 学生信息查询:学生可以根据学号、姓名、专业进行查询.
(2) 学生信息管理:主要是用于学生信息更新、插入、删除;
2.1.3性能需求分析
(1) 登录、用户界面需求:简洁、易懂、易用、友好的用户界面。
(2) 安全保密性需求:只有凭借用户名和密码登陆系统,才能进行信息的管理等。
2.2其它需求
2.2.1安全性
SQL Server 20## 自身提供了对数据的安全保护措施,数据进行集中管理同时避免了数据的不一致和冗余,在 SQL Server 的版本中,只有管理中心数据库服务器的成员持有对数据访问的权限,本系统的用户、密码能保证安全。 对任务、成员的管理,数据库同时提供了备份和恢复的功能,在数据库服务器出现问题的时候,能进行数据的 快速恢复。
但是,用户不能删除数据库对应的物理文件,否则数据将丢失。
2.2.2可扩充性
系统在开发完毕以后,只实现了任务管理的功能和框架,在后续的开发中,可以在本框架的基础上,采用 VB 中面向对象的特点来增加功能模块。
可能增加的功能模块包括:任务调度和程序自动运行、日程和活动安排、界面改进(例如程序以一个任务栏的 小图标运行) 、文件监控(监控磁盘上的文件拷贝操作、以防止非法的侵入) 、个人数据存储(包括对图像、音乐、 HTML 页面信息的分类存储和分类检索) 、网络 QQ 功能、使用语音组件实现语音输入、网络会议等。 扩展后的系统将是一个个人电子秘书。
健壮性,系统应该保证在一次开机三个月之内稳定运行(最大的任务时间间隔是三个月的时间) ,数据库在一些灾难事故 中能够在系统安装好之后,两小时内恢复。
3.软件设计
3.1 工作任务的分门与人员分工
组长: 向俞吉 任务: (1)拟定可行性研究报告
(2)拟定项目开发计划书
(3)项目开发进度的管理
(4)团队的组织和协调
组员:张传浩 任务: (1)参与小组讨论
(2)根据设计完成编码,并注释
(3)拟定详细设计规格说明书
组员:余建辉 任务: (1)参与小组讨论
(2)拟定概要设计规格说明书
组员:张攀 任务: (1)参与小组讨论
(2)测试软件,拟定测试清单
组员:程海峰 任务: (1)参与小组讨论
(2)拟定需求分析规格说明
3.2 软件模块设计框图
3.3数据库设计
3.3.1设计原则
1.密码管理:学生修改学生查询密码;教师可以修改查询密码。
2.每个教师可以查看所有学生的成绩,包括每门课程的成绩、每门课程的平均成绩、每个分数段的成绩。
3.学生根据自己的学号查询本人的成绩。
3.3.2数据库组成
数据表3个:
(1) 学生表(字段: SFZJH, JKZKM, HYZKM, JG, CYM, ZJXYM, XMPY, XBM, MZM, SFZJLXM, ZZMMM, XXM, CSDM, CSRQ, XH, XM, GATQWM, XQDM, ZYDM, XSDM, BJDM, CJR, CJSJ, XGR, XGSJ, ZYFXH, YXBH, JFFSM, KSH, BDRQ, ZCRQ, RXNF, XJZT, XBJBH, SFDY, ISXS, YHZH, JFZT, SYSS, BZ, GJDQM, ZP, SFZJYXQ, SFDSZN, JGDM, DWDM, xykh, PYCCDM, xbmc, mzmc, zzmmmc),其中有各班学生的记录;
(2) 用户信息表(字段:userid, username, cn_name, password, logintime, createtime, roleid, xsdm, pddl, openid, YHZT, ZHLX, CJR, CJRZH, DH, DZYX
);
3.4各功能模块设计
(1) Admin的相关的页面:
Defalut.aspx;
Left.aspx;
Out.aspx;
Main.aspx
Print.aspx;
Top.aspx;
Zmdesk.aspx;
图片的搜集:Image;
Css样式的定义
模板页面编辑的页面:
XSJCXX_XS_LIST_XX.aspx;
XSJCXX_XS_LIST.aspx;
XSJCXX_XSC_LIST.aspx;
XSJCXX_XSC_LIST_XX.aspx
Css样式定义的详细功能:
主要设置了就是汉字在做超链接的时候,发生的一些变化;比如:汉字定义了为:宋体;大小为:9px;当做超链接的时候汉字出现下划线,以及改变汉字的颜色等.
4.软件实现
4.1登录模块
为了系统的安全,在进入系统之前首先会出现一个登录模块,用户只有在输入正确的用户名和正确的密码之后,才能进入系统。
用户登录窗体中放置了两个文本框(Textbox),用来输入用户名和密码;一个按钮(Button)用来登录。
4.2登陆界面主要代码
<title>欢迎登录学生管理系统?</title>
</head>
<frameset rows="88,*,31" cols="*" frameborder="no" border="0" framespacing="0">
<frame src="top.ASPX" name="topFrame" scrolling="No" noresize="noresize" id="topFrame" title="topFrame" />
<frameset cols="187,*" frameborder="no" border="0" framespacing="0">
<frame src="left.ASPX" name="leftFrame" scrolling="No" noresize="noresize" id="leftFrame" title="leftFrame" />
<frame src="zmdesk.ASPX" name="rightFrame" id="rightFrame" title="rightFrame" />
<style type="text/css">
4.3主页CSS样式表
.auto-style3 {
width: 75px;
text-align: right;
height:30px;
}
.auto-style4 {
height: 19px;
}
.auto-style5 {
width: 10px;
height: 19px;
}
.auto-style99 {
width: 20px;
color: #FF3300;
}
.auto-style100 {
width: 20px;
color: #FF3300;
}
.auto-style101 {
width: 21px;
color: #FF3300;
}
.auto-style102 {
width: 21px;
}
</style>
4.4登录密码验证
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Web.UI;
using System.Web.UI.WebControls;
using SCJQRJ.BLL;
using SCJQRJ.DAL;
using SCJQRJ.IDAL;
using SCJQRJ.Model;
using SCJQRJ.Tools;
using SCJQRJ.Web;
using SCJQRJYM;
namespace Web
{
public partial class xgmm : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click1(object sender, EventArgs e)
{
if (TxtUserName.Text.Trim().Length <= 0)
MessageBoxHelper.ResponseScript(this, "ZENG.msgbox.show('用户名不能为空!', 1, 1500);");
else
{
userinfoMgr userinfoMgr = new userinfoMgr();
SCWJ_USERXX user = userinfoMgr.FindById_userinfo(Server.HtmlEncode(TxtUserName.Text.Trim().Replace("'", "")));
//Md5+盐值加密算法,相对安全
if (user != null)
{
string dlyz="123456";
user.password = dlyz;
userinfoMgr.Update_userinfo(user);
Response.Write("<script language='javascript' type='text/javascript'>");
Response.Write("alert('密码初始成功!');");
Response.Write("window.location.href='xgmm.aspx';");
Response.Write("</script>");
}
else
{ MessageBoxHelper.ResponseScript(this, "ZENG.msgbox.show('密码修改失败!', 5, 1500);"); }
}
}
}
}
4.5算法
<script language="javascript" type="text/javascript">
//CharMode函数
//测试某3个字符是属于哪一类?
function CharMode(iN) {
if (iN >= 48 && iN <= 57) //数字
return 1;
if (iN >= 65 && iN <= 90) //大字母?
return 2;
if (iN >= 97 && iN <= 122) //小写
return 4;
else
return 8; //特殊字符
}
//bitTotal函数
function bitTotal(num) {
modes = 0;
for (i = 0; i < 4; i++) {
if (num & 1) modes++;
num >>>= 1;
}
return modes;
}
//checkStrong函数
function checkStrong(sPW) {
if (sPW.length <= 4)
return 0; //密码太短
Modes = 0;
for (i = 0; i < sPW.length; i++) {
//测试每一个字符的类别并统计一共2有多少种模式
Modes |= CharMode(sPW.charCodeAt(i));
}
return bitTotal(Modes);
}
//pwStrength函数
function pwStrength(pwd) {
O_color = "#e0f0ff";
L_color = "#FF0000";
M_color = "#FF9900";
H_color = "#33CC00";
if (pwd == null || pwd == '') {
Lcolor = Mcolor = Hcolor = O_color;
}
else {
S_level = checkStrong(pwd);
switch (S_level) {
case 0:
Lcolor = Mcolor = Hcolor = O_color;
case 1:
Lcolor = L_color;
Mcolor = Hcolor = O_color;
break;
case 2:
Lcolor = Mcolor = M_color;
Hcolor = O_color;
break;
default:
Lcolor = Mcolor = Hcolor = H_color;
}
}
document.getElementById("strength_L").style.background = Lcolor;
document.getElementById("strength_M").style.background = Mcolor;
document.getElementById("strength_H").style.background = Hcolor;
return;
}
4.6系统在开发软件界面的展示
5系统测试
5.1 软件测试办法
5.1.1主题内容
为保证软件的可靠性和安全性,从技术角度对工程软件测试办法作出规定
5.1.2测试目的
提供系统化、规范化、、实用化的测试技术规范,尽早发现故障,减少交付系统联试前软件中的残留差错。
5.1.3测试方法
本软件测试将通过单元测试和系统测试,黑盒测试以及白盒测试,几种测试方法相结合更能方便的找出系统中出现的bug
5.1.4适用范围
主要适用于系统中各组成部分的软件测试工作,其它软件开发工程中的软件测试工作也可以参照。
本办法可用于新开发的或修改、更新的软件测试。
本办法的使用对象可以是开发人员、测试人员、交办单位委托的第三方测试人员。
5.2单元/系统测试
5.2.1单元定义
void in() //录入学生信息
void show() //显示学生信息
void order() //按总分排序
void del() //删除学生信息
void modify() //修改学生成绩信息
void menu() //主菜单
void insert() //插入学生信息
void total() //计算总人数
void search() //查找学生信息
5.2.2 测试
每一个单元都运行正常,没有出现BUG。
5.2.3 系统测试
在进行单元性和模块性的测试之后,我们需要对整个系统进行测试,测试整个系统运行的流畅度,并积极发现问题。不能因为到测试的最后一步而掉以轻心,避免有错误的程序交到客户或用户手中。
5.3黑盒测试与白盒测试
白盒测试:已知产品的内部工作过程,可以通过测试验证每种内部操作是否符合设计规格要求,所有内部成分是否已经经过检查。
黑盒测试:已知产品的功能设计规格和用户手册,可以进行测试验证每个功能是否实现,每个实现了的功能是否符合要求,以及产品的性能是否满足用户的要求。
针对以上对两种测试方法的介绍,结合本系统的情况,只采用黑盒测试就能够满足要求。
5.3.1测试过程
为了测试的有效性和高效性,应该制定严格的测试计划,并按照计划实施。首先要按模块来设计各个模块的测试用例,测试用例是测试执行的最小实体,是为特定的目的而设计的一组测试输入、执行条件和预期的结果。然后执行测试用例,当测试结果和预期不符时,就要标示问题,并建立bug跟踪记录,直到bug被修复为止。最后对已修复的bug进行回归测试,避免出现新的bug。
5.4 测试总结
本系统的亮点之处在于系统的扩展性很强。当需要为博客系统添加新的功能时,只需要改动极少的代码甚至无需改动就可以实现。各模块独立性很高,模块之间的耦合性很低,使得修改代码、添加功能变得简单可行。在开发本系统的过程中遇到了一些问题,主要是一些技术不太了解。在该设计中,我偏重考虑了当用户输入的信息出错时,系统就会出现提示,以便让用户知道出错的原因,并能及时做出修改,所以我站在用户的角度考虑,尽可能设想各种边界条件,如记录为空,输入为空,输入出错等,以此来发现错误,纠正错误,取得了一定的效果。
通过这次的设项目实训,我学到了很多知识。深刻体会到了前期的设计对后期实现时的影响,如果在项目前期不能进行很好的设计,在后期开发时就会造成很多麻烦。另外,这次的项目也让我明白了数据结构知识的重要性,今后要加强数据结构相关知识的学习。
6总结
通过本次课程设计,验证了对C#的学习效果,同时利用所学的基本知识和技能,尝试进行简单数据库应用程序设计。通过本次项目实践,熟悉巩固了本学期所学软件设计知识,掌握了.NET基本结构以及C#语言的基本知识和技能,基本掌握面向对象程序开发的基本思路和方法,了解.NET开发基本知识,为今后的进一步深入学习,奠定了基础。