资源描述
软件具体设计说明书
项目名称:学生公寓信息管理系统
日期: 年 月 日
1 引言 1
1.1编写目标 1
1.2 项目背景 1
1.3 定义 1
1.4 参考资料 1
2 总体设计 2
2.1 需求概述 2
2.2 软件结构 2
3 程序描述 4
3.1 下面对各模块功效,性能,输入,输出进行具体描述 4
3.2 算法 9
3.3 程序逻辑 9
3.4 接口 12
3.5测试关键点 12
4 数据库实现 13
4.1 SQL Server数据库建立过程 13
4.2表结构实现 14
5 具体设计 17
5.1登录模块设计和实现 18
5.2 主操作页面效果 21
1 引言
信息社会高科技,商品经济化高效益,使计算机应用已普及到经济和社会生活各个领域。计算机即使和人类关系愈来愈亲密,还有些人因为计算机操作不方便继续用手工劳动。为了适应该代社会大家高度强烈时间观念,学籍管理系统软件将会为教学办公室带来了极大方便。
1.1编写目标
本需求编写目标在于研究学籍管理系统软件开发路径和应用方法,关键是为了对学生公寓管理系统进行使用和维护。
本需求预期读者是和学籍管理系统软件开发有联络决议人,开发组成人员,扶助开发者,支持本项目标领导和企业人员,软件验证者。
该需求充足利用计算机功效实现对系统管理、信息录入、信息查询,信息打印等自动化控制,将会使学生公寓管理工作大大减轻,方便友好信息管理用户界面,简便操作,完善数据库管理,将会使得信息管理系统极大程度地应用于现代化学生成绩管理,成为管理人员得力助手。
1.2 项目背景
● 项目标委托单位:XXXXXXXX学院
● 主管部门:学生公寓管理委员会
● 该软件系统和其它系统关系:和学生管理相关联。
1.3 定义
本需求编写目标在于研究学籍管理系统软件开发路径和应用方法。
本 需求预期读者是和学籍管理系统软件开发有联络决议人,开发组成人员,扶助开发者,支持本项目标领导和企业人员,软件验证者。
专门术语:
Data processing 数据处理 feedback反馈
DTE数据终端设备 transmission传输介质
DCE数据数据设备 LAN局域网
1.4 参考资料
《软件工程基础教程》---- 刘文,朱飞雪 主编: 粘新育,陶洁 副主编:出版社: 北京大学出版社
《程序设计》 ---- 尚俊杰 编著:出版社: 清华大学出版社
《SQL Server 实用教程》---- 蒋文沛 主编: 韦善周,梁凡 副主编:出版社:人民邮电出版社
《软件工程案例教程》,韩万江,机械工业出版社
2 总体设计
2.1 需求概述
(1)、系统高级管理员功效需求:
A、学生查询信息管理:可浏览,添加,修改,删除全部学生信息。
B、学生违纪信息管理:可浏览,添加,修改,删除全部违纪、考勤信息。
C、用户信息管理:管理系统中全部登录用户信息,分配用户权限。
D、系统后台信息管理:可浏览,添加,修改,删除后台任务信息,包含数据管理,参数设定,权限设定
(1)、系统通常管理员功效需求:
A、晚归信息管理:可浏览全部晚归信息,添加,修改,删除属于自己添加晚归信息。
B、考勤信息管理:可浏览全部考勤信息,添加,修改,删除属于自己添加考勤信息。
3、系统通常见户功效需求:
A、公寓信息管理:可浏览通常水电报修、卫生检验、物品管理等信息。
B、学生违纪信息管理:可浏览通常考勤信息。
C、学生查询管理:能够浏览通常学生数据信息。
2.2 软件结构
软件具体结构图1
软件具体结构图2
软件具体结构图3
软件具体结构图4
3 程序描述
3.1 下面对各模块功效,性能,输入,输出进行具体描述
1、登录模块
● 功效:实现登录功效,输入用户名称和用户密码,正确则进入欢迎界面.不正确则返回原来界面。
● 性能:由注销功效调用。
● 输入项目:用户名称和用户密码。
● 输出项目:正则进入到欢迎界面,负则返回原来界面。
2、学生查询
● 功效:实现学生身份查询功效.查询相关学生信息.对于对应文本框类型,输入对应内容,不相符合则提醒犯错。
● 性能:为用户提供学生信息查询界面。
● 输入项目:学生姓名,学号。
● 输出项目:班级,姓名、系部、班级、宿舍、籍贯等。
3、物品管理
● 功效:实现珍贵物品进出宿舍区本月汇总情况。
● 性能:为用户提供物品管理信息本月汇总情况。
● 输入项目:日期。
● 输出项目:(本月汇总情况)汇总时间, ,班级,姓名,日期, 珍贵物品名称、令,目前页数,总页数,项数。
4、晚归管理
● 功效:增加晚归信息。
● 性能:为用户提供增加晚归信息界面。
● 输入项目:区门,值班人员,日期,时间,系部,专业,班级,姓名,宿舍号,录入人员,晚归事由,晚归备注。
● 输出项目:正则提醒增加成功,负则提醒增加失败。
5、考勤查询
● 功效:实现考勤信息功效。
● 性能:为用户提供考勤信息查询功效。
● 输入项目: 开始时间,结束时间,系部,专业,班级,学生姓名,页数。
● 输出项目: 考勤ID,班级,姓名,事件,日期,课时,备注,命令,页数,目前页数,项数。
6、考勤管理
● 功效:实现考勤信息增加。
● 性能:为用户提供考勤信息录入界面。
● 输入项目:事件,考勤老师,日期,系部,专业,班级,学生姓名,课时,录入人员,备注,事件事由。
● 输出项目:考勤ID,班级,姓名,事件,日期,课时,备注,命令,页数,目前页数,项数。
7、修改密码
● 功效:实现密码修改功效。
● 性能:为用户提供密码修改界面。
● 输入项目:用户旧密码,用户新密码,确定新密码。
● 输出项目:正则成功,负则失败。
8、后台管理
(1)、系部管理
● 功效:实现系部查询功效。
● 性能:为用户提供系部查询界面。
● 输入项目:系部名称.
● 输出项目:(系部信息)系部ID,系部名称,命令.页数,目前页数,项数。
(2)、系部信息编辑:
● 功效:实现系部信息编辑功效。
● 性能:为用户提供系部信息编辑界面。
● 输入项目:系部名称。
● 输出项目: 正则成功,负则失败。
(3)增加系部
● 功效:实现系部增加功效。
● 性能:为用户提供系部增加界面。
● 输入项目:系部名称。
● 输出项目: 正则成功,负则失败。
(4)、专业管理
1)、专业查询
● 功效:实现专业信息查询功效。
● 性能:为用户提供专业信息查询界面。
● 输入项目:系部名称或专业名称.页数。
● 输出项目: 专业ID,专业名称,所属系部,命令,页数,目前页数。
专业信息编辑
2)、专业编辑
● 功效:实现专业信息编辑功效。
● 性能:为用户提供专业信息编辑界面。
● 输入项目:为修改专业名称或要修改为所属系部。
● 输出项目: 正则成功,负则失败。
3)、增加专业
● 功效:实现专业增加功效。
● 性能:为用户提供专业增加界面。
● 输入项目:所属系部,专业名称。
● 输出项目: 正则成功,负则失败。
(5)、班级管理
1)、班级查询
● 功效:实现班级信息查询功效。
● 性能:为用户提供班级信息查询界面。
● 输入项目:班级名称或专业名称或系部名称。
● 输出项目: 班级ID,班级名称,所属系部,所属专业,命令。
班级信息编辑
2)班级编辑
● 功效:实现班级信息编辑功效。
● 性能:为用户提供班级信息编辑界面。
● 输入项目:要修改为班级名称或修改为哪个系,哪个专业。
● 输出项目: 正则成功,负则失败。
(6)、增加班级
● 功效:实现班级增加功效。
● 性能:为用户提供班级增加界面。
● 输入项目:所属系部,所属专业,班级名称。
● 输出项目: 正则成功,负则失败。
(7)事件管理
● 功效:实现增加事件和修改事件名称功效。
● 性能:这用户提供增加事件和修改事件界面。
● 输入项目:事件名称或所修改事件名称。
● 输出项目: 正则成功,负则失败。
9、用户管理
1)用户查询
● 功效:实现用户信息查询功效。
● 性能:为用户提供用户信息查询界面。
● 输入项目:用户名称
● 输出项目: 用户ID,用户名称,用户密码,通常权限,高级权限,用户说明,命令。
用户信息编辑。
2)、用户编辑
● 功效:实现用户信息编辑功效。
● 性能:为用户提供用户信息编辑界面。
● 输入项目:用户密码,权限,用户说明。
● 输出项目: 正则成功,负则失败。
10、晚归信息编辑
● 功效:实现晚归信息编辑功效。
● 性能:为用户提供晚归信息编辑界面。
● 输入项目:区门,值班人员,日期,时间,系部,专业,班级,学生姓名,宿舍号,录入人员,事由,备注。
● 输出项目: 正则成功,负则失败。
11、考勤信息编辑
● 功效:实现考勤信息编辑功效。
● 性能:为用户提供考勤信息编辑界面。
● 输入项目:事件,考勤老师,日期,系部,专业,班级,姓名,课时,录入人员,备注,事由。
● 输出项目: 正则成功,负则失败。
3.2 算法
登录模块:该登录模块中应用选择算法,依据用户要求选择不一样模式。
学生查询模块:该登录模块中采取算法基础相同级模块相同,为满足学生要求可能将学生查询条件进行对应数据格式装换,确保系统稳定,安全,可靠。
物品管理模块:模块实现算法简单没有具体要求,能够是次序,也能够是选择,确保没有逻辑错误。
晚归管理模块:模块实现算法简单没有具体要求,能够是次序,也能够是选择,确保没有逻辑错误。
考勤查询模块:该登录模块中采取算法基础相同级模块相同,为满足学生要求可能将学生查询条件进行对应数据格式装换,确保系统稳定,安全,可靠。
考勤管理模块:模块实现算法简单没有具体要求,能够是次序,也能够是选择,确保没有逻辑错误。
修改密码模块:该登录模块中应用选择算法,能够按用户输入要求进行对应数据格式装换,确保系统稳定,安全。
后台管理模块:该模块中应用选择算法,依据管理员选择要求选择不一样操作模式。
用户管理模块:模块实现算法简单没有具体要求,能够是次序,也能够是选择,确保没有逻辑错误。
晚归信息编辑模块:该登录模块中应用选择算法,能够按用户输入要求进行对应数据格式装换,确保系统稳定,安全。
考勤信息编辑模块:该登录模块中应用选择算法,能够按用户输入要求进行对应数据格式装换,确保系统稳定,安全。
3.3 程序逻辑
登录模块逻辑步骤图:
后台管理模块逻辑步骤图:
查询模块逻辑步骤图:
用户管理模块逻辑步骤图:
信息编辑模块逻辑步骤图:
3.4 接口
● 存放分配
● 限制条件
1、软件资源:Window xp操作系统或更高以上操作系统, VS.net编程软件和SQL数据开发维护软件。
2、硬件资源:含有VS.net应用软件计算机三到五台,含有SQL应用软件运行服务器一台。
3.5测试关键点
测试工件为四个阶段:单元测试、组装测试、确定测试、系统测试。
单元测试:采取白盒法和黑盒法相结合方法,对于逻辑结构复杂模块采取白盒法,对于以输入、输出为主模块采取黑盒法测试,以提升测试效率。
组装测试:自底向上增式测试。
确定测试:由用户参与按需求规格说明书验收。
系统测试:采取人工测试方法。
(1) 系统环境模块测本测试是为了检测系统环境模块,数据连接是否正确,数据能否正确,并进行仔细查对。
(2) 基础信息测试基础信息模块是本系统一个关键模块,本模块能否正确运行关系到系统设计成败关键,所以有必需专门对这个之模块进行严格测试。以填补设计过程中不足。及早发觉和修改问题。
(3) 查询模块测试全部数据库管理软件设计目标之一全部是为了大家提供快捷方便数据查询功效,查询设计是否合理和正确是系统又一关键之所在。
4 数据库实现
4.1 SQL Server数据库建立过程
首先把SQL Server “服务管理器”打开,鼠标左键单击“开始/继续”按钮,然后在“开始”→“程序”内选择“Microsoft SQL Server” →“企业管理器”。展开左边程序树,图2-2所表示。
在“数据库”文件夹图标上单击鼠标右键,选择“新建数据库”,弹出新建数据库窗体,图2-3所表示。
然后,开始建立本系统需要数据库表,方法以下:
首先,在新建数据库上单击鼠标右键,选择“新建”→“表”,图2-4所表示。
输入完表字段后,为表字段添加主键、约束和关系等,方法是在添加约束或关系字段上单击鼠标右键,选择“设置主键”或“关系”等
保留该表,命名为Student。接下来在建立本章需要其它表,在此不再详述了。
接下来就是怎样向已经建立好数据表内输入数据了,方法以下,首先在建立好表上单击鼠标右键,选择“打开表”→“返回全部行”,图2-7所表示
4.2表结构实现
依据系统功效设计要求和功效模块划分,对于系统用户信息数据库,能够列出以下数据项和数据结构:
(1)、名称:学生信息表
表名称标识:Student表
数据起源:新生信息录入模块进行录入。
表2-1学生信息表(Student)
(2)、名称:学生成绩表
表名称标识:Student_course表
数据起源:学生成绩录入模块进行录入。
表2-2学生成绩表(Student_course)
(3)、名称:用户表
表名称标识:user表
数据起源:用户管理模块进行录入
表2-3用户表(user)
(4)、名称:角色表
表名称标识:Role表
数据起源:角色管理模块进行录入
表2-4课程表(role)
(5)、名称:部门表
表名称标识:Department表
数据起源:部门管理模块进行录入
表2-5用户表(Department)
5 具体设计
本系统关键实现学生信息浏览、查询、编辑、添加和删除,同时对班级和课程进行管理,增加权限管理。依据已经有需求分析和总体设计,我们在此基础上来进行系统具体设计和实现,为此,我们建立了一个C#.NET项目。在“开始”菜单中找到“MircoSoft Visual Studio.Net ”,开启应用程序,鼠标单击“文件” → “新建” →“项目”,单击“Visual C#项目”,建立一个“Windows 应用程序”,命名为“StudentSystem”,位置默认。图2-9所表示。
图2-9新建C#项目窗体
然后我们把这个项目生成默认窗体作为本系统主窗体,我们再向这个项目中添加一个窗体,鼠标单击“项目”→“添加Windows窗体”,输入窗体名称为“Login”把新添加窗体作为登陆窗体,调整窗体大小到适宜值。修改该窗体name属性为“Login”,text属性为“用户登陆”,StartPosition属性为“CenterScreen”,其它属性默认。我们接下来全部窗体文件全部是使用这种方法在这个项目中添加。
5.1登录模块设计和实现
1.用户身份验证IPO图
输入:用户名和密码。
处理:
(1) 用户登录窗体开启。
(2) 输入用户名和密码。
(3) 从用户信息表中检验是否有对应用户名和密码。
(4) 假如用户名或密码为空或错误,进行提醒。
(5) 假如输入用户名和密码正确,则许可该用户进入系统。
(6) 进入主控制平台。
输出:主控制平台。
2.用户登录模块窗体设计,图2-10所表示:
图2-10用户登录模块窗体效果
3.用户登录模块关键代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Proj.BLL;
using Proj.Model;
using System.Security.Cryptography;
namespace UI
{
public partial class frmLogin : Form
{
public static string strUserId,strUserPwd;
public frmLogin()
{
InitializeComponent();
}
private void btnCancel_Click(object sender, EventArgs e)
{
Close();
}
private void btnOk_Click(object sender, EventArgs e)
{
string sUserId = tbUserId.Text;
string sUserPwd = tbPwd.Text;
string strId, strUser, strPwd, strRole;
List<User> users = new UserManager().GetUserSelectByUserId(sUserId);
if (users != null && users.Count > 0)
{
strId = users[0].UserId.Trim();
strUser = users[0].UserName.Trim();
strPwd = users[0].UserPwd.Trim();
strRole = users[0].UserRole.Trim();
if ( MD5(sUserPwd) != strPwd)
{
MessageBox.Show("用®?户¡ì密¨¹码?错䨪,ê?请?重?新?输º?入¨?密¨¹码?!ê?");
tbPwd.Text = "";
tbPwd.Focus();
return;
}
else
{
//MessageBox.Show("用®?户¡ì密¨¹码?正y确¨¡¤!ê?");
strUserId = tbUserId.Text;
strUserPwd = tbPwd.Text;
Menu mnu = new Menu();
mnu.ShowDialog();
}
}
else
{
MessageBox.Show("用®?户¡ì号?错䨪,ê?请?重?新?输º?入¨?用®?户¡ì号?!ê?");
tbUserId.Text = "";
tbPwd.Text = "";
tbUserId.Focus();
return;
}
}
public string MD5(string password)
{
byte[] oriByte = new UnicodeEncoding().GetBytes(password);
byte[] cryByte = new MD5CryptoServiceProvider().ComputeHash(oriByte);
return BitConverter.ToString(cryByte);
}
private void tbUserId_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
tbPwd.Focus();
}
}
private void tbUserId_Validated(object sender, EventArgs e)
{
List<User> users = new List<User>();
users = new UserManager().GetUserSelectByUserId(tbUserId.Text.Trim());
if (users.Count > 0)
tbUserName.Text = users[0].UserName.Trim();
}
private void tbPwd_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode==Keys.Enter)
{
btnOk.Focus();
}
}
private void frmLogin_Load(object sender, EventArgs e)
{
}
}
}
5.2 主操作页面效果
1.主控制平台窗体设计,图2-11所表示:
图2-11 用户登录模块窗体效果
3.主控制平台关键代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace UI
{
public partial class Menu : Form
{
private int childFormNumber = 0;
public Menu()
{
InitializeComponent();
}
private void ShowNewForm(object sender, EventArgs e)
{
Form childForm = new Form();
childForm.MdiParent = this;
childForm.Text = "窗ä¡ã口¨² " + childFormNumber++;
childForm.Show();
}
private void OpenFile(object sender, EventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
openFileDialog.Filter = "文?本À?文?件t(*.txt)|*.txt|所¨´有®D文?件t(*.*)|*.*";
if (openFileDialog.ShowDialog(this) == DialogResult.OK)
{
string FileName = openFileDialog.FileName;
}
}
private void SaveAsToolStripMenuItem_Click(object sender, EventArgs e)
{
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
saveFileDialog.Filter = "文?本À?文?件t(*.txt)|*.txt|所¨´有®D文?件t(*.*)|*.*";
if (saveFileDialog.ShowDialog(this) == DialogResult.OK)
{
string FileName = saveFileDialog.FileName;
}
}
private void ExitToolsStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}
private void CutToolStripMenuItem_Click(object sender, EventArgs e)
{
}
private void CopyToolStripMenuItem_Click(object sender, EventArgs e)
{
}
private void PasteToolStripMenuItem_Click(object sender, EventArgs e)
{
}
private void ToolBarToolStripMenuItem_Click(object sender, EventArgs e)
{
}
private void StatusBarToolStripMenuItem_Click(object sender, EventArgs e)
{
}
private void CascadeToolStripMenuItem_Click(object sender, EventArgs e)
{
LayoutMdi(MdiLayout.Cascade);
}
private void TileVerticalToolStripMenuItem_Click(object sender, EventArgs e)
{
LayoutMdi(MdiLayout.TileVertical);
}
private void TileHorizontalToolStripMenuItem_Click(object sender, EventArgs e)
{
LayoutMdi(MdiLayout.TileHorizontal);
}
private void ArrangeIconsToolStripMenuItem_Click(object sender, EventArgs e)
{
LayoutMdi(MdiLayout.ArrangeIcons);
}
private void CloseAllToolStripMenuItem_Click(object sender, EventArgs e)
{
foreach (Form childForm in MdiChildren)
{
childForm.Close();
}
}
private void Menu_Load(object sender, EventArgs e)
{
}
private void 系¦Ì统ª3退ª?出?ToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void 密¨¹码?修T改?ToolStripMenuItem_Click(object sender, EventArgs e)
{
修T改?密¨¹码? mnu = new 修T改?密¨¹码?();
mnu.ShowDialog();
}
private void 用®?户¡ì添¬¨ª加¨®ToolStripMenuItem_Click(object sender, EventArgs e)
{
用®?户¡ì添¬¨ª加¨® mnu = new 用®?户¡ì添¬¨ª加¨®();
mnu.ShowDialog();
}
private void 用®?户¡ì删¦?除yToolStripMenuItem_Click(object sender, EventArgs e)
{
frmUserDelete mnu = new frmUserDelete();
mnu.ShowDialog();
}
private void 修T改?用®?户¡ì密¨¹码?ToolStripMenuItem_Click(object sender, EventArgs e)
{
frmModifyUserPwd mnu = new frmModifyUserPwd();
mnu.ShowDialog();
}
private void 角?色¦?添¬¨ª加¨®ToolStripMenuItem_Click(object sender, EventArgs e)
{
frmAddRole mnu = new frmAddRole();
mnu.ShowDialog();
}
private void 部?门?录?入¨?ToolStripMenuItem_Click(object sender, EventArgs e)
{
frmAddDepa mnu = new frmAddDepa();
mnu.ShowDialog();
}
private void 部?门?删¦?除yToolStripMenuItem_Click(object sender, EventArgs e)
{
frmDeleteDepa mnu = new frmDeleteDepa();
mnu.ShowDialog();
}
private void 学¡ì生¦¨²档̦Ì案ã?录?入¨?ToolStripMenuItem_Click(object sender, EventArgs e)
{
frmAddStud mnu = new frmAddStud();
mnu.ShowDialog();
}
private void 学¡ì生¦¨²成¨¦绩¡§录?入¨?ToolStripMenuItem_Click(object sender, EventArgs e)
展开阅读全文