精品基于C#的研究生管理系统毕业论文论文.docx

上传人:b****1 文档编号:1665393 上传时间:2023-05-01 格式:DOCX 页数:51 大小:646.08KB
下载 相关 举报
精品基于C#的研究生管理系统毕业论文论文.docx_第1页
第1页 / 共51页
精品基于C#的研究生管理系统毕业论文论文.docx_第2页
第2页 / 共51页
精品基于C#的研究生管理系统毕业论文论文.docx_第3页
第3页 / 共51页
精品基于C#的研究生管理系统毕业论文论文.docx_第4页
第4页 / 共51页
精品基于C#的研究生管理系统毕业论文论文.docx_第5页
第5页 / 共51页
精品基于C#的研究生管理系统毕业论文论文.docx_第6页
第6页 / 共51页
精品基于C#的研究生管理系统毕业论文论文.docx_第7页
第7页 / 共51页
精品基于C#的研究生管理系统毕业论文论文.docx_第8页
第8页 / 共51页
精品基于C#的研究生管理系统毕业论文论文.docx_第9页
第9页 / 共51页
精品基于C#的研究生管理系统毕业论文论文.docx_第10页
第10页 / 共51页
精品基于C#的研究生管理系统毕业论文论文.docx_第11页
第11页 / 共51页
精品基于C#的研究生管理系统毕业论文论文.docx_第12页
第12页 / 共51页
精品基于C#的研究生管理系统毕业论文论文.docx_第13页
第13页 / 共51页
精品基于C#的研究生管理系统毕业论文论文.docx_第14页
第14页 / 共51页
精品基于C#的研究生管理系统毕业论文论文.docx_第15页
第15页 / 共51页
精品基于C#的研究生管理系统毕业论文论文.docx_第16页
第16页 / 共51页
精品基于C#的研究生管理系统毕业论文论文.docx_第17页
第17页 / 共51页
精品基于C#的研究生管理系统毕业论文论文.docx_第18页
第18页 / 共51页
精品基于C#的研究生管理系统毕业论文论文.docx_第19页
第19页 / 共51页
精品基于C#的研究生管理系统毕业论文论文.docx_第20页
第20页 / 共51页
亲,该文档总共51页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

精品基于C#的研究生管理系统毕业论文论文.docx

《精品基于C#的研究生管理系统毕业论文论文.docx》由会员分享,可在线阅读,更多相关《精品基于C#的研究生管理系统毕业论文论文.docx(51页珍藏版)》请在冰点文库上搜索。

精品基于C#的研究生管理系统毕业论文论文.docx

精品基于C#的研究生管理系统毕业论文论文

目录

第1章概述1

1.1项目的目的和意义1

1.2项目体系结构及开发环境1

1.3系统基本功能1

第2章系统设计2

2.1系统的模块划分2

2.2数据库设计4

第3章系统的详细设计及实现6

3.1公共类6

3.2系统登录与主窗体8

3.3系统管理13

3.4专业管理20

3.5课程管理30

3.6研究生管理31

3.7成绩管理33

3.8用户管理34

3.9帮助36

结论37

参考文献38

第1章概述

 

1.1项目的目的和意义

本次课程设计的题目是“研究生信息管理系统”的设计与实现。

该设计是对本学期前八周所学的C#程序设计课程的巩固和深入应用。

利用前面学过的知识来解决实际问题,锻炼解决问题的能力和动手编程的能力。

同时初步理解软件开发步骤和软件工程思想。

并且通过亲手编写程序与开动脑筋,这加深理解并巩固所学专业知识,进一步提高认识问题、分析问题、解决问题的能力,为今后走向社会,适应工作,对某些软件实际要求做好思想准备和知识储备。

1.2项目体系结构及开发环境

1.本系统采用ClientServer体系结构。

2.系统开发环境

1)开发平台:

MicrosoftVisualStudio2008

2)开发语言:

C#

3)数据库:

Access2003

3.系统运行环境

客户端:

操作系统:

Windows2007、WindowsXP

服务器端:

数据库:

Access2003

1.3系统基本功能

在以上环境下对研究生信息管理系统进行开发与设计。

