学生选课管理信息系统设计与实现.docx
《学生选课管理信息系统设计与实现.docx》由会员分享,可在线阅读,更多相关《学生选课管理信息系统设计与实现.docx(16页珍藏版)》请在冰豆网上搜索。
学生选课管理信息系统设计与实现
课程设计报告
课程:
数据库课程设计
学号:
姓名:
班级:
教师:
计算机科学与技术学院
学生选课管理信息系统的设计与实现
一、课程设计任务
完成学生选课管理信息系统的开发
二、需求描述
选课管理系统的主要目的是利用软件实现选课的录入、查询、修改等功能,针对不同表的用户(学生、教师、管理员)提供不同的操作,使学生选课及对其的管理更加方便,提高工作效率,降低管理成本。
选课的管理一般包括选课查询和选课维护两部分,在实际的选课过程中,学生主要对课程进行选择,了解自己的选课情况,而教师除了能够对选择教师自己教授的课程的学生进行查询之外,还要对课程成绩进行录入,修改等操作。
对于整个系统而言,为了便于对各种数据进行维护,还要增设管理员,方便对学生和教师信息以及课程等基本信息的维护,从而达到灵活的管理选课的效果。
本系统是一个单机版的小型的学生选课管理系统,在本系统中,开发了一个面向管理员、学生和教师这三个对象的教务平台,对学生提供的服务有选课服务;对教师提供的服务有登录成绩;对管理员提供的服务有学生信息管理、学生选课管理模块、课程信息管理模块和用户管理模块。
三、系统总体设计
1.系统架构设计
学生选课管理信息系统的总目标是为用户提供迅速、高效的服务,避免手工处理的繁琐与误差,及时、准确地反学生选课情况、成绩情况,从而提高选课信息的效率,实现选课管理的规范化、自动化。
在选课信息中,包括课程编号、课程名称、任课教师、选课的学生情况等。
在学生信息中,包括学号、姓名、所属院系、已选课情况等。
在成绩信息中,包括课程编号、课程名称、学分、成绩。
按一定条件可以查询,并将结果打印输出。
具体的目标包括:
(1)简便迅捷的用户登录服务
(2)教师、学生、管理员的信息和选课相关信息
(3)系统运行稳定可靠、各项维护功能齐全、易于维护
(4)简单、友好的操作界面
本实验实现的客房管理系统主要包括以下功能:
(1).完成数据的录入和修改,并提交数据库保存。
其中的数据包括:
学生信息、课程设置、学生成绩以及操作员信息等;
(2).实现信息查询。
主要包括:
学生信息查询、课程信息查询和成绩查询等;
(3).具备一定的安全性管理功能。
包括操作员的权限设置、密码设置、重新登录和修改口令等功能。
2.各模块功能:
登录界面:
登录界面是有帐号,密码两个JTextField,登录前要选择用户类别,登录帐号或密码输入错误会弹出相应的提示对话框。
学生信息管理模块:
管理员用于添加和删除学生信息的模块。
用户管理模块:
管理员用于添加和删除信息的模块。
学生选课管理模块:
管理员用于学生选课信息的管理。
用户管理模块:
管理员用于对登录用户的管理。
课程信息管理模块:
管理员用于对课程信息的管理。
学生选课模块:
该模块通过表格的形式将所有课程列出来,学生可以根据个人兴趣选择不同的课程,且不能重复选课,否则会弹出对话框,提示用户查看已经选择了的课程。
成绩录入模块:
教师可以浏览选修自己课程的学生的信息并且录入该学生的成绩。
3.数据库设计(概要设计...)
(1)E-R图
(2)关系模式
学生(学生学号,学生姓名,学生性别,学生年龄,所在班级),课程(课程号,课程名,学分,授课教师)。
选课
主要包括2个实体,分别是学生、课程、及一个关系,即选修。
一门课程可由多个学生选择,一个学生也可以选择多门课程,课程实体与学生实体是多对多关系。
(3)数据库管理系统:
MicrosoftSQLServer2000
(4)数据库命名:
stu_cou
表1学生信息表Student的表结构
主码
列名
数据类型
宽度
小数位
空否
备注
Pk
Snum
Char
5
N
学号
Sname
Char
8
Y
姓名
Sex
Char
2
Y
性别
Sage
int
Y
年龄
Sclass
Char
10
Y
所在班级
表2课程信息表Course的表结构
主码
列名
数据类型
宽度
小数位
空否
备注
Pk
Cnum
Char
16
N
课程号
Cname
Char
20
Y
课程名称
Cxf
Char
10
Y
学分
Ctch
Char
10
Y
修课教师
表3选课表Choose的表结构
主码
列名
数据类型
宽度
小数位
空否
备注
Pk
Snum
Char
16
N
学号
Cnum
Char
16
N
课程号
Grade
Decimal
10
1
Y
成绩
表4管理员表User的表结构
主码
列名
数据类型
宽度
小数位
空否
备注
Pk
Username
Char
16
N
管理员姓名
Usercode
Char
16
Y
登陆密码
Usertype
Char
10
Y
类型
四.系统界面设计
1.系统登陆
用户输入用户名和密码,系统查询数据库中的信息对用户名和密码进行验证。
如果用户名或密码不正确则不能进入系统。
如果用户名存在且密码正确,系统会自动根据该用户所在的表进入不同的界面且显示该用户相对应的基本信息。
2.学生界面
a.基本信息
学生登陆成功,可看到自己的基本信息包括学号、姓名、性别、年龄、系别。
b.选课
可查看学生本人的选课情况,包括课程名、授课老师、课室、分数。
并可进一步进行选择和删除。
3.教师界面
a.查看学生信息
可查看选择自己教授的课程的学生名单,并可进一步对选择该门课程的学生成绩进行录入和修改。
4.管理员界面
学生信息管理模块:
管理员用于添加和删除学生信息的模块。
用户管理模块:
管理员用于添加和删除信息的模块。
学生选课管理模块:
管理员用于学生选课信息的管理。
用户管理模块:
管理员用于对登录用户的管理。
系统登陆界面
protectedvoidbtnin_Click(objectsender,EventArgse)
{
stringstrCon="DataSource=localhost;Database=stu_cou;IntegratedSecurity=true";
SqlConnectionconn=newSqlConnection(strCon);
conn.Open();//打开数据库连接
SqlCommandcmd=newSqlCommand();//创建SqlCommand对象
cmd.Connection=conn;//关联conn
cmd.CommandText="select*fromuserwhereusername='"+tbuserid.Text+"'andusercode='"+tbusercode.Text+"'";//设置CommanText为SQL语句
SqlDataReaderdr=cmd.ExecuteReader();//创建SqlDataReader对象
if(dr.Read()==true)//读入数据
{
Response.Redirect("choose.aspx?
ch="+DropDownList1.SelectedItem.Text+"&user="+tbuserid.Text);
}
else
{
Label4.Visible=true;//"用户名或密码输入不正确"
}
conn.Close();
}
管理员界面
管理员以用户类别为管理员,用户名为3001,密码123登录成功进入管理员的信息管理界面,通过点击“学生信息管理”和“教师信息管理”进入不同的管理界面,学生信息管理界面如下:
课程信息管理界面如下:
学生选课管理界面如下:
用户管理界面如下:
protectedvoidPage_Load(objectsender,EventArgse)
{
stringchoose=Request.Params["ch"];
stringusername=Request.Params["user"];
if(choose=="管理员")
Panel2.Visible=true;
if(choose=="学生")
{
Panel3.Visible=true;
lblsid.Text=username;
}
if(choose=="教师")
{
Panel4.Visible=true;
lbltid.Text=username;
}
}
学生界面
以学生帐号(如:
帐号:
1001)登陆成功后进入如下界面:
protectedvoidButton1_Click(objectsender,EventArgse)
{
stringstrCon="DataSource=localhost;Database=stu_cou;IntegratedSecurity=true";
SqlConnectionconn=newSqlConnection(strCon);
conn.Open();
SqlCommandcmd1=newSqlCommand();
SqlCommandcmd2=newSqlCommand();
cmd1.Connection=conn;
cmd2.Connection=conn;
cmd1.CommandText="selectcnumfromcouwherecname='"+DropDownList1.SelectedItem.Text+"'";
SqlDataReaderdr=cmd1.ExecuteReader();
stringnum="";
while(dr.Read())//读入数据
{
num=dr["cnum"].ToString();
}
cmd2.CommandText="insertintochoose(snum,cnum)values('"+lblsid.Text+"','"+num+"')";
if(cmd2.ExecuteNonQuery()>0)//Command对象的ExecteNonQuery方法执行不返回结果的SQL语句,执行SQL语句并返回受影响的记录行数
{
Label4.Text="选课成功!
";
Label4.Visible=true;
}
else
{
Label4.Text="选课失败!
";
Label4.Visible=true;
}
conn.Close();
}
教师界面
以教师帐号(如:
教师号2001,)登陆成功后进入如下界面:
protectedvoidButton2_Click(objectsender,EventArgse)
{
stringstrCon="DataSource=localhost;Database=stu_cou;IntegratedSecurity=true";
SqlConnectionconn=newSqlConnection(strCon);
conn.Open();
SqlCommandcmd1=newSqlCommand();
SqlCommandcmd2=newSqlCommand();
cmd1.Connection=conn;
cmd2.Connection=conn;
cmd1.CommandText="selectcnumfromcouwherecname='"+DropDownList2.SelectedItem.Text+"'";
SqlDataReaderdr=cmd1.ExecuteReader();
stringnum="";
while(dr.Read())//读入数据
{
num=dr["cnum"].ToString();
}
cmd2.CommandText="insertintochoose(grade)values('"+tbgrade.Text+"')wheresnum='"
+DropDownList3.SelectedItem.Text+"'andcnum='"+num+"'";
if(cmd2.ExecuteNonQuery()>0)//Command对象的ExecteNonQuery方法执行不返回结果的SQL语句,执行SQL语句并返回受影响的记录行数
{
Label4.Text="录入成功成功!
";
Label4.Visible=true;
}
else
{
Label4.Text="录入失败!
";
Label4.Visible=true;
}
conn.Close();
}
五、课程设计体会
通过本次试验培养了我们利用所学的数据库原理及应用的知识,选择某一编程工具,进行数据库应用系统的开发,同时培养学生独立思考问题、团队合作解决问题的能力和计算机应用编程的能力。
在设计过程中我们选择开发工具,利用前面设计的数据库,建立一个基于C/S结构的数据库管理系统,涉及了数据维护(输入,修改,删除)、数据查询与统计等。
根据所选设计项目,对项目进行需求分析和设计方法,形成一个问题的解决方案,我们先对问题进行分析,明确问题的目标和解决问题的思路,同样设计出问题的解决方案,最后采用一种开发工具进行设计和实现来解决问题。
该系统主要实现了学生选课管理的功能,这个系统是我和队友周运共同完成的,从需求分析,界面的搭建,到数据库的连接,表格,存储过程和存储过程等的建立,在这段时间的摸索中,我确实学到了很多东西,特别是对以前不太了解的数据源控件有了更深刻的了解。
比如gridview,对于它的用法我在网上找了很多资料以及gridview的建立有各种不同的方法等,都是我有了更深的了解。
另外,我们对图形用户界面的设计了解较少,刚开始不能很好的设计出交互性较好的界面,随着不断的测试,也改善了不少,但还是缺乏一般应用软件的界面感。
在对数据完整性和安全性设计时考虑不周到,没有联想到所有的错误输入,导致输入数据不正确时不能很好的提示用户。
对于数据库,我尽量将对数据库的操作放在存储过程中,这样的抽象和封装使得源程序代码更加容易理解,而且在web应用系统中也可以避免发生不安全的状况,我想这是一个号的程序员应当要养成的习惯,在这次的课程设计中,层次化,模块化,抽象化也是我学到的一个重要的经验,参考一些资料后发现模块化能使程序设计更加简单,设计代码时目标更加明确,效率更高。
同时通过这几天的编写,我也发现了自己的很多不足,自己知识的很多漏洞,看到了自己理论联系实际的能力还是比较脆弱。
尤其是编写大型的程序所要拥有的知识和技能比较缺乏。
程序编好了,还要经过调试和修改,这步也很关键,好的程序是经过了无数次的修改和调试才产生的。
我的程序基本上能够满足要求,但还有一些地方需要改进,在今后我应该在多看书的同时还要加强实践的练习。
才能进一步提高自己的编程能力。