用C#做学生信息管理系统Word格式.doc
《用C#做学生信息管理系统Word格式.doc》由会员分享,可在线阅读,更多相关《用C#做学生信息管理系统Word格式.doc(34页珍藏版)》请在冰点文库上搜索。
附源程序 17
数据库课程设计
摘要
目前,我国的大中专院校的学生信息管理水平普遍不高。
在当今的信息时代,传统的管理方法必然要被以计算机为基础的信息管理系统所代替,而且目前很多重点院校都已经有了自己的教务管理系统。
已有的大都比较偏向学生档案管理,学籍管理等,而本案例则把重点放在信息管理上,从整体上进行分析设计,这对于其他类似的管理系统的设计有很高的参考意义。
采用学生信息管理系统进行C#程序开发,将C#程序中的所有概念和技术应用到学生信息管理系统的开发当中,按照软件工程的思想来进行网站开发。
分别进行学生信息管理系统需求分析、学生信息管理系统数据库设计、学生信息管理系统主菜单设计、学生信息管理系统中类的应用、学生信息管理系统数据访问方法、学生信息管理系统窗体和事件应用和学生信息管理系统应用部署等几个模块来完成。
关键词:
C#;
数据库;
信息管理;
管理系统
32
第一章需求分析
1.1信息需求
我们将管理体制和建立各种管理规范与开发信息系统有机地结合起来,通过几个功能模块进行统一管理,要求管理系统满足以下几个方面的要求:
从用户角度来看,系统首先应该能够提供便捷与强大的信息查询功能。
对于学校的全体教师而言,他们应该能够对系统的不同部分有各自不同的权限。
具有较强的灵活性及可扩展性,能够存储一定数量的学生信息,并方便有效地进行相应的数据操作和管理.这主要包括:
学生信息的录入、删除及修改,各种信息的单条件查询和多条件的组合查询,以及学生各科信息的多关键字检索查询。
具有较高的安全性,系统登录有各自的安全账户。
系统管理员可添加用户信息,更改用户信息和删除用户信息,同时可以针对其他的信息具有所有的权限;
任课教师可以录入信息;
学生只能对所有的信息具有查询的功能,不具有修改、删除和录入的权限。
系统能够提供数据信息授权访问,防止随意删改等。
1.2功能需求
1.2.1功能模块设计
系统管理
学生管理
用户添加
用户查询
用户修改
用户删除
学生添加
学生查询
学生修改
学生删除
图1-1功能模块图
5
1.2.2系统管理
本模块主要是维护系统的正常运行和安全性设置,包括当登录用户身份时管理员能够完成添加用户、删除用户、修改密码、查询用户的权限和重新登录等功能,以及能够实现按照学生的学号、学生的姓名、学生所在班级代码或者学生的性别,进行单条件或者组合条件的查询。
主要有:
1、用户信息添加
2、用户信息查询
3、用户信息删除
4、用户信息修改
5、用户修改密码
1.2.3学生管理
本模块能够实现有关学生基本信息的录入、修改、查询和删除。
同时能够实现按照学生学号或学生姓名,进行单条件或者组合条件的查询。
1、学生基本信息的录入
2、学生基本信息的修改
3、学生基本信息的查询
4、学生基本信息的删除
33
第二章数据库设计
学生信息管理系统是以学生信息数据为主的管理,其数据库的建立、健全就是关键。
合理的数据库结构设计可以提高数据存储的效率,保证数据的完整性和一致性。
同时,合理的数据库结构也有利于程序的实现。
主要步骤如下:
1、创建学生信息管理系统数据库:
SXXXGL
2、创建学生信息管理系统的数据表:
StudentInfo和UserInfo
表2-1学生信息表StudentInfo
列名
数据类型
数据长度
允许null
备注
Sno
varchar
8
不允许
学号
Sname
20
允许
姓名
Sex
性别
Birthday
datetime
出生日期
Classid
10
班级
Tel
电话
表2-2用户登录表UserInfo
列名
Userlevel
Userid
Userpwd
用户权限
用户名
用户密码
第三章类的应用
3.1模块任务
创建学生信息管理系统中的各个实体类。
3.2模块指标
创建学生信息管理系统的实体类:
Constants类、StudentInfoData类、StudentInfoOperation类、DataAccess类、UserInfoData类和UserInfoOperation类。
3.3模块提出
学生信息管理系统的需求分析和数据库创建之后,已经确定了所要实现的功能模块内容,对于程序的开发,可以采用直接在表现层来编写代码,直接访问数据库。
但是这种方式,对于程序的安全性和后续程序的扩展都是非常不利的。
因此,创建实体类是必不可少的。
3.4模块实施
3.4.1学生信息类
学生信息类StudentInfoData.cs,主要是针对学生信息的实体定义。
StudentInfoData.cs类的访问修饰符应该设为public,设置为公开的,这样才可以被其他层的类访问。
定义StudentInfoData.cs类的形式如下所示:
publicclassStudentInfoData
{}
StudentInfoData类中主要进行属性的设置。
各个属性对应数据库StudentInfo表中的相应字段。
主要程序代码包含6个内部变量:
1、设置学号的内部变量为字符串类型的sno
2、学生姓名的内部变量为字符串类型的sname
3、性别的内部变量为字符串类型的sex
4、出生日期的内部变量为字符串类型的birthday
5、电话的内部变量为字符串类型的tel
6、班级号的内部变量为字符串类型的classid
使用get访问器来返回所对应的内部变量的值,使用set访问器来设置所对应的内部变量的值。
3.4.2用户信息类
用户信息类UserInfoData.cs,主要是针对用户信息的实体定义。
UserInfoData类中主要进行属性的设置。
各个属性对应数据库UserInfo表中的相应字段。
主要程序代码包含3个内部变量:
1、设置用户名的内部变量为字符串类型的userid
2、用户密码的内部变量为字符串类型的userpwd
3、用户身份的内部变量为字符串类型的userlevel
3.4.3用户权限类
用户权限类Constants.cs,主要是针对用户权限的实体定义。
Constants类中主要进行属性的设置。
主要程序代码包含2个内部变量:
1、设置用户名的内部变量为字符串类型的username
2、用户权限的内部变量为字符串类型的userlevel
使get访问器来返回所对应的内部变量的值,使用set访问器来设置所对应的内部变量的值。
第四章数据访问方法
4.1模块任务
创建学生信息管理系统中的各个操作类。
4.2模块指标
创建学生信息管理系统的操作类:
DataAccess类、StudentInfoOperation类、和UserInfoOperation类。
针对数据表中的数据信息进行实体类的定义之后,需要针对这些数据表中的内容,定义针对数据的增、删、改和查等数据访问操作类。
4.3模块实施
4.3.1数据访问类
DataAccess.cs类的访问修饰符设为public,设置为公开的,这样才可以被其他类访问。
但是在定义DataAccess.cs类之前,需要引用命名空间,如下所示:
usingSystem.Data;
usingSystem.Data.SqlClient;
DataAccess.cs类主要是实现数据库连接及对SQL命令的执行。
publicclassDataAccess {}
首先在DataAccess.cs类中定义静态连接字符串ConnectionString,其代码如下所示:
publicstaticstringConnectionString="
datasource=.;
database=SSCGGL;
integratedsecurity=true;
"
;
publicboolExecuteSQL(stringsql)
publicSqlDataReaderGetReader(stringsql)
publicDataSetGetDataSet(stringsql,stringtablename)
publicintGetCount(stringsql)
publicboolCheckAdmin(stringstrname,stringstrpwd)
4.3.2学生操作类
StudentInfoOperation.cs类的访问修饰符设为public,设置为公开的,这样才可以被其他类访问。
StudentInfoOperation.cs类主要是实现对学生信息的操作,针对数据库中的StudentInfo表进行增删改查操作。
定义StudentInfoOperation.cs类的形式如下所示:
publicclassStudentInfoOperation{}
在该类中,定义的方法都是需要调用数据访问类DataAccess.cs中的方法,因此需要首先实例化数据访问类DataAccess类的对象。
定义的代码如下所示:
privatestaticDataAccessdataAccess=newDataAccess();
publicstaticboolinsertStudentInfo(StudentInfoDatastudentInfoData)
publicstaticboolupdateStudentInfo(StudentInfoDatastudentInfoData)
publicstaticbooldeleteStudentInfo(stringsno)
publicstaticDataSetgetStudentInfo(StudentInfoDatastudentInfoData)
4.3.3用户操作类
UserInfoOperation.cs类的访问修饰符设为public,设置为公开的,这样才可以被其他类访问。
UserInfoOperation.cs类主要是实现对用户信息的操作,针对数据库中的UserInfo表进行增删改查操作。
定义UserInfoOperation.cs类的形式如下所示:
PublicclassUserInfoOperation{}
publicstaticboolinsertUserInfo(UserInfoDatadata)
publicstaticboolupdateUserInfo(UserInfoDatadata)
publicstaticbooldeleteUserInfo(stringuserid)
publicstaticDataSetgetUserInfo(UserInfoDatadata)
publicstaticDataSetgetUserInfoAll(UserInfoDatadata)
第五章窗体和事件应用
5.1模块任务
5.1.1创建学生信息管理系统中的各个窗体
5.1.2实现对用户、学生信息的增删改查功能
创建学生信息管理系统的窗体:
Frmlogin.cs登录窗体、Frmxsxxgl.cs主窗体、Frmaddstu.cs添加学生窗体、FrmaddUser.cs添加用户窗体、Frmcjcx.cs信息查询窗体、Frmmmxg.cs用户修改密码窗体、Frmstuxxcx.cs学生查询窗体、Frmusercx.cs用户查询窗体。
5.2模块的提出
窗体是进行用户体验的最好方式,当用户使用学生信息管理系统的时候,窗体是用户直接使用的界面,因此需要设计合理并便于用户操作。
5.3模块实施
5.3.1Frmlogin.cs登录窗体
Frmlogin.cs窗体是用户进行登录所使用的窗体,主要包含Label标签、TextBox文本框和Button按钮。
用户输入用户名和密码之后,点击“登录”按钮,可以验证用户身份的合理性,用户身份有效可以登录到主界面中。
如图5-1所示。
图5-1学生信息管理系统的主界面
5.3.2Frmxsxxgl.cs主窗体
Frmxsxxgl.cs窗体为主窗体,窗体上包含了所有模块的菜单项,但是系统根据用户的权限,来设置菜单项中的哪些模块是可以使用的,哪些模块是不可以使用的。
首先在Frmxsxxgl.cs主界面的构造函数中,进行用户权限的判断,如果是学生或者教师登录,那么只允许部分模块进行操作,只有管理员可以所有模块都进行操作。
首先创建UserInfoData用户实体类的对象data,并且将Frmlogin.cs窗体中用户登录的名字赋值给data对象的Userid属性,创建数据集ds来获取UserInfoOperation用户操作类中的getUserInfoAll()方法中用户记录。
如果用户记录不为空,那么获取该用户的Userlevel字段的值,该值如果为学生或者教师,那么部分模块的Enabled属性设置为false,让这些模块不可用。
如果为管理员,那么默认的所有的模块都是可用的,也就是所有模块菜单的Enabled属性的初值均为true。
如图5-2所示。
图5-2主页面中的菜单
5.3.3Frmaddstu.cs添加学生窗体
Frmaddstu.cs窗体主要是用来添加学生信息或者修改学生信息,输入学号、姓名、性别、出生日期、家庭住址、家庭电话和所在班级,点击“保存”按钮即可录入或者修改学生信息记录,点击“取消”按钮,退出学生信息添加窗体。
如图7-1所示。
图5-3Frmaddstu.cs窗体
5.3.4FrmaddUser.cs添加用户窗体
FrmaddUser.cs窗体主要是实现登录用户的添加操作。
该窗体中包含了用户名、密码、确认密码和用户权限这些信息。
当点击“保存”按钮时,即可以将用户的这些信息添加到数据库中。
点击“取消”按钮,可以退出用户信息添加窗体。
如图7-2所示。
图5-4FrmaddUser.cs窗体
5.3.5Frmmmxgx.cs用户修改密码窗体
Frmmmxgx.cs窗体主要是实现用户修改密码的功能。
该窗体中,可以通过输入用户名和原密码,然后输入新密码和确认新密码,来修改用户的登录密码。
如图7-3所示。
图5-5Frmmmxgx.cs窗体
5.3.6Frmstuxxcx.cs学生信息查询窗体
Frmstuxxcx.cs窗体主要是实现学生信息查询功能。
该窗体中,可以通过学生学号、学生姓名、性别或班级信息进行查询,窗体中有一个DataGridView控件,当查询出结果后,可以选中控件中的一条记录,进行删除或者修改操作。
如图7-4所示。
图5-6Frmstuxxcx.cs窗体
5.3.7Frmusercx.cs用户信息查询窗体
Frmusercx.cs窗体主要是实现用户信息查询功能。
该窗体中,可以通过用户名或者用户类型进行查询,窗体中有一个DataGridView控件,当查询出结果后,可以选中控件中的一条记录,进行删除或者修改操作。
如图4-5所示。
图5-7Frmusercx.cs窗体
第六章程序设计总结
6.1感想
6.2致谢
参考文献
[1]Andrew
Troelsen著朱晔
译《C#与.NET
4高级程序设计》
人民邮电出版社
2011年4月
[2]张俊
崔海波
著《ADO.NET数据库应用开发》机械工业出版社2008年1月
[3](英)夏普著《VisualC#2005从入门到精通》清华大学出版社2006-6-1
[4](美)里克特著,李建忠译《NET框架程序设计(修订版)》
清华大学出版社2003-11-1
[5](美)罗宾逊,(美)内格尔著,李敏波翻译《C#高级编程(第3版)》
清华大学出版社2005-6-1
附源程序
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
namespace学生信息管理系统4
{
publicpartialclassFrmlogin:
Form
{
publicFrmlogin()
{
InitializeComponent();
}
//设置启动模块
privatevoidbtnlogin_Click(objectsender,EventArgse)
stringname,pwd;
if(Username.Text.Trim()!
="
&
&
password.Text.Trim()!
)
{
name=Username.Text.Trim();
pwd=password.Text.Trim();
DataAccessdata=newDataAccess();
if(data.CheckAdmin(name,pwd))
{
Classes.Constants.Username=Username.Text.Trim();
Frmxsxxglwinmain=newFrmxsxxgl();
winmain.Show();
this.Hide();
}
else
MessageBox.Show("
您输入的账号或密码有误,请重新登录!
);
Username.Text="
password.Text="
}
}
privatevoidbutton2_Click(objectsender,EventArgse)
Application.Exit();
}
publicpartialclassFrmxsxxgl:
publicFrmxsxxgl()
Classes.UserInfoDatadata=new学生信息管理系统4.Classes.UserInfoData();
data.Userid=Classes.Constants.Username;
//获取登录用户的姓名
DataSetds=Classes.UserInfoOperation.getUserInfoAll(data);
if(ds.Tables[0].Rows.Count>
0)
//获取登录用户的身份
Classes.Constants.Userlevel=ds.Tables[0].Rows[0]["
Userlevel"
].ToString();
//登录身份是“学生”,设置某些模块不可被调用
if(Classes.Constants.Userlevel=="
学生"
this.用户查询ToolStripMenuItem.Enabled=false;
this.用户删除ToolStripMenuItem.Enabled=false;
this.用户添加ToolStripMenuItem.En