ImageVerifierCode 换一换
格式:DOCX , 页数:55 ,大小:2.64MB ,
资源ID:9933815      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-9933815.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于C#的研究生管理系统课程设计.docx)为本站会员(b****8)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

基于C#的研究生管理系统课程设计.docx

1、基于C#的研究生管理系统课程设计第1章 概 述1.1项目的目的和意义本次课程设计的题目是“研究生信息管理系统”的设计与实现。该设计是对本学期前八周所学的C#程序设计课程的巩固和深入应用。利用前面学过的知识来解决实际问题,锻炼解决问题的能力和动手编程的能力。同时初步理解软件开发步骤和软件工程思想。并且通过亲手编写程序与开动脑筋,这加深理解并巩固所学专业知识,进一步提高认识问题、分析问题、解决问题的能力,为今后走向社会,适应工作,对某些软件实际要求做好思想准备和知识储备。 1.2项目体系结构及开发环境1本系统采用Client/Server体系结构。2系统开发环境1)开发平台:Microsoft V

2、isual Studio 20082)开发语言:C#3)数据库:Access20033系统运行环境客户端:操作系统:Windows 2007、Windows XP服务器端:数据库:Access20031.3系统基本功能在以上环境下对研究生信息管理系统进行开发与设计。主要实现系统登录、系统管理、专业管理、课程管理、研究生管理、成绩管理、用户管理等主要功能。第2章 系统设计2.1系统的模块划分研究生信息管理系统是学校教务系统中不可缺少的一个子系统,它涉及到学生、课程等信息的结合。学生选课系统包括以下七个模块:1登录模块登录模块提供用户登录界面,用户输入正确的用户名和密码后,则可进入系统主窗口(即导

3、航页面),从而可以选择进入相应的子系统。2系统管理模块系统管理模块主要用户管理用户的基本信息,包括两个方面:角色管理和用户管理。其中角色管理包括,新建角色,修改角色权限,删除角色;而用户管理是管理用户相关信息,主要包括注册用户,注销用户,修改用户权限。在这个模块中只有系统管理员才有此权限进入并对角色和用户信息进行管理。 3专业管理模块专业管理模块主要用于管理专业信息,包括专业代号、专业名、和专业描述,实现对专业的添加,修改,删除,浏览的功能。4课程管理模块 课程管理模块主要用于对众多课程的管理,包括课程名,课程代号,课时,所属专业,授课地点。实现对课程信息的添加,修改,删除,和浏览功能。5研究

4、生管理模块研究生管理模块用于管理维护研究生信息,是该系统的重要一环,包括学号,姓名,性别,出生日期,教师代号,所属专业构成,实现开学时对研究生基本信息的录入与后期管理,所以也是包含了添加,修改,删除,查询四个子功能。6 成绩管理模块成绩管理模块用于记录研究生成绩信息,包括学号、课程名和分数。实现对学生成绩的录入修改删除查询的功能,同时在成绩的变更过程中用学号代替了姓名,有效防止重名等问题导致学生成绩出错的困扰,同时也给学生一点隐私空间,7 用户管理模块用户管理模块式唯一不受权限管制的模块,所有用户均可以进入该模块修改登录密码或者重新登录另一位用户。8帮助模块帮助模块简要提示该系统操作要点。由于

5、系统设计简单实用,凡是不合理操作均有提示,新用户只需根据提示操作即可实现相应功能。系统功能模块图如图2-1所示。 图2-1 研究生管理信息系统模块图 2.2数据库设计根据前面的分析,研究生管理信息系统数据库(masterMIS)中包括系统用户信息“UserInfo”、角色信息“Roles”、专业信息“MajorInfo”、课程信息“CourseInfo”、研究生信息“StudentInfo”、成绩信息“ScoreInfo”、教师信息“TeacherInfo”七个数据表。表的结构、表字段的数据类型及相关说明如下:1.系统用户表系统用户表“UserInfo”用于存放系统用户的相关数据。其结构如表2

6、-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”结

7、构如表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主键

8、 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

9、教师号字符串,长度为10主键 TName姓名字符串,长度为10非空第3章 系统的详细设计及实现3.1公共类考虑到系统的各个模块都需要访问数据库,因此最好的方法是编写一些访问数据库的方法,如返回数据集的公共查询方法,执行数据操作的公共方法,并把它们放在一个公共的类(DataBase)中,然后在各模块中调用这些方法来实现对数据库的访问。同样,在用户登录时,可能需要记录一些关于用户的信息,例如用户名、用户权限等,因此也需要使用到一些公共的静态变量,把这些变量放置在一个名为“ClassShared”的类中。3.1.1添加DataBase公共类首先为系统添加一个名为“DataBase”的公共类,用于存放

10、访问数据库的公共方法。添加公共类的方法和步骤如下:(1)选择【项目】-【添加类】菜单项,将弹出【添加新项】对话框,保留默认的选择,在“名称”文本框中输入“DataBase”。(2)单击【添加】按钮,则类“DataBase”已经被添加到项目中,并自动切换到该类的代码窗口。(3)设置DataBase类的访问修饰符为“Public”。3.1.2 编写公共方法因为在这些方法中需要使用到OleDbConnection、OleDbDataAdapter、DataSet和MessageBox,所以首先应当引入以下命名空间:using System.Data;using System.Data.OleDb;u