主要实现系统登录、系统管理、专业管理、课程管理、研究生管理、成绩管理、用户管理等主要功能。

第2章系统设计

2.1系统的模块划分

研究生信息管理系统是学校教务系统中不可缺少的一个子系统,它涉及到学生、课程等信息的结合。

学生选课系统包括以下七个模块:

1.登录模块

登录模块提供用户登录界面,用户输入正确的用户名和密码后,则可进入系统主窗口(即导航页面),从而可以选择进入相应的子系统。

2.系统管理模块

系统管理模块主要用户管理用户的基本信息,包括两个方面:

角色管理和用户管理。

其中角色管理包括,新建角色,修改角色权限,删除角色;而用户管理是管理用户相关信息,主要包括注册用户,注销用户,修改用户权限。

在这个模块中只有系统管理员才有此权限进入并对角色和用户信息进行管理。

3.专业管理模块

专业管理模块主要用于管理专业信息,包括专业代号、专业名、和专业描述,实现对专业的添加,修改,删除,浏览的功能。

4.课程管理模块

课程管理模块主要用于对众多课程的管理,包括课程名,课程代号,课时,所属专业,授课地点。

实现对课程信息的添加,修改,删除,和浏览功能。

5.研究生管理模块

研究生管理模块用于管理维护研究生信息,是该系统的重要一环,包括学号,姓名,性别,出生日期,教师代号,所属专业构成,实现开学时对研究生基本信息的录入与后期管理,所以也是包含了添加,修改,删除,查询四个子功能。

6.成绩管理模块

成绩管理模块用于记录研究生成绩信息,包括学号、课程名和分数。

实现对学生成绩的录入修改删除查询的功能,同时在成绩的变更过程中用学号代替了姓名,有效防止重名等问题导致学生成绩出错的困扰,同时也给学生一点隐私空间,

7.用户管理模块

用户管理模块式唯一不受权限管制的模块,所有用户均可以进入该模块修改登录密码或者重新登录另一位用户。

8.帮助模块

帮助模块简要提示该系统操作要点。

由于系统设计简单实用,凡是不合理操作均有提示,新用户只需根据提示操作即可实现相应功能。

系统功能模块图如图2-1所示。

 

图2-1研究生管理信息系统模块图

2.2数据库设计

根据前面的分析,研究生管理信息系统数据库(masterMIS)中包括系统用户信息“UserInfo”、角色信息“Roles”、专业信息“MajorInfo”、课程信息“CourseInfo”、研究生信息“StudentInfo”、成绩信息“ScoreInfo”、教师信息“TeacherInfo”七个数据表。

表的结构、表字段的数据类型及相关说明如下:

1.系统用户表

系统用户表“UserInfo”用于存放系统用户的相关数据。

其结构如表2-1所示。

表2-1系统用户表

列名

说明

数据类型

约束

UName

用户名

字符串,长度为16

主键

PWD

用户密码

字符串,长度为16

非空

RoleName

角色

字符串,长度为16

非空

2.角色信息表

角色信息表“Roles”结构如表2-2所示。

表2-2角色信息表

列名

说明

数据类型

约束

RoleName

角色名

字符串,长度为20

主键

SystemManage

系统管理

是否

可空

MajorManage

专业管理

是否

可空

CourseManage

课程管理

是否

可空

MasterManage

研究生管理

是否

可空

ScoreManage

成绩管理

是否

可空

UserManage

用户管理

是否

可空

3.专业信息表

学生信息表“MajorInfo”结构如表2-3所示。

表2-3专业信息表

列名

说明

数据类型

约束

MName

专业名

字符串,长度为10

主键

MRemark

专业描述

字符串,长度为50

非空

MNo

专业代号

字符串,长度为20

非空

4.课程信息表

课程信息表“CourseInfo”结构如表2-4所示。

表2-4课程信息表

列名

说明

数据类型

约束

CName

课程名

字符串,长度为20

非空

CDate

课时

整数

非空

CNum

课程号

字符串,长度为10

主键

Mname

所属专业

字符串,长度为10

非空

CPlace

授课地点

字符串,长度20

非空

5.学生信息表

学生信息表“StudentInfo”结构如表2-5所示。

表2-5学生信息表

列名

