学生信息管理系统论文(20211119211859)_第1页
学生信息管理系统论文(20211119211859)_第2页
学生信息管理系统论文(20211119211859)_第3页
学生信息管理系统论文(20211119211859)_第4页
学生信息管理系统论文(20211119211859)_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、1 信息技术系2009-2010 第一学期课程论文题目学生信息管理系统姓名:学号:班级:负责模块:学生管理,课程管理模块小组成员:成绩:评阅教师:2009 年 12 月 9日2 学生信息管理系统摘要学生管理系统用于对学生信息管理,教师信息管理,班级管理,成绩管理,学生所在院系,专业管理等。目录:系统功能分析2 数据库设计 2 各个数据表创建3 存储过程创建5 学生信息管理系统总括6 登录模块 7 教师管理模块8 学生管理模块10 课程管理模块18 成绩管理模块20 班级管理模块22 退出管理 24 2009-12-9 3 正文正文内容如下:一、系统功能分析功能分析: 学生信息管理系统属应用系统

2、。系统是一个集成多功能的信息管理系统,有教师资料管理、学生管理、班级管理、专业管理、课程管理、成绩管理和院系管理功能模块。本系统将大大提高学生信息的管理效率,带来数据共享、 网络查询和网络管理等便利,实现学生信息管理的数字化和智能化。1.模块划分(整个系统功能结构图)2.各模块功能简介登录模块:本模块主要为用户登录,权限验证,管理员添加,实现系统的多用户管理功能,不同权限的用户,可对其进行不同功能的管理。教师管理模块:本模块主要对教师的资料信息进行查询,删除,修改和添加。学生管理模块:本模块主要对学生资料信息进行相应的查询,删除,修改和添加。添加了学生所在院系资料与学生所在专业资料,同时可对院

3、系资料与专业资料进行相应的添加,修改,查询。课程管理模块:本模块主要对课程资料进行管理,对其进行查询,添加,修改和删除。又详细划分了课程类别资料,对其进行如上操作。成绩管理模块:本模块对学生成绩进行查询操作,如发现成绩有输入错误,可对其进行相应的修改,还可对学生的成绩进行录入班级管理模块:本模块班级资料信息进行管理,对其进行相应的查询,修改,删除和添加。二、数据库设计根据学生管理系统所要求的数据信息,创建数据库smsstudent ,根据各模块可创建如下104 个数据表,其字段名,数据类型等内容如下:1.各表及字段class 表:course 表:coursetype 表:department

4、 表:grade 表:5 speciality 表:speciality_course 表:student 表:teacher 表:6 users 表:添加: class_stu_view 视图表。2.系统中模块使用的存储过程本数据库共创建3 处存储过程,其存储过程为:教师资料查询(teacher.aspx页面)employess_sel 存储过程:createprocedure dbo. employess_sel lastname nvarchar( 20 ), department varchar( 30 ) as selectteacherid, teachername, depart

5、ment. departmentid, department. departmentname, sex , telephone fromteacher, department whereteacher. departmentid=department. departmentid and(teachername like%+ lastname +%anddepartment.departmentname=department) 学生资料查询(student.aspx页面)student_sel 存储过程:createprocedure dbo. student_sel lastname nvar

6、char( 20 ), department varchar( 30 ), studentid varchar( 10 ) as select* fromstudent, class wherestudent. classid=class. classid and(studentname like%+ lastname + %orstudentid=studentid )and7 class. classname=department) 管理员添加( register.aspx 页面)procadmin 存储过程:createprocedure dbo. procadmin auser cha

7、r( 10 ), apwd varchar( 50 ), atype varchar( 20 ) as insertintousers( username, mypassword, usertype)values( auser , apwd, atype )三、各模块页面设计,具体功能实现1. 学生信息管理系统总括:开发环境: microsoft visual studio 2005 开发语言: c#,javascript 数据库:microsoft sql server 2005 辅助工具: adobe photoshop cs2,dreamweaver mx 2004 整体页面架构:框架集