11、sing System.Windows.Forms;然后为“DataBase”类声明几个公共变量:public OleDbConnection dataConnection = new OleDbConnection();public OleDbDataAdapter dataAdapter;public DataSet dataSet = new DataSet();public OleDbCommand command;/定义数据库连接字符串,随具体环境而定,应根据内容自行调整string connstr = Provider = Microsoft.Jet.OLEDB.4.0; + Da

12、taSource=masterMIS.mdb;1.公共查询方法GetDataFromDBGetDataFromDB是一个返回数据集的公共查询方法,如果正常访问则返回查询结果;否则返回null。代码如下:public DataSet GetDataFromDB(string sqlStr)/这是一个返回数据集的公共查询方法 try dataConnection.ConnectionString = connstr; dataAdapter = new OleDbDataAdapter(sqlStr, dataConnection); dataSet.Clear(); dataAdapter.Fi

13、ll(dataSet);/填充数据集 dataConnection.Close(); catch (Exception exp) MessageBox.Show(exp.Message); dataConnection.Close(); if (dataSet.Tables0.Rows.Count != 0) return dataSet; /若找到相应数据返回数据集 else return null; /若找不到相应数据返回空值 2.公共类数据操作方法UpdateDB公共类数据操作方法UpdateDB用于对数据进行添加、修改和删除操作,若操作成功则返回true,否则 返回false。代码如下

14、:public bool UpdateDB(string sqlStr)/公共数据操作方法,用于对数据进行增,改,删操作 try dataConnection.ConnectionString = connstr; dataConnection.Open(); command = dataConnection.CreateCommand(); command.CommandText = sqlStr; command.ExecuteNonQuery(); dataConnection.Close(); /关闭连接 return true; catch (Exception exp) Messa

15、geBox.Show(exp.Message); return false; 3.静态公共类ClassShared用于记录用户名和用户角色,代码如下:namespace 研究生管理信息系统 public class ClassShared/用于记录用户名和用户角色 public static string userInfo = new string2; 3.2系统登录与主窗体登录是每一个成功项目中不可缺少的模块,好的登录模块可以保证系统的可靠性和安全性。3.2.1 登录界面设计新建一个Windows应用程序,命名为“研究生信息管理系统”,使用PictureBox、Label、TextBox、B

16、utton控件将出现的默认窗体Form1设计成如图3-1所示。图3-1 登录界面3.2.2 登录功能实现及代码接下来编写登录模块的代码。【确认】按钮用于验证输入的用户名和用户密码,若正确则进入系统主界面;否则弹出错误提示,并等待用户的重新输入。登录时,需要记录登录的用户名和用户权限,因此在“ClassShared”公共类中声明公共静态成员,声明后“ClassShared”公共类的代码上文已有。然后切换到“frmMain”窗体设计器,双击【登录】按钮,编写其单击事件的代码如下:通过判断输入文本框中的用户名与密码是否与UserInfo表中的用户密码相匹配,决定是进入主界面还是报错提示用户重新输入。

