学生选修课选课系统程序设计报告.doc_第1页
学生选修课选课系统程序设计报告.doc_第2页
学生选修课选课系统程序设计报告.doc_第3页
学生选修课选课系统程序设计报告.doc_第4页
学生选修课选课系统程序设计报告.doc_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

湖南财政经济学院课程设计报告课 程面向对象程序设计和数据库开发技术题 目学生选修课选课系统专 业经济信息管理班 级2010级经济信息管理班姓 名易霜学 号2010050558指导教师蒋望东2011年12月20日 湖南财政经济学院课程设计 第49页 共 50 页课程设计成绩评定表系别:信息管理系 专业:2010级经济信息管理班学 号2010050558姓 名易霜论文(设计)题目学生选修课选课系统评定成绩项目 评判标准 (在每一项目对应的标准下方空格内标记)优秀 良好 中等 及格 不及格 工作量能很好地完成任务书规定的工作量。能较好地完成任务书规定的工作量。按时完成任务书规定的工作量。基本完成任务书规定的工作量。没有完成任务书规定的工作量。资料收集方案设计独立提出实施方案,有分析整理、获取新知识的能力。能阅读一些自选资料,能较好地分析整理各类信息。能分析整理各类信息。能阅读教师指定的参考资料。未完成教师指定的参考资料的阅读。综合应用能力能熟练掌握和运用基本理论,取得的结果有一定的实用价值。能熟练掌握和运用有关理论,能独立取得结果。 较好地掌握有关理论,在教师指导下能完成工作。掌握和运用理论比较符合要求。基本理论模糊不清,无任何结果。能力技术水平设计合理,有较强的实际动手能力和计算机应用能力。设计比较合理、有一定的实际动手能力和计算机应用能力。设计比较合理,实际动手尚可。设计基本合理,理论分析与实施无大错。设计不合理,实际动手能力差。报告撰写质量结构严谨,逻辑性强,层次清晰,文字流畅,符合规范化要求,打印精美。结构合理,符合逻辑,文章层次分明,语言准确,达到规范化要求,打印工整。结构基本合理,层次较分明,文理通顺,基本达到规范化要求。结构基本合理,文字尚通顺,勉强达到规范化要求。结构混乱,文字表达不清,错别字较多,达不到规范化要求。实习态度态度认真,作风严谨,严格按进度开展各项工作。实习态度比较认真,能按期圆满完成任务书规定的任务。遵守纪律,基本保证设计时间,按期完成各项工作。态度尚可,在指导教师的帮助下能按期完成任务。纪律涣散,不能保证设计时间和进度。评语: 指导老师: 年月日目录1引言32 需求分析42.1 系统需求42.2 功能需求42.3 性能需求43 总体设计63.1 设计思想与处理流程63.2 系统层次模块图63.3 模块设计74 数据库设计95 详细设计135.1登录模块的设计与实现135.2 主操作页面效果175.3学生信息管理模块的设计与实现196 总结487 参考文献498.致谢501引言 “选课”是现在高校行政管理工作中一项很重要的课题。而且是每个学期都必须要面对的问题。选课工作做不好,学生不知道自己将要学习的课程,老师也不知道自己将要讲授的课程,教务处的排课计划、教室安排等其他调度工作也无从做起。因此,如何解决高校教务管理中的选课工作便成为了如今各大高校面临的很实际的问题。 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。应用计算机对高校教务信息工作进行辅助,具有人工管理所无法比拟的优点。例如:检索迅速,查找方便,可靠性强,存储量大,保密性能好等。这些优点能够极大地提高教务工作的质量和效率,也是高校教务工作科学化,规范化,信息化管理的重要条件。因此,开发在线选课系统很有必要。本系统的目标在于:(1)通过学生选修课系统的实现,使学校对学生选修课信息的管理规范化; (2)学生更加方便地查询自己的相关选课信息;(3)对不同身份的人群提供不同的权限。2 需求分析2.1 系统需求在各大中专院校,学校的教务管理的主要内容包括学生的信息管理和教师排课,学生对于课程的选修以及老师授课尤为重要。本系统不仅是对学生信息的管理,也可以对教师信息进行管理。本系统不包含教师排课管理和教师管理的详细业务,只提供学生和教师选课及授课相关信息的查询。2.2 功能需求根据上述的信息管理系统的业务流程、要求以及所要实现的目标,我们可以拟出以下需求目标:(1)建立学生信息的管理和维护。实现计算机自动化管理体制。(2)建立学生选课管理机制,在计算机的支持下快速的完成学生选修课的查询和修改。(3)建立课程设置管理,在计算机的支持下实现课程的添加、删除、修改。(4)实现系统的多权限设置管理,保证系统安全性。根据系统的需求分析,得到本系统的功能要求如下:(1)课程的设置管理:学校的教务秘书可以根据本校具体情况在每学期所开设的课程进行设置和修改。(2)权限管理:为了很好的保证系统的安全性,学校相关负责人可以设置管理员、教师以及学生三种类型的人员的权限。(3)学生信息管理:学生信息的数量十分庞大,教务管理人员进行新生选修课的档案录入及更改。其中包括学生个人信息的修改。(4)学生选课管理:教务管理人员可以查询和修改学生的所选课程,掌握学生学习情况,作为评定学生素质的数据依据。2.3 性能需求系统的运行对于运行环境的要求是;1硬件环境目前,我们所开发的系统主要是应用在中小规模的学校内部,因此,一般配置的计算机硬件就可以满足系统需求。考虑到学校规模的扩大和硬件价格的降低,为本系统配置在较优秀的服务器硬件,可以充分发挥本系统性能。l 处理器: intel pentium 4 3.06 gx 或更高l 内存: 256m(推荐)l 硬盘空间:40gbl 显卡: svga显示适配器2软件环境l 操作系统:windows 2000/xpl 开发软件:microsoft visual studio .net 2005l 数据库:microsoft sql server 20053 总体设计3.1 设计思想与处理流程本系统采用面向对象方法进行分析和设计,在sql server 2000/xp数据库上实现数据操作。使用纯面向对象的c语言作为开发语言,使用windows2000/xp作为开发平台,能够很好的实现系统的开发及测试。系统的基本流程是:用户登陆主界面选择各项子系统。3.2 系统层次模块图“学生选修课系统”主要分为登录、用户信息、学生信息管理、课程信息管理、学生选课管理、关于本系统、学生选课相关信息、教师授课相关信息多个模块。系统主模块功能树如图2-1所示:学生选修课系统用户登录用户信息学生信息管理课程信息管理学生选课管理关于本系统学生选课信息教师授课信息 图2-1 “学生信息管理系统”系统主模块功能树3.3 模块设计1用户登录模块:输入用户名称和密码,选择用户身份,如果用户名、密码正确,身份恰当,进入主控制平台;否则给出错误信息提示。2学生信息管理模块: 添加学生信息子模块:可以进行学生学号、姓名、年龄、性别、系别的添加。 删除学生信息子模块:方便教务管理人员删除某些学生。有利于管理人员随时掌握学生最新信息。 修改学生信息子模块:教务管理人员可以随时更改学生的某些信息,包括学生学号、姓名、年龄等信息的更改。 退出学生信息子模块:教务管理人员可以退出本模块进入下一模块。3用户信息管理模块: 显示所有用户子模块:教务管理人员课可以直接看到所有用户信息,包括管理员自己、学生以及教师。 清除结果子模块:可以直接将所有用户信息全部清空。4课程信息管理模块: 添加课程信息子模块:可以进行课程编号、名称、学分、开课学期、总学时的添加。 删除课程信息子模块:方便教务管理人员删除某些课程及相关信息。 修改课程信息子模块:教务管理人员可以随时更改课程的某些信息,包括课程编号、名称、学分、开课学期、总学时信息的更改。 退出课程信息子模块:教务管理人员可以退出本模块进入下一模块。5关于本系统模块6学生选课模块: 选课子模块:点击“选择学生”“选择查询”,进行选课。 查询信息子模块:在“查询内容”中选择学号或者课程号,并输入查询值,进行查询。4 数据库设计4.1 sql server2000数据库建立过程首先把sql server 2000的“服务管理器”打开,鼠标左键单击“开始/继续”按钮,然后在“开始”“程序”内选择“microsoft sql server 2005” “microsoft sql server management studio”。展开左边的程序树,如图2-1示。在“数据库”文件夹图标上单击鼠标右键,选择“新建数据库”,弹出新建数据库窗体,如图2-2示。在“名称”文本框内,输入新建数据库的名称,在此输入“stu_selectcourse”,新建学生信息管理数据库。其他选项默认即可。然后,开始建立本系统需要的数据库表,方法如下:首先,在新建的数据库上单击鼠标右键,选择“新建”“表”,如图2-3示。然后,在弹出的窗体内输入表字段和类型以及长度和是否允许空等信息,如图2-4示。输入完表字段后,为表的字段添加主键、约束和关系等,方法是在添加约束或关系的字段上单击鼠标右键,选择“设置主键”或“关系”等。保存该表,命名为 “stu_information”。接下来在建立本章需要的其他表,在此不再详述了。接下来就是如何向已经建立好的数据表内输入数据了,方法如下,首先在建立好的表上单击鼠标右键,选择“打开表”“返回所有行”。然后在弹出的窗体内输入数据,输入结束后,鼠标左键单击工具栏上的运行图标,保存数据,如图2-5示。4. 2表结构实现根据系统功能设计的要求以及功能模块的划分,对于系统用户信息数据库,可以列出以下数据项和数据结构:(1)、名称:学生信息表表名称标识:stu_information表数据来源:学生信息管理模块进行录入。 (2)、名称:课程信息表表名称标识:course_information表数据来源:课程信息管进行录入(3)、名称:用户信息表表名称标识:tbl_user表数据来源:用户信息管理模块进行录入。(4)、名称:选课信息管理表表名称标识:selectcourse表数据来源:选课信息管理进行录入。(5)名称:教师信息表表名称标识:teacher表数据来源:教师信息模块进行录入5 详细设计本系统主要实现学生选课信息的浏览、查询、编辑、添加和删除,同时对课程信息进行管理,增加权限的管理。根据已有的需求分析和总体设计,我们在此基础上来进行系统的详细设计和实现,为此,我们建立了一个c.net项目。在“开始”菜单中找到“microsoft visual studio 2005”,启动应用程序,鼠标单击“文件” “新建” “项目”,单击“visual c#项目”,建立一个“windows应用程序”,命名为“stu_selectcourse”,位置默认。如下图示。然后我们把这个项目生成的默认窗体作为本系统的主窗体,我们再向这个项目中添加一个窗体,鼠标单击“项目”“添加windows窗体”,输入窗体名称为“frmlogin”把新添加的窗体作为登陆窗体,调整窗体大小到合适值。修改该窗体的name属性为“frmlogin”,text属性为“用户登录”,startposition属性为“centerscreen”,其他属性默认。我们接下来的所有窗体文件都是使用这种方法在这个项目中添加。5.1登录模块的设计与实现1用户身份验证ipo图输入:用户名、密码和身份。处理:(1) 用户登录窗体启动。(2) 输入用户名和密码,选择身份。(3) 从用户信息表中检查是否有相应的用户名和密码以及身份是否正确。(4) 如果用户名或密码为空或者错误,进行提示。(5) 如果输入的用户名和密码正确,则允许该用户进入系统。(6) 进入主控制平台。输出:主控制平台。2用户登录模块的窗体设计,如下图所示:用到的主要控件是:label、button、textbox、combobox该窗口主要功能是登录功能,输入管理权限、用户名、密码登陆界面。次模块供不同用户登录使用,登录用户有管理员和学生3用户登录模块的主要代码using system;using system.collections.generic;using system.componentmodel;using system.data;using system.data.sqlclient;using system.drawing;using system.text;using system.windows.forms;namespace stu_selectcourse public partial class frmlogin : form public frmlogin() initializecomponent(); private void txtusername_keydown(object sender, keyeventargs e) if (e.keycode = keys.enter) txtuserpassword.focus(); private void txtuserpassword_keydown(object sender, keyeventargs e) if (e.keycode = keys.enter) userpurview.focus(); private void userpurview_keydown(object sender, keyeventargs e) if (e.keycode = keys.enter) btnok_click_1(sender, e); private void btnok_click_1(object sender, eventargs e) try dataset ds = new dataset(); database db = new database(); string sqlstr = select userpassword,userpurview from tbl_user where username= + txtusername.text.trim() + ; ds = db.getdatafromdb(sqlstr); if (ds.tables0.rows0.itemarray0.tostring().trim() = txtuserpassword.text.trim() if (ds.tables0.rows0.itemarray1.tostring().trim() = 管理员) frmmain ob_menustrip1 = new frmmain(); classshared.userinfo0 = txtusername.text.trim(); classshared.userinfo1 = ds.tables0.rows0.itemarray1.tostring(); ob_menustrip1.show(); this.hide(); if (ds.tables0.rows0.itemarray1.tostring().trim() = 学生) frmmainstudent ob_frmmainstudent = new frmmainstudent(); classshared.userinfo0 = txtusername.text.trim(); classshared.userinfo1 = ds.tables0.rows0.itemarray1.tostring(); ob_frmmainstudent.show(); this.hide(); if (ds.tables0.rows0.itemarray1.tostring().trim() = 教师) frmmainteacher ob_frmmainteacher = new frmmainteacher(); classshared.userinfo0 = txtusername.text.trim(); classshared.userinfo1 = ds.tables0.rows0.itemarray1.tostring(); ob_frmmainteacher.show(); this.hide(); else messagebox.show(用户名或密码错误, 提示); txtusername.text = ; txtuserpassword.text = ; txtusername.focus(); catch (exception ex) messagebox.show(用户名或密码错误,请重新输入! + ex.message, 提示); private void btnclose_click_1(object sender, eventargs e) application.exit(); private void frmlogin_load(object sender, eventargs e) 管理员信息系统5.2 主操作页面效果1主控制平台的窗体设计,如下图所示:2.主控制平台的主要代码:using system;using system.collections.generic;using system.componentmodel;using system.data;using system.data.sqlclient;using system.drawing;using system.text;using system.windows.forms;namespace stu_selectcourse public partial class frmmain : form public frmmain() initializecomponent(); private void 登录界面toolstripmenuitem_click(object sender, eventargs e) frmlogin obj_frmlogin = new frmlogin(); obj_frmlogin.show(); private void 用户信息管理toolstripmenuitem_click(object sender, eventargs e) frmuserinfo obj_frmuser = new frmuserinfo(); obj_frmuser.show(); private void 课程信息管理toolstripmenuitem_click(object sender, eventargs e) frmcourse obj_frmcourse = new frmcourse(); obj_frmcourse.show(); private void 关于本系统toolstripmenuitem_click(object sender, eventargs e) frmabout obj_frmabout = new frmabout(); obj_frmabout.show(); private void 选课信息管理toolstripmenuitem_click(object sender, eventargs e) frmsc obj_frmsc = new frmsc(); obj_frmsc.show(); private void 退出toolstripmenuitem_click(object sender, eventargs e) application.exit(); private void 学生选课系统toolstripmenuitem_click(object sender, eventargs e) this.text = classshared.userinfo0 + - + classshared.userinfo1; private void 学生信息管理toolstripmenuitem_click_1(object sender, eventargs e) frmstudent obj_frmstudent = new frmstudent(); obj_frmstudent.show(); 5.3学生信息管理模块的设计与实现学生信息管理模块负责登录用户录入学生信息并对其进行添加、修改、删除等动作。(1)学生信息管理模块实现的功能学生管理模块主要实现录入并修改学生信息。(2)学生信息管理模块实现的效果学生信息管理模块的窗体设计效果如下图所示。1).增加新的学生信息功能:在学生信息表中增加新的学号、姓名、性别、年龄和系别,并把结果写入到数据库stu_selectcourse内的stu_information表中。输入:新学生的姓名和学号等信息处理:l 在数据库stu_selectcourse内的stu_information表内添加学生信息,显示到窗体的datagridview 控件中。l 选择确定或者继续添加。输出:对学生表stu_information进行记录修改2).删除学生功能:在学生信息表中删除已有学生,并把结果写入到数据库内的stu_information表中。输入:选中一条学生记录处理:l 在数据库stu_selectcourse内的stu_information表内检索学生信息,显示到窗体的datagridview控件中。l 如果存在该学生信息,则把该学生信息记录从数据库stu_selectcourse内的stu_information表中删除。l 把数据表的改动记录到数据库内。输出:对学生信息表进行记录修改3).修改学生信息功能:在学生信息表中修改学生信息,包括学生姓名和学号等,并把结果写入到数据库内的stu_information表中。输入:选中一条学生记录,输入修改信息处理:l 在stu_selectcourse内的stu_information表内检索学生信息,显示到窗体的datagridview 控件中。l 在datagridview 控件中录入修改的学生信息。l 把对数据表stu_information的改动记录到数据库内。输出:对学生信息表进行记录修改(3)学生信息管理模块的主要代码:using system;using system.collections.generic;using system.componentmodel;using system.data;using system.drawing;using system.text;using system.windows.forms;namespace stu_selectcourse public partial class frmstudent : form public frmstudent() initializecomponent(); void objopen() txtno.enabled = true; txtname.enabled = true; txtage.enabled = true; cmbsex.enabled = true; txtdept.enabled = true; txtno.focus(); void objclose() txtno.enabled = false; txtname.enabled = false; txtage.enabled = false; cmbsex.enabled = false; txtdept.enabled = false; void clear() txtno.text = ; txtname.text = ; txtage.text = ; cmbsex.selectedindex = -1; txtdept.text = ; void refreshdata() string comstr; database db = new database(); dataset ds = new dataset(); comstr = select sno as 学号,sname as 姓名, ssex as 性别,sage as 年龄,sdept as 所在系from stu_information; /select * from tbl_student; ds = db.getdatafromdb(comstr); if (ds = null) messagebox.show(没有任何学生记录,请输入或检查记录是否存在!, 提示); else dgrdvstudent.datasource = ds.tables0; private void frmstudent_load(object sender, eventargs e) try objclose(); string comstr; database db = new database(); dataset ds = new dataset(); comstr = select sno as 学号,sname as 姓名, ssex as 性别,sage as 年龄,sdept as 所在系from stu_information; /select * from tbl_student; ds = db.getdatafromdb(comstr); if (ds = null) messagebox.show(没有任何学生记录,请输入或检查记录是否存在!, 提示); else dgrdvstudent.datasource = ds.tables0; dgrdvstudent_rowheadermouseclick(null, null); catch (exception ex) messagebox.show(ex.message); private void btnclose_click(object sender, eventargs e) this.hide(); private void dgrdvstudent_cellmouseclick(object sender, datagridviewcellmouseeventargs e) dgrdvstudent_rowheadermouseclick(sender, e); private void dgrdvstudent_rowheadermouseclick(object sender, datagridviewcellmouseeventargs e) int n = this.dgrdvstudent.currentcell.rowindex; txtno.text = this.dgrdvstudent0, n.value.tostring(); txtname.text = this.dgrdvstudent1, n.value.tostring(); cmbsex.text = this.dgrdvstudent2, n.value.tostring(); txtage.text = this.dgrdvstudent3, n.value.tostring(); txtdept.text = this.dgrdvstudent4, n.value.tostring(); private void btnclose_click_1(object sender, eventargs e) this.close(); private void btnadd_click(object sender, eventargs e) try if (btnadd.text.trim() = 添加) btnadd.text = 确定; objopen(); clear(); btnupdate.enabled = false; btndelete.enabled = false; btnclose.enabled = false; dgrdvstudent.enabled = false; else btnadd.text = 添加; if (txtno.text.trim() != & txtname.text.trim() != ) string sqlstr; sqlstr = insert into stu_information values( + txtno.text.trim() + , + txtname.text.trim() + , + cmbsex.text.trim() + , + txtage.text.trim() + , + txtdept.text.trim() + ); database db = new database(); bool b; b = db.updatedb(sqlstr); if (b = true) if (messagebox.show(添加成功!继续添加吗?, 添加学生, messageboxbuttons.yesno, messa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论