8、( crm_admin_main.htm ) (width=763 )如上图所示四个框架内容文件: (top.htm, left.htm, switch.htm, body.htm )1.top.htm 页面: javascript 特效 rain.js(详细代码见项目);2.left.htm 页面: javascript 级联菜单, 全部由 javascript 生成, 通过数组定义子菜单,可任意添加目录项与级联子项,程序可扩展性良好。3.switch .htm 页面: javascript 作开关按钮,实现框架的展开与合并功能。4.body.htm 页面:定位框架的主内容文件。 (主要是a

9、spx 文件的定位: 后面加 xxx.aspx target= mainframe 。例如: item_link20=student.aspx target=mainframe;)注:本页面由dreamweaver mx 2004 实现,经javascript 代码进行修改而成。8 2. 全局配置文件:数据库访问类conndb.cs public static sqlconnection createconn() string sms_connstr = system.configuration.configurationmanager.connectionstringscon.tostrin

10、g(); sqlconnection conn = new sqlconnection(sms_connstr); return conn; 3.web.config 文件配置信息:数据库连接字符串 4.web.sitemap 文件配置整个站点的层次结构以学生管理为例,站点地图代码如下: 5. sitemappath 控件sitemappath 控件数据内容由web.sitemap 文件自动导航一、登录模块:1. 用户注册页面(register.aspx) 如下图:本页面可向系统注册管理员,通过身份验证获得整个系统的管理权限。注册是同过md5 加密算法对密码框(txtpwd.text )进行加

11、密。9 调用加密算法:string str_pwd =system.web.security.formsauthentication.hashpasswordforstoringinconfigfile(this .mypassword.text, md5).tostring();实现方法:首先定义executeinsert() 方法 ( 代码详见项目 ) ,在点击添加按钮时调用,但在调用前必须判断该注册用户是否已存在或注册的用户和密码不能为空,代码如下;string str_user = txtuser.text; string str_sel = select count(username

12、) from users where username= + str_user + ; int count = data .executesel(str_sel); if (count 0)/ 用户已存在 page.clientscript.registerstartupscript(this .gettype(), show_message, alert(用户已存在! );); else if ( this .txtuser.text = | this .txtpwd.text = ) page.clientscript.registerstartupscript(this .gettype

13、(), show_message, alert(用户名和密码不能为空!);); else this .executeinsert(); 2. 用户登录页面(logoin.aspx) 如下图:本页面主要实现用户登录,通过md5 加密算法,确保数据库访问安全性。三、教师管理模块:1.教师资料管理页面(teacher.aspx) 10 本页面主要对教师资料管理,查询和删除。2.教师资料添加页面(addteacher.aspx )本页面主要对教师资料进行添加功能,对应teacher 表。3.教师信息修改页面(editteacher.aspx)11 此页面通过teacher.aspx 页面传值,来对教师

14、详细资料信息进行数据绑定。保存按钮主要代码:string sms_sqlstr = update teacher set teachername= + textbox2.text + ,sex= + radiobuttonlist1.selecteditem.text + ,technicalpost= + dropdownlist2.selecteditem.text + ,telephone= + textbox8.text + ,homeaddr= + textbox7.text + ,pwd= + textbox9.text + ,remark=+ textbox6.text + ,d

15、epartmentid=+ dropdownlist3.selectedvalue.tostring() + where teacherid= + textbox1.text + ; sqlcommand sms_comm = new sqlcommand (sms_sqlstr, sms_conn); sms_comm.connection.open();四、学生管理模块:1.学生资料管理页面(student.aspx) 如下图所示:数据绑定控件gridview ,掌握该控件的灵活用法,掌握常用属性设置,主要实现其 数据绑定功能与分页功能。数据绑定 的实现方式很多,可选用直接绑定boundf

16、ield ,或选用templatefield 等,如学号,姓名,选择删除字段用的是templatefield ,在 templatefield 区域中放入相应的控件,作成如图效果,掌握数据集对控件数据的填充方法,代码如下:sms_conn.open(); sms_sqlstr = select * from student,class where student.classid=class.classid; sqldataadapter sms_adp = new sqldataadapter (sms_sqlstr,sms_conn); dataset sms_ds = new datase

