软件工程课程设计-学生成绩管理系统.docx_第1页
软件工程课程设计-学生成绩管理系统.docx_第2页
软件工程课程设计-学生成绩管理系统.docx_第3页
软件工程课程设计-学生成绩管理系统.docx_第4页
软件工程课程设计-学生成绩管理系统.docx_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

青 岛 理 工 大 学软件工程导论课程设计姓名:郝兴明学号:201207051班级:计算122题目:学生成绩管理系统指导老师:李传斌完成日期:2015.12.2目 录一、 课题描述.3二、 可行性研究.31.编写目的.32.项目背景.33.定义.34.可行性分析的前提.44.1要求.44.2目标.44.3决定可行性的主要因素.45.可行性分析.45.1技术可行性分析.45.2经济可行性分析.55.3操作可行性分析.5三、需求分析.51. 系统任务描述.51.1系统目标.51.2系统设计与功能分析.51.3性能需求分析.62. 系统概要设计.62.1数据需求.62.2功能需求.83.系统详细设计.83.1概念结构设计.83.2逻辑结构设计.83.3系统功能设计.8四、总体设计.91. 设计概述.92. 系统总体结构及功能模块划分.92.1学生成绩查询模块.92.2学生成绩管理模块.103. 安全保密设计.103.1用户登录安全性.10五、详细设计.101.概述.102.系统程序流程图.113. 系统主要功能模块及关键代码.11六、参考文献.44一、 课题描述随着互联网的发展,利用internet技术来实现“无纸办公”这个概念已经深入人心,校园网作为学校信息化建设的一个平台在完成资源共享、互联网访问、教务管理、电子备课等方面发挥了重要作用。服务教学、提高教学水平和效果是校园网建设的核心目标和核心价值,本系统立足于校园实际,着眼于未来发展,建成符合标准化协议、通用性较强、实用的系统,以提高高校的现代化管理水平,实现信息资源的共享。该项目主要是服务于教学方面,进一步方便教师的工作和学生的学习,从而从侧面达到提高学校的教学方面软件质量。可以说它适用于每一所高校,因此很有开发价值。我们不敢说该产品是所有该系列产品中最好的,但是我们这里要强调的是它具有使用范围广,实用性强,使用简单,所花经费少等优点。我们可以肯定的说它将在高校的使用过程中其优点将得到最充分的体现。主要功能有两方面:管理员:登录,进入系统,可以进行管理员操作,对单个学生成绩进行添加、修改、删除、查询以及对所有学生成绩的查询。学生:登录,进入系统,进行学生操作,查询自己的成绩。软件系统目标:(1)本系统有很强的可靠行,可以对登录信息进行效验,对数据进行修改、删除。(2)本系统中的模块具有很强的可续性,可以方便管理人员的修改与维护。(3)本系统操作方便、灵活、简单。(4)本系统可高效、快速的查询到学生的基本信息。 二、可行性研究1.编写目的可行性研究的目的是为了对问题进行研究,以最小的代价在最短的时间爱确定问题是否可解。经过对此项目进行详细调查研究,初拟系统实现报告,对软件开发中将要面临的问题及其解决方案进行初步设计及合理安排。明确开发风险及其所带来的经济效益。2.项目背景 开发软件名称:学生成绩管理系统。 软件适应学科:软件工程 软件开发环境:eclipse sqlserver2005 windows73.定义 sqlserver 系统服务器所使用的数据库管理系统(dbms)sql 是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。 数据流图 简称dfd,就是采用图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。e-r图 为实体-联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。数据字典 (datadictionary)是一种用户可以访问的记录数据库和应用程序元数据的目录。主动数据字典是指在对数据库或应用程序结构进行修改时,其内容可以由dbms自动更新的数据字典。被动数据字典是指修改时必须手工更新其内容的数据字典。4.可行性分析的前提4.1要求主要功能:为老师和学生提供一个学生成绩管理平台,方便老师和学生对成绩信息进行管理。性能要求:本系统可供管理员方便的对学生成绩进行操作,以及统计学生成绩情况以便于老师对学生进行辅导。输出要求:数据完整,详实,简捷,快速,实时。安全与保密要求:管理员享有对系统的所有权限,学生只享有对自己信息进行查询的权限。4.2目标系统实现后,可以减少人力资源的浪费,使得教学部门可以对学生成绩进行汇总及统计来对学生的状况进行准确评估。4.3决定可行性的主要因素成本/效益分析结果,效益成本。 技术可行,现有技术可完全承担开发任务。操作可行,软件能被原有工作人员快速接受。5.可行性分析5.1技术可行性分析利用个人电脑中端进行编译,将完成的代码进行运行,并把相应的数据库进行连接,使输入的数据能够及时储存到数据库内,并在需要时调出进行修改。以上内容均可通过数据库等软件实现,理论上可行。5.2经济可行性分析为完成只需付出1台电脑、1个人及大约1周的时间。不过此软件的回报会在相当一段时间内可节约教师、管理者的很多时间,以用来在其他方面的支出。长期累计,收益远远大于支出,所以在经济方面值得设计。5.3操作可行性分析使用本软件人员不需要有很多计算机基础,只要能基本懂得计算机软件的使用方法即可。三、需求分析需求分析是一组活动的总称,作为系统分析员,必须协同软件用户共同完成。而需求分析的任务是定义待开发的软件的功能、性能等指标。首先要了解用户的相关事务。在这个过程中,可以提出自己有建设性的想法和建议,只有这样,用户和系统设计人员才会在系统提供的事务上达成一致,这对于软件来说是相当重要的。其次要分析用户的事务流程,前面了解的用户事务只是一些离散的事务活动,而事务流程是一种重要的信息,比如用户登录这个流程,他需要经历用户名和密码的输入,正确用户类型的选择这些活动,然后将了解到的用户活动加以整理并按照这些活动所固有的次序形成业务流程。还要了解用户对软件的期望值,除了需要能够正确处理用户的事务外,还需要了解用户对系统的其他需求,比如系统的安全性。这些对于用户而言也显得尤为重要。最后整理出用户需求并评审需求。1. 系统任务描述系统模块的设计应该遵循整个系统总体设计思路,基于java开发工具与数据库sql设计,主要完成的设计如下:1.1. 系统目标(1) 根据查询条件实现学生成绩的查询(2) 学生成绩信息的添加、修改、删除。1.2. 系统设计与功能分析学生成绩管理系统,可用于学校等机构的学生成绩信息管理,查询,更新与维护,使用方便,易用性强,图形界面清晰明了。该软件用java语言编写,用sqlserver2005数据库作为后台的数据库进行信息的存储,用sql语句完成学生成绩的查询、录入,修改,删除等。用jdbc驱动实现前台java与后台sql数据库的连接。java语言跨平台性强,可以在windows,linux,ubuntu等系统下使用,方便简单,安全性好。sqlserver2005数据库高效安全,两者结合可相互利用各自的优势。该系统实现的大致功能:(1)用户登陆界面。该界面可以选择使用者的身份,“管理员,学生”。不同的身份有不同的操作界面和功能权限。id号和密码输入正确即可登录。(3) 管理员管理界面。拥有最高的权限。允许添加、修改、删除、查询学生成绩。(3)学生登录界面。学生只能对自己成绩进行查询操作。(4)登录的用户信息分别存储在sql数据库的“管理员登录表”“学生登录表”中,如果用户信息不存在这两张表中,将会无权利登录本管理系统。保证了本管理系统的安全性。1.3. 性能需求分析(1) 登录、用户界面需求:简洁、易懂、易用、友好的用户界面。(2) 安全保密性需求:只有凭借用户名和密码登陆系统,才能进行信息的管理等。2. 系统概要设计2.1数据需求数据字典:实体属性管理员登录id,密码学生登录id,密码,学号,姓名,学科,成绩管理员信息表:字段名类型空值约束条件登录idnchar(10)not null主键密码nchar(10)not null学生登录表:字段名类型空值约束条件学号nchar(10)not null外键登录idnchar(10)not null密码nchar(10)not null学生信息表:字段名类型空值约束条件学号nchar(10)not null主键姓名nchar(10)not null学科nchar(10)not null成绩nchar(10)not null数据流图:学生成绩系统管理员学 生 登录查询 信息反馈 信息反馈 登录操作 添加成绩修改成绩管理员验证信息学生成绩表删除成绩查询成绩验证信息查询成绩学生2.2.功能需求(1)对学生成绩进行添加、修改、删除、查询等操作。(2)统计所有及格的学生成绩。(3)统计所有不及格的学生成绩。3.系统详细设计3.1概念结构设计密码账号学科学号姓名管理员学 生成绩密码账号3.2逻辑结构设计表结构:管理员表:managerlogin(user,password)学生登录表:studentlogin(sno,user,password)学生成绩表:studentscore(sno,sname,subject,score)3.3系统功能设计学生成绩管理系统管理员登录学生登录查询成绩查询成绩删除成绩修改成绩添加成绩四、总体设计1设计概述根据需求把整个系统分化成不同的模块,每个模块完成一个特定的子功能。把这些模块结合起来组成一个整体。逐一实现各个功能;2.系统总体结构及功能模块划分经过对系统的需求分析,学生成绩管理系统主要划分为两个部分:学生成绩查询和学生成绩管理。学生成绩管理系统学生成绩管理学生成绩查询2.1. 学生成绩查询模块学生成绩查询全部及格成绩全部成绩查询全部不及格成绩2.2.学生成绩管理模块学生成绩管理学生成绩删除学生成绩修改学生成绩添加3. 安全保密设计3.1 用户登录安全性系统设计了登录界面,每个合法用户有用户名及一个密码,只有当用户输入正确的用户名及密码组合后才能够对学生信息进行操作。五、详细设计1.概述详细设计阶段的根本目标是确定应该怎样具体的实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。2.系统程序流程图程序流程图又称为程序框图,它是历史悠久使用最广泛的描述软件设计的方法。它可将整个程序的总体流程清楚明白的显示出来。 3.系统主要功能模块及关键代码frame = new jframe();frame.settitle(u767bu5f55);frame.setbounds(450, 200, 450, 300);frame.setdefaultcloseoperation(jframe.exit_on_close);frame.getcontentpane().setlayout(null);frame.setvisible(true);jlabel lblnewlabel = new jlabel(u5b66u751fu6210u7ee9u7ba1u7406u7cfbu7edf);lblnewlabel.setfont(new font(楷体, font.plain, 20);lblnewlabel.setbounds(139, 39, 160, 29);frame.getcontentpane().add(lblnewlabel);jbutton btnnewbutton = new jbutton(u7ba1u7406u5458u767bu5f55);btnnewbutton.addactionlistener(new actionlistener() public void actionperformed(actionevent arg0) frame.setvisible(false);new managerlogin(););btnnewbutton.setfont(new font(楷体,font.plain, 15);btnnewbutton.setbounds(161, 88, 125, 36);frame.getcontentpane().add(btnnewbutton);jbutton btnnewbutton_1 = new jbutton(u5b66u751fu767bu5f55);btnnewbutton_1.addactionlistener(new actionlistener() public void actionperformed(actionevent arg0) frame.setvisible(false);new studentlogin(););btnnewbutton_1.setfont(new font(楷体, font.plain, 15);btnnewbutton_1.setbounds(161, 157, 125, 36);frame.getcontentpane().add(btnnewbutton_1);管理员登录frame = new jframe();frame.settitle(u7ba1u7406u5458u767bu5f55);frame.setbounds(450, 200, 450, 300);frame.setdefaultcloseoperation(jframe.exit_on_close);frame.getcontentpane().setlayout(null);frame.setvisible(true);jlabel lblnewlabel = new jlabel(u7ba1u7406u5458u767bu5f55);lblnewlabel.setfont(new font(楷体, font.plain, 20);lblnewlabel.setbounds(162, 34, 117, 50);frame.getcontentpane().add(lblnewlabel);jlabel lblnewlabel_1 = new jlabel(u8d26u53f7);lblnewlabel_1.setfont(new font(楷体, font.plain, 20);lblnewlabel_1.setbounds(112, 92, 54, 25);frame.getcontentpane().add(lblnewlabel_1);jlabel lblnewlabel_2 = new jlabel(u5bc6u7801);lblnewlabel_2.setfont(new font(楷体, font.plain, 20);lblnewlabel_2.setbounds(112, 154, 54, 18);frame.getcontentpane().add(lblnewlabel_2);textfield = new jtextfield();textfield.setbounds(176, 94, 130, 21);frame.getcontentpane().add(textfield);textfield.setcolumns(10);textfield_1 = new jtextfield();textfield_1.setbounds(176, 155, 130, 21);frame.getcontentpane().add(textfield_1);textfield_1.setcolumns(10);jbutton btnnewbutton = new jbutton(u53d6u6d88);btnnewbutton.addactionlistener(new actionlistener() public void actionperformed(actionevent e) frame.setvisible(false);new mainlogin(););btnnewbutton.setfont(new font(楷体, font.plain, 20);btnnewbutton.setbounds(233, 209, 88, 25);frame.getcontentpane().add(btnnewbutton);jbutton btnnewbutton_1 = new jbutton(u786eu5b9a);btnnewbutton_1.addactionlistener(new actionlistener() public void actionperformed(actionevent e) dbconnection db = new dbconnection();preparedstatement pst = null;resultset rs = null;if(textfield.gettext().trim().equals()|textfield_1.gettext().trim().equals()joptionpane.showmessagedialog(null, 输入不能为空!);return;trypst = db.con.preparestatement(select * from managerlogin where user=?,password=?);pst.setstring(1,(textfield.gettext().trim().tostring();pst.setstring(2,(textfield_1.gettext().trim().tostring();rs = pst.executequery();while(rs.next()frame.setvisible(false);new maininfo();catch(sqlexception e1)system.out.println(sqlexception:+e1.getmessage();finallytryif(db.con!=null)db.con.close();db.con = null;if(pst!=null)pst.close();pst = null;if(rs!=null)rs.close();rs = null;catch(sqlexception e1)e1.printstacktrace(););btnnewbutton_1.setfont(new font(楷体, font.plain, 20);btnnewbutton_1.setbounds(121, 209, 88, 25);frame.getcontentpane().add(btnnewbutton_1);学生登录管理员登录后操作主界面frame = new jframe();frame.settitle(u4e3bu9875);frame.setbounds(450, 200, 450, 300);frame.setdefaultcloseoperation(jframe.exit_on_close);frame.getcontentpane().setlayout(null);frame.setvisible(true);jbutton btnnewbutton = new jbutton(u6dfbu52a0u6210u7ee9);btnnewbutton.addactionlistener(new actionlistener() public void actionperformed(actionevent arg0) frame.setvisible(false);new addscore(););btnnewbutton.setfont(new font(楷体, font.plain, 17);btnnewbutton.setbounds(74, 87, 106, 35);frame.getcontentpane().add(btnnewbutton);jbutton btnnewbutton_1 = new jbutton(u4feeu6539u6210u7ee9);btnnewbutton_1.addactionlistener(new actionlistener() public void actionperformed(actionevent e) string str = joptionpane.showinputdialog(null,请输入要修改的学生学号);tryif(str.equals()joptionpane.showmessagedialog(null, 不能为空!);return;elsenew updatescore(str);frame.setvisible(false);catch(java.lang.nullpointerexception e1);btnnewbutton_1.setfont(new font(楷体, font.plain, 17);btnnewbutton_1.setbounds(254, 87, 106, 35);frame.getcontentpane().add(btnnewbutton_1);jbutton btnnewbutton_2 = new jbutton(u5220u9664u6210u7ee9);btnnewbutton_2.addactionlistener(new actionlistener() public void actionperformed(actionevent e) string str = joptionpane.showinputdialog(null,请输入要删除的学生学号);tryif(str.equals()joptionpane.showmessagedialog(null, 不能为空!);return;new deletescore(str);catch(java.lang.nullpointerexception e1);btnnewbutton_2.setfont(new font(楷体, font.plain, 17);btnnewbutton_2.setbounds(74, 160, 106, 35);frame.getcontentpane().add(btnnewbutton_2)jbutton btnnewbutton_3 = new jbutton(u67e5u8be2u6210u7ee9);btnnewbutton_3.addactionlistener(new actionlistener() public void actionperformed(actionevent e) frame.setvisible(false);new queryscore(););btnnewbutton_3.setfont(new font(楷体, font.plain, 17);btnnewbutton_3.setbounds(254, 160, 106, 35);frame.getcontentpane().add(btnnewbutton_3jlabel lblnewlabel = new jlabel(u6210u7ee9u7ba1u7406u7cfbu7edf);lblnewlabel.setfont(new font(楷体, font.plain, 20);lblnewlabel.setbounds(150, 34, 126, 23);frame.getcontentpane().add(lblnewlabel);添加成绩模块frame = new jframe();frame.settitle(u6dfbu52a0u6210u7ee9);frame.setbounds(450, 200, 450, 300);frame.setdefaultcloseoperation(jframe.exit_on_close);frame.getcontentpane().setlayout(null);frame.setvisible(true);jlabel lblnewlabel = new jlabel(u6dfbu52a0u6210u7ee9);lblnewlabel.setfont(new font(楷体, font.plain, 20);lblnewlabel.setbounds(177, 29, 80, 24);frame.getcontentpane().add(lblnewlabel);jlabel lblnewlabel_1 = new jlabel(u5b66u53f7);lblnewlabel_1.setfont(new font(楷体, font.plain, 17);lblnewlabel_1.setbounds(50, 86, 54, 18);frame.getcontentpane().add(lblnewlabel_1);jlabel lblnewlabel_2 = new jlabel(u59d3u540d);lblnewlabel_2.setfont(new font(楷体, font.plain, 17);lblnewlabel_2.setbounds(240, 86, 54, 18);frame.getcontentpane().add(lblnewlabel_2);textfield = new jtextfield();textfield.setbounds(107, 86, 82, 21);frame.getcontentpane().add(textfield);textfield.setcolumns(10);textfield_1 = new jtextfield();textfield_1.setbounds(304, 86, 82, 21);frame.getcontentpane().add(textfield_1);textfield_1.setcolumns(10);jlabel lblnewlabel_3 = new jlabel(u79d1u76ee);lblnewlabel_3.setfont(new font(楷体, font.plain, 17);lblnewlabel_3.setbounds(50, 170, 54, 18);frame.getcontentpane().add(lblnewlabel_3);textfield_2 = new jtextfield();textfield_2.setbounds(107, 170, 82, 21);frame.getcontentpane().add(textfield_2);textfield_2.setcolumns(10);jlabel lblnewlabel_4 = new jlabel(u6210u7ee9);lblnewlabel_4.setfont(new font(楷体, font.plain, 17);lblnewlabel_4.setbounds(240, 170, 54, 18);frame.getcontentpane().add(lblnewlabel_4);textfield_3 = new jtextfield();textfield_3.setbounds(304, 170, 82, 21);frame.getcontentpane().add(textfield_3);textfield_3.setcolumns(10);jbutton btnnewbutton = new jbutton(u786eu5b9a);btnnewbutton.addactionlistener(new actionlistener() public void actionperformed(actionevent e) string sno = textfield.gettext().trim().tostring();string sname = textfield_1.gettext().trim().tostring();string subject = textfield_2.gettext().trim().tostring();string score = textfield_3.gettext().trim().tostring();dbconnection db = new dbconnection();preparedstatement pst = null;resultset rs = null;if(sno.equals()|sname.equals()|subject.equals()|score.equals()joptionpane.showmessagedialog(null, 输入不能为空!);return;trypst = db.con.preparestatement(insert into studentscore values(?,?,?,?);pst.setstring(1, sno);pst.setstring(2, sname);pst.setstring(3, subject);pst.setstring(4, score);pst.execute();joptionpane.showmessagedialog(null, 添加成功!);textfield.settext();textfield_1.settext();textfield_2.settext();textfield_3.settext();catch(sqlexception e1)system.out.println(sqlexception:+e1.getmessage();finallytryif(db.con!=null)db.con.close();db.con = null;if(pst!=null)pst.close();pst = null;catch(sqlexception e1)e1.printstacktrace(););btnnewbutton.setfont(new font(楷体, font.plain, 17);btnnewbutton.setbounds(96, 229, 93, 23);frame.getcontentpane().add(btnnewbutton);jbutton btnnewbutton_1 = new jbutton(u8fd4u56de);btnnewbutton_1.addactionlistener(new actionlistener() public void actionperformed(actionevent e) frame.setvisible(false);new maininfo(););btnnewbutton_1.setfont(new font(楷体, font.plain, 17);btnnewbutton_1.setbounds(250, 229, 93, 23);frame.getcontentpane().add(btnnewbutton_1);修改成绩模块frame = new jframe();frame.settitle(u4feeu6539u6210u7ee9);frame.setbounds(450, 200, 450, 300);frame.setdefaultcloseoperation(jframe.exit_on_close);frame.getcontentpane().setlayout(null);jlabel lblnewlabel = new jlabel(u4feeu6539u6210u7ee9);lblnewlabel.setfont(new font(楷体, font.plain, 20);lblnewlabel.setbounds(177, 29, 80, 24);frame.getcontentpane().add(lblnewlabel);jlabel lblnewlabel_1 = new jlabel(u5b66u53f7);lblnewlabel_1.setfont(new font(楷体, font.plain, 17);lblnewlabel_1.setbounds(50, 86, 54, 18);frame.getcontentpane().add(lblnewlabel_1);jlabel lblnewlabel_2 = new jlabel(u59d3u540d);lblnewlabel_2.setfont(new font(楷体, font.plain, 17);lblnewlabel_2.setbounds(2

温馨提示

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

评论

0/150

提交评论