学生选课管理信息系统设计与实现(共18页).doc
-
资源ID:14284200
资源大小:349.50KB
全文页数:18页
- 资源格式: DOC
下载积分:20金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
学生选课管理信息系统设计与实现(共18页).doc
精选优质文档-倾情为你奉上课程设计报告课程:数据库课程设计 学号: 姓名: 班级: 教师: 计算机科学与技术学院学生选课管理信息系统的设计与实现一、课程设计任务完成学生选课管理信息系统的开发二、需求描述选课管理系统的主要目的是利用软件实现选课的录入、查询、修改等功能,针对不同表的用户(学生、教师、管理员)提供不同的操作,使学生选课及对其的管理更加方便,提高工作效率,降低管理成本。选课的管理一般包括选课查询和选课维护两部分,在实际的选课过程中,学生主要对课程进行选择,了解自己的选课情况,而教师除了能够对选择教师自己教授的课程的学生进行查询之外,还要对课程成绩进行录入,修改等操作。对于整个系统而言,为了便于对各种数据进行维护,还要增设管理员,方便对学生和教师信息以及课程等基本信息的维护,从而达到灵活的管理选课的效果。本系统是一个单机版的小型的学生选课管理系统,在本系统中,开发了一个面向管理员、学生和教师这三个对象的教务平台,对学生提供的服务有选课服务;对教师提供的服务有登录成绩;对管理员提供的服务有学生信息管理、学生选课管理模块、课程信息管理模块和用户管理模块。三、系统总体设计1.系统架构设计学生选课管理信息系统的总目标是为用户提供迅速、高效的服务,避免手工处理的繁琐与误差,及时、准确地反学生选课情况、成绩情况,从而提高选课信息的效率,实现选课管理的规范化、自动化。在选课信息中,包括课程编号、课程名称、任课教师、选课的学生情况等。在学生信息中,包括学号、姓名、所属院系、已选课情况等。在成绩信息中,包括课程编号、课程名称、学分、成绩。按一定条件可以查询,并将结果打印输出。具体的目标包括:(1)简便迅捷的用户登录服务(2)教师、学生、管理员的信息和选课相关信息(3)系统运行稳定可靠、各项维护功能齐全、易于维护(4)简单、友好的操作界面本实验实现的客房管理系统主要包括以下功能:(1).完成数据的录入和修改,并提交数据库保存。其中的数据包括:学生信息、课程设置、学生成绩以及操作员信息等;(2)实现信息查询。主要包括:学生信息查询、课程信息查询和成绩查询等;(3)具备一定的安全性管理功能。包括操作员的权限设置、密码设置、重新登录和修改口令等功能。2.各模块功能: 学生选课管理信息系统学生信息管理模块学生选课管理模块用户管理模块课程信息管理学生选课模块成绩录入模块登录界面:登录界面是有帐号,密码两个JTextField,登录前要选择用户类别,登录帐号或密码输入错误会弹出相应的提示对话框。学生信息管理模块:管理员用于添加和删除学生信息的模块。用户管理模块:管理员用于添加和删除信息的模块。学生选课管理模块:管理员用于学生选课信息的管理。用户管理模块:管理员用于对登录用户的管理。课程信息管理模块:管理员用于对课程信息的管理。学生选课模块:该模块通过表格的形式将所有课程列出来,学生可以根据个人兴趣选择不同的课程,且不能重复选课,否则会弹出对话框,提示用户查看已经选择了的课程。成绩录入模块:教师可以浏览选修自己课程的学生的信息并且录入该学生的成绩。3.数据库设计 (概要设计.)(1)E-R图授课教师学 分课程学生选课学生学号课程名课程号学生姓名所在班级学生性别学生年龄mn成绩(2)关系模式 学生(学生学号,学生姓名,学生性别,学生年龄,所在班级),课程(课程号,课程名,学分,授课教师)。选课主要包括2个实体,分别是学生、课程、及一个关系,即选修。一门课程可由多个学生选择,一个学生也可以选择多门课程,课程实体与学生实体是多对多关系。(3)数据库管理系统:Microsoft SQL Server 2000(4)数据库命名:stu_cou表1 学生信息表Student的表结构主码列 名数据类型宽度小数位空否备 注PkSnumChar5 N学号 SnameChar8 Y姓名 SexChar2 Y性别 Sageint Y年龄 SclassChar10 Y所在班级表2 课程信息表Course的表结构主码列 名数据类型宽度小数位空否备 注PkCnumChar16 N课程号 CnameChar20 Y课程名称 CxfChar10 Y学分 CtchChar10Y修课教师 表3 选课表Choose的表结构主码列 名数据类型宽度小数位空否备 注PkSnumChar16 N学号CnumChar16 N课程号 GradeDecimal101Y成绩表4 管理员表User的表结构主码列 名数据类型宽度小数位空否备 注PkUsernameChar16 N管理员姓名 UsercodeChar16 Y登陆密码 UsertypeChar10 Y类型四.系统界面设计1.系统登陆用户输入用户名和密码,系统查询数据库中的信息对用户名和密码进行验证。如果用户名或密码不正确则不能进入系统。如果用户名存在且密码正确,系统会自动根据该用户所在的表进入不同的界面且显示该用户相对应的基本信息。2. 学生界面a. 基本信息 学生登陆成功,可看到自己的基本信息包括学号、姓名、性别、年龄、系别。b. 选课 可查看学生本人的选课情况,包括课程名、授课老师、课室、分数。并可进一步进行选择和删除。3. 教师界面a. 查看学生信息 可查看选择自己教授的课程的学生名单,并可进一步对选择该门课程的学生成绩进行录入和修改。4.管理员界面学生信息管理模块:管理员用于添加和删除学生信息的模块。用户管理模块:管理员用于添加和删除信息的模块。学生选课管理模块:管理员用于学生选课信息的管理。用户管理模块:管理员用于对登录用户的管理。系统登陆界面protected void btnin_Click(object sender, EventArgs e) string strCon = "Data Source=localhost;Database=stu_cou;Integrated Security=true" SqlConnection conn = new SqlConnection(strCon); conn.Open();/打开数据库连接 SqlCommand cmd = new SqlCommand();/创建SqlCommand对象 cmd.Connection = conn;/关联conn cmd.CommandText = "select * from user where username='" + tbuserid.Text + "' and usercode='" + tbusercode.Text + "'"/设置CommanText为SQL语句 SqlDataReader dr = 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登录成功进入管理员的信息管理界面,通过点击“学生信息管理”和“教师信息管理”进入不同的管理界面,学生信息管理界面如下:, 课程信息管理界面如下:学生选课管理界面如下:用户管理界面如下:protected void Page_Load(object sender, EventArgs e) string choose = Request.Params"ch" string username = 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)登陆成功后进入如下界面: protected void Button1_Click(object sender, EventArgs e) string strCon = "Data Source=localhost;Database=stu_cou;Integrated Security=true" SqlConnection conn = new SqlConnection(strCon); conn.Open(); SqlCommand cmd1 = new SqlCommand(); SqlCommand cmd2 = new SqlCommand(); cmd1.Connection = conn; cmd2.Connection = conn; cmd1.CommandText = "select cnum from cou where cname='" + DropDownList1.SelectedItem.Text + "'" SqlDataReader dr = cmd1.ExecuteReader(); string num = "" while (dr.Read()/读入数据 num = dr"cnum".ToString(); cmd2.CommandText = "insert into choose(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,)登陆成功后进入如下界面: protected void Button2_Click(object sender, EventArgs e) string strCon = "Data Source=localhost;Database=stu_cou;Integrated Security=true" SqlConnection conn = new SqlConnection(strCon); conn.Open(); SqlCommand cmd1 = new SqlCommand(); SqlCommand cmd2 = new SqlCommand(); cmd1.Connection = conn; cmd2.Connection = conn; cmd1.CommandText = "select cnum from cou where cname='" + DropDownList2.SelectedItem.Text + "'" SqlDataReader dr = cmd1.ExecuteReader(); string num = "" while (dr.Read()/读入数据 num = dr"cnum".ToString(); cmd2.CommandText = "insert into choose(grade) values('" + tbgrade.Text + "') where snum='" + DropDownList3.SelectedItem.Text + "' and cnum='" + 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应用系统中也可以避免发生不安全的状况,我想这是一个号的程序员应当要养成的习惯,在这次的课程设计中,层次化,模块化,抽象化也是我学到的一个重要的经验,参考一些资料后发现模块化能使程序设计更加简单,设计代码时目标更加明确,效率更高。同时通过这几天的编写,我也发现了自己的很多不足,自己知识的很多漏洞,看到了自己理论联系实际的能力还是比较脆弱。尤其是编写大型的程序所要拥有的知识和技能比较缺乏。程序编好了,还要经过调试和修改,这步也很关键,好的程序是经过了无数次的修改和调试才产生的。我的程序基本上能够满足要求,但还有一些地方需要改进,在今后我应该在多看书的同时还要加强实践的练习。才能进一步提高自己的编程能力。 四、一辈子孤单并不可怕,如果我们可以从中提炼出自由,那我们就是幸福的。许多长久的关系都以为忘记了当初所坚持与拥有的,最后又开始羡慕起孤单的人。五、恋爱,在感情上,当你想征服对方的时候,实际上已经在一定程度上被对方征服了。首先是对方对你的吸引,然后才是你征服对方的欲望。六、没有心如刀割,不再依依不舍,只有,沉默相隔七、和你在一起只是我不想给任何人机会。八、一个人总要走陌生的路,看陌生的风景,听陌生的歌,然后在某个不经意的瞬间,你会发现,原本是费尽心机想要忘记的事情真的就那么忘记了。九、无论我们爱过还是就这样错过,我都会感谢你。因为遇见你,我才知道思念一个人的滋味;因为遇见你,我才知道感情真的不能勉强;因为遇见你,我才知道我的心不是真的死了;因为遇见你,我才知道我也能拥有美丽的记忆。所以,无论你怎么对待我,我都会用心去宽恕你的狠,用心去铭记你的好。十、爱情需要的是彼此互相的照顾,当我们心爱的人累了,我们不是坐在一边不理,而是多陪对方谈谈心,对方需要什么的时候,自己尽量的满足对方的需求,至少可以让对方知道,在自己身边的感觉是如此的温暖。十一、自从你出现後,我才知道原来有人爱是那麽的美好十二、有的人与人之间的相遇就像是流星,瞬间迸发出令人羡慕的火花,却注定只是匆匆而过。十三、有一些人,这一辈子都不会在一起,但是有一种感觉却可以藏在心里守一辈子。十四、不要轻易说爱,许下的承诺就是欠下的债!十五、不管你是多么的爱对方,但千万不可当第三者。细想,默然。因为知道,这样的故事一开始便注定了结局,一开始就注定在这个故事里,很多人会受伤。离开的总是要离开,挽留不住,就像彼岸花,穷其一生,花叶仍是生生相错。十六、什么叫快乐?就是掩饰自己的悲伤对每个人微笑。十七、爱情与视力无关,任你看得再怎么清楚,在爱里只有模糊。因为太聪明太理智就没有办法恋爱,爱情根本是盲目的。十八、恋爱就像剪头发,这种事情不到最后是不知道结果的,结果能否令每个人皆大欢喜,无人保障,但是一切都是自己的选择。十九、因为爱过,所以慈悲:因为懂得,所以宽容。二十、那些随风散落的微笑眼神,仿似落寞诗人的爱情诗句,一段一段,错落成行。孤独的钟鸣彻夜悲鸣,那些如花容颜,终不敌过时间切割的颓败,我们忧伤的仰望阳光,看流年未亡,年华尽耗。二十一、一个人一生可以爱上很多的人,等你获得真正属于你的幸福之后,你就会明白一起的伤痛其实是一种财富,它让你学会更好地去把握和珍惜你爱的人。二十二、爱一个人,由天由人却由不得自己。不由自主只因刻骨铭心,不离不弃只因无法代替。总是心有期待,才有灯火阑珊处的望眼等待;总是情怀善待,才有心甘情愿地付出所有,习惯的依赖。也许你的世界一无所有,但在爱你人的心里,你就是全世界。珍惜一个深爱你的人,更要珍藏一颗为你融入生命的心。二十三、就在我以为一切都没有改变只要我高兴就可以重新扎入你的怀抱一辈子不出来的时候,其实一切都已经沧海桑田了,我像是一躲在壳里长眠的鹦鹉螺,等我探出头来打量这个世界的时候,我原先居住的大海已经成为高不可攀的山脉,而我,是一块僵死在山崖上的化石二十四、幸福,不是长生不老,不是大鱼大肉,不是权倾朝野。幸福是每一个微小的生活愿望达成。当你想吃的时候有得吃,想被爱的时候有人来爱你。二十五、有时,爱也是种伤害。残忍的人,选择伤害别人,善良的人,选择伤害自己。二十六、如果,不幸福,如果,不快乐,那就放手吧;如果,舍不得、放不下,那就痛苦吧。二十七、这个世界就这么不完美。你想得到些什么就不得不失去些什么。二十八、有的人与人之间的相遇就像是流星,瞬间迸发出令人羡慕的火花,却注定只是匆匆而过。二十九、无数次在梦的意境,勾勒你的样子,那样的虔诚,和你的心灵一样,一生刻骨。三十、有人背叛你,你却想挽回。有人不爱你,你却讨好他。何必为爱委屈自己。一个人如真心爱你,绝不会对你忽冷忽热;一个人如真心想追你,绝不会跟你玩暧昧。与其卑微的恋爱,不如选择单身。专心-专注-专业