17、t (); sms_adp.fill(sms_ds); sms_conn.close(); sms_stutent.datasource = sms_ds; sms_stutent.databind(); sms_ds.clear(); sms_ds.dispose(); 实现选择删除列的方法:全选、反选12 全选代码:for ( int i = 0; i sms_stutent.rows.count; i+) checkbox chkselect = (checkbox)sms_stutent.rowsi.findcontrol(chkselect); chkselect.checked =

18、 true ; 反选代码:for ( int i = 0; i sms_stutent.rows.count; i+) checkbox chkselect = (checkbox)sms_stutent.rowsi.findcontrol(chkselect); chkselect.checked = !chkselect.checked; 重点难点为:删除按钮的事件,如何取 studentid 的键值,实现方法的代码为:for ( int i = 0; i sms_stutent.rows.count; i+) checkbox chkselect = (checkbox)sms_stut

19、ent.rowsi.findcontrol(chkselect); if (chkselect.checked) / 如何选中 id列? str string str = (label )sms_stutent.rowsi.findcontrol(label3 ).text; string sms_sqlstr = delete from student where studentid= + str + ; sqlcommand sms_comm = new sqlcommand (sms_sqlstr, sms_conn); sms_comm.connection.open(); try s

20、ms_comm.executenonquery(); sms_lbl_note.text = 删除成功 ; catch ( sqlexception) sms_lbl_note.text = 删除失败 ; sms_lbl_note.stylecolor = red ; sms_comm.connection.close(); sms_bindgrid(); 分页中用到 ( 其它分页均用该方式) : 当前页: 13 总页数: asp: linkbuttonid=linkbuttonfirstpagerunat =servercommandargument =firstcommandname=pa

21、ge enable= font-size =small 首页 asp: linkbuttonid=linkbuttonpreviouspagerunat =servercommandargument =prev commandname=pageenable =font-size =small 上一页 asp: linkbuttonid=linkbuttonnextpagerunat =servercommandargument =nextcommandname=pageenable =font-size =small 下一页 asp: linkbuttonid=linkbuttonlastpa

22、gerunat =servercommandargument =lastcommandname=pageenable = font-size =small尾页 实现分页的事件:protectedvoid sms_stutent_pageindexchanging(objectsender, gridviewpageeventargse) try sms_stutent.pageindex = e.newpageindex; sms_bindgrid(); catch 本页面的查询按钮运用的是存储过程进行查询(存储过程见数据库设计) ,调用存储过程的代码如下: sms_conn.open();

23、sqlcommand sms_comm = new sqlcommand ( student_sel,sms_conn); sms_comm.commandtype = commandtype .storedprocedure; sms_comm.commandtext = student_sel; sms_comm.connection =sms_conn; sqldataadapter sms_da = new sqldataadapter (sms_comm); 14 sms_da.selectcommand.parameters.add(lastname , sqldbtype.nva

24、rchar); sms_da.selectcommand.parameters.add(department , sqldbtype.varchar,30); sms_da.selectcommand.parameters.add(studentid, sqldbtype.varchar,10); sms_da.selectcommand.parameterslastname .value = this .txtstuname.text.trim().replace( , ); sms_da.selectcommand.parametersdepartment .value = this .d

25、ropdownlist1.selectedvalue.tostring(); sms_da.selectcommand.parametersstudentid.value = this .txtstuid.text.trim().replace( , ); dataset sms_ds = new dataset (); sms_da.fill(sms_ds); sms_conn.close(); sms_stutent.datasource = sms_ds; sms_stutent.databind(); gridview控件中 rowdatabound 事件,可对其样式进行设置。鼠标经过

