学生选课系统C#完美终结版.docx
《学生选课系统C#完美终结版.docx》由会员分享,可在线阅读,更多相关《学生选课系统C#完美终结版.docx(29页珍藏版)》请在冰豆网上搜索。
学生选课系统C#完美终结版
}
电子信息工程专业
课程设计题单
班级0学生朱振华
课程名称专业课程设计
课题学生选课系统
】
设计要求利用VisualC#和SQLsever(或者
Access)的开发环境实现一个学生选课系统,数据库中要包含学生、课程、选课等表。
课题发给日期
课程设计完成日期
指导教师
评语:
~
评分:
…
摘要
本文设计并实现了一个简单的学生选课系统,它是学生选课的平台,含登陆界面,三种角色(学生用户、教师用户、教务员)在输入正确密码的前提下方能进入系统。
进入系统后学生可以在这个平台进行选课、查看所选课程以及成绩,教师可以查看个人资料,学生信息以及成绩录入和查看,教务员可以查看个人资料、学生信息,更改成绩。
系统设计的目的是方便选课的顺利进行。
学生选课系统具有以下特点:
·用户登录按角色进行登录;
·学生可以根据要求和自身条件选择自己喜欢的学科;
—
·教师可以查看学生资料以及登分等;
·教务员可以查看学生、教师、以及自己的资料,更改学生成绩等。
本系统后台数据库采用SQLServer2000,前台采用C#作为开发
工具。
本系统的主要功能包括以下几个方面:
·用户登录以及密码修改
·学生选课以及相关查询
·教师登分以及相关查询
…
·教务员可以更正学生分数以及做其相应工作
关键字:
信学生选课数据库C#SQLServerAccess
—
一系统概述……………………………………………………3
二系统设计……………………………………………………10
、
系统设计思想………………………………………………10
系统功能模块划分…………………………………………10
三数据库设计……………………………………………………11
数据库需求分析……………………………………………11
数据库概念结构设计………………………………………11
数据库逻辑结构设计………………………………………12
四模块分析及设计……………………………………………14
登录界面实现……………………………………………14
!
登录(含密码修改)界面设计………………………14
登录(含密码修改)界面设计代码…………………15
学生用户界面………………………………………………19
学生主界面……………………………………………19
选课列表及本次选课结果界面………………………22
个人信息及选课要求界面……………………………26
教师用户界面………………………………………………29
教师用户登录主页面…………………………………29
}
教务员界面…………………………………………………30
教务员登录主页面……………………………………33
五课程调试……………………………………………………38
六课程总结……………………………………………………39
七、课程总结……………………………………………………40
一系统概述
系统功能与应用背景
…
随着社会的进步,作为代表科学前沿的学生所学的课程也在不断增加。
相应的公共任选课业越来越多。
为了解决上述问题,本系统提供了一套学生选课管理的平台,使得教务管理人员对学校的选课工作得以改善。
系统预览(学生部分)
图1-1为学生选课系统的登陆界面,由相应的学生用户、教师用户、教务员正确输入用户名和密码以及选择正确的相应角色后方可成功登陆。
成功登陆后系统转至相应的程序主界面。
#
图1-1系统登陆窗体
|
图1-2登录异常(密码错误)
)
|
图1-3修改密码时出错(两次输入密码不同)
·
'
@
&
图1-4修改密码(密码不可见)
}
-
图1-5学生进入选课系统的主界面
|
[
图1-6学生个人信息
<
&
图1-7选课要求
^
|
图1-8选课列表
<
^
图1-9选课进行中
…
)
图1-10查看选课结果
/
`
图1-11退出登录
…
二系统设计
系统设计思想
本系统采用C#作为开发语言,采用结合后台Access数据库开发模式,优化了程序的代码及结构,提高了程序的运行效率。
实例在.NET环境中进行开发,该环境提供了大量可供选择的对象,可以很方便地建立与数据库之间的连接,并在此链接的基础上,利用各种常用数据组件对数据库进行操作。
在本系统中,采用OleDbConnection对象与后台数据库创建连接,所有针对数据库的操作都需要利用这个对象作为数据库连接对像。
、
系统功能模块划分
根据本文开始部分描述的系统功能可以得到如图2-1所示的系统功能图。
)
-
…
&
图2-1系统功能图
三数据库设计
数据库需求分析
在设计数据库结构时,应该尽可能满足用户提出的各项要求,同时避免冗余数据的产生。
由于在学生选课系统中需要采集大量的信息,包括课程信息、学生信息、教师信息、教务员信息等,如果不能有效合理的组织数据表的结构以及每张表所包含的字段,那么在后期进行数据整理及汇总时,将增加开发人员的工作难度和工作量,根据学生和课程的基本信息及相关特点,可以总结出一下规律:
·一个学生可以选择多门课程
·一个教师只能教一门课
·每个
/
·每个员工都有自己对应的月收入
·一个角色对应一个或多个用户
数据库概念结构设计
根据数据库需求分析的结果,就可以确定程序中所包含的实体与实体之间的关系,作为数据库逻辑结构设计的基础与指导。
根据本系统的需要,可以归纳出一下实体:
工种信息实体、部门信息实体、员工信息实体、员工月收入实体。
为了更好地理解各个实体及其含义,用E-R图(EntityRelationshipDiagram),即实体关系图对实体进行描述。
用户实体如图3-1所示;
课程实体如图3-2所示;
:
*
图3-1工种息实体图
[
图3-2课程实体图
&
数据库逻辑结构设计
系统数据库名称为db_Person,数据库中包括:
1登录表;
2course表;
3student表;
4xuanke表。
下面列出各个表的数据结构,如表1--表4所示。
…
表1登录表的数据结构
字段名
类型
说明
用户名
文本
主键
密码
]
文本
性别
文本
"男"or"女"
年龄
文本
!
角色
文本
:
表2course表的数据结构
字段名
类型
说明
CID
文本
主键
CName
(
文本
CWeekStart
文本
CWeekEnd
文本
—
CTName
文本
CAddress
文本
CTime
文本
·
表3xuanke表的数据结构
字段名
类型
说明
SID
char
%
一起设为主键
CID
char
#
表4student表的数据结构
字段名
类型
说明
SID
文本
设为主键
;
SAge
文本
SSex
文本
SKey
文本
%
SPhone
文本
.
四模块分析及设计
.登录界面实现
登录界面(含密码修改)设计
登录界面的作用就是让不同的用户能够凭密码进入相应界面。
在登录界面中,包括三个控件,分别是textBox控件、label控件,comboBox、Button控件。
%
图4-1主界面设计
~
|
@
图4-2密码修改
-
登录界面代码即密码修改代码
登录界面的全部代码如下所示。
usingSystem;
)
using;
using;
using;
using;
using这个头文件不能少,不然无法调用Access数据库
namespaceWindowsApplication1
{
!
publicpartialclassForm1:
Form
{
publicstaticstringname="";db");db)
();oString()==&&dr["角色"].ToString()==oString()=="学生用户")oString()=="教师用户")db");
();
~
OleDbCommandcomm=newOleDbCommand();
=conn;oString()==&&==&&!
="")
{
("恭喜你,密码修改成功!
");
%
}
elseif!
=
{
("两次输入密码不相同!
");
}
elseif=="")
`
{
("修改密码不能为空!
");
}
}
else
{
("恭喜,出错啦!
");
(
}
}
else
{
("答案不正确哦!
");
}
();
`
}
学生界面
学生登录主界面
学生界面主界面
|
|
图4-1学生界面界面设计
】
学生界面应用到的控件有MenuStrip。
主界面的全部代码如下所示。
usingSystem;
.
using;
using;
using;
using;
usingWindowsApplication1
{
publicpartialclassForm2:
Form
{
\
publicForm2()
{
InitializeComponent();
}
privatevoidForm2_Load(objectsender,EventArgse)
{
stringn=;
`
=n;db";
=mystr;
();alue=n;
=mysql;
=myconn;
();db";
=mystr;
();
¥
mysql="DELETEFROMxuankeWHERECId='1'";db";
=mystr;
();
mysql="SELECT*FROMcourseWHERECId==g";oString(),myreader[1].ToString(),
myreader[2].ToString(),myreader[3].ToString(),
myreader[4].ToString()
)
`
);
();
();
InitializeComponent();
}
个人信息及选课要求界面
图4-5学生
选课要求
图4-6学生个人信息
1、个人信息代码
privatevoidForm7_Load(objectsender,EventArgse)db");oString();oString();oString();oString();oString();db");
();
OleDbCommandcomm=newOleDbCommand();
=conn;oString()=="学生用户")oString()=="教师用户")
db");oString();oString();oString();oString();oString();db");
();
OleDbCommandcomm=newOleDbCommand();
=conn;oString()=="学生用户")oString()=="教师用户")db");oString();oString();oString();oString();oString();db");
();
OleDbCommandcomm=newOleDbCommand();
=conn;oString()=="学生用户")oString()=="教师用户")后在后续窗体中调用即可。
4、代码:
Form1中代码:
publicstaticstringname="";
Botton1(登录)单击事件中代码:
name=;
后续窗体中代码(调用的相应位置):
stringn=;
=n;
六、课程调试
两周的课程设计结束了,我发现自己学到了许多东西,但这个学习的过程是比较漫长的。
一开始不知道怎么把这些功能联系起来。
面对一个系统一脸茫然,不知从何做起,只有从以前学的东西里面慢慢的搜集。
由于知识掌握的不够完善,所以中间出现的问题有的能独立解决,有的不能独立解决。
但是看到做完的作品,心里真的很有成就感。
尽管做的不是太好,但是还是有些进步,在许多方面都有了新的收获。
在开始设计的时候我们也参考具体的事例,但是真正做起来却是非常难的,有时候一个控件的一个属性没有设置好都行,要非常细心才能做出来。
现在发现理论和实践是有差别的,但是有理论知识作为指导实践起来还是比较容易的。
我相信把理论知识学好了再去结合实践会有很大的帮助。
通过这次课程设计,使我得到了一次用专业知识、专业技能分析和解决问题的全面系统的锻炼。
也使我在综合知识的选用方面,在应用软件开发的基本思想、方法方面,以及在常用编程设计思路技巧的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。
这次在指导老师以及同学的帮助下,基本完成了课程设计要求设计任务,在软件的设计方面也有了一定的提高,熟练掌握了C#命令和编程技巧,为今后走上工作岗位打下了专业基础。
同时在这次的课程设计中,我深深地体现到进行软件开发不是一件简单的事情,它需要设计者具有全面的专业知识、缜密的思维、严谨的工作态度以及较高的分析问题、解决问题的能力,而我在很多方面还有欠缺。
但是由于课程设计的时间较短,所以该系统还有不少不尽如人意的地方,有待进一步改善。
七、参考资料
[1]黄兴荣.C#程序设计实用教程.北京:
清华大学出版社,2009.
[2]郑阿奇.C#程序设计教程.北京:
机械工业出版社,2008.
[3]李春葆.C#程序设计教程.北京:
清华大学出版社,2010.
[4]苗雪兰.数据库系统原理及应用教程.北京:
机械工业出版社,2010.