学生信息管理系统课程设计报告.docx
《学生信息管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统课程设计报告.docx(36页珍藏版)》请在冰豆网上搜索。
学生信息管理系统课程设计报告
《C#程序设计》
课程设计报告
课程设计题目:
计算机系学生信息管理系统
作者所在系部:
作者所在专业:
作者所在班级:
作者姓名:
作者学号:
指导教师:
完成时间:
课程设计任务书
课题名称
计算机系学生信息管理系统
完成时间
指导教师
职称
学生
班级
总体设计要求和技术要点
总体要求:
(1)数据库设计合理,注意表与表之间的关联
(2)操作简便
(3)功能齐全,风格统一
(4)没有明显错误和异常
(5)数据格式验证
创新要求:
在基本要求达到后,可进行创新设计,如提供数据的导入导出功能等。
工作容与时间进度安排
此次课程设计时间为两周,第15、16周,共40学时。
分四个阶段完成:
1.分析设计阶段:
明确设计要求,找出实现方法。
这一阶段在第1天完成。
2.编码调试阶段:
根据设计分析方案编写C#代码,然后调试该代码,实现课题要求的功能。
这一阶段在第2-8天完成。
3.总结报告阶段:
总结设计工作,撰写课程设计报告,这一阶段在第8-9天完成。
考核阶段:
这一阶段在第10天完成。
课程设计成果
1.与设计容对应的软件程序
2.课程设计报告书
摘要
随着科学技术的不断进步,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一个重要部分,信息查询系统是一个由用户和计算机组成的进行信息管理、信息收集、存储处理、传递使用和维护的软件系统。
学生信息管理系统是学校管理学生信息的一种必不可少的的工具,它相对与手工书写管理更加便利,快捷,节约大量时间,大幅提高日常查询效率。
关于学生信息管理系统,论文主要分几个重点部分来介绍它的功能的实现。
对各个功能的描述,容简洁,明了,结构紧凑。
学生信息管理系统可以满足用户的需求,具体体现在对学生信息的录入,修改,查询,修改等操作。
实现其中的操作除了对各个类中代码书写,更重要的还需要书写与后台数据库交互的代码,满足数据库信息的输入和输出。
学生信息管理系统的开发目的是为了实现学生个人信息的信息化管理。
本系统需要完成的功能有:
管理员模块
1.修改密码
2.教师登录账号信息管理(教师查询、添加、修改、删除)
3.专业管理(专业查询、添加、修改、删除)
4.年级管理(课程查询、添加、修改、删除)
5.班级管理(班级查询、添加、修改、删除)
6.学生管理(学生查询、添加、修改、删除)
教师模块
1.修改登录密码
2.按班级查询学生
3.按学号查询学生
4.按查询学生
关键词:
C#学生信息数据库管理查询添加修改删除
第1章绪论
近年来,随着图书馆规模的不断扩大,图书数量也相应的增加,有关图书的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致图书馆管理上的混乱,人力与物力过多浪费,图书馆管理费用的增加,从而使图书馆的负担过重,影响整个图书馆的运作和控制管理,因此,必须制定一套合理、有效,规和实用的图书管理系统,对图书资料进行集中统一的管理。
1.1课题研究现状分析
在我们的教育事业里,计算机早涉与。
在学生的管理中,如果通过使用计算机可以减少大量的手工操作,提高工作效率。
学生基本信息管理系统过去采用人工处理方式,由于工作量非常之大,为了提高工作效率,方便管理,因此需要开发一个学生信息管理系统。
本次课题为:
学生基本信息管理系统,它的主要功能是先通过用户身份验证,然后即可登录学生基本信息管理系统,然后通过增、删、查、改操作对学生基本信息进行管理和维护。
1.1.1本领域已开展的研究工作
1.理论研究基础
(1)后台以SQL数据库支持。
(2)前台以NeatBeans为开发环境,实现学生基本信息管理的增、删、查、改操作。
2.技术层面的支持
(1)系统的设计与实现应采用MVC分层模式。
(2)系统界面采用MDI方式,即用户登录后进入主窗体,主窗体通过菜单进入子窗体。
1.1.2已经取得的研究成果
当今IT产业和Internet获得了飞速发展,计算机应用已渗透到了各个领域,引起信息管理的革命,实现了信息的自动化处理,提高了处理的与时性和正确性。
学生信息管理工作面对大量的可模块化处理的信息,是当今信息革命的一个重要阵地。
学生信息管理系统就是采用现代化的信息管理方式代替手工管理方式,提高学生信息管理工作效率,做到信息的规管理,科学统计和快速查询。
1.2选题的目的与意义
目的:
为了使学生信息管理工作科学化、规化,更好的适应当前学生信息管理的工作需求,缓解手工管理存在的弊端,就必须采用计算机辅助管理。
在本学期我学习了《c#课程设计》一门课程,为了巩固本学期所学的知识,解决一些简单的问题。
为了更好的学习计算机语言,打下良好的基础,把自己打造成一个计算机高手,提高自我,开发了这个学生信息管理系统。
意义:
本系统界面简单,通过选择登录身份进入不同的界面,就能简单的实现对学生的查找、删除、添加、修改、还可以对专业,课程,年级,进行增、删、查、改。
目前学校的学生信息管理系统已经不能够适应越来越多的学生信息剧增的局面了,而本系统的研发,能更加方便用户对学生进行管理。
第2章系统需求分析
随着经济全球化的推进以与企业激烈的竞争,各大高校的学生信息管理系统已经越来越不能够适应学生与相关信息剧增的局面了,所以我们现在需要一个检索迅速、查找方便、易修改功能齐全方便的系统来适应我们的需求。
系统采用先进的两层体系结构,Client(客户端)负责提供表达逻辑、显示用户界面信息、基本操作;Server(服务器端)负责实现数据服务。
2.1问题的提出
为了减少人工工作量,提高工作效率,使学生管理部门的工作更加有效地进行。
学生信息管理系统的更新迫不与待。
2.2系统的设计目标
本系统是对教育部门进行一体化管理的软件系统,其核心管理思想是实现对学生信息增、删、改的管理。
新系统应达到以下目标:
1.充分了解用户需求与当前形式,功能齐备,能完成数据处理;
2. 要有详细的设计说明书;
3. 每一模块的流程图要很清晰;
4. 系统能够正常的运行,能较好的完成预定的功能;
5. 系统要有完整的帮助文件,供前台操作员能方便的操作本系统。
第3章系统总体设计
3.1系统功能设计
本系统实现了对计算机系学生信息的管理。
总体分为2个模块:
教师模块,管理员模块。
如图3-1所示。
图3-1系统功能模块图
(1)显示模块:
用于显示所有学生的基本信息。
(2)增加模块:
添加学生的基本信息。
(3)删除模块:
删除符合条件的学生的基本信息。
(4)查询模块:
查询出满足条件的学生的基本信息。
(5)修改模块:
对学生的基本信息进行修改。
(6)清除模块:
清除文本框的容。
(7)按学号查:
根据学号查询学生信息。
(8)按查:
根据查询学生信息。
(9)按班级查:
根据班级查询学生信息。
3.1.1系统登录
登录为用户使用系统的起始点,用户必须先通过身份验证,方可对学生基本信息进行相关操作,登录流程如图3-2所示。
图3-2登录模块流程图
简要说明与功能描述:
功能主要是用于确保用户在提供正确的验证信息之后,可以进一步使用本系统。
3.1.2学生基本信息资料维护
管理员存在账号密码,教师存在账号密码。
从而维护了学生信息。
3.2数据库的设计
本系统采用sqlserver2008数据库管理系统,创建的数据库名称为:
StudentMessageManagement数据库中包含7表,各表功能与描述如表3-1所示。
表3-1数据库中的表
表名
作用
Administrator
用于存储管理员的账号密码信息
Teacher
用于存储教师的账号密码信息
Student
用于存储学生信息
Class
用于存储班级信息
Major
用于存储专业信息
Grade
用于存储年级信息
Course
用于存储课程信息
3.3库中各个表的设计
1.管理员表
管理员表Administrator用于维护管理员的基本情况,主键为AdId。
表中各字段定义与描述如表3-2所示。
表3-2Administrator表
字段名
数据类型
长度
是否为空
是否主键
字段意义
AdId
nchar
20
No
是
管理员账号
AdPwd
nchar
20
Yes
否
管理员密码
AdName
nchar
50
Yes
否
管理员
2.教师表
表3-3Teacher表
字段名
数据类型
长度
是否为空
是否主键
字段意义
TeaId
nchar
20
否
是
教师账号
TeaPwd
nchar
20
是
否
教师密码
TeaName
nchar
50
是
否
教师
3.学生信息表
表3-4Student表
字段名
数据类型
长度
是否为空
是否主键
字段意义
StuId
int
--
否
是
学生ID
StuNo
nchar
20
是
否
学生学号
StuName
nchar
14
是
否
学生
Age
nchar
5
是
否
年龄
Sex
nchar
5
是
否
性别
ClassId
int
--
是
否
班级ID
GradeId
int
--
是
否
年级ID
MajorId
int
--
是
否
专业ID
Phone
nchar
20
是
否
联系
Address
nchar
50
是
否
家庭住址
Extra
nchar
50
是
否
备注
4.班级表
表3-5Class表
字段名
数据类型
长度
是否为空
是否主键
字段意义
ClassId
int
--
否
是
班级ID
ClassName
nchar
20
是
否
班级名
5.课程表
表3-6Course表
字段名
数据类型
长度
是否为空
是否主键
字段意义
CourseId
int
--
否
是
课程ID
CourseName
nchar
20
是
否
课程名
GradeId
int
--
是
否
年级ID
MajorId
int
--
是
否
专业ID
6.年级表
表3-7Grade表
字段名
数据类型
长度
是否为空
是否主键
字段意义
GradeId
int
--
否
是
年级ID
GradeName
nchar
10
是
否
年级名
7.专业表
表3-8Major表
字段名
数据类型
长度
是否为空
是否主键
字段意义
MajorId
int
--
否
是
专业ID
MajorName
nchar
10
是
否
专业名
第4章系统实现
4.1数据库操作类
Context类,用于实现窗体间的传递。
定义如下:
classContext
{publicstaticUseruse=null;}
User类,用于记录登录者的账号和ID号,以便于修改密码。
classUser
{publicstringuserId{get;set;}publicstringuserPwd{get;set;}}
4.2登录模块实现
本系统的登录界面如图4-1所示,输入用户名和密码,选择登录身份,点击登录,判断用户名和密码是否正确,正确可进入相应的系统主界面,否则提示错误信息。
点击退出,退出登录窗口。
图4-1登录界面
图4-2空的用户名和密码图4-3错误的用户名和密码
(1)登录按钮的代码为:
privatevoidbtnOK_Click(objectsender,EventArgse)
{stringconnectionStr="DataSource='.';InitialCatalog='StudentMessageManagement';IntegratedSecurity='true'";
SqlConnectionconnection=newSqlConnection(connectionStr);
if(txtUsername.Text!
=""&&txtPwd.Text!
="")
{connection.Open();
SqlCommandcommand=newSqlCommand();
command.Connection=connection;
if(rdoAdministrator.Checked)
{commandmandText=String.Format("selectcount(*)fromAdministratorwhereAdId='{0}'andAdPwd='{1}'",this.txtUsername.Text,this.txtPwd.Text);
intcount=(int)command.ExecuteScalar();//查询表中的记录个数
if(count>0)
{Useruser=newUser();
user.userId=txtUsername.Text;
user.userPwd=txtPwd.Text;
Context.use=user;
Administratorad=newAdministrator();
this.DialogResult=DialogResult.OK;
this.Hide();ad.Show();}
else
MessageBox.Show("用户名或密码错误","提示",MessageBoxButtons.OK,MessageBoxIcon.Error);}
if(rdoTeacher.Checked)
{commandmandText=String.Format("selectcount(*)fromTeacherwhereTeaId='{0}'andTeaPwd='{1}'",this.txtUsername.Text,this.txtPwd.Text);
intcount=(int)command.ExecuteScalar();
if(count>0)
{Useruser=newUser();user.userId=txtUsername.Text;
user.userPwd=txtPwd.Text;Context.use=user;
Teachertea=newTeacher();
this.DialogResult=DialogResult.OK;
this.Hide();tea.Show();}
else
MessageBox.Show("用户名或密码错误","提示",MessageBoxButtons.OK,MessageBoxIcon.Error);}
connection.Close();}
else
MessageBox.Show("用户名或密码不能为空","提示",MessageBoxButtons.OK,MessageBoxIcon.Error);}
(2)取消按钮的代码为:
privatevoidbtnExit_Click(objectsender,EventArgse)
{Application.Exit();}
4.3学生信息查询模块实现
1.管理员身份登录成功后,选择学生管理功能,可以看到界面如下:
图4-4学生信息界面
2.
输入查询条件,点击查询的下拉框,选择“按。
。
。
查询”,即可显示学生信息。
:
图4-5学生查询
图4-6学生查询显示
3.查询代码如下:
privatevoidcomboBox1_SelectedIndexChanged(objectsender,EventArgse)
{stringconnectionStr="DataSource='.';InitialCatalog='StudentMessageManagement';IntegratedSecurity='true'";
SqlConnectionconnection=newSqlConnection(connectionStr);
stringsql="";
switch(comboBox1.Text)
{case"按学号查询":
sql=string.Format("select*fromStudent,Class,Grade,MajorwhereStudent.ClassId=Class.ClassIdandStudent.GradeId=Grade.GradeIdandStudent.MajorId=Major.MajorIdandStuNolike'%{0}%'",txtNo.Text.Trim());break;
case"按查询":
sql=string.Format("select*fromStudent,Class,Grade,MajorwhereStudent.ClassId=Class.ClassIdandStudent.GradeId=Grade.GradeIdandStudent.MajorId=Major.MajorIdandStuNamelike'%{0}%'",txtName.Text.Trim());break;
case"按班级查询":
sql=string.Format("select*fromStudent,Class,Grade,MajorwhereStudent.ClassId=Class.ClassIdandStudent.GradeId=Grade.GradeIdandStudent.MajorId=Major.MajorIdandClassNamelike'%{0}%'",cmbClass.SelectedItem);break;
case"按专业查询":
sql=string.Format("select*fromStudent,Class,Grade,MajorwhereStudent.ClassId=Class.ClassIdandStudent.GradeId=Grade.GradeIdandStudent.MajorId=Major.MajorIdandMajorNamelike'%{0}%'",cmbMajor.SelectedItem);break;
case"按性别查询":
sql=string.Format("select*fromStudent,Class,Grade,MajorwhereStudent.ClassId=Class.ClassIdandStudent.GradeId=Grade.GradeIdandStudent.MajorId=Major.MajorIdandSexlike'%{0}%'",cmbSex.SelectedItem);break;
case"按年龄查询":
sql=string.Format("select*fromStudent,Class,Grade,MajorwhereStudent.ClassId=Class.ClassIdandStudent.GradeId=Grade.GradeIdandStudent.MajorId=Major.MajorIdandAgelike'%{0}%'",txtAge.Text.Trim());break;
case"按年级查询":
sql=string.Format("select*fromStudent,Class,Grade,MajorwhereStudent.ClassId=Class.ClassIdandStudent.GradeId=Grade.GradeIdandStudent.MajorId=Major.MajorIdandGradeNamelike'%{0}%'",cmbGrade.SelectedItem);break;
case"按家庭住址查询":
sql=string.Format("select*fromStudent,Class,Grade,MajorwhereStudent.ClassId=Class.ClassIdandStudent.GradeId=Grade.GradeIdandStudent.MajorId=Major.MajorIdandAddresslike'%{0}%'",txtAddress.Text.Trim());break;
case"按备注查询":
sql=string.Format("select*fromStudent,Class,Grade,MajorwhereStudent.ClassId=Class.ClassIdandStudent.GradeId=Grade.GradeIdandStudent.MajorId=Major.MajorIdandExtralike'%{0}%'",cmbExtra.Text.Trim());break;}
SqlCommandcommand=newSqlCommand(sql,connection);
connection.Open();SqlDataReaderreader=command.ExecuteReader();
this.lstShow.Items.Clear();
while(reader.Read())
{ListViewItemlv=newListViewItem();
lv.Text=reader["StuNO"].ToString();lv.SubItems.Add(reader["StuName"].ToString());
lv.SubItems.Add(reader["Age"].ToString());lv.SubItems.Add(reader["Sex"].ToString());
lv.SubItems.Add(reader["ClassName"].ToString());
lv.SubItems.Add(reader["GradeName"].ToString());
lv.SubItems.Add(reader["MajorName"].ToString());
lv.SubItems.Add(reader["Phone"].ToString());lv.SubItems.Add(read