26、行时颜色的变化。其代码如下:if (e.row.rowtype = datacontrolrowtype .datarow) / 鼠标经过时,行背景色变 e.row.attributes.add(onmouseover , this.style.backgroundcolor=#e6f5fa); / 鼠标移出时,行背景色变 e.row.attributes.add(onmouseout , this.style.backgroundcolor=#ffffff); / 如果是绑定数据行 注:其他也面凡是用到gridview 控件均用到该事件。2.学生资料编辑页面(editstu.aspx)主要对

27、所对应得学生信息进行编辑修改,本页面的重点为页面之间的传值,在student.aspx 页面中设置学号列中hyperlink 控件的属性:navigateurl= 在该页面中获取其id 并对其他控件进行数据绑定,其方法为:string id = request.querystringid ; 15 string sqlstr = select * from class_stu_view where studentid= + id + ; sqlcommand cmd = new sqlcommand (sqlstr, conn); sqldataadapter ads = new sqldat

28、aadapter (cmd); dataset ds = new dataset (); ads.fill(ds, s ); this .txtstudentid.text = ds.tabless .rows00.tostring(); this .txtstudentname.text = ds.tabless .rows01.tostring(); this .rbtnlsex.selectedvalue = ds.tabless .rows02.tostring(); this .ddlclass.datasource = ds.tabless ; this .ddlclass.sel

29、ecteditem.text = ds.tabless .rows012.tostring(); this .txtbirthdate.text = ds.tabless .rows03.tostring(); this .txttelephone.text = ds.tabless .rows05.tostring(); this .txtcredithour.text = ds.tabless .rows06.tostring(); this .ddlru_date.datasource = ds.tabless ; this .ddlru_date.selecteditem.text =

30、 ds.tabless .rows07.tostring(); this .txtpwd.text = ds.tabless .rows09.tostring(); this .txtaddr.text = ds.tabless .rows08.tostring(); this .txtremark.text = ds.tabless .rows010.tostring(); 数据绑定之后,可对其相应的信息进行修改、更新,其代码为:stringsms_sqlstr = update student set studentname=+ txtstudentname.text + ,sex=+ r

31、btnlsex.selecteditem.text + ,telephone= + txttelephone.text + ,address= + txtaddr.text + ,credithour= + txtcredithour.text + ,pwd= + txtpwd.text + ,remark= + txtremark.text + ,ru_date= + ddlru_date.selectedvalue.tostring() + ,birthday= + txtbirthdate.text + where studentid= + txtstudentid.text + ; s

32、qlcommand sms_comm = new sqlcommand (sms_sqlstr, conn); sms_comm.connection.open(); try sms_comm.executenonquery(); sms_lbl_note.text = 编辑成功 ; catch ( sqlexception) sms_lbl_note.text = 编辑失败 ; sms_lbl_note.stylecolor = red ; sms_comm.connection.close(); sms_databind();3.学生资料添加页面(addstu.aspx)16 本页面主要对

33、学生的信息进行相应的添加功能,主要运用了insert sql 语句:sms_sqlstr = insert into student(studentname,sex,classid,telephone,address,pwd,remark,ru_date,studentid,birthday,credithour) values(+txtstudentname.text+,+rbtnlsex.selecteditem.text+,+ddlclass.selectedvalue.tostring()+,+txttelephone.text+,+txtaddr.text+,+txtpwd.text

34、+,+txtremark.text+,+ddlru_date.text+,+txtstudentid.text+,+txtbirthdate.text+,+txtcredithour.text+ ); sqlcommand sms_comm= new sqlcommand (sms_sqlstr,sms_conn); sms_comm.connection.open(); try sms_comm.executenonquery(); sms_lbl_note.text = 编辑成功 ; catch ( sqlexception) sms_lbl_note.text = 编辑失败 ; sms_

35、lbl_note.stylecolor = red ; sms_comm.connection.close();4.学生所在院系资料页面(department.aspx)17 本页面采用repeater控件实现数据绑定:具体实现方法为首先创建3 行 5 列的表格进行布局,在其对应的单元格填充相关内容和控件,然后切换到源代码文件中在其repeater控件代码处添加 , 在将表格代码剪切到其标记内部即可。repeater 控件的itemcommand 事件,内部控件的事件均发生在其内部。其功能主要是对该控件内部的控件(linkbutton控件)进行事件的编辑,其代码如下:publicvoid re

36、peateric(object sender,repeatercommandeventargs e) system.web.ui.webcontrols.linkbutton update = ( linkbutton)e.item.findcontrol(linkbutton2); system.web.ui.webcontrols.linkbutton cancel = ( linkbutton)e.item.findcontrol(linkbutton1); system.web.ui.webcontrols.linkbutton edit = ( linkbutton)e.item.f

37、indcontrol(linkbutton3); system.web.ui.webcontrols.linkbutton delete = ( linkbutton)e.item.findcontrol(linkbutton4); system.web.ui.webcontrols.label labdepid = ( label )e.item.findcontrol(labdepid ); system.web.ui.webcontrols.label labdepname = (label )e.item.findcontrol(labdepname); system.web.ui.w

38、ebcontrols.label labdephead = (label )e.item.findcontrol(labdephead ); system.web.ui.webcontrols.textbox tetdepid = (textbox )e.item.findcontrol(txtdepid); system.web.ui.webcontrols.textbox tetdepname = ( textbox )e.item.findcontrol(txtdepname ); system.web.ui.webcontrols.textbox tetdephead = ( text

39、box )e.item.findcontrol(txtdephead ); if (e.commandname = edit) update.visible = true ; cancel.visible = true ; edit.visible = false ; labdepname.visible = false ; labdephead.visible = false ; tetdepname.visible = true ; tetdephead.visible = true ; if (e.commandname = cancel) sms_bindrepeater(); if

40、(e.commandname = update ) sqlstr = update department set departmentname= + tetdepname.text + ,departmenthead=+ tetdephead.text + where departmentid=+ labdepid.text + ; 18 sqlcommand sqlcom = new sqlcommand (sqlstr, sms_conn); sms_conn.open(); sqlcom.executenonquery(); sms_bindrepeater(); sms_conn.cl

41、ose(); if (e.commandname = delete) sqlstr = delete department where departmentid= + labdepid.text + ; sqlcommand sqlcom = new sqlcommand (sqlstr, sms_conn); sms_conn.open(); sqlcom.executenonquery(); sms_bindrepeater(); sms_conn.close(); 系部查询按钮事件直接用sql语句实现5.系部资料添加页面(adddepartment.aspx)该页面主要实现系部资料的添加

42、功能,其内容对应数据库department 表。6.学生所在专业资料页面(speciality.aspx)本页面主要对学生所在专业资料进行管理,并可对专业名称进行修改。其主要代码为 gridview 事件代码,有rowcancelingedit ,rowediting ,rowupdating 等事件。其主要代码为 sql 语句,利用数据集对数据进行填充绑定。19 其中,分页,删除,反选,全选,取消事件同student.aspx页面。7.专业资料添加页面(addspeciality.aspx)本页面主要实现专业信息的添加,对应speciality 表。五、课程管理模块:1.课程资料管理页面(c

43、ourse.aspx)本页面对课程进行系统管理,功能的实现主要为gridview 控件的使用。其课程查询按钮的代码为: sms_sqlstr = select * from course,coursetype where course.coursetypeid=coursetype.coursetypeid and (coursename=+ textbox1.text + or courseid= + textbox2.text + or coursetype.typename= + dropdownlist1.selecteditem.text + ); sms_conn.open();

44、sqldataadapter sms_da = new sqldataadapter (sms_sqlstr, sms_conn); dataset sms_ds = new dataset (); sms_da.fill(sms_ds); sms_conn.close(); sms_course.datasource = sms_ds; sms_course.databind();2.课程资料添加页面(addcourse.aspx)20 该页面对学生所修课程进行相应的添加,对应course 表。添加代码:sms_sqlstr = insert into course(courseid,cou

45、rsename,coursetypeid,credithour,totalperiod,weekperiod,remark) values(+txtcourseid.text+,+txtcoursename.text+,+ddlcoursetype.selectedvalue.tostring()+,+ddlcredithour.selectedvalue.tostring()+,+txttotalperiod.text+,+ddlweekperiod.selectedvalue.tostring()+,+txtremark.text+); sqlcommand sms_comm = new

46、sqlcommand (sms_sqlstr,sms_conn); sms_comm.connection.open(); try sms_comm.executenonquery(); response.redirect(course.aspx); sms_lbl_note.text = 添加成功 ; catch sms_lbl_note.text = 添加失败 ; sms_lbl_note.stylecolor = red ; sms_comm.connection.close();3.课程类别资料页面(coursetype.aspx)本页面对课程进行分类管理,可对课程名进行相应修改操作,

47、用 repeater 控件实现,21 具体做法为,在控件中布局1 行 7 列的表格,并对相应字段进行数据绑定。该页面的查询按钮事件代码:sqlstr = select * from coursetype where coursetypeid=+dropdownlist1.selectedvalue.tostring() + ; sqldataadapter cmd = new sqldataadapter (sqlstr, sms_conn); dataset ds = new dataset (); cmd.fill(ds, t ); repeaterd.datasource = ds.ta

48、blest ; repeaterd.databind();4.课程类别资料添加页面(addcoursetype.aspx)本页面主要对课程的类别添加,对应coursetype 表。六、成绩管理模块:1.学生成绩查询页面(grade.aspx)本页面实现了对学生成绩查询管理,以课程名为导航,使用datalist 控件对课程号进行传值绑定,实现课程所对应学生成绩查询功能,其datalist主属性代码为:navigateurl= 使用gridview 对其成绩进行相应的绑定,如若发现其成绩有输入错误,经获权限后方可对其进行修改 (权限用户方面作的不好,有待实现), 其中编辑实现为gridview 事

49、件代码,有rowcancelingedit ,rowediting ,rowupdating 等事件。其主要代码为sql语句,利用数据集对数据进行填充绑定。22 该页面的查询按钮事件代码:if (txtstudentname.text = & txtstudentid.text != ) sms_sqlstr = select * from student,grade,course where grade.studentid=student.studentid and grade.courseid=course.courseid and (student.studentid= +txt

50、studentid.text+ ); elseif (txtstudentid.text = & (txtstudentname.text!= ) sms_sqlstr = select * from student,grade,course where grade.studentid=student.studentid and grade.courseid=course.courseid and (student.studentname= +txtstudentname.text + ); elseif (txtstudentname.text= ) & (txtstuden

51、tid.text= ) sms_sqlstr = select * from student,grade,course where grade.studentid=student.studentid and grade.courseid=course.courseid and (student.studentname= +txtstudentname.text+ or student.studentid=+txtstudentid.text+ or course.coursename=+ dropdownlist1.selecteditem.text + ); else sms_sqlstr

52、= select * from student,grade,course where grade.studentid=student.studentid and grade.courseid=course.courseid and (student.studentname= +txtstudentname.text+ or student.studentid=+txtstudentid.text+ or course.coursename=+ dropdownlist1.selecteditem.text + ); sms_conn.open(); sqldataadapter sms_da

53、= new sqldataadapter (sms_sqlstr, sms_conn); dataset sms_ds = new dataset (); sms_da.fill(sms_ds); sms_conn.close(); sms_grade.datasource = sms_ds; sms_grade.databind(); txtstudentname.text= ; txtstudentid.enableviewstate = false ;其中,分页,删除,反选,全选,取消事件同student.aspx页面。2.学生成绩录入页面(addgrade.aspx )23 本页面主要

54、对学生的成绩进行录入,其缺点为只能同时对1 个同学,进行数据输入,如若人数较多时, 效率很低,可对其进行改进,利用通过鼠标点击某个班级,直接跳转到全班学生,可对其进行一一录入,可用gridview 等数据绑定控件实现。本页面得功能是利用回传页面,通过输入学号,对学生姓名,所修学分,进行数据刷新,从而确定其成绩,其回传代码为:if (ispostback) try string sqlstr = select studentname,credithour from student where studentid= + txtstudentid.text + ; sqlcommand cmd = new sqlcommand (sqlstr, sms_conn); sms_conn.open(); cmd.executescalar(); sqldataadapter adp = new sqldataadapter (cmd); dataset ds = new dataset (); adp.fill(ds, t ); label2.text = ds.tablest .rows00.tostring(); label1.t

温馨提示

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

评论

0/150

提交评论