说明

数据类型

约束

SID

学号

字符串,长度为10

主键

SName

姓名

字符串,长度为10

非空

SSex

性别

字符串,长度为10

只能选择”男”或”女”

SBirth

生日

字符串,长度为20

非空

TID

教师号

字符串,长度为10

主键,引用TeacherInfo的外码

MName

所属专业

字符串,长度为20

主键,引用MajorInfo的外码

6.成绩信息表

成绩信息表“ScoreInfo”用于学生成绩的相关数据。

其结构如表2-6所示。

表2-6系统用户表

列名

说明

数据类型

约束

SID

学号

字符串,长度为16

主键

CName

课程

字符串,长度为16

非空

Score

分数

整数

非空

7.教师信息表

教师信息表“TeacherInfo”结构如表2-7所示。

表2-7选课信息表

列名

说明

数据类型

约束

TID

教师号

字符串,长度为10

主键

TName

姓名

字符串,长度为10

非空

第3章 系统的详细设计及实现

3.1公共类

考虑到系统的各个模块都需要访问数据库,因此最好的方法是编写一些访问数据库的方法,如返回数据集的公共查询方法,执行数据操作的公共方法,并把它们放在一个公共的类(DataBase)中,然后在各模块中调用这些方法来实现对数据库的访问。

同样,在用户登录时,可能需要记录一些关于用户的信息,例如用户名、用户权限等,因此也需要使用到一些公共的静态变量,把这些变量放置在一个名为“ClassShared”的类中。

3.1.1添加DataBase公共类

首先为系统添加一个名为“DataBase”的公共类,用于存放访问数据库的公共方法。

添加公共类的方法和步骤如下:

(1)选择【项目】->【添加类】菜单项,将弹出【添加新项】对话框,保留默认的选择,在“名称”文本框中输入“DataBase”。

(2)单击【添加】按钮,则类“DataBase”已经被添加到项目中,并自动切换到该类的代码窗口。

(3)设置DataBase类的访问修饰符为“Public”。

3.1.2编写公共方法

因为在这些方法中需要使用到OleDbConnection、OleDbDataAdapter、DataSet和MessageBox,所以首先应当引入以下命名空间:

usingSystem.Data;

usingSystem.Data.OleDb;

usingSystem.Windows.Forms;

然后为“DataBase”类声明几个公共变量:

publicOleDbConnectiondataConnection=newOleDbConnection();

publicOleDbDataAdapterdataAdapter;

publicDataSetdataSet=newDataSet();

publicOleDbCommandcommand;

定义数据库连接字符串,随具体环境而定,应根据内容自行调整

stringconnstr=@"Provider=Microsoft.Jet.OLEDB.4.0;"+@"DataSource=…\masterMIS.mdb";

1.公共查询方法GetDataFromDB

GetDataFromDB是一个返回数据集的公共查询方法,如果正常访问则返回查询结果;否则返回null。

代码如下:

publicDataSetGetDataFromDB(stringsqlStr)这是一个返回数据集的公共查询方法

{

try

{

dataConnection.ConnectionString=connstr;

dataAdapter=newOleDbDataAdapter(sqlStr,dataConnection);

dataSet.Clear();

dataAdapter.Fill(dataSet);填充数据集

dataConnection.Close();

}

catch(Exceptionexp)

{

MessageBox.Show(exp.Message);

dataConnection.Close();

}

if(dataSet.Tables[0].Rows.Count!

=0)

{returndataSet;}若找到相应数据返回数据集

else

{returnnull;}若找不到相应数据返回空值

}

2.公共类数据操作方法UpdateDB

公共类数据操作方法UpdateDB用于对数据进行添加、修改和删除操作,若操作成功则返回true,否则返回false。

代码如下:

publicboolUpdateDB(stringsqlStr)公共数据操作方法,用于对数据进行增,改,删操作

{

try

{

dataConnection.ConnectionString=connstr;

dataConnection.Open();

command=dataConnection.CreateCommand();

commandmandText=sqlStr;

command.ExecuteNonQuery();

dataConnection.Close();关闭连接

returntrue;

}

catch(Exceptionexp)

{

MessageBox.Show(exp.Message);

returnfalse;

}

}

