




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机系学生信息管理系统课程设计报告报 告 题 目: 计算机系学生信息管理系统 作者所在系部: 计算机科学与工程系 作者所在专业: 网络工程 作 者 学 号 : 作 者 姓 名 : 指导教师姓名: 完 成 时 间 : 2012年12月10日 目录目录摘要第一章绪论111 课程设计的目的112 课程设计的意义1第二章系统分析22.1 需求分析22.2 开发工具选择2第三章总体设计33.1 项目规划33.2 系统业务流程分析33.3 系统功能结构4第四章系统设计54.1 设计目标54.2 开发及运行环境54.3 数据库设计5第五章技术准备85.1更改密码85.2信息添加、查询、修改、删除95.3 窗口控件9第六章主要功能模块设计与测试126.1登陆窗体设计126.2教师登陆窗体156.3管理员登陆196.4 工具栏的显示24第七章 疑难问题分析与解决287.1动态更新窗口中ComboBox的Items中的数据287.2表之间关联28总结29技术总结29经验总结30致谢31参考文献32附录34摘要对于高等学校来说,学生信息的管理至关重要。面对庞大的信息量,需要通过专门的管理系统来系统化、规范化以及高效地实现学生信息管理。利用Visual Studio 2010编写程序,实现了用户对在校学生基本信息,即学号、姓名、班级、年级、专业、住址、出生年月等信息的增加、删除、修改、查询。本系统主要有2个主要功能模块:教师模块,管理员模块。教师模块中,可是实现的功能包括对学生进行按学号,姓名和班级的查询,还包括对登陆密码的修改。管理员模块中,功能包括对学生进行增添,删除,查找,修改和对密码的修改。已经过全面的系统测试,能够很好的运行,达到了预期的效果。关键词:学生信息,增添,删除,查找,修第一章 绪论11 课程设计的目的 课程设计是课程教学必不可缺的一个重要环节,可加深学生对该课程所学内容的进一步的了解与巩固,是将计算机课程与实际问题相连接的关键步骤。此次程序设计综合运用所学知识解决实际问题,将课堂的书本知识有效的在程序中体现出来,让学生更理解了C#功能之强大,进一步让学生对面向对象的方法以及C+的编程思想有了较好了解和认识。12 课程设计的意义(1)通过课程设计的综合训练,培养了学生分析解决实际问题和编程等实际动手能力。帮助了同学系统的掌握C#课程的主要内容。(2)通过详细的实例分析,循环渐进的描述,启发学生顺利的完成设计。课程设计将设计要求、需求分析、算法设计、编程和实例测试运行分开,为学生创造分析问题、独立思考的条件。(3)通过编写一个较复杂的程序,实现了对学生信息的管理,激发了学生学习编程的兴趣。第二章 系统分析2.1 需求分析根据实验要求,本系统具有以下功能: 良好的人机界面 教师可以查询学生信息并更改登陆密码 管理员可以对教师,学生,班级,年级,专业的信息进行增加、删除、查找、修改改,并修改本人的登录密码。2.2 开发工具选择本系统前台数据库采用Microsoft SQL Sever 2008,后台采用Microsoft 公司的Visual Studio 2010 作为主要开发工具,该开发工具可以与SQL Server 2008 数据库无缝链接。第三章 总体设计3.1 项目规划 计算机系学生信息管理系统主要由教师和管理员两个模块组成,具体规划如下: 教师模块(1)查询。该模块只具有按照姓名、学号、班级查询学生部分信息的功能。(2)修改。修改自己的登陆密码。 管理员模块(1)添加。该模块负责添加新的学生、教师、年级、班级、专业。(2)删除。该模块可以根据提示删除原有的学生、教师、年级、班级、专业。(3)查询。查询学生、教师、年级、班级、专业的相关信息。(4)修改。修改学生、教师、年级、班级、专业。3.2 系统业务流程分析计算机系学生信息管理系统的业务流程图如图3-1所示。图3-1 计算机系学生信息管理系统业务流程图3.3 系统功能结构计算机系学生信息管理系统的功能结构图如图3-2所示。图3-2计算机系学生信息管理系统功能结构图第四章 系统设计4.1 设计目标本系统属于单机版信息管理系统,可以对计算机数据库中的学生信息进行有效管理。通过本系统可以达到以下目标: 添加大量数据 用ListView、DataGritView、TextBox等控件实现对数据查询的显示 删除并级联删除数据 修改并级联修改4.2 开发及运行环境 系统开发平台:Microsoft Visual Studio 2010 系统开发语言:C# 数据库系统:SQL Server 2008 运行平台:Windows XP/Windows 7 运行环境:Microsoft .NET Framework SDK v4.0 分辨率:最佳效果 1024768 像素4.3 数据库设计本系统采用SQL Server 2008作为后台数据库,数据库名称为Department,其中包括六张数据表,下面分别进行介绍。1. 数据库概要说明为了使读者对本系统后台数据库中的数据表有更加清晰地认识,在此特别设计了数据表树形结构图,该图包括所有数据表,如图4-1所示。 图4-1数据表树形结构图2、数据表的结构下面给出其中主要的五张表的设计。1) Class表2) Grade表3) Major表4) Student表5) Teacher表第五章 技术准备5.1更改密码本系统中涉及到教师和管理员更改登陆密码,在这个过程中需要用到,窗体之间值传递,因此设计了 UserInfo类,具体实现如下:public class UserInfo private string _userName; private string _userPassword; public UserInfo(string userName, string userPassword) _userName = userName; _userPassword = userPassword; public string UserName get return _userName; public string Password get return _userPassword; public static UserInfo _UserInfo; 将登陆窗体中的用户名和密码加入到类中,并实例化UserInfo 得到其对象_UserInfo,这个对象为公有静态,可以在项目中的任何一个位置使用,进而得到其中的用户名和密码。5.2信息添加、查询、修改、删除 本系统中采用了很多窗口用于人机交互,便于使用,用到了Form类,它的基本属性如表5-1所示。属性说明Name窗体对象的名字,类似于变量的名字 BackColor窗体的背景色 ShowInTaskBar设置窗体是否出现在任务栏 StartPosition窗体第一次出现时的位置 Location以像素为单位制定窗体左上角的位置,若此属性生效,需设置StartPosition属性为Manual Text窗体标题栏显示的文字 TopMost设置窗体是否为最顶端的窗体 WindowState窗体出现时最初的状态(正常、最大化、最小化) ControlBox窗体上是否有控制菜单(True:显示,False:不显示)MaximizeBox窗体上是否有最大化按钮MinimizeBox窗体上是否有最小化按钮表5-1 Form 类中的常用方法属性5.3 窗口控件在系统设计过程中,用到了大量的控件,控件的基本常用属性和事件如表5-2和表5-3所示。属性含义BackColor获取或设置控件的背景色Cursor获取或设置当鼠标指针位于控件上时显示的光标Enable设置控件是否可以对用户的交互做出响应Font获取或设置控件显示文字的字体ForeColor获取或设置控件的前景色Height获取或设置控件的高度Left获取或设置控件的左边界到容器左边界的距离Name获取或设置控件的名称Right获取或设置控件的右边界到容器左边界的距离TabIndex获取或设置在控件容器上控件的Tab键的顺序TabStop设置用户是否使用Tab键将焦点放到该空间上Tag获取或设置包括有关控件的数据的对象Text获取或设置与此控件关联的文本Top获取或设置控件的顶部距离其容器的顶部的距离Visible设置是否在运行时显示该控件Width获取或设置控件的宽度表5-2控件的常用属性事件含义Click单击控件的时候发生DoubleClick双击控件的时候发生DragDrop当一个对象被拖到控件上,用户释放鼠标的时候发生DragEnter当被拖动的对象进入控件的边界时候发生DragLeave当被拖动的对象离开控件的边界时候发生DragOver当被拖动的对象在控件的范围时发生KeyDown在控件有焦点的情况下,按下任一个键时发生,在KeyPress前发生KeyPress在控件有焦点的情况下,按下任一个键时发生,在KeyUp前发生KeyUp在控件有焦点的情况下释放键的时候发生Enter在控件获得焦点时发生Leave在控件失去焦点的时候发生MouseDown当鼠标指针位于控件上并按下鼠标键的时候发生MouseMove当鼠标移动到控件上的时候发生MouseUp当鼠标指针位于控件上并释放鼠标键的时候发生Validated在控件完成验证的时候发生Validating在控件正在验证的时候发生Resize在调整控件大小的时候发生表5-3 控件常用事件第六章 主要功能模块设计与测试6.1登陆窗体设计1.窗体设计2. 测试(1)登陆失败(2)登陆成功3.代码设计namespace 计?算?机系学生信?息管理系统3 public partial class 登?陆? : Form public 登?陆?() InitializeComponent(); /单击登?陆?界?面?上?的?“教师|登?陆?”按钮 private void TeacherLoginButton_Click(object sender, EventArgs e) /一?个?是?Form1.cs的?主窗体?,?另一?个?是?Login.cs的?登?录?窗口,?现?在在login.cs窗口中D有D一?个?combobox控?件t(JSXZ)?,?想?在Form1.cs中D获?取?它的?值,?应|该?怎?样做??? UserInfo._UserInfo = new UserInfo(usernameTextBox.Text,passwordTextBox.Text); AppDomain.CurrentDomain.SetData(UserInfo, UserInfo._UserInfo); string conString = Data Source=.;Initial Catalog=Department;Integrated Security=True; /string conString = Data Source=maolizhi-PC;Initial Catalog=MySchool;Integrated Security=True; /string conString =server=.;database=MySchool;uid=sa;pwd=19920107; SqlConnection connection = new SqlConnection(conString); connection.Open(); SqlCommand command = new SqlCommand(); command.Connection = connection; command.CommandText = String.Format(select count(*) from Teacher where LoginID=0 and LoginPassword=1,this.usernameTextBox.Text, this.passwordTextBox.Text); command.Parameters.Add(new SqlParameter(LoginID, this.usernameTextBox.Text); command.Parameters.Add(new SqlParameter(LoginPassword, this.passwordTextBox.Text); int count = (int)command.ExecuteScalar();/获?取?数y据Y集中D的?数y据Y数y量? if (count 0) this.DialogResult = DialogResult.OK; this.Hide(); 教师|登?陆? teacherLogin = new 教师|登?陆?(); teacherLogin.Show(); else MessageBox.Show(用?户名?或密码?错误, 错误, MessageBoxButtons.OK, MessageBoxIcon.Error); private void AdministratorLoginButton_Click(object sender, EventArgs e) string conString = Data Source=.;Initial Catalog=Department;Integrated Security=True; UserInfo._UserInfo = new UserInfo(usernameTextBox.Text,passwordTextBox.Text); AppDomain.CurrentDomain.SetData(UserInfo, UserInfo._UserInfo); SqlConnection connection = new SqlConnection(conString); connection.Open(); SqlCommand command = new SqlCommand(); command.Connection = connection; command.CommandText = String.Format(select count(*) from Administrater where AdministraterID=0 and AdministraterPassword=1, this.usernameTextBox.Text, this.passwordTextBox.Text); command.Parameters.Add(new SqlParameter(LoginID, this.usernameTextBox.Text); command.Parameters.Add(new SqlParameter(LoginPassword, this.passwordTextBox.Text); int count = (int)command.ExecuteScalar();/获?取?数y据Y集中D的?数y据Y数y量? if (count 0) this.DialogResult = DialogResult.OK; this.Hide(); 管理员登?陆? administraterLogin = new 管理员登?陆?(); administraterLogin.Show(); else MessageBox.Show(用?户名?或密码?错误, 错误, MessageBoxButtons.OK, MessageBoxIcon.Error); 6.2教师登陆窗体1.界面设计教师登陆成功与失败的窗体显示在6.1节中。下面用教师查询学生的例子来演示教师所具有的查询功能。这是教师查询中的一项功能,即按班级查询,在查询中,只需要输入班级号,假如不存在这个班,则弹出提示:没有这个班,否则,将查询结果显示在上面的显示区域。3. 代码设计using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace 计算机系学生信息管理系统 public partial class 按班级查询结果 : Form public 按班级查询结果() InitializeComponent(); private void SearchButton_Click(object sender, EventArgs e) string connectionString = Data Source=.;Initial Catalog=Department;Integrated Security=True; SqlConnection connection = new SqlConnection(connectionString); connection.Open(); SqlCommand command = new SqlCommand(); command.CommandText = String.Format(select * from Student where ClassID like 0, this.ClassIDTextBox.Text.Trim(); command.Connection = connection; /SqlCommand Command= new SqlCommand(); /Command.CommandText = String.Format(select count(*) from Student where ClassID like %0%, this.ClassIDTextBox.Text.Trim(); /Command.Connection = connection; /判断是否找到了这个班号 int i = Convert.ToInt32(command.ExecuteNonQuery(); if (i = 0) MessageBox.Show(没有这个班!); else /实例化SqlDataAdapter()并制定SelectCommand属性为command SqlDataAdapter sda = new SqlDataAdapter(); sda.SelectCommand = command; /实例化DataSet并用SqlDataAdapter的Fill方法为DataSet填充 DataSet ds = new DataSet(); sda.Fill(ds); /设置showDataGridView的数据源为ds ClassSearchResultDataGridView.DataSource = ds.Tables0; ClassSearchResultDataGridView.Columns0.HeaderText = 用户名; ClassSearchResultDataGridView.Columns1.HeaderText = 密码; ClassSearchResultDataGridView.Columns2.HeaderText = 班号; ClassSearchResultDataGridView.Columns3.HeaderText = 学号; ClassSearchResultDataGridView.Columns4.HeaderText = 姓名; ClassSearchResultDataGridView.Columns5.HeaderText = 性别; ClassSearchResultDataGridView.Columns6.HeaderText = 专业; ClassSearchResultDataGridView.Columns7.HeaderText = 电话; ClassSearchResultDataGridView.Columns8.HeaderText = 地址; ClassSearchResultDataGridView.Columns9.HeaderText = 邮编; ClassSearchResultDataGridView.Columns10.HeaderText = 年级; private void QuitButton_Click(object sender, EventArgs e) this.Close(); 6.3管理员登陆1.窗体设计管理员登陆成功与失败的窗体显示在6.1节中。菜单栏中有添加、删除、查找和更改的功能。每一项中都包含对学生、老师、班级、年级和专业的相应的操作。每一部分,都有友好的界面,都可以根据提示进行很好地操作。2.代码设计 private void 修改密码ToolStripMenuItem_Click(object sender, EventArgs e) 管理员更改密码 administraterChangePassword = new 管理员更改密码(); administraterChangePassword.Show(); private void 添加学生ToolStripMenuItem_Click(object sender, EventArgs e) 添加学生 addStudent = new 添加学生(); addStudent.Show(); private void 添加教师ToolStripMenuItem_Click(object sender, EventArgs e) 添加老师 addTeacher = new 添加老师(); addTeacher.Show(); private void 添加班级ToolStripMenuItem_Click(object sender, EventArgs e) 添加班级 addClass = new 添加班级(); addClass.Show(); private void 添加专业ToolStripMenuItem_Click(object sender, EventArgs e) 添加专业 addMajor = new 添加专业(); addMajor.Show(); private void 添加年级ToolStripMenuItem_Click(object sender, EventArgs e) 添加年级 addGrade = new 添加年级(); addGrade.Show(); private void 删除学生ToolStripMenuItem_Click(object sender, EventArgs e) 删除学生 removeStudent = new 删除学生(); removeStudent.Show(); private void 删除教师ToolStripMenuItem_Click(object sender, EventArgs e) 删除教师 removeTeacher = new 删除教师(); removeTeacher.Show(); private void 删除班级ToolStripMenuItem_Click(object sender, EventArgs e) 删除班级 removeClass = new 删除班级(); removeClass.Show(); private void 删除专业ToolStripMenuItem_Click(object sender, EventArgs e) 删除专业 removeMajor = new 删除专业(); removeMajor.Show(); private void 删除年级ToolStripMenuItem_Click(object sender, EventArgs e) 删除年级 removeGrade = new 删除年级(); removeGrade.Show(); private void 删除学生ToolStripMenuItem1_Click(object sender, EventArgs e) 查询学生 searchStudent = new 查询学生(); searchStudent.Show(); private void 删除教师ToolStripMenuItem1_Click(object sender, EventArgs e) 查询教师 searchTeacher = new 查询教师(); searchTeacher.Show(); private void 删除班级ToolStripMenuItem1_Click(object sender, EventArgs e) 查询班级 searchClass = new 查询班级(); searchClass.Show(); private void 删除专业ToolStripMenuItem1_Click(object sender, EventArgs e) 查询专业 searchMajor = new 查询专业(); searchMajor.Show(); private void 删除年级ToolStripMenuItem1_Click(object sender, EventArgs e) 查询年级 searchGrade = new 查询年级(); searchGrade.Show(); private void 修改学生ToolStripMenuItem_Click(object sender, EventArgs e) 修改学生 changgeStudent = new 修改学生(); changgeStudent.Show(); private void 修改教师ToolStripMenuItem_Click(object sender, EventArgs e) 修改教师 changeTeacher = new 修改教师(); changeTeacher.Show(); private void 修改班级ToolStripMenuItem_Click(object sender, EventArgs e) 修改班级 changeClass = new 修改班级(); changeClass.Show(); private void 修改专业ToolStripMenuItem_Click(object sender, EventArgs e) 修改专业 changeMajor = new 修改专业(); changeMajor.Show(); private void 修改年级ToolStripMenuItem_Click(object sender, EventArgs e) 修改年级 changeGrade = new 修改年级(); changeGrade.Show(); 6.4 工具栏的显示(1)窗体设计窗体的设计在6.1节中给出。工具栏中包含有五个按钮,分别可以直接查看全体学生、教师、专业、年级和班级的信息。以查看班级为例,说明并测试如下:2.代码设计private void StudentToolStripButton1_Click(object sender, EventArgs e) string connectionString = Data Source=.;Initial Catalog=Department;Integrated Security=True; connection = new SqlConnection(connectionString); SqlCommand command = new SqlCommand(); command.CommandText = select * from student; command.Connection = connection; /实例化SqlDataAdapter()并制定SelectCommand属性为command sda = new SqlDataAdapter(); sda.SelectCommand = command; /实例化DataSet并用SqlDataAdapter的Fill方法为DataSet填充 ds = new DataSet(); sda.Fill(ds, student); /设置showDataGridView的数据源为ds ShowDataGridView.DataSource = ds.Tables0; ShowDataGridView.Columns0.HeaderText = 用户名; ShowDataGridView.Columns1.HeaderText = 密码; ShowDataGridView.Columns2.HeaderText = 班号; ShowDataGridView.Columns3.HeaderText = 学号; ShowDataGridView.Columns4.HeaderText = 姓名; ShowDataGridView.Columns5.HeaderText = 性别; ShowDataGridView.Columns6.HeaderText = 专业; ShowDataGridView.Columns7.HeaderText = 电话; ShowDataGridView.Columns8.HeaderText = 地址; ShowDataGridView.Columns9.HeaderText = 邮编; ShowDataGridView.Columns10.HeaderText = 年级; 第七章 疑难问题分析与解决7.1动态更新窗口中ComboBox的Items中的数据在学生、班级、年级模块中,有的信息不能随便由管理员输入,而是在限定的数据库中的数据里面选取,这就需要每次打开窗口时候,相应的信息已经完全有数据库中添加到了ComboBox中的Items里面了。这就需要在该窗口的Load事件中用DataReader方法为ComboBox中的Items添加值。具体实现如下:SqlCommand command = new SqlCommand();command.Connection = connection;command.CommandText = string.Format(select ClassID from Class );SqlDataReader dataReaderClass = command.ExecuteReader();ClassIDComboBox.Items
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 苏州市苏州实验中学2025年高三年级第六次月考生物试题含解析
- 沈阳师范大学《动画场景设计》2023-2024学年第二学期期末试卷
- 枣强中学高二下学期第三次月考数学(理)试题
- 手术室常用护理操作技术
- 2025大学生应如何审慎签订劳动合同以确保自身权益
- 2025物料提升机租赁合同模板
- 2025年详尽工作时间规定合同制员工劳动合同
- 2025职业院校食堂餐饮服务外包合同协议
- 2025深圳市水果种植订购合同范本
- 2025网络科技公司员工合同
- 《大型商务酒店网络规划与设计》8800字
- GB/T 45077-2024国家公园项目建设指南
- DB51T 1511-2022建设项目对自然保护区自然资源、自然生态
- 治安 课件教学课件
- 中韩文化对比
- 乡土中国 读书分享
- 药品库房安全管理制度
- 全勤奖管理制度(多篇)
- 2020-2024年五年高考1年模拟生物真题分类汇编(山东专用) 专题18 基因工程(原卷版)
- 酒石酸长春瑞滨合成与纯化工艺优化
- 《重症监护患者的压疮护理研究进展综述论文》5200字
评论
0/150
提交评论