学生管理系统说明文档
更新时间:2024-03-16 05:37:01 阅读量: 综合文库 文档下载
学生信息管理系统详细设计说明书
班级:14计本高二
姓名:姚仕梁 学号:1408200207
1引言
1.1编写目的
建立学生信息管理系统,采用计算机对学生成绩进行管理,帮助广大师生提高工作效率,实现学生成绩管理工作流程的系统化、规范化和自动化,减少人力财力投资。
1.2背景
该项目的名称为“学生信息管理系统”。
随着学校的规模不断扩大,专业、班级、学生的数量急剧增加,有关学生课的各种信息量也成倍增长,而目前许多高校的学生成绩管理仍停留在人工管理阶段,重复工作较多,工作量大,效率低。因此,迫切需要开发基于网络的学生信息管理系统来提高管理工作的效率。
1.3定义
学生成绩管理:对学生的基本信息、课程选择、成绩的录入、修改、删除、查询等一系列的操作。
2总体设计
2.1需求分析
本软件主要提供以下功能:
本地应用方面:
1、录入功能:
● 提供有权限的人员登入对系统进行管理 2、查询功能:
● 成绩模糊查询; ● 课表查询; 3、修改功能:
● 用户可以修改自己的资料,学号不能为空(在权限范围内的); 4、添加功能:
● 增加一个新记录; 5、删除功能:
● 删除一个学生记录; 6、查询
● 核对人员对系统进行访问;
网络应用:
7、学生查询:
● 提供学生查询自己的成绩; 8、其他查询:
● 提供他人访问学生成绩数据库;
2.2软件结构(如图)
学生成绩管理系统学生教师管理员成绩查询我的消息我的留言个人管理公告管理成绩管理个人资料公告查看角色管理课程分类课程管理班级管理学期管理组织机构管理成绩管理个人管理系部管理3.1登录模块
功能:是用户可以进行各种操作的必须前提。 输入项目:用户名、密码。 输出项目:浏览区和基本资料区。 程序逻辑:
P1:检查用户名、密码与数据库是否吻合(完整性和一致性)。 P2:产生提示用户名或密码错误的消息窗口; P3:用户确认后退出程序运行; P4:进入主窗体; P5:进入事件等待状态;
3.2关闭系统模块
功能:关闭并退出系统,保留相应状态数据。 输入项目:全局变量;
输出项目:更新后的数据库文件和配置文件。 程序逻辑:
P1:设置数据库和配置文件; P2:释放系统资源并退出系统;
3.3浏览模块
功能:维护窗口中浏览区中信息的更新和刷新。
性能:这是经常使用的一个模块,对性能要求在很短时间内作出反应。 输入项目:鼠标或键盘事件。 输出项目:从新设置的浏览区中信息
3.4刷新浏览模块
功能:从新经过修改的浏览区。
3.5查询模块
功能:完成查询功能。 性能:相应时间应尽量快。 输入项目:无。 输出项目:无。 程序逻辑:
P1:进入查询窗体; P2:若用户取消,则返回; P3:获得查询结果;
P4:查询结果显示在主窗体上,并等待用户确认; P5:若查询结果项数等于零,返回;
3.6修改模块
功能:完成修改功能。 输入项目:各种修改。 输出项目:修改后的基本资料 程序逻辑:
P1:点击要修改的表; P2:产生窗体; P3:等待用户修改;
3.7添加模块
功能:完成增加功能。 输入项目:无。 输出项目:无。
3.8限制条件
1硬件条件。该软件要求的具体设备配置必须是奔腾以上的CPU、内存128MB以上、硬盘10GB以上。
2软件限制。Windows9x/2000/XP操作系统,服务器安装SQL Server 2005服务器版
4.1数据库设计
本系统的数据库是SQL server数据库,在SQL环境下创建数据库学生信息库.mdf文件。该数据库包括学生信息表、成绩信息表、用户登录信息表用于纪录学生的基本信息数据库表结构如下所示:
4.1.1各表的物理结构 4.2数据库链接 4.2.1数据库链接代码
实例化关键词SqlDataAdapter,SqlCommand,DataSet SqlDataReader数据阅读器
数据库链接字符串
public static class DB {
///
static string constr;
public static string getConnection() {
constr = \Source=.;AttachDbFilename=|DataDirectory|\\\\学生信息管理.mdf;Integrated Security=True\ return constr; } }
数据库数据集DATASET 驻存在内存中离线
string SQLStr = \ 用户表”;
try {
SqlConnection myCon = new SqlConnection(CString); myCon.Open();//打开数据库
SqlCommand MyCom1 = new SqlCommand();//实例化数据库操作对象 MyCom1.Connection = myCon;
MyCom1.CommandType = CommandType.Text; MyCom1.CommandText = SQLStr;
SqlDataAdapter mydataAdapter1 = new SqlDataAdapter();//实例化适配器 mydataAdapter1.SelectCommand = MyCom1;
DataSet myds = new DataSet();
mydataAdapter1.Fill(myds, “用户表”);
string information = \学生表 where 学号='\ myCon = new SqlConnection(DB.getConnection()); myCon.Open();
MyCom = new SqlCommand(); MyCom.Connection = myCon;
MyCom.CommandType = CommandType.Text;
MyCom.CommandText = information;//设置要执行的命令
SqlDataAdapter MyDataAdapter = new SqlDataAdapter();//生成SqlDataAdapter对象
//设置MyDataAdapter对象的SelectCommand属性值为创建的SqlCommand对象名
MyDataAdapter.SelectCommand = MyCom; MyDs = new DataSet();//产生新的数据集
MyDataAdapter.Fill(MyDs, \学生表\填充数据集
Navigator = this.BindingContext[MyDs, \学生表\用Navigator绑定Student表 SqlDataReader MyDataReader = MyCom.ExecuteReader(); DispValue();//显示当前记录的值
sqlcommand类的属性
1.CommandText
获取或设置要对数据源执行的Transact—SQL语句或存储过程。[1]
2. CommandType
获取或设置一个值,该值指示如何解释CommandText属性。 3.Connection
获取或设置SqlCommand的实例使用的SqlConnection。
SelectCommand 获取或设置一个 Transact-SQL 语句或存储过程,用于在数据源中选择记录。
Fill(DataSet, String) 在 DataSet 中添加或刷新行以匹配使用 DataSet 和 DataTable 名称的数据源中的行。 (继承自
4.2.2数据库链接操作
第一步:附加数据库(对已经建好的数据库进行附加)点击数据库右键附加。
第二部:安全性设置,展开安全性,sa用户点击右键属性,进行安全性设置(密 码设置、默认数据库设置),状态选择登录启用。
第三步:服务器属性设置,右击服务器属性,进行安全性设置。
第四步:重启服务器。右击服务器,选择重启服务器。
4.3数据库调试
数据库成功附加、安全性设置、重启。
5.1登录界面
设计过程:
用于输入用户名和密码登录,选择相应的用户类型进入系统,若是用户类型选择错误则不能进入系统。输入用户名和密码后点击确定判断数据库中的用户是否为合法用户。
设计代码:
string CString =DB.getConnection(); string SQLStr = \用户表\
try {
SqlConnection myCon = new SqlConnection(CString);
myCon.Open();
SqlCommand MyCom1 = new SqlCommand(); MyCom1.Connection = myCon;
MyCom1.CommandType = CommandType.Text; MyCom1.CommandText = SQLStr;
SqlDataAdapter mydataAdapter1 = new SqlDataAdapter();
mydataAdapter1.SelectCommand = MyCom1;
DataSet myds = new DataSet();
mydataAdapter1.Fill(myds, \用户表\
int i;
bool flag =false ;
for (i = 0; i < myds.Tables[\用户表\ {
if (username.Text == \ {
MessageBox.Show(\用户名密码不能为空\警告\ username.Text = \ password.Text = \ username.Focus(); flag = true; break; } else if (username.Text != myds.Tables[\用户表\|| password.Text != myds.Tables[\用户表\ {
flag = false; }
else if (username.Text == myds.Tables[\用户表\&& password.Text == myds.Tables[\用户表\ {
string yhm = username.Text; mm = password.Text;
Main f1 = new Main(username.Text,password .Text ); this.Hide();
for (i = 0; i < myds.Tables[\用户表\ {
if (yhm == myds.Tables[\用户表\用户表\管理员\
{
f1.教师操作ToolStripMenuItem.Visible = false; f1.学生操作ToolStripMenuItem.Visible = false; f1.toolStrip1.Visible = false;
} else if (yhm == myds.Tables[\用户表\用户表\教师\
{
f1.toolStripButton2.Visible = false; f1.toolStripButton3.Visible = false;
f1.管理员操作ToolStripMenuItem.Visible = false; f1.学生操作ToolStripMenuItem.Visible = false; } else if (yhm == myds.Tables[\用户表\用户表\学生\
{
f1.toolStripButton1.Visible = false;
f1.教师操作ToolStripMenuItem.Visible = false; f1.管理员操作ToolStripMenuItem.Visible = false; } }
flag = true;
f1.ShowDialog();
this.Close(); break; } }
if (flag == false) {
MessageBox.Show(\输入有误!请重新输入!\警告\ username.Text = \ password.Text = \ username.Focus(); }
myCon.Close(); }
catch (SqlException OleDbe) {
MessageBox.Show(OleDbe.Message, \连接失败\
基本控件
Form窗体 Login
控件的属性值截图
代码实现功能区或事件驱动
实现直接利用Login的属性获取键盘enter的值
5.2学生个人信息查询界面
主要基本控件
DataGridView ComboBox
控件的属性值截图
MDI属性
代码实现功能区或事件驱动
button5.Enabled = true; button4.Enabled = true; string SQLStr;
if (comboBox1.Text == \学生\ {
if (textBox1.Text == \ {
SQLStr = \学生表 \ } else {
SQLStr = \学生表 where 学号='\+ \
}
Myda = new SqlDataAdapter(SQLStr, myCon); Myds = new DataSet(); Myda.Fill(Myds, \学生表\
this.dataGridView1.DataSource = Myds.Tables[0]; }
if (comboBox1.Text == \教师\ {
if (textBox1.Text == \ {
SQLStr = \教师表 \ } else {
SQLStr = \* from 教师表 where 教师号='\+ textBox1.Text + \
}
Myda = new SqlDataAdapter(SQLStr, myCon); Myds = new DataSet(); Myda.Fill(Myds, \教师表\
this.dataGridView1.DataSource = Myds.Tables[0];//把缓存中的表赋值到dataGridView1
5.2.1 使用皮肤引擎
控件的属性值截图
代码实现功能区及事件驱动
private void wf_denglu_Load(object sender, EventArgs e)//加载
{
skinEngine1.SkinFile = \; }
基本控件
控件的属性值截图
代码实现功能区及事件驱动
private void 退出系统ToolStripMenuItem_Click(object sender, EventArgs e) {
if (MessageBox.Show(\是否退出系统!\系统提示\== DialogResult.Yes) {
Application.Exit(); } }
private void 重新登录ToolStripMenuItem_Click(object sender, EventArgs e) {
Login dl = new Login(); this.Hide();
dl.ShowDialog(); this.Close(); }
private void 用户信息管理ToolStripMenuItem_Click(object sender, EventArgs e) {
if (childFormNumber == 0) {
MemberManage yhgl = new MemberManage(); //MDI的窗体 yhgl.MdiParent = this; childFormNumber++; yhgl.Show(); } else {
MessageBox.Show(this, \请先关闭正在运行的窗口,再进行操作!\错误提示\
} }
private void 排课管理ToolStripMenuItem_Click(object sender, EventArgs e) {
if (childFormNumber == 0) {
CourseManage pkgl = new CourseManage(); pkgl.MdiParent = this; childFormNumber++; pkgl.Show(); } 示\
}
else {
MessageBox.Show(this, \请先关闭正在运行的窗口,再进行操作!\错误提}
5.3学生信息管理
5.3.1学生信息查询
5.3.2数据绑定及数据导航
BindingManagerBase 抽象类
使用 BindingManagerBase,可以对 Windows 窗体上绑定到相同数据源的数据绑定控件进行同步。(有关将控件简单绑定到数据源的更多信息,请参见 Binding 类。)例如,假定窗体包含两个绑定到相同数据源的不同列的 TextBox 控件。数据源可能是一个包含客户姓名的 DataTable,其中的列可能包含名字和姓氏。这两个控件必须同步以便一起显示同一客户的正确姓名。从 BindingManagerBase 类继承的 CurrencyManager 通过维护指向数据源中当前项的指针来完成此同步。TextBox 控件被绑定到当前项,因此它们显示同一行的信息。在当前项更改时,CurrencyManager 通知所有绑定控件,以便它们能够刷新它们的数据。此外,可以设置 Position 属性来指定控件所指向的 DataTable 中的行。若要确定数据源中存在的行数,请使用 Count 属性。
public partial class StudentSearch : Form {
private BindingManagerBase Navigator;//用来对记录导航 private SqlConnection myCon;//连接对象 private SqlCommand MyCom;//命令对象
//private SqlDataAdapter MyDataAdapter;//数据适配器对象 private DataSet MyDs;//数据集对象
public string yhm;
public StudentSearch(string zm) {
InitializeComponent();
yhm = zm;//学号 }
private void button2_Click(object sender, EventArgs e) {
this.Close(); }
private void DispValue()//把当前记录的值显示在文本框中 {
for (int i = 0; i < MyDs.Tables[\学生表\ {
Navigator.Position = i;
textBox1.Text = MyDs.Tables[\学生表\学号\
textBox2.Text = MyDs.Tables[\学生表\姓名\
textBox3.Text = MyDs.Tables[\学生表\性别\
textBox4.Text = MyDs.Tables[\学生表\班级\
textBox5.Text = MyDs.Tables[\学生表\Navigator.Position][\出生日期\
textBox6.Text = MyDs.Tables[\学生表\家庭所在地\
textBox7.Text = MyDs.Tables[\学生表\是否团员\ }
}
private void StudentSearch_Load(object sender, EventArgs e) {
string information = \学生表 where 学号='\ myCon = new SqlConnection(DB.getConnection()); myCon.Open();
MyCom = new SqlCommand(); MyCom.Connection = myCon;
MyCom.CommandType = CommandType.Text;
MyCom.CommandText = information;//设置要执行的命令
SqlDataAdapter MyDataAdapter = new SqlDataAdapter();//生成SqlDataAdapter对象
//设置MyDataAdapter对象的SelectCommand属性值为创建的SqlCommand对象名
MyDataAdapter.SelectCommand = MyCom; MyDs = new DataSet();//产生新的数据集
MyDataAdapter.Fill(MyDs, \学生表\填充数据集
Navigator = this.BindingContext[MyDs, \学生表\用Navigator绑定Student表 //创建BindingManagerBase对象必须要使用到BindingContext类 SqlDataReader MyDataReader = MyCom.ExecuteReader(); DispValue();//显示当前记录的值 }
BindingManagerBas管理绑定到相同数据源和数据成员的所有 Binding 对象。该类为抽象类。
Position
当在派生类中被重写时,获取或设置绑定到该数据源的控件
所指向的基础列表中的位置。
学生修改密码:
设计过程:
体现出面向对象思想,构造函数,类,属性,继承 直接调用静态DB类的static方法 设计代码:
public static class DB {
static string constr;
public static string getConnection() {
constr = \
Source=.;AttachDBFilename=|DataDirectory|\\\\学生信息管理.mdf;Integrated Security=True\; return constr; }
}
public partial class Pssword : Form {
private SqlConnection MyCon; private SqlCommand MyCom; public string Str; public string yhm; public string mm;
public Pssword(string n,string m) {
InitializeComponent(); yhm = n; mm = m;
MyCon = new SqlConnection(DB. getConnection()); MyCon.Open(); }
正在阅读:
学生管理系统说明文档03-16
外国新闻传播史09-29
《一面》平板课教学设计方案11-18
【试卷】课标实验教材小学六年级(下)第五单元数学广角数学试卷_405-27
摄影摄像专业(2015)(2015)人才培养方案课件资料04-07
2018年乡镇纪检监察工作总结及2019年工作计划01-15
计算机系教师队伍现状分析与建设对策03-02
天津2017年上半年房地产经纪人:私有财产范围试题01-09
2016年秋高中历史 第二单元 古希腊和古罗马的政治制度 第5课 爱琴文明与古希腊城邦制度习题 岳麓03-17
基于小波的图像压缩比较12-06
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 管理系统
- 说明
- 文档
- 学生
- 多体系优化融合 全流程风险防控
- 飞机的发展史 - 图文
- 2015年高考语文真题分类汇编(09)语言运用题(含答案解析)
- 大学英语自主学习能力培养课程随堂测试题目
- matlab毕业设计
- 《自己的花是让别人看的》教案
- 总承包工程部安全生产管理规定
- 我国小型LNG产业发展现状及其经济性分析
- 2011年冬Linux操作系统实训报告
- 2013版《基础课练习题》参考答案(最新)
- 响水大米
- 小学健康教育宣传资料
- 口语交际教学随笔
- 中央电大高级财务会计任务作业任务3-3
- 《电气控制与PLC》考试试题 - 图文
- 2012年物理中考复习 - 物理公式及相关试题
- 学生团体心理辅导活动记录 - 图文
- 数字式风速仪操作规程
- 博弈论练习题1
- 南亚与印度 - 图文