目 录
第1章 概 述 ................................................................................................................... 2 1.1 项目的目的和意义 ................................................................................................ 2 1.2项目体系结构及开发环境 ..................................................................................... 2 1.3系统基本功能 ......................................................................................................... 2 第2章 系统设计 ............................................................................................................. 4 2.1系统的模块划分 ..................................................................................................... 4 2.2系统的模块流程图 ................................................................................................. 5 2.3数据库设计 ............................................................................................................. 6 2.4数据库关系图 ......................................................................................................... 9 第3章 系统的详细设计及实现 ................................................................................. 12 3.1公共类 ................................................................................................................... 12 3.2系统登录与主窗体 ............................................................................................... 14 3.3 系统管理 .............................................................................................................. 17 3.4 专业管理 .............................................................................................................. 19 3.5 课程管理 .............................................................................................................. 22 3.6 研究生管理 .......................................................................................................... 25 3.7 成绩管理 .............................................................................................................. 28 3.8 用户管理 .............................................................................................................. 30 3.9 登录选择代码 ...................................................................................................... 31 3.10 退出选择代码 .................................................................................................... 31 3.11 其他公共代码 .................................................................................................... 32 总结 ................................................................................................................................... 33 参考文献 ........................................................................................................................... 34
1
-
-
东北石油大学本科生课程设计(论文)
第1章 概 述
1.1 项目的目的和意义
研究生信息管理是一项非常重要的工作,它关系到整个学校的工作效率。一个好的信息管理系统能够方便系统管理人员对学校的基本数据进行维护,包括信息的增加,修改以及对各项信息的变动等操作。采用研究生管理信息系统不仅可以节省人力物力,而且可以增强学校资料的安全性,提高学校的管理能力。
运用该系统,可以清晰地了解研究生的课程、专业、成绩等信息,并根据需要添加、删除、修改相应的信息。
不同的角色,登录得到的界面不同,拥有的权限也不同,这样,起到了对学校资料的保护的作用。整个系统的管理员可以根据学校情况添加、删除、修改、角色的权限,很方便管理。当用户忘记密码时,可以通过当时创建用户时所填的工作号进行找回,方便、安全。
1.2项目体系结构及开发环境
1.本系统采用Client/Server体系结构。 2.系统开发环境
1)开发平台:Microsoft Visual Studio 2005 2)开发语言:C# 3)数据库:Access2003 3.系统运行环境 客户端:
操作系统: Windows 2000、Windows XP 服务器端:
数据库:Access2003
1.3系统基本功能
在以上环境下对研究生信息管理系统进行开发与设计。研究生信息管理涉及专业、课程、成绩、个人信息等管理,需要处理大量数据和信息,而且对这些数据和信息的准确性、及时性都要求非常高,任何的错误和遗漏都会造成学校管理的混乱:
2
-
-
东北石油大学本科生课程设计(论文)
若采用纯人工的方法进行管理有一定难度。因此,目前大多数学校都开始采用计算机技术来实现研究生信息的管理。
该系统的功能主要包括以下几个方面:
1.系统管理员添加年级信息、班级信息、所开设的课程信息和系统用户信息,对用户进行权限设置并对其进行维护;
2.普通管理员录入研究生的基本信息,并在以后的教学中对研究生信息进行基本维护;
3.老师对研究生的成绩进行录入,并对成绩进行分析;给每位研究生选择课程,并可以对研究生的信息和成绩进行查询;
4.每位研究生可以根据自己的需要对以上录入的信息进行适当的查询。
3
-
-
东北石油大学本科生课程设计(论文)
第2章 系统设计
2.1系统的模块划分
研究生信息管理系统是学校教务系统中不可缺少的一个子系统,它涉及到学生、课程、成绩、专业等信息的增删改查。研究生信息管理系统包括以下八个模块:
1.登录模块
登录模块提供用户登录界面,用户输入正确的用户名和密码后,系统会核对用户名和密码,调用该用户的权限并进入相应权限的系统主窗口(即导航页面),从而可以选择进入相应的子系统。并提供用户忘记密码找回功能。
2.系统管理模块
系统管理模块主要添加用户和新建角色等基本信息,包括添加用户、新建角色。能对用户信息创建的操作。
3.用户管理模块
用户管理模块主要用于管理用户信息和重新登录,包括更改密码、重新登录,能对密码进行修改操作。
4.课程管理模块
课程管理模块主要对课程信息进行管理,包括添加课程、浏览课程。能对课程信息进行添加、修改和删除等操作。
5.成绩管理模块
成绩管理模块主要对学生成绩信息进行管理,包括添加成绩、浏览成绩。能对学生成绩进行添加、修改和删除等操作。
6.专业管理模块
专业管理模块主要对专业信息进行管理,包括添加专业、浏览专业。能对专业信息进行添加、修改和删除等功能。
7.研究生管理模块
研究生管理模块主要对研究生信息进行管理,包括添加信息、浏览信息。能对研究生的基础信息进行添加、修改和删除等操作。
8.帮助手册模块
帮助手册模块主要对各模块进行介绍。 系统功能模块图如图2-1所示。
4
-
-
东北石油大学本科生课程设计(论文)
系统管理 专业管理 (系统登录)Form1.cs (系统主界面)frmmain.cs 课程管理 研究生管理 成绩管理 用户管理 帮助手册 图2-1 系统功能模块图
2.2系统的模块流程图
研究生管理信息系统由系统管理、专业管理、课程管理、研究生管理、成绩管理、用户管理等模块组成,具体如下:
1.系统登录模块:
可以登录系统主功能模块,找回用户密码。
2.系统管理模块:
可以添加新用户,新建角色,并且为角色赋予权限。 3.专业管理模块:
可以浏览、添加、修改、删除专业信息。 4.课程管理模块:
可以浏览、添加、修改、删除课程信息。 5.研究生管理模块:
可以浏览、添加、修改、删除研究生基本信息。 6.成绩管理模块:
可以浏览、添加、修改、删除研究生成绩信息。 7.用户管理模块: 可以修改密码,重新登录。
研究生管理信息系统模块结构如图2-2所示:
5
-
-
东北石油大学本科生课程设计(论文)
系统管理 添加 新用 户 图2-2 系统模块结构
新建角色 添浏加览专专业 业 修改专业 删除专业 添加课程 浏览课程 修改课程 删除课程 添浏加览研研究究生 生 修改研究生 删除研究生 添加研究生成绩 浏览研究生成绩 修改研究生成绩 删除研究生成绩 修改密码 重新登录 专业管理 课程管理 研究生管理 成绩管理 用户管理 研究生管理信息系统 2.3数据库设计
该系统的数据库数据库命名为masterMIS,数据库包括八张表: 1. 用户信息表(userinfo),包含用户的名称,口令和角色; 2. 角色信息表(roles),包含角色名称和与该角色相关的权限; 3. 专业信息表(majorinfo),包含学校所开专业的名称及其详细介绍; 4. 课程信息表(courseinfo),包含学校所开设课程的名称及其详细介绍; 5. 研究生基本信息表(studentinfo),包含研究生的学号、姓名、性别、专业等基本信息;
6. 成绩信息表(scoreinfo),包含研究生的学号、课程、成绩等信息; 7. 教师信息表(teacherinfo),包括教师的姓名等信息。 8. 找回信息表(zhaohui),包含用户名、工作号等信息。
根据前面的分析,研究生信息管理系统数据库(masterMIS)表的结构、表字段的数据类型及相关说明如下:
1.系统用户表(userinfo)
系统用户表“userinfo”用于存放系统用户的相关数据。其结构如表2-1所示。
表2-1 系统用户表 列名 UName PWD -
说明 用户名 用户密码 数据类型 字符串,长度为16 字符串,长度为16 6
约束 主键 非空 -
东北石油大学本科生课程设计(论文)
续表2-1
RoleName 权限 字符串,长度为16 取值为“系统管理员”、 “教师”“普通管理员”、“学生”
2. 角色信息表(roles)
角色信息表“roles”结构如表2-2所示。
表2-2 学生信息表
列名 RoleName SystemManage MajorManage CourseManage ScoreManage 说明 角色名 系统管理 专业管理 课程管理 成绩管理 数据类型 字符串,长度为10 Bit Bit Bit Bit 约束 主键 非空 - - -
3. 专业信息表(majorinfo)
专业信息表“majorinfo”结构如表2-3所示。
表2-3 课程信息表 列名 MID MName MRemark 说明 专业编号 专业名称 专业描述 数据类型 字符串,长度为10 字符串,长度为20 字符串 约束 - 主键 -
4. 研究生基本信息表(studentinfo)
研究生基本信息表“studentinfo”结构如表2-4所示。
表2-4 研究生基本信息表 列名 SID SName SSex SPID SBirth TID MName SRemark -
说明 研究生学号 研究生姓名 性别 身份证号 出生日期 老师编号 专业名称 备注 数据类型 整数16 字符串,长度为10 字符串 整数 整数 整数 字符串,长度16 字符串 7
约束 主键 - 取值“男”或“女” - - - -
东北石油大学本科生课程设计(论文)
5. 成绩信息表(scoreinfo)
成绩信息表“scoreinfo”结构如表2-5所示。
表2-5 成绩信息表
列名 RID SID CName Score 说明 成绩编号 学号 课程名称 分数 数据类型 整数16 整数 字符串,长度16 整数 约束 主键 - - -
6. 教师信息表(teacherinfo)
教师信息表“teacherinfo”结构如表2-6所示。
表2-6 教师信息表 列名 TID TName 说明 教师编号 用户名 数据类型 整数,长度16 字符串,长度16 约束 主键 -
7. 找回信息表(zhaohui)
找回信息表“zhaohui”结构如表2-7所示。
表2-7 找回信息表 列名 Zhucehao Xingming 用户名 字符串,长度16 - 说明 注册号 数据类型 整数,长度16 约束 主键
8. 课程信息表(courseinfo)
课程信息表“courseinfo”结构如表2-8所示。
表2-8 选课信息表
列名 CID CName CDate CNum -
说明 课程编号 课程名称 学时 学分 数据类型 整数16 字符串,长度为10 整数 整数 8
约束 主键 - - - -
东北石油大学本科生课程设计(论文)
MName CRemark 专业名称 课程描述 字符串,长度为10 字符串 - - 2.4数据库关系图
一般情况下,数据库中所包含的表都不是存在的,而是表与表之间有一定的关系,称为关联。如果数据库中的信息不能满足正常的依赖关系,就会破坏数据的完整性和一致性。
根据本实例的特点,需要设置课程信息表、专业信息表、研究生信息表、成绩信息表和教师信息表之间的关系。设置用户信息表与角色信息表之间的关系,如图2-3、2-4所示。
图2-3 数据库关系图
9
-
-
东北石油大学本科生课程设计(论文)
图2-4 角色关系图
-
10
-
东北石油大学本科生课程设计(论文)
其中图2-3中成绩信息表中的学生号与研究生信息表中的学生号关联,研究生信息表中的教师号、专业名称分别与教师信息表中的教师号和专业信息表中的专业名称关联, 专业信息表中的课程名与课程信息表中的课程名关联。 图2-4中用户信息表中的角色名与角色信息表中的角色名关联。
-
11
-
东北石油大学本科生课程设计(论文)
第3章 系统的详细设计及实现
3.1公共类
考虑到系统的各个模块都需要访问数据库,因此最好的方法是编写一些访问数据库的方法,如返回数据集的公共查询方法,执行数据操作的公共方法,并把它们放在一个公共的类(database)中,然后在各模块中调用这些方法来实现对数据库的访问。
同样,在用户登录时,可能需要记录一些关于用户的信息,例如用户名、用户权限等,因此也需要使用到一些公共的静态变量,把这些变量放置在一个名为“Classshard”的类中。
3.1.1添加database公共类
首先为系统添加一个名为“database”的公共类,用于存放访问数据库的公共方法。
添加公共类的方法和步骤如下:
(1)选择【项目】->【添加类】菜单项,将弹出【添加新项】对话框,保留默认的选择,在“名称”文本框中输入“database”。
(2)单击【添加】按钮,则类“database”已经被添加到项目中,并自动切换到该类的代码窗口。
(3)设置database类的访问修饰符为“Public”。
3.1.2 编写公共方法
因为在这些方法中需要使用到OleDbConnection、OleDbDataAdapter、DataSet和MessageBox,所以首先应当引入以下命名空间:
using System.Data; using System.Data.OleDb; using System.Windows.Forms;
然后为“database”类声明几个公共变量:
public OleDbConnection dataConnection = new OleDbConnection(); public OleDbDataAdapter dataAdapter; public DataSet dataSet = new DataSet(); public OleDbCommand command;
12
-
-
东北石油大学本科生课程设计(论文)
//定义数据库连接字符串.
string connstr = @\"Provider = Microsoft.Jet.OLEDB.4.0;\" + @\"Data
Source=..\\masterMIS.mdb\";
1.公共查询方法GetDataFromDB
GetDataFromDB是一个返回数据集的公共查询方法,如果正常访问则返回查询结果;否则返回null。代码如下:
public DataSet GetDataFromDB(string sqlStr) {
try {
dataConnection.ConnectionString = connstr;
dataAdapter = new OleDbDataAdapter(sqlStr, dataConnection); dataSet.Clear();
dataAdapter.Fill(dataSet); //填充数据集 dataConnection.Close(); //关闭连接 }
catch (Exception ex) {
MessageBox.Show(ex.Message); dataConnection.Close(); }
if (dataSet.Tables[0].Rows.Count != 0) {
return dataSet; //若找到相应的数据,则返回数据集 } else {
return null; //若没有找到相应的数据,返回空值 } }
2.公共查询方法UpdateDB
UpdateDB用于对数据进行添加、修改和删除操作,若操作成功则返回true;否则返回false。代码如下:
public bool UpdateDB(string sqlStr) {
try {
dataConnection.ConnectionString = connstr;
dataConnection.Open(); //打开数据库 command = dataConnection.CreateCommand(); command.CommandText = sqlStr; command.ExecuteNonQuery();
13
-
-
东北石油大学本科生课程设计(论文)
dataConnection.Close(); //关闭连接 return true; }
catch (Exception ex) {
MessageBox.Show(ex.Message); return false; } }
3.2系统登录与主窗体
登录是每一个成功项目中不可缺少的模块,好的登录模块可以保证系统的可靠性和安全性。本节首先为“研究生信息管理系统”制作了一个登录模块,登录成功后,应当进入系统的主窗体(导航界面),因此本节还详细介绍了主窗体的设计。
3.2.1 登录界面设计
新建一个Windows应用程序,命名为“From1”,使用statusbar、Label、TextBox、Button、timer控件将出现的默认窗体Form1设计成如图3-1所示。
图3-1 登录界面
14
-
-
东北石油大学本科生课程设计(论文)
3.2.2 登录代码
接下来编写登录模块的代码。【登录】按钮用于验证输入的用户名和用户密码,若正确则进入系统主界面;否则弹出错误提示,并等待用户的重新输入。
登录时,需要记录登录的用户名和用户权限,因此在“Classshard”公共类中声明公共静态成员,声明后“Classshard”公共类的代码如下:
namespace 研究生信息管理系统 {
public class Classshard
{ //数组“userInfo”用于记录登录的用户名和用户权限 public static string[] userInfo = new string[2]; } }
【忘记密码】按钮是若用户忘记密码,可根据创建用户时输入的工作号对密码进想找回。如图3-2所示。
图3-2 找回密码界面
实现代码如下: try {
DataSet dt = new DataSet(); database tb = new database();
string sqlst = \"Select zhucehao ,xingming from zhaohui where xingming='\" +
txtUserName.Text.Trim() + \"'\";//工作号与数据库相对,一样则显示密码
dt = tb.GetDataFromDB(sqlst); …….
若登录3次连续密码输入错误,系统就会自动关闭该用户的登录。如图3-3所示。
15
-
-
东北石油大学本科生课程设计(论文)
图3-3 登录错误连续3次
点击【登录】后即进入研究生信息管理系统主界面。根据权限不同。以下图3-4、3-5、3-6、3-7分别为系统管理员界面、普通管理员界面、教师界面、学生界面。
图3-4 系统管理员界面
-
图3-5 普通管理员界面
16
-
东北石油大学本科生课程设计(论文)
图3-6 教师界面
图3-7 学生界面
3.3 系统管理
系统管理模块包括添加用户和新建角色两个功能,在添加用户界面中首先需要通过dataSet把数据库中的数据和ComBox控件绑定起来,设置为键值对。
在主界面中选择【系统管理】|【添加用户】命令菜单,即可进入添加用户界面,如图3-7所示。在该界面中可以建立新的用户,并可以在【角色】下拉列表框中选择角色描述。单击【确定】按钮时需要判断信息是否输入完整,并且判断用户
17
-
-
东北石油大学本科生课程设计(论文)
名是否已经存在和两次输入的密码是否一致。如果用户信息填写完整并且用户名称不重复,则添加成功,否则添加失败。工作号则是用于找回密码设置的。
图3-7 添加用户界面
在该窗体中使用TextBox、 Button、ComboBox控件。 【添加】代码实现如下:
if (textBox2.Text.Trim() == textBox3.Text.Trim()) {
string sql1, sql;
sql1 = \"insert into userinfo values('\" + textBox1.Text.Trim() + \"','\" +
textBox2.Text.Trim() +\"','\" + comboBox1.Text.Trim() + \"')\";//插入信息
sql = \"insert into zhaohui values('\" + textBox5.Text.Trim() + \"','\" +
textBox1.Text.Trim() + \"')\"; //插入信息 database db = new database(); bool b, a;
b = db.UpdateDB(sql1);//修改信息 a = db.UpdateDB(sql); //修改信息 if (b == true && a == true) {
if (MessageBox.Show(\"添加成功!继续添加吗?\添加用户\
MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
在主界面中选择【系统管理】|【新建角色】命令菜单,即可进入新建角色界面,如图3-8所示。在该界面中可以建立新的角色,并且选择【权限】选项组中的复选框,该角色就具有相应的权限。
18
-
-
东北石油大学本科生课程设计(论文)
图3-8 新建角色界面
在新建角色界面中,也要首先判断输入的信息是否完整,角色的名称是否重复。在该窗体中使用了TextBox、Button、 CheckBox控件。 【创建】代码实现如下:
sqlstr = \"insert into roles values('\" + textBox4.Text.Trim() + \"',\" +
checkBox1.Checked + \checkBox3.Checked + \
database dc = new database(); bool b;
b = dc.UpdateDB(sqlstr);//修改信息 if (b == true) {
if (MessageBox.Show(\"添加成功!继续添加吗?\添加用户\
MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes) }
3.4 专业管理
在主界面中选择【专业管理】|【添加专业】命令菜单,即可进入添加专业界面,如图3-9所示。用户可以在该窗体中设置专业信息。单击【确定】按钮,如果专业信息填写完整并且专业名称不重复则添加成功,否则添加失败。
在该窗体中使用了TextBox、Button控件。
19
-
-
东北石油大学本科生课程设计(论文)
图3-9 添加专业界面
【确定】代码如下:
string sql1 = \"select * from majorinfo where MName='\" + textName.Text.Trim() + \"'\"; db.GetDataFromDB(sql1); //查询信息 if (db.GetDataFromDB(sql1) != null)
MessageBox.Show(\"专业名称发生重复,请重新输入!\提示\"); else {
string sql = \"insert into majorinfo(MName,MRemark) values('\" +
textName.Text.Trim() + \"','\" + textRemark.Text.Trim() + \"')\";
db.UpdateDB(sql); //修改信息 MessageBox.Show(\"添加专业成功!\"); textName.Clear(); textRemark.Clear();
选择【专业管理】|【浏览专业】命令菜单或者单击工具栏上的【浏览专业】按钮,即可进入浏览专业界面,如图3-10所示。此界面中有DataGridvied、button控件。
20
-
-
东北石油大学本科生课程设计(论文)
图3-10 浏览专业界面
删除专业信息时首先要判断是否有与该专业相关的课程信息,如果有则提示先删掉课程信息再删掉专业信息
修改专业信息时首先要把选择的那条数据信息显示在专业修改界面的各个控件中,然后根据所选的那条数据的唯一编号,对这条数据信息进行修改。 【修改】代码如下: database db = new database();
string sql1 = \"select * from courseinfo where CName='\" +
dataGrid1[dataGrid1.CurrentCell] + \"'\";
if (db.GetDataFromDB(sql1) != null) {
MessageBox.Show(\"该专业名已经存在,请重新输!\"); } else {
string sql = \"update majorinfo set MName='\" +
ds.Tables[0].Rows[dataGrid1.CurrentCell.RowNumber][0].ToString().Trim() + \"',MRemark='\" +
ds.Tables[0].Rows[dataGrid1.CurrentCell.RowNumber][1].ToString().Trim() + \"' where MID=\" +
ds.Tables[0].Rows[dataGrid1.CurrentCell.RowNumber][2];
db.UpdateDB(sql);//修改信息
MessageBox.Show(\"修改专业成功!\"); }
【删除】代码如下:
21
-
-
东北石油大学本科生课程设计(论文)
sql = \" delete * from majorinfo where MName not in (select distinct MName from
courseinfo) and MID=\" +
ds.Tables[0].Rows[dataGrid1.CurrentCell.RowNumber][2].ToString().Trim(); db.UpdateDB(sql); //修改信息 MessageBox.Show(\"删除专业'\" +
ds.Tables[0].Rows[dataGrid1.CurrentCell.RowNumber][0].ToString().Trim() + \"'成功\提示\");
3.5 课程管理
在主界面中选择【课程管理】|【添加课程】命令菜单,即可进入添加课程界面,如图3-11所示。用户可以可以在该窗体中设置课程信息。在添加课程信息前,要把专业名称绑定在界面上的ComboBox控件中提供用户选择。在添加课程信息时要判断信息的完整性,并且还要判断在同一专业中是否添加了相同课程。单击【确定】按钮,如果课程信息项填写完整并且在同一专业中课程名称不重复则添加成功,否则添加失败。
在该窗体中使用了 ComboBox、Button、 TextBox控件。
图3-11 添加课程界面
加载代码如下:
database db = new database();
string connstr = @\"Provider=Microsoft.Jet.OLEDB.4.0;\" + @\"Data
Source=..\\masterMIS.mdb\";
db.dataConnection.ConnectionString = connstr; db.dataConnection.Open();//数据库打开
string sql1 = \"select MID,MName from majorinfo\";
OleDbDataAdapter adp1 = new OleDbDataAdapter(sql1, db.dataConnection);
22
-
-
东北石油大学本科生课程设计(论文)
DataSet ds = new DataSet(); adp1.Fill(ds, \"major\");
comboMajor.DataSource = ds.Tables[\"major\"].DefaultView; comboMajor.DisplayMember = \"MName\"; omboMajor.ValueMember = \"MID\"; db.dataConnection.Close();//数据库关闭 【确定】代码如下: database db = new database();
if (comboMajor.Text.Trim() == \"\" || textName.Text.Trim() == \"\" || textDate.Text.Trim() == \"\" ||textNum.Text.Trim() == \"\") {
MessageBox.Show(\"请输入完整的专业信息\提示\"); } else {
string sql1 = \"select * from courseinfo where MName='\" +
comboMajor.Text.ToString() + \"' and CName='\" + textName.Text.Trim() + \"'\";
db.GetDataFromDB(sql1);//查询信息 if (db.GetDataFromDB(sql1) != null)
{
MessageBox.Show(\"在同一专业不能添加相同的课程\提示\");
}
else {
string sql = \"insert into courseinfo
(MName,CName,CDate,CNum,CRemark) values ('\" + comboMajor.Text.Trim() + \"',\" + \"'\" + textName.Text.Trim() + \"','\" + textDate.Text.Trim() + \"','\" + textNum.Text.Trim() + \"','\" + textRemark.Text.Trim() + \"')\";
db.UpdateDB(sql);//修改信息
MessageBox.Show(\"添加课程成功!\"); }
选择【课程管理】|【浏览课程】命令菜单或者单击工具栏上的【浏览课程】按钮,即可进入课程浏览界面,在专业栏中选择专业名称,在课程列表中将会显示该专业的课程信息。浏览课程界面如图3-12所示。
23
-
-
东北石油大学本科生课程设计(论文)
图3-12 浏览课程界面
在浏览课程信息时首先需要把专业名称加载到TreeView控件中,然后根据选择的专业名称,把该专业的课程信息显示在DataGridview控件中。
删除课程信息的代码与修改专业信息的代码相似,只是在该部分中设置了一个界面的Tag属性,用来传递编号到另一个界面,并且根据此编号修改这条数据信息。
在该窗体中使用了TreeView、Button、 DataGridview控件。 加载到TreeView控件代码如下: TreeNode node = new TreeNode();
node.Text = connect1.GetString(0).ToString(); treeView1.Nodes.Add(node);
sql = \"select CID,CName from courseinfo where MName='\" + node.Text + \"' order by
CName desc\";
string connstr1 = @\"Provider=Microsoft.Jet.OLEDB.4.0;\" + @\"Data
Source=..\\masterMIS.mdb\";
datab2.dataConnection.ConnectionString = connstr1;//连接数据库 datab2.command = datab2.dataConnection.CreateCommand(); datab2.command.CommandText = sql; datab2.dataConnection.Open();//数据库打开 connect2 = datab2.command.ExecuteReader(); while (connect2.Read()) {
TreeNode node1 = new TreeNode(); node1.Text = connect2.GetString(1); node1.Tag = connect2.GetValue(0);
24
-
-
东北石油大学本科生课程设计(论文)
node.Nodes.Add(node1);//添加节点信息 }
【修改】代码如下: database db = new database();
int n = this.dataGrid1.CurrentCell.RowIndex;
string sql = \"update scoreinfo set Score='\" + textBox1.Text.ToString().Trim() + \"'
where RID=\" + dataGrid1.Rows[n].Cells[3].Value.ToString();
db.UpdateDB(sql);//修改信息
MessageBox.Show(\"成绩修改成功!\"); 【删除】代码如下: database db = new database();
if (dataGrid1.CurrentCell.RowIndex >= 0 && dataGrid1.DataSource != null) {
int n = this.dataGrid1.CurrentCell.RowIndex; string sql = \"delete * from scoreinfo where RID=\" +
dataGrid1.Rows[n].Cells[3].Value.ToString();
db.UpdateDB(sql);//修改信息
MessageBox.Show(\"删除信息成功!\");
String sl = \"select distinct (select SName from studentinfo where
studentinfo.SID=scoreinfo.SID) as 姓名,\" +\"CName as 课程名称,Score as 成绩,RID as 编号 from scoreinfo,majorinfo where CName='\" + dataGrid1[1,
dataGrid1.CurrentCell.RowIndex].Value.ToString() + \"'\";
ds = db.GetDataFromDB(sl);//查询信息 dataGrid1.DataSource = db.dataSet.Tables[0]; }
3.6 研究生管理
在主界面中选择【研究生管理】|【添加信息】命令菜单,即可进入添加研究生信息界面,如图3-13所示。用户可以在该窗体中设置研究生信息。在添加学生信息前,要把专业名称和教师姓名绑定在界面上的ComboBox控件中供用户选择。在添加学生信息时也要判断信息的完整性,并且保证一个学号对应着一个唯一的身份证号。单击【确定】按钮,如果研究生信息填写完整并且在不同学号研究生的身份证号不重复则添加成功,否则添加失败。
在该窗体中使用了ComboBox、Button、TextBox和DataTimePicker控件。
25
-
-
东北石油大学本科生课程设计(论文)
图3-13 添加研究生信息界面
加载代码同浏览课程,在此不再详细陈述。
【确定】代码如下:
sql = \"select * from studentinfo where SID='\" + textID.Text.ToString() + \"' or
SNum='\" + textNum.Text.ToString() + \"'\";
OleDbCommand cmond = new OleDbCommand(sql, db.dataConnection); if (null == cmond.ExecuteScalar()) {
sql = \"insert into studentinfo
(MName,SName,SBirth,SNum,SRemark,SID,SSex,TID) values ('\" + comboMajor.Text.Trim() + \"',\" +\"'\" + textName.Text.Trim() + \"','\" + date1.Text.Trim() + \"','\" + textNum.Text.Trim() + \"','\" + textRemark.Text.Trim() + \"',\" +\"'\" + textID.Text.Trim() + \"','\" + comboSex.Text.Trim() + \"','\" +
comboTeacher.SelectedValue.ToString().Trim() + \"')\";
cmond.CommandText = sql;
cmond.ExecuteNonQuery();//修改信息 MessageBox.Show(\"学生添加成功\提示\");
选择【研究生管理】|【浏览信息】命令菜单或者单击工具栏上的【信息浏览】按钮,即可进入浏览研究生信息界面,在专业栏中选择专业名称,在学生信息列表中将显示该专业的研究生研究生信息。研究生浏览界面如图3-14所示。
26
-
-
东北石油大学本科生课程设计(论文)
图3-14 浏览研究生信息界面
浏览研究生信息的代码和浏览课程信息的代码相似,也是需要首先把专业名称加载到TreeView 控件中,然后根据选择的学生姓名,把该专业的研究生信息显示在DataGridview控件中。
在该窗体中使用了TreeView、DataGridview和Button控件。 加载代码同浏览成绩,在此不再详细叙述。 【修改】代码如下:
string sql = \"update studentinfo set SName='\" +
ds.Tables[0].Rows[dataGrid1.CurrentCell.RowNumber][1].ToString().Trim() + \"',SSex='\" +
ds.Tables[0].Rows[dataGrid1.CurrentCell.RowNumber][2].ToString().Trim() + \"',SNum='\" +
ds.Tables[0].Rows[dataGrid1.CurrentCell.RowNumber][3].ToString().Trim() + \"'where SID='\" +
ds.Tables[0].Rows[dataGrid1.CurrentCell.RowNumber][0] + \"'\";
db.UpdateDB(sql);//修改信息
MessageBox.Show(\"学生信息修改成功!\"); 【删除】代码如下:
if (dataGrid1.CurrentRowIndex >= 0 && dataGrid1.DataSource != null &&
dataGrid1[dataGrid1.CurrentCell] != null)
{
database db = new database();
string sql = \"delete * from studentinfo where SID='\" +
ds.Tables[0].Rows[dataGrid1.CurrentCell.RowNumber][0].ToString().Trim() + \"'\";
27
-
-
东北石油大学本科生课程设计(论文)
bool b = db.UpdateDB(sql);//修改信息 if (b == true) {
MessageBox.Show(\"删除信息成功\提示\"); }
else {
MessageBox.Show(\"操作失败!\"); }
3.7 成绩管理
在主界面中选择【成绩管理】|【添加成绩】命令菜单,即可进入添加研究生信息界面,如图3-15所示。用户可以在该窗体中添加学生的成绩信息。单击【确定】按钮,如果成绩信息填写完整并且在同一学号研究生的相同课程的成绩不重复则添加成功,否则添加失败。
图3-15 添加成绩信息界面
在添加成绩前,要把学生姓名绑定在界面上的ComboBox控件中供用户选择,然后根据选择的学生姓名,把该学生所在专业的课程信息都显示在另一个ComboBox控件中。在添加成绩信息时也要判断信息的完整性,并且保证一个学生对应着一个唯一的课程成绩。
在该窗体中使用了TextBox、ComboBox、Button控件。 加载代码同课程浏览代码,在此不再详细陈述。 【确定】代码如下:
ds = db.GetDataFromDB(sql);//查询信息 if (null == ds) {
28
-
-
东北石油大学本科生课程设计(论文)
sql = \"insert into scoreinfo (SID,CName,Score) values ('\" +
comboSName.SelectedValue.ToString().Trim() + \"','\"
+comboCName.Text.Trim() + \"','\" + textScore.Text.Trim() + \"')\";
db.UpdateDB(sql);//修改信息
MessageBox.Show(\"成绩添加成功\提示\"); } else
MessageBox.Show(\"该同学已添加成绩\提示\");
选择【成绩管理】|【浏览成绩】命令菜单或者单击工具栏上的【浏览成绩】按钮,即可进入浏览成绩信息界面,在专业/课程栏中选择专业和课程,在学生成绩信息列表中将显示该专业的成绩信息。浏览成绩信息界面如图3-16所示。
图3-16 浏览成绩信息界面
在浏览学生成绩信息时需要首先把专业名称和课程名称加载到TreeView控件中,形成两级树结构,然后根据选择的专业名称和课程名称,把该课程的学生成绩信息显示在DataGrid控件中。
在该窗体中使用了TreeView, DataGrid和Button控件。 加载代码同浏览信息代码。在此不再详细陈述。 【修改】代码如下: try {
int n = this.dataGrid1.CurrentCell.RowIndex;
textBox1.Text = this.dataGrid1.Rows[n].Cells[2].Value.ToString();
29
-
-
东北石油大学本科生课程设计(论文)
} catch {
MessageBox.Show(\"无修改成绩!\"); }
【删除】代码如下:
int n = this.dataGrid1.CurrentCell.RowIndex; string sql = \"delete * from scoreinfo where RID=\" +
dataGrid1.Rows[n].Cells[3].Value.ToString();
db.UpdateDB(sql);//修改信息
MessageBox.Show(\"删除信息成功!\");
3.8 用户管理
在主界面中选择【用户管理】|【更改密码】命令菜单或者单击工具栏中的【修改密码】按钮,即可进入修改密码界面,如图3-17所示。单击【确定】按钮,如果密码正确并且新密码与密码确认相同,则添加成功,否则修改失败。
图3-17 修改密码界面
在修改前首先要得到从StatusBar传递过来的当前登录用户名,这样用户就只能修改自己的密码。
在该窗体中使用了TextBox、 Button控件。 【确定】代码如下:
string str = \"update userinfo set PWD='\" + textPWDNew.Text.Trim() + \"' where
UName='\" + textName.Text.Trim() + \"'\";
bool b = db.UpdateDB(str);//修改信息
30
-
-
东北石油大学本科生课程设计(论文)
if (b == true) {
MessageBox.Show(\"密码修改成功\提示\"); }
选择【用户管理】|【重新登录】命令菜单,即可退出当前用户,进入登录界面重新登录。
3.9 登录选择代码
在系统登录时要对用户进行判断,分配相应权限。提供不同登录界面,代码如下:
if (ds.Tables[0].Rows[0].ItemArray[1].ToString() == \"系统管理员\") {
xitong xitomg = new xitong();
Classshard.userinfo[0] = txtUserName.Text.Trim();
Classshard.userinfo[1] = ds.Tables[0].Rows[0].ItemArray[1].ToString(); xitomg.Show();//显示界面 this.Hide();//隐藏界面 }
if (ds.Tables[0].Rows[0].ItemArray[1].ToString() == \"普通管理员\") {
putongguanliyuan pu = new putongguanliyuan(); Classshard.userinfo[0] = txtUserName.Text.Trim();
Classshard.userinfo[1] = ds.Tables[0].Rows[0].ItemArray[1].ToString(); pu.Show();//显示界面 this.Hide();//隐藏界面 }
3.10 退出选择代码
在退出界面时因为有不同的用户,所以退出时的界面应为相应权限用户的界面,退出界面代码如下:
if (Classshard.userinfo[1] == \"系统管理员\") {
xitong xitng = new xitong(); xitng.Show();//显示界面 this.Hide();//隐藏界面 }
31
-
-
东北石油大学本科生课程设计(论文)
if (Classshard.userinfo[1] == \"普通管理员\") {
putongguanliyuan putong = new putongguanliyuan(); putong.Show();//显示界面 this.Hide();//隐藏界面 }
3.11 其他公共代码
在系统中还有一些公共代码控制一些系统基本功能。 系统欢迎词走动代码:
if (label1.Left < -2) label1.Left = 750; else
label1.Left -= 5; 系统地栏显示信息代码:
this.statusBarPanel1.Text = \" \" + \"当前用户:\" + Classshard.userinfo[0] + \"\"; this.statusBarPanel3.Text = \"登录时间:\" + DateTime.Now.ToString(); this.statusBarPanel4.Text = \"作者:刘伟\"; this.statusBarPanel5.Text = \"研究生管理信息系统\";
32
-
-
东北石油大学本科生课程设计(论文)
总结
通过本次对研究生信息管理系统的开发,我学习到许多知识。如数据库、c#一些控件和代码编写等。本套研究生信息信息管理系统,实现了学生信息管理、课程信息管理、成绩信息管理、专业信息管理等功能。
本系统的添加信息和浏览信息模块是一个难点。因为本套系统的数据库关联性特别高,每改动一个表的信息,其他有关联的表都将进行相应的修改。并且在浏览信息时,要对数据库进行实时的刷新,把最新的数据库信息表达出来。对于这一个难题,本系统通过对数据库表格进行关联设置,将表中的信息关联起来,再通过联合查询来解决。
在安全性方面,本系统把用户分为普通用户、管理员用户、教师用户和学生用户。普通用户只能维护和查询选课信息,而不能修改学生信息和课程信息,而管理员可以操作所有的功能。教师用户可以添加成绩,而学生用户只能浏览成绩。
该系统界面友好,操作简单。同时使用了公共类,提高了代码复用程度,同时也提高了系统的可维护性。
33
-
-
东北石油大学本科生课程设计(论文)
参考文献
[1]段德亮,余健,张仁才.C# 课程设计案例精编[M] .清华大学出版社,2009 [2]李雁翎,王丛林,周鸿玲.数据库技术及应用 [M] .高等教育出版社,2008 [3]徐保民,孙丽君,李爱萍.数据库原理与应用[M] .人民邮电出版社,2008 [4]王珊,萨师煊.数据库系统概论[M] .高等教育出版社,2008 [5]王小科,梁冰,吕双.C#全能速查宝典[M] .人民邮电出版社,2009 [6]林邦杰.深入浅出 C#程序设计[M] .中国铁道出版社,2008
[7]周靖. John Sharp Visual C# 2005从入门到精选.清华大学出版社,2009 [8]薛华成.管理信息系统(第5版) .清华大学出版社,2009
[9]沃森、内格尔、齐立波、 黄静.C#入门经典(第5版) .清华大学出版社,2009
34
-
-
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- hids.cn 版权所有 赣ICP备2024042780号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务