3.静态公共类ClassShared

用于记录用户名和用户角色,代码如下:

namespace研究生管理信息系统

{

publicclassClassShared用于记录用户名和用户角色

{

publicstaticstring[]userInfo=newstring[2];

}

}

3.2系统登录与主窗体

登录是每一个成功项目中不可缺少的模块,好的登录模块可以保证系统的可靠性和安全性。

3.2.1登录界面设计

新建一个Windows应用程序,命名为“研究生信息管理系统”,使用PictureBox、Label、TextBox、Button控件将出现的默认窗体Form1设计成如图3-1所示。

图3-1登录界面

3.2.2登录功能实现及代码

接下来编写登录模块的代码。

【确认】按钮用于验证输入的用户名和用户密码,若正确则进入系统主界面;否则弹出错误提示,并等待用户的重新输入。

登录时,需要记录登录的用户名和用户权限,因此在“ClassShared”公共类中声明公共静态成员,声明后“ClassShared”公共类的代码上文已有。

然后切换到“frmMain”窗体设计器,双击【登录】按钮,编写其单击事件的代码如下:

通过判断输入文本框中的用户名与密码是否与UserInfo表中的用户密码相匹配,决定是进入主界面还是报错提示用户重新输入。

privatevoidbtnOK_Click(objectsender,EventArgse)

