学生选课管理信息系统设计与实现Word文件下载.docx
《学生选课管理信息系统设计与实现Word文件下载.docx》由会员分享,可在线阅读,更多相关《学生选课管理信息系统设计与实现Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。
(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
8
Y
姓名
Sex
2
性别
Sage
int
年龄
Sclass
10
所在班级
表2课程信息表
Course的表结构
Cnum
16
课程号
Cname
20
课程名称
Cxf
学分
Ctch
修课教师
表3选课表Choose的表结构
Grade
Decimal
1
成绩
表4管理员表User
Username
管理员姓名
Usercode
登陆密码
Usertype
类型
四.系统界面设计
1.系统登陆
用户输入用户名和密码,系统查询数据库中的信息对用户名和密码进行验
证。
如果用户名或密码不正确则不能进入系统。
如果用户名存在且密码正确,系统会自动根据该用户所在的表进入不同的界面且显示该用户相对应的基本信息。
2.学生界面
a.基本信息
学生登陆成功,可看到自己的基本信息包括学号、姓名、性别、年龄、系别。
b.选课
可查看学生本人的选课情况,包括课程名、授课老师、课室、分数。
并可进
一步进行选择和删除。
3.教师界面
a.查看学生信息
可查看选择自己教授的课程的学生名单,并可进一步对选择该门课程的学生
成绩进行录入和修改。
4.管理员界面
系统登陆界面
protectedvoidbtnin_Click(objectsender,EventArgse)
{
stringstrCon="
Data
Source=localhost;
Database=stu_cou;
Integrated
Security=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.SelectedI
tem.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;
教师"
Panel4.Visible=true;
lbltid.Text=username;
学生界面
以学生帐号(如:
帐号:
1001)登陆成功后进入如下界面:
protectedvoidButton1_Click(objectsender,EventArgse)
conn.Open();
SqlCommandcmd1=newSqlCommand();
SqlCommandcmd2=newSqlCommand();
cmd1.Connection=conn;
cmd2.Connection=conn;
cmd1.CommandText="
selectcnumfromcouwhere
cname='
+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;
选课失败!
教师界面
以教师帐号(如:
教师号2001,)登陆成功后进入如下界面:
protectedvoidButton2_Click(objectsender,EventArgse)
+DropDownList2.SelectedItem.Text+"
insertintochoose(grade)
+tbgrade.Text+"
)wheresnum='
+DropDownList3.SelectedItem.Text+"
andcnum='
0)//Command对象的
ExecteNonQuery方法执行不返回结果的SQL语句,执行SQL语句并
返回受影响的记录行数
录入成功成功!
"
录入失败!
五、课程设计体会
通过本次试验培养了我们利用所学的数据库原理及应用的知识,选择某一编程工具,进行数据库应用系统的开发,同时培养学生独立思考问题、团队合作解
决问题的能力和计算机应用编程的能力。
在设计过程中我们选择开发工具,利用前面设计的数据库,建立一个基于C/S结构的数据库管理系统,涉及了数据维护(输入,修改,删除)、数据查询与统计等。
根据所选设计项目,对项目进行需求分析和设计方法,形成一个问题的解决方案,我们先对问题进行分析,
明确问题的目标和解决问题的思路,同样设计出问题的解决方案,最后采用一种开发工具进行设计和实现来解决问题。
该系统主要实现了学生选课管理的功能,这个系统是我和队友周运共同完成的,从需求分析,界面的搭建,到数据库的连接,表格,存储过程和存储过程等的建立,在这段时间的摸索中,我确实学到了很多东西,特别是对以前不太了解的数据源控件有了更深刻的了解。
比如gridview,对于它的用法我在网上找了很
多资料以及gridview的建立有各种不同的方法等,都是我有了更深的了解。
另外,我们对图形用户界面的设计了解较少,刚开始不能很好的设计出交互性较好的界面,随着不断的测试,也改善了不少,但还是缺乏一般应用软件的界面感。
在对数据完整性和安全性设计时考虑不周到,没有联想到所有的错误输入,导致输入数据不正确时不能很好的提示用户。
对于数据库,我尽量将对数据库的操作
放在存储过程中,这样的抽象和封装使得源程序代码更加容易理解,而且在web应用系统中也可以避免发生不安全的状况,我想这是一个号的程序员应当要养成的习惯,在这次的课程设计中,层次化,模块化,抽象化也是我学到的一个重要
的经验,参考一些资料后发现模块化能使程序设计更加简单,设计代码时目标更加明确,效率更高。
同时通过这几天的编写,我也发现了自己的很多不足,自己知识的很多漏洞,看到了自己理论联系实际的能力还是比较脆弱。
尤其是编写大型的程序所要拥有的知识和技能比较缺乏。
程序编好了,还要经过调试和修改,这步也很关键,好
的程序是经过了无数次的修改和调试才产生的。
我的程序基本上能够满足要求,但还有一些地方需要改进,在今后我应该在多看书的同时还要加强实践的练习。
才能进一步提高自己的编程能力。