17、 private void btnOK_Click(object sender, EventArgs e) try /验证登录密码 DataSet ds = new DataSet(); DataBase db = new DataBase(); string sqlStr = select PWD,RoleName from UserInfo where UName= + txtUserName.Text.Trim() + ; ds = db.GetDataFromDB(sqlStr); if (ds.Tables0.Rows0.ItemArray0.ToString() = txtPass

18、word . Text.Trim() /密码正确情况,进入主界面 FrmMain frmmain = new FrmMain(); ClassShared.userInfo0 = txtUserName.Text.Trim(); ClassShared.userInfo1 = ds.Tables0.Rows0.ItemArray1.ToString(); frmmain.Show(); this.Hide(); else/密码错误情况,返回重新输入 MessageBox.Show( 用户名或密码输入错误,请重新输入!); txtUserName.Text =; txtPassword.Text

19、 =; txtUserName.Focus(); catch MessageBox.Show(用户名或密码错误!,错误); 除了窗体中的确认按钮,有时候用户希望输入完密码后想直接按下【Enter】键便进入系统主界面,这就需要编写文本框txtPassword的KeyDown事件代码,判断用户按下的是哪个键,如果是【Enter】则调用“btnOK-Click”方法已登录系统。代码如下:private void txtPassword_KeyDown(object sender, KeyEventArgs e)/Enter键按下确认if (e.KeyCode = Keys.Enter) btnOK_

20、Click(sender,e);3.2.3 主窗体界面设计用户登录成功后,进入系统主界面,通过在选择主界面上的按钮进入相应子系统。所以应当添加一个名为“frmMain”的主窗体。添加完窗体,然后开始添加Label、GroupBox,Button和StatusStrip控件。接着设置各控件的属性,在背景制作上,使用PhotoShop图像处理软件将小图标与大背景融合,再将按钮放置在相应图标旁。最后更改按钮,状态栏的背景色,使整个界面为蓝色主调,总之需要根据实际情况和美观需求合理设置。最后将主窗体界面设计成如图3-2所示:图3-2主界面图3.2.4 主窗体功能实现及代码1、添加窗体主窗体是导航界面,

21、是进入各子系统的入口。因此需要添加7个新的窗体,分别用于系统管理,专业管理,课程管理,研究生管理,成绩管理,用户管理和帮助,其名称分别为“frmSystem”、“frmMajor”、“frmCourse”、“frmMaster”、“frmGrade”、“frmUser”和“frmHelp”,添加方法和步骤与前面介绍的“frmMain”的添加过程相同,这里不再赘述。2、编写代码当窗体载入时,将前面公共静态数组“userInfo ”保存的用户名和角色及权限将在本窗体中体现主来,不同权限的用户将使用不同的功能。没有相应的权限则不能进入子系统,例如学生、教师就无法进入【系统管理】等权限较高的子系统;用

22、户名和角色将显示在状态栏中,同时状态栏将显示具体时间;单击权限许可的按钮将进入相应的子系统;当用户单击主窗体关闭按钮或【退出】按钮时,应用程序终止运行。主窗体代码如下:通过状态栏显示登录的用户、角色和和时间信息;接着通过条件语句判断用户角色用以确定用户权限,没有权限进入的模块将使用按钮的Enable属性将其设置为false,使其不能触发改按钮事件。从而实现权限的设置。 private void FrmMain_Load(object sender, EventArgs e)/窗体载入事件 tsslblUser.Text = ClassShared.userInfo0 + ;/状态栏显示当前用户

23、,角色和时间 tsslblRole.Text = ClassShared.userInfo1; tsslblTime1.Text = + DateTime.Now.ToLongDateString() + ; tsslblTime2.Text = DateTime.Now.ToLongTimeString(); /设置不同角色的权限 if (ClassShared.userInfo1 = 系统管理员)/当前系统预设4种角色 ; else if (ClassShared.userInfo1 = 普通管理员) button1.Enabled = false; else if (ClassShare

24、d.userInfo1 = 教师) button1.Enabled = false; button2.Enabled = false; else if (ClassShared.userInfo1 = 学生) button1.Enabled = false; button3.Enabled = false; button4.Enabled = false; public FrmMain() InitializeComponent(); 点击相应按钮进入相应的子模块。按钮共设有8个,分别为系统管理、专业管理、课程管理、研究生管理,成绩管理、用户管理、帮助和退出。 private void but

25、ton1_Click(object sender, EventArgs e)/进入系统管理 FrmSystem frmsystem = new FrmSystem(); frmsystem.Show(); private void button2_Click(object sender, EventArgs e)/进入专业管理 FrmMajor frmmajor = new FrmMajor(); frmmajor.Show(); private void button3_Click(object sender, EventArgs e)/进入课程管理 FrmCourse frmcourse

26、= new FrmCourse(); frmcourse .Show(); private void button4_Click(object sender, EventArgs e)/进入研究生管理 FrmMaster frmmaster = new FrmMaster(); frmmaster.Show(); private void button5_Click(object sender, EventArgs e)/进入成绩管理 FrmGrade frmgrade = new FrmGrade(); frmgrade.Show(); private void button6_Click(

27、object sender, EventArgs e)/进入用户管理 FrmUser frmuser = new FrmUser(); frmuser.Show(); private void btnClose_Click(object sender, EventArgs e)/点击主窗体【关闭】退出 Application.Exit(); private void FrmMain_FormClosed(object sender, FormClosedEventArgs e)/退出系统 Application.Exit(); private void btnHelp_Click(object

28、 sender, EventArgs e)/进入帮助 FrmHelp frmhelp = new FrmHelp(); frmhelp.Show(); 3.3 系统管理系统管理模块主要用于管理用户的信息,主要用于实现对用户的添加、修改、删除和对角色的创建、修改权限和删除的功能。3.3.1 角色管理界面设计打开前面添加的“frmSystem”窗体,使用GroupBox、ToolStip、StatusStrip、Label、Button和DataGridView控件,其中将各Button的Name属性分被改为与其功能相关的名字,如“添加”按钮的Name属性为“btnAdd”。以此类推将各个控件的“

29、Name”属性改为与功能相适应。其中需注意将DataDridView的ReadOnly属性改为“True”.将界面设计为如图3-3所示: 图3-3角色管理界面3.3.2 角色管理实现及代码由于角色管理和用户管理是在同意窗体中实现的,所以借助gbxNewRole、dgrdvRoles1等的Visible属性实现同一窗体下实现对不同对象管理。通过单击工具栏【角色管理】或者【用户信息管理】显示不同界面,实现不同操作。在实现对角色的添加、修改和删除的功能时,本模块需要用到几个通用方法。如用于清空文本框和组合框的Clear1()方法等等,并且角色信息记录在数据库masterMIS中的Roles表中。以下都将一一列举出来:窗体载入发生事件,讲界面置空,只留下状态栏和工具栏,通过Visible属性完成。 private void FrmSystem_Load(object sender,

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

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