{

try验证登录密码

{

DataSetds=newDataSet();

DataBasedb=newDataBase();

stringsqlStr="selectPWD,RoleNamefromUserInfowhereUName='"+txtUserName.Text.Trim()+"'";

ds=db.GetDataFromDB(sqlStr);

if(ds.Tables[0].Rows[0].ItemArray[0].ToString()==txtPassword.Text.Trim())密码正确情况,进入主界面

{

FrmMainfrmmain=newFrmMain();

ClassShared.userInfo[0]=txtUserName.Text.Trim();

ClassShared.userInfo[1]=ds.Tables[0].Rows[0].ItemArray[1].ToString();

frmmain.Show();

this.Hide();

}

else密码错误情况,返回重新输入

{

MessageBox.Show("用户名或密码输入错误,请重新输入!

");

txtUserName.Text="";

txtPassword.Text="";

txtUserName.Focus();

}

}

catch

{

MessageBox.Show("用户名或密码错误!

","错误");

}

}

除了窗体中的确认按钮,有时候用户希望输入完密码后想直接按下【Enter】键便进入系统主界面,这就需要编写文本框txtPassword的KeyDown事件代码,判断用户按下的是哪个键,如果是【Enter】则调用“btnOK-Click”方法已登录系统。

代码如下:

privatevoidtxtPassword_KeyDown(objectsender,KeyEventArgse)Enter键按下确认

{

if(e.KeyCode==Keys.Enter)

btnOK_Click(sender,e);

}

3.2.3主窗体界面设计

用户登录成功后,进入系统主界面,通过在选择主界面上的按钮进入相应子系统。

所以应当添加一个名为“frmMain”的主窗体。

添加完窗体,然后开始添加Label、GroupBox,Button和StatusStrip控件。

接着设置各控件的属性,在背景制作上,使用PhotoShop图像处理软件将小图标与大背景融合,再将按钮放置在相应图标旁。

最后更改按钮,状态栏的背景色,使整个界面为蓝色主调,总之需要根据实际情况和美观需求合理设置。

最后将主窗体界面设计成如图3-2所示:

图3-2主界面图

3.2.4主窗体功能实现及代码

1、添加窗体

主窗体是导航界面,是进入各子系统的入口。

因此需要添加7个新的窗体,分别用于系统管理,专业管理,课程管理,研究生管理,成绩管理,用户管理和帮助,其名称分别为“frmSystem”、“frmMajor”、“frmCourse”、“frmMaster”、“frmGrade”、“frmUser”和“frmHelp”,添加方法和步骤与前面介绍的“frmMain”的添加过程相同,这里不再赘述。

2、编写代码

当窗体载入时,将前面公共静态数组“userInfo[]”保存的用户名和角色及权限将在本窗体中体现主来,不同权限的用户将使用不同的功能。

没有相应的权限则不能进入子系统,例如学生、教师就无法进入【系统管理】等权限较高的子系统;用户名和角色将显示在状态栏中,同时状态栏将显示具体时间;单击权限许可的按钮将进入相应的子系统;当用户单击主窗体关闭按钮或【退出】按钮时,应用程序终止运行。

主窗体代码如下:

通过状态栏显示登录的用户、角色和和时间信息;接着通过条件语句判断用户角色用以确定用户权限,没有权限进入的模块将使用按钮的Enable属性将其设置为false,使其不能触发改按钮事件。

从而实现权限的设置。

privatevoidFrmMain_Load(objectsender,EventArgse)窗体载入事件

{

tsslblUser.Text=ClassShared.userInfo[0]+"";状态栏显示当前用户,角色和时间

tsslblRole.Text=ClassShared.userInfo[1];

tsslblTime1.Text=""+DateTime.Now.ToLongDateString()+"";

tsslblTime2.Text=DateTime.Now.ToLongTimeString();

设置不同角色的权限

if(ClassShared.userInfo[1]=="系统管理员")当前系统预设4种角色

{;}

elseif(ClassShared.userInfo[1]=="普通管理员")

{

button1.Enabled=false;

}

elseif(ClassShared.userInfo[1]=="教师")

{

button1.Enabled=false;

button2.Enabled=false;

}

elseif(ClassShared.userInfo[1]=="学生")

{

button1.Enabled=false;

button3.Enabled=false;

button4.Enabled=false;

}

publicFrmMain()

{

InitializeComponent();

}

点击相应按钮进入相应的子模块。

按钮共设有8个,分别为系统管理、专业管理、课程管理、研究生管理,成绩管理、用户管理、帮助和退出。

privatevoidbutton1_Click(objectsender,EventArgse)进入系统管理

{

FrmSystemfrmsystem=newFrmSystem();

frmsystem.Show();

}

privatevoidbutton2_Click(objectsender,EventArgse)进入专业管理

{

FrmMajorfrmmajor=newFrmMajor();

frmmajor.Show();

}

privatevoidbutton3_Click(objectsender,EventArgse)进入课程管理

{

FrmCoursefrmcourse=newFrmCourse();

frmcourse.Show();

}

privatevoidbutton4_Click(objectsender,EventArgse)进入研究生管理

{

FrmMasterfrmmaster=newFrmMaster();

frmmaster.Show();

}

privatevoidbutton5_Click(objectsender,EventArgse)进入成绩管理

{

FrmGradefrmgrade=newFrmGrade();

frmgrade.Show();

}

privatevoidbutton6_Click(objectsender,EventArgse)进入用户管理

{

FrmUserfrmuser=newFrmUser();

frmuser.Show();

}

privatevoidbtnClose_Click(objectsender,EventArgse)点击主窗体【关闭】退出

{

Application.Exit();

}

privatevoidFrmMain_FormClosed(objectsender,FormClosedEventArgse)退出系统

{

Application.Exit();

}

privatevoidbtnHelp_Click(objectsender,EventArgse)进入帮助

{

FrmHelpfrmhelp=newFrmHelp();

frmhelp.Show();

}

}

3.3系统管理

系统管理模块主要用于管理用户的信息,主要用于实现对用户的添加、修改、删除和对角色的创建、修改权限和删除的功能。

3.3.1角色管理界面设计

打开前面添加的“frmSystem”窗体,使用GroupBox、ToolStip、StatusStrip、Label、Button和DataGridView控件,其中将各Button的Name属性分被改为与其功能相关的名字,如“添加”按钮的Name属性为“btnAdd”。

以此类推将各个控件的“Name”属性改为与功能相适应。

其中需注意将DataDridView的ReadOnly属性改为“True”.将界面设计为如图3-3所示:

图3-3角色管理界面

3.3.2角色管理实现及代码

由于角色管理和用户管理是在同意窗体中实现的,所以借助gbxNewRole、dgrdvRoles1等的Visible属性实现同一窗体下实现对不同对象管理。

通过单击工具栏【角色管理】或者【用户信息管理】显示不同界面,实现不同操作。

在实现对角色的添加、修改和删除的功能时,本模块需要用到几个通

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2