计算机系学生信息管理系统课程设计报告doc.docx
- 文档编号:22994749
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:32
- 大小:513.92KB
计算机系学生信息管理系统课程设计报告doc.docx
《计算机系学生信息管理系统课程设计报告doc.docx》由会员分享,可在线阅读,更多相关《计算机系学生信息管理系统课程设计报告doc.docx(32页珍藏版)》请在冰豆网上搜索。
计算机系学生信息管理系统课程设计报告doc
《计算机系学生信息管理系统》
课程设计报告
报告题目:
计算机系学生信息管理系统
作者所在系部:
计算机科学与工程系
作者所在专业:
网络工程
作者学号:
作者姓名:
指导教师姓名:
完成时间:
2012年12月10日
摘要
对于高等学校来说,学生信息的管理至关重要。
面对庞大的信息量,需要通过专门的管理系统来系统化、规范化以及高效地实现学生信息管理。
利用VisualStudio2010编写程序,实现了用户对在校学生基本信息,即学号、姓名、班级、年级、专业、住址、出生年月等信息的增加、删除、修改、查询。
本系统主要有2个主要功能模块:
教师模块,管理员模块。
教师模块中,可是实现的功能包括对学生进行按学号,姓名和班级的查询,还包括对登陆密码的修改。
管理员模块中,功能包括对学生进行增添,删除,查找,修改和对密码的修改。
已经过全面的系统测试,能够很好的运行,达到了预期的效果。
关键词:
学生信息,增添,删除,查找,修
第一章绪论
1.1课程设计的目的
课程设计是课程教学必不可缺的一个重要环节,可加深学生对该课程所学内容的进一步的了解与巩固,是将计算机课程与实际问题相连接的关键步骤。
此次程序设计综合运用所学知识解决实际问题,将课堂的书本知识有效的在程序中体现出来,让学生更理解了C#功能之强大,进一步让学生对面向对象的方法以及C++的编程思想有了较好了解和认识。
1.2课程设计的意义
(1)通过课程设计的综合训练,培养了学生分析解决实际问题和编程等实际动手能力。
帮助了同学系统的掌握C#课程的主要内容。
(2)通过详细的实例分析,循环渐进的描述,启发学生顺利的完成设计。
课程设计将设计要求、需求分析、算法设计、编程和实例测试运行分开,为学生创造分析问题、独立思考的条件。
(3)通过编写一个较复杂的程序,实现了对学生信息的管理,激发了学生学习编程的兴趣。
第二章系统分析
2.1需求分析
根据实验要求,本系统具有以下功能:
□良好的人机界面
□教师可以查询学生信息并更改登陆密码
□管理员可以对教师,学生,班级,年级,专业的信息进行增加、删除、查找、修改改,并修改本人的登录密码。
2.2开发工具选择
本系统前台数据库采用MicrosoftSQLSever2008,后台采用Microsoft公司的VisualStudio2010作为主要开发工具,该开发工具可以与SQLServer2008数据库无缝链接。
第三章总体设计
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开发及运行环境
□系统开发平台:
MicrosoftVisualStudio2010
□系统开发语言:
C#
□数据库系统:
SQLServer2008
□运行平台:
WindowsXP/Windows7
□运行环境:
Microsoft.NETFrameworkSDKv4.0
□分辨率:
最佳效果1024╳768像素
4.3数据库设计
本系统采用SQLServer2008作为后台数据库,数据库名称为Department,其中包括六张数据表,下面分别进行介绍。
1.数据库概要说明
为了使读者对本系统后台数据库中的数据表有更加清晰地认识,在此特别设计了数据表树形结构图,该图包括所有数据表,如图4-1所示。
图4-1数据表树形结构图
2、数据表的结构
下面给出其中主要的五张表的设计。
1)Class表
2)Grade表
3)Major表
4)Student表
5)Teacher表
第五章
技术准备
5.1更改密码
本系统中涉及到教师和管理员更改登陆密码,在这个过程中需要用到,窗体之间值传递,因此设计了UserInfo类,具体实现如下:
publicclassUserInfo
{
privatestring_userName;
privatestring_userPassword;
publicUserInfo(stringuserName,stringuserPassword)
{
_userName=userName;
_userPassword=userPassword;
}
publicstringUserName
{
get
{
return_userName;
}
}
publicstringPassword
{
get
{
return_userPassword;
}
}
publicstaticUserInfo_UserInfo;
}
将登陆窗体中的用户名和密码加入到类中,并实例化UserInfo得到其对象_UserInfo,这个对象为公有静态,可以在项目中的任何一个位置使用,进而得到其中的用户名和密码。
5.2信息添加、查询、修改、删除
本系统中采用了很多窗口用于人机交互,便于使用,用到了Form类,它的基本属性如表5-1所示。
属性
说明
Name
窗体对象的名字,类似于变量的名字
BackColor
窗体的背景色
ShowInTaskBar
设置窗体是否出现在任务栏
StartPosition
窗体第一次出现时的位置
Location
以像素为单位制定窗体左上角的位置,若此属性生效,需设置StartPosition属性为Manual
Text
窗体标题栏显示的文字
TopMost
设置窗体是否为最顶端的窗体
WindowState
窗体出现时最初的状态(正常、最大化、最小化)
ControlBox
窗体上是否有控制菜单(True:
显示,False:
不显示)
MaximizeBox
窗体上是否有最大化按钮
MinimizeBox
窗体上是否有最小化按钮
表5-1Form类中的常用方法属性
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
{
publicpartialclass登Ì?
陆?
:
Form
{
public登Ì?
陆?
()
{
InitializeComponent();
}
//单Ì£¤击¡Â登Ì?
陆?
界?
面?
上¦?
的Ì?
“¡ã教¨¬师º|登Ì?
陆?
”¡À按ã¡ä钮£¤
privatevoidTeacherLoginButton_Click(objectsender,EventArgse)
{
//一°?
个?
是º?
Form1.cs的Ì?
主¡Â窗ä¡ã体¬?
,ê?
另¢¨ª一°?
个?
是º?
Login.cs的Ì?
登Ì?
录?
窗ä¡ã口¨²,ê?
现?
在¨²在¨²login.cs窗ä¡ã口¨²中D有®D一°?
个?
combobox控?
件t(ꡧJSXZ)ê?
,ê?
想?
在¨²Form1.cs中D获?
取¨?
它¨¹的Ì?
值¦Ì,ê?
应®|该?
怎?
样¨´做Á?
?
ê?
UserInfo._UserInfo=newUserInfo(usernameTextBox.Text,passwordTextBox.Text);
AppDomain.CurrentDomain.SetData("UserInfo",UserInfo._UserInfo);
stringconString="DataSource='.';InitialCatalog='Department';IntegratedSecurity='True'";
//stringconString="DataSource='maolizhi-PC';InitialCatalog='MySchool';IntegratedSecurity=True";
//stringconString="server=.;database=MySchool;uid=sa;pwd=19920107";
SqlConnectionconnection=newSqlConnection(conString);
connection.Open();
SqlCommandcommand=newSqlCommand();
command.Connection=connection;
command.CommandText=String.Format("selectcount(*)fromTeacherwhereLoginID='{0}'andLoginPassword='{1}'",this.usernameTextBox.Text,this.passwordTextBox.Text);
command.Parameters.Add(newSqlParameter("LoginID",this.usernameTextBox.Text));
command.Parameters.Add(newSqlParameter("LoginPassword",this.passwordTextBox.Text));
intcount=(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);
}
}
privatevoidAdministratorLoginButton_Click(objectsender,EventArgse)
{
stringconString="DataSource='.';InitialCatalog='Department';IntegratedSecurity='True'";
UserInfo._UserInfo=newUserInfo(usernameTextBox.Text,passwordTextBox.Text);
AppDomain.CurrentDomain.SetData("UserInfo",UserInfo._UserInfo);
SqlConnectionconnection=newSqlConnection(conString);
connection.Open();
SqlCommandcommand=newSqlCommand();
command.Connection=connection;
command.CommandText=String.Format("selectcount(*)fromAdministraterwhereAdministraterID='{0}'andAdministraterPassword='{1}'",this.usernameTextBox.Text,this.passwordTextBox.Text);
command.Parameters.Add(newSqlParameter("LoginID",this.usernameTextBox.Text));
command.Parameters.Add(newSqlParameter("LoginPassword",this.passwordTextBox.Text));
intcount=(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.代码设计
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.SqlClient;
namespace计算机系学生信息管理系统
{
publicpartialclass按班级查询结果:
Form
{
public按班级查询结果()
{
InitializeComponent();
}
privatevoidSearchButton_Click(objectsender,EventArgse)
{
stringconnectionString="DataSource='.';InitialCatalog='Department';IntegratedSecurity='True'";
SqlConnectionconnection=newSqlConnection(connectionString);
connection.Open();
SqlCommandcommand=newSqlCommand();
command.CommandText=String.Format("select*fromStudentwhereClassIDlike'{0}'",this.ClassIDTextBox.Text.Trim());
command.Connection=connection;
//SqlCommandCommand=newSqlCommand();
//Command.CommandText=String.Format("selectcount(*)fromStudentwhereClassIDlike'%{0}%'",this.ClassIDTextBox.Text.Trim());
//Command.Connection=connection;
//判断是否找到了这个班号
inti=Convert.ToInt32(command.ExecuteNonQuery());
if(i==0)
{
MessageBox.Show("没有这个班!
");
}
else
{
//实例化SqlDataAdapter()并制定SelectCommand属性为command
SqlDataAdaptersda=newSqlDataAdapter();
sda.SelectCommand=command;
//实例化DataSet并用SqlDataAdapter的Fill方法为DataSet填充
DataSetds=newDataSet();
sda.Fill(ds);
//设置showDataGridView的数据源为ds
ClassSearchResultDataGridView.DataSource=ds.Tables[0];
ClassSearchResultDataGridView.Columns[0].HeaderText="用户名";
ClassSearchResultDataGridView.Columns[1].HeaderText="密码";
ClassSearchResultDataGridView.Columns[2].HeaderText="班号";
ClassSearchResultDataGridView.Columns[3].HeaderText="学号";
ClassSearchResultDataGridView.Columns[4].HeaderText="姓名";
ClassSearchResultDataGridView.Columns[5].HeaderText="性别";
ClassSearchResultDataGridView.Columns[6].HeaderText="专业";
ClassSearchResultDataGridView.Columns[7].HeaderText="电话";
ClassSearchResultDataGridView.Columns[8].HeaderText="地址";
ClassSearchResultDataGridView.Columns[9].HeaderText="邮编";
ClassSearchResultDataGridView.Columns[10].HeaderText="年级";
}
}
privatevoidQuitButton_Click(objectsender,EventArgse)
{
this.Close();
}
}
}
6.3管理员登陆
1.窗体设计
管理员登陆成功与失败的窗体显示在6.1节中。
菜单栏中有添加、删除、查找和更改的功能。
每一项中都包含对学生、老师、班级、年级和专业的相应的操作。
每一部分,都有友好的界面,都可以根据提示进行很好地操作。
2.代码设计
privatevoid修改密码ToolStripMenuItem_Click(objectsender,EventArgse)
{
管理员更改密码administraterChangePassword=new管理员更改密码();
administraterChangePassword.Show();
}
privatevoid添加学生ToolStripMenuItem_Click(objectsender,EventArgse)
{
添加学生addStudent=new添加学生();
addStudent.Show();
}
privatevoid添加教
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机系 学生 信息管理 系统 课程设计 报告 doc
![提示](https://static.bdocx.com/images/bang_tan.gif)