C#程序设计项目案例学生信息管理系统.docx
- 文档编号:8168106
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:13
- 大小:44.70KB
C#程序设计项目案例学生信息管理系统.docx
《C#程序设计项目案例学生信息管理系统.docx》由会员分享,可在线阅读,更多相关《C#程序设计项目案例学生信息管理系统.docx(13页珍藏版)》请在冰豆网上搜索。
C#程序设计项目案例学生信息管理系统
学生信息管理系统
一、需求分析
学生信息管理系统是一个现代高校不可缺少的一部分,使用计算机对高校日常学生管理和教学工作进行统一管理,有助于我们快速了解高校教学现状,实现高校教学管理的信息化,提高现在高校的综合竞争能力。
(一)系统概述
学生信息管理系统是一个可以用于学生信息以及课程构成进行增、删、改、查等操作的应用软件。
该系统提供了一个较完整的人机界面供用户进行操作,可根据用户权限,用户可以根据图形化界面对信息的相关各项数据进行管理操作。
(二)系统运行环境
1、硬件环境
●处理器:
IntelP4或更高
●内存:
1GB
●硬盘空间:
160GB
●显卡:
SVGA显示适配器
2、软件环境
●操作系统:
WindowsXP/7
●运行平台:
.NETFramework4
(三)功能需求描述
学生信息管理系统软件是由学生基本信息,课程基本信息构成,用于对教学管理进行辅助的应用软件。
功能需求描述如下:
1、考虑到系统的可移植性,需要一个数据库配置模块,用于配置系统的数据库环。
2、提供用户登录界面,用户输入正确的用户名和密码后,才可以进入系统。
系统应当包含两种用户:
超级用户和一般用户。
超级用户具有系统操作的所有权限。
一般用户需先注册才能使用。
可以进行系统用户管理,主要用于管理系统用户,包括设置一般用户的操作权限和删除一般用户的功能。
3、可以对密码进行保护,遗忘密码的情况可以找回密码。
4、课程模块用于课程的相关操作,如果是课程已有课程,可以修改课程时间、学分等,如果系统中没有的课程,则添加课程信息的功能。
课程信息包括课程名、学期、学分和学时。
5、可以进行查询学生信息,可以按照学号、姓名、性别、生日等模糊查询课程信息的功能。
6、可以给用户提供一些帮助信息,告诉用户如何操作本系统。
二、总体设计
(一)设计思路
本系统使用C#语言进行开发和实现,总体思想基于面向对象的程序设计。
在本系统中使用三层结构,主要实现的是管理系统的增、删、改和查等典型功能,应用了高级语言程序设计中的基本控制结构和事件触发机制,并且包含对数据库的操作和对文件的读、写等操作。
在软件开发过程中应用了软件工程的基本理论。
(二)系统功能模块
学生信息管理系统是能够提高校现代化的一个软件系统,该系统涉及到学生管理、课程管理等功能的结合。
根据“高内聚”与“低耦合”原则,将教务系统模块化,下面直接给出系统包括的以下十二个功能模块,其中第三-十模块为本系统的核心功能模块。
1、数据库配置模块
考虑到系统的可移植性,为系统设计了一个数据库配置模块,用于配置系统的数据库环境。
用户只需要提供数据库服务器名称、数据库名称以及一些登录数据库的账号信息即可,该功能是一般数据库应用系统都不可缺少的。
2、登录模块
登录模块提供用户登录界面,用户输入正确的用户名和密码后,则可进入到系统主窗口,然后可以选择进入相应的子系统。
本系统使用了两种类型的系统用户:
超级用户和一般用户。
超级用户由系统开发者直接添加到数据库中,用户名为“admin”“1234”,超级用户具有系统操作的所有权限。
一般用户使用下面第3点介绍的“用户注册模块”注册。
3、用户注册模块
用户注册模块提供用户注册的功能,用于注册一般用户,注册完成后,默认不具备系统的核心功能操作权限,核心功能操作权限须由超级用户通过下面第4点介绍的“系统用户管理模块”来分配。
4、系统用户管理模块
本系统的用户管理模块主要用于管理系统用户,包括设置一般用户的操作权限和删除一般用户的功能。
5、密码保护信息管理模块
密码保护信息管理模块主要用于管理系统用户的密码保护信息。
考虑到系统的安全,在设计的学生管理信息系统中,用户密码是用MD5算法加密后再存储到数据库中的。
这样,为了能够在忘记密码的情况下,通过提供密码保护信息来修改用户密码,就需要在用户登录系统后设置密码保护信息。
为简单起见,本模块的密码保护信息包括以下4个问题:
问题1:
您的姓名是?
问题2:
您的出生地是?
问题3:
您的手机号码是?
问题4:
您的E-Mail地址是?
当用户忘记密码时,可以提供这4个问题的预设答案来“找回”用户密码。
6、找回用户密码模块
“找回”用户密码模块用于提供“找回”用户密码功能。
设计本模块的目的是当用户忘记密码的时候,可以通过本模块提供密码保护信息来重设用户密码。
7、课程添加模块
课程添加模块用于课程添加的相关操作,如果是系统已有课程,提供修改已有的功能,如果系统中没有的课程,则提供添加课程信息的功能。
课程信息包括课程号、课程名、学分、学时和时间。
8、课程查询模块
课程查询模块用于查询课程信息,本系统提供了按照课程号、课程名、学分、学时和时间模糊查询课程信息的功能。
9、选课系统模块
选课系统模块是教务系统最核心的功能模块,实现选课系统的相关功能,包括选课、可选人数修改和添加课程等功能。
选课数据包括课程号、课程名、选课人数、总价、学分、上课日期和老师。
10、选课数据查询模块
选课数据查询模块用于选课数据,本系统提供了按照课程号、课程名、选课人数、总价、学分、上课日期和老师精确查询销售数据的功能。
11、帮助模块
帮助模块用于给用户提供一些帮助信息,告诉用户如何操作本系统。
12、关于模块
关于模块用于给用户提供一些关于本软件的信息,如软件版本、开发者的联系方式等。
三、系统架构
本学生管理信息系统采用C/S架构和三层模型实现。
四、数据库设计
根据前面两节的分析,学生管理信息系统数据库中应该包含5个数据表,分别是:
T-User表:
用于存放系统用户信息;T-Information表:
用于存放密码保护信息;T-Course表:
用于存放课程信息;T-SelectCourse表:
用于选课信息。
接下来介绍一下各数据表的结构及相关说明。
(一)系统用户表
系统用户表“T_User”用于存放系统用户的相关数据,包含用户名、用户密码和用户类型。
其结构如表1所示。
表1系统用户表
列名
说明
数据类型、大小
约束
userName
用户名
varchar(13
主键
userPassword
用户密码
varchar(32)
非空
userType
用户类型
char(8)
取值“超级用户”、“一般用户”
(二)密码保护信息表
密码保护信息表“T_Information”用于存放系统用户的密码保护信息,包括用户名、姓名、出生地、手机号码、E-Mail地址。
其结构如表2所示。
表2密码保护信息表
列名
说明
数据类型、大小
约束
userName
用户名
varchar(32)
主键,TB_User的外键
name
姓名
varchar(32)
answer1
出生地
varchar(50)
answer2
手机号码
char(11)
answer3
E-Mail地址
varchar(32)
(三)课程信息表
课程信息表“T-Course”用于存放课程的相关数据,包含课程号、课程名、学分、学时。
其结构如表4所示。
表4课程信息表
列名
说明
数据类型、大小
约束
Con
课程号
varchar(32)
主键
Cname
课程名
varchar(32)
非空
Ccardit
课程学分
int
非空
Csemester
开课学期
int
非空
Cperiod
总学时
int
非空
(四)选课信息表
选课信息表“TB_SelectCours”用于存放选课的相关数据,包含课程号、课程名、学分、学时。
其结构如表5所示。
表5销售信息表
列名
说明
数据类型、大小
约束
Son
学号
int
主键,自动增长标识
Son
课程号
varchar(32)
TB_Goods的外键
grade
院系
int
非空
五、构建三层模型
使用类库构建三层模型,如下图1所示:
图1三层模型
六、详细设计
(一)设计Model实体类
以User实体类为例,代码如下:
//--------------------------------------------------------------------
publicclassUser
{
///
///学号
///
publicstringuserName{get;set;}
///
///密码
///
publicstringuserPassword{get;set;}
///
///用户分类
///
publicstringuserPurview{get;set;}
publicstringfirstlogin{get;set;}
}
}
//--------------------------------------------------------------------
(二)数据访问层(DAL)的实现
以用户操作为例,代码如下:
//--------------------------------------------------------------------
publicclassUserDAL
{
publicDBHelperdh=newDBHelper();
///
///刷新数据
///
///
publicDataSetRefreshData()
{
stringsqlStr;
DataSetds=newDataSet();
sqlStr="select*fromT_UserwhereuserPurview='管理员'oruserPurview='一般用户'";
ds=DBHelper.GetDataFromDB(sqlStr);
returnds;
}
///
///刷新数据2
///
///
publicDataSetRefreshData2()
{
stringsqlStr;
DataSetds=newDataSet();
sqlStr="select*fromT_UserwhereuserPurview='一般用户'";
ds=DBHelper.GetDataFromDB(sqlStr);
returnds;
}
///
///添加用户
///
///
publicvoidaddUser(Useruser)
{
stringsqlStr;
sqlStr="insertintoT_Uservalues('"+user.userName.Trim()+"','"+user.userPassword.Trim()+"','"+user.userPurview.Trim()+"','是')";
DBHelper.Update(sqlStr);
}
///
///删除用户
///
///
publicvoiddeleteUser(Useruser)
{
stringsqlStr="DELETEFROMT_InformationwhereuserName='"+user.userName+"'";
//删除账号
stringquery="DELETEFROMT_UserWHEREuserName='"+user.userName+"'";
DBHelper.Update(sqlStr);
DBHelper.Update(query);
}
}
//--------------------------------------------------------------------
(三)业务逻辑层(BLL)的实现
以用户操作为例,代码如下:
//--------------------------------------------------------------------
publicclassUserBAl
{
publicUserDALuserDAL=newUserDAL();
///
///刷新数据
///
///
publicDataSetRefreshData()
{
returnuserDAL.RefreshData();
}
///
///刷新数据2
///
///
publicDataSetRefreshData2()
{
returnuserDAL.RefreshData2();
}
///
///添加用户
///
///
publicvoidaddUser(Useruser)
{
userDAL.addUser(user);
}
///
///删除用户
///
///
publicvoiddeleteUser(Useruser)
{
userDAL.deleteUser(user);
}
}
//--------------------------------------------------------------------
(四)用户界面层(UI)的实现
以售货员登录为例,代码如下:
privatevoidbtnSaleLogin_Click(objectsender,EventArgse)
{
try
{
stringuserName=txtUserName.Text.Trim();
stringuserPassword=txtUserPassword.Text.Trim();
stringregexUser=@"^[a-zA-Z]\w{4,31}$";
if(!
Regex.IsMatch(userName,regexUser))
{
MessageBox.Show("用户名格式不正确,请重新输入","提示");
txtUserName.Text="";
txtUserPassword.Text="";
txtUserName.Focus();
return;
}
if(userPassword.Length<6||userPassword.Length>32)
{
MessageBox.Show("密码为6-32个字符,请重新输入","提示");
txtUserPassword.Text="";
txtUserPassword.Focus();
return;
}
UserBLLuserBLL=newUserBLL();
stringresult=userBLL.UserLogin(userName,userPassword);
if(result=="OK")
{
UserBLL.loginType="SaleLogin";
GoodsSaleob_GoodsSale=newGoodsSale();
ob_GoodsSale.Show();
this.Hide();
}
elseif(result=="UserNameError")
{
MessageBox.Show("用户名错误,请重新输入","提示");
txtUserName.Text="";
txtUserPassword.Text="";
txtUserName.Focus();
}
else
{
MessageBox.Show("密码错误,请重新输入","提示");
txtUserPassword.Text="";
txtUserPassword.Focus();
}
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message);
}
}
//--------------------------------------------------------------------
(五)其他模块的实现
具体代码详见源代码文件夹。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 程序设计 项目 案例 学生 信息管理 系统