成绩管理系统_第1页
成绩管理系统_第2页
成绩管理系统_第3页
成绩管理系统_第4页
成绩管理系统_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

成绩管理系统成绩管理系统成绩管理系统xxx公司成绩管理系统文件编号:文件日期:修订次数:第1.0次更改批准审核制定方案设计,管理制度JAVA程序设计学院:班级:学号:姓名:目录1项目研究开发的背景及意义 2本课题设计学术价值、理论意义和实践意义 2本课题设计拟研究的主要问题 2重点和难点 3研究方法、预期效益 3本项目创新点和特色 32需求分析 3开发背景 3项目目标 4运行环境 43技术路线及关键技术 7系统总体功能图 7学生成绩管理系统的功能模块简介: 10系统运用的主要技术: 23数据库设计 24连接数据库 274测试报告及系统评价 28系统简介: 28系统特色及缺点: 285个人感受及收获 376大作业总结 371项目研究开发的背景及意义本课题设计学术价值、理论意义和实践意义现在的社会知识经济在世界经济发展的地位越来越高,国家综合国力和国际竞争能力越来越取决于教育发展,科学技术和知识创新的水平,教育在经济和社会发展过程中将呈现出越来越突出的重要作用。学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段。但是有些学校还是使用传统人工的方式管理学生成绩,填写各种表格,这种管理方式存在着许多缺点,如:效率低,保密性差,另外所用其时间长,产生大量的文件和数据,这对于查找,更新和维护都带来了不少的困难。在此次大作业中,我综合java编程、SQL数据库和SQL查询语言来实现一个简单的学生成绩管理系统。本课题设计拟研究的主要问题一个完整的学生管理系统包括四个功能模板:(1)基本信息管理:包括对学生、教师、课程、成绩信息进行查找、删除、修改和添加。(2)课表查询:学生和教师都可以对自身的课表进行查询。(3)统计功能:对学生单科成绩、总成绩、所有学生成绩的平均分进行统计,并作出相应的排名。(4)图形界面,将学生单科成绩用柱形图表示出来,清晰简单地表示出成绩的分布情况。重点和难点(1)界面要求美观,需熟练掌握利用java语言来布局。(2)数据库多个表联系,利用视图或者存储过程,需熟练掌握数据库的操作。(3)模糊查找和精确查找,在界面上要求两者兼容,数据库上要求联系紧密。(4)统计功能,单科和总成绩要求进行统计。(5)图形界面,系统主界面加入背景图片以及成绩统计时以不同颜色的柱形图形象表达。研究方法、预期效益本次课程设计属于很普遍的应用研究类,我只是在大家做的基础上加上我自己的的想法以及设计。同时结合我们现在学生的成绩情况来进行设计。我采用的方法是理论分析结合实际来进行研究的,通过学习经验来建立模型,在此基础上对学生成绩管理系统进行设计。这个系统将在12月下旬设计结束,界面美观,使用方便,功能较全的一个原型系统。此系统可以应用于落后的乡村的中小学教学管理。本项目创新点和特色(1)本系统采用java和数据库结合的方式开发,可以对大量的数据进行存储和操作。(2)本系统使用java开发,具有跨平台特性。(3)本系统功能俱全,具有学生、教师、课程的信息管理和多条件的成绩查询和课程查询,成绩统计和利用柱形图反应成绩分布。(4)系统具有安全性,用户只能通过用户名和密码访问。同时设定三种用户:管理员、学生、教师。不同的用户权限不同。2需求分析开发背景当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理.使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性.尤其对于复杂的信息管理,计算机能够充分发挥它的优越性.。管理信息系统是进行信息的采集、存储、加工、维护和使用的系统,它是随着管理科学和技术科学的发展而形成的。学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段,对学生来说可以轻松的查阅自己在校的成绩,个人信息和课表查询等,但是一直以来在落后的乡村一些中小学人们都是靠传统人工的方式管理学生成绩,这种管理方式存在着许多缺点,如:效率低,保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用,作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,有着手工管理所无法比拟的优点,例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生成绩管理的效率,也是企业的科学化,正规化管理,与世界接轨的重要条件。因此,开发这样的一套成绩管理系统成为很有必要的事情。学生成绩管理系统提供了比较全面的学生成绩管理管理功能,方便系统管理员对学生成绩等信息的添加、修改、删除、查询、统计等操作。项目目标(1)管理员能够实现对整个学生信息的添加、修改、删除、查询等操作。(2)管理员能够实现对整个教师信息的添加、修改、删除、查询等操作。(3)管理员能够实现对整个课程信息的添加、修改、删除、查询等操作。(4)学生、教师、管理员对整个成绩的查询。(5)教师、学生查询课表。(6)系统对成绩具有统计计算的功能,将成绩情况用柱形图形象地表现出来,并对成绩进行排名,包括单科和总成绩。(7)不同的角色不同的权限。运行环境学生成绩对运行环境没有很高的要求,而且可以跨平台运行,包括现有的linux和uniux等操作系统。3技术路线及关键技术系统总体功能图(1)系统结构图学生成绩管理系统学生成绩管理系统管理员学生老师学生信息管理教师信息管理课程信息管理成绩信息管理课程授课管理查询成绩查询个人课表查询成绩统计查询成绩查询教师课表查询成绩统计图系统总结构图(2)系统流程图:在系统设计中,将用户分成三种权限,不同权限的用户,则访问的内容不同、控制的信息也不同,系统结构图如图,系统流程图如图。开始开始选择用户登录输入用户名密码正确退出结束操作Y图系统流程图(3)在系统结构图中,我们可以看到管理员对学生、课程、成绩、教师的基本信息有增删改除的功能,以下是具体功能模块结构图:学生信息管理学生信息管理学生信息添加学生信息修改学生信息查询学生信息删除图学生信息管理模块教师信息管理教师信息管理教师信息添加教师信息修改教师信息查询教师信息删除图教师信息管理模块课程信息管理课程信息管理课程信息添加课程信息修改课程信息查询课程信息删除图课程信息管理模块成绩信息管理成绩信息管理成绩信息添加成绩信息修改成绩信息查询成绩信息删除成绩统计图成绩信息管理模块学生成绩管理系统的功能模块简介:(1)基本信息管理(以学生为例)if(obj==tianjia)rim(); Sname=().trim(); sex=().trim(); age1=().trim()); tel_no=().trim(); classno=().trim(); addr=().trim(); if()==0||()==0||()==0||age1==0||()==0||()==0||()==0||()==0) { (this,"请添加完整信息!","提示信息",; } else { try { ps=("insertintostudentvalues(,,,,,,)"); (1,Sno); (2,Sname); (3,sex); (4,classno); (5,addr); (6,age1); (7,tel_no); (this,"确定添加吗","提示信息",; (""); (""); (""); (""); (""); (""); (""); rs=(); } catch(SQLExceptionsql) { (this,"添加成功!","提示信息",; } } } if(obj==xiugai)rim(); Sno=().trim(); Sname=().trim(); sex=().trim(); age1=().trim()); tel_no=().trim(); addr=().trim(); classno=().trim(); try { ps=("updatestudentsetSno=,Sname=,sex=,classno=,addr=,age=,tel_no=whereSno="); (1,Sno); (2,Sname); (3,sex); (4,classno); (5,addr); (6,age1); (7,tel_no); (8,no); (this,"确定修改吗","提示信息",; (""); (""); (""); (""); (""); (""); (""); (this,"修改成功!","提示信息",; rs=(); (); } catch(SQLExceptionsql) { ((Component)null,(),"提示信息",; } } if(obj==shanchu)rim(); ps=("deletefromstudentwhereSno="); (1,no); (this,"确定删除吗","提示信息",; (""); (""); (""); (""); (""); (""); (""); rs=(); (this,"删除成功!","提示信息",; } catch(SQLExceptionsqlex) { (); } } if(obj==qingkong)repareStatement(s); rs=(); while()) { t=(1); } }catch(Exceptione){ (); } } if("数据库系统原理")) { s="selectavg(grade)fromtranscriptwhereCno=003126"; try{ st=().prepareStatement(s); rs=(); while()) { t=(1); } }catch(Exceptione){ (); } } if("多媒体技术基础")) { s="selectavg(grade)fromtranscriptwhereCno=003127"; try{ st=().prepareStatement(s); rs=(); while()) { t=(1); } }catch(Exceptione){ (); } } if("概率论与数理统计")) { s="selectavg(grade)fromtranscriptwhereCno=003128"; try{ st=().prepareStatement(s); rs=(); while()) { t=(1); } }catch(Exceptione){ (); } } return(t); } repareStatement(sql); Strings="selectsum(grade)astotalfromtranscript"; "s="+s); try{ st=().prepareStatement(s); rs=(); "rs="+rs); if()) { sum=("total"); "sum="+sum); } rs=null; s="selectsum(grade)fromtranscriptwhereCno=001325"; st=().prepareStatement(s); rs=(); if()) { sum=sum+(1); } rs=null; s="selectsum(grade)fromtranscriptwhereCno=001326"; st=().prepareStatement(s); rs=(); if()) { sum=sum+(1); } rs=null; s="selectsum(grade)fromtranscriptwhereCno=001328"; st=().prepareStatement(s); rs=(); if()) { sum=sum+(1); } rs=null; s="selectcount(distinctSno)fromtranscript"; st=().prepareStatement(s); rs=(); if()) { count=(1); } }catch(Exceptione){ (); } if(count==0) return"0"; else { sum=sum/count; return(sum); } } repareStatement(s); rs=(); while()) { num=(1); } }catch(Exceptione){ (); } } if("数据库系统原理")) { if(grade==60) s="selectcount(sno)fromtranscripta,coursebwheregrade<60and=andCname='数据库系统原理'"; if(grade==70) s="selectcount(sno)fromtranscripta,coursebwheregrade<70andgrade>=60and=andCname='数据库系统原理'"; if(grade==80) s="selectcount(sno)fromtranscripta,coursebwheregrade<80andgrade>=70and=andCname='数据库系统原理'"; if(grade==90) s="selectcount(sno)fromtranscripta,coursebwheregrade<90andgrade>=80and=andCname='数据库系统原理'"; if(grade==100) s="selectcount(sno)fromtranscripta,coursebwheregrade<100andgrade>=90and=andCname='数据库系统原理'"; try{ st=().prepareStatement(s); rs=(); while()) { num=(1); } }catch(Exceptione){ (); } } if("多媒体技术基础")) { if(grade==60) s="selectcount(sno)fromtranscripta,coursebwheregrade<60and=andCname='多媒体技术基础'"; if(grade==70) s="selectcount(sno)fromtranscripta,coursebwheregrade<70andgrade>=60and=andCname='多媒体技术基础'"; if(grade==80) s="selectcount(sno)fromtranscripta,coursebwheregrade<80andgrade>=70and=andCname='多媒体技术基础'"; if(grade==90) s="selectcount(sno)fromtranscripta,coursebwheregrade<90andgrade>=80and=andCname='多媒体技术基础'"; if(grade==100) s="selectcount(sno)fromtranscripta,coursebwheregrade<100andgrade>=90and=andCname='多媒体技术基础'"; try{ st=().prepareStatement(s); rs=(); while()) { num=(1); } }catch(Exceptione){ (); } } if("概率论与数理统计")) { if(grade==60) s="selectcount(sno)fromtranscripta,coursebwheregrade<60and=andCname='概率论与数理统计'"; if(grade==70) s="selectcount(sno)fromtranscripta,coursebwheregrade<70andgrade>=60and=andCname='概率论与数理统计'"; if(grade==80) s="selectcount(sno)fromtranscripta,coursebwheregrade<80andgrade>=70and=andCname='概率论与数理统计'"; if(grade==90) s="selectcount(sno)fromtranscripta,coursebwheregrade<90andgrade>=80and=andCname='概率论与数理统计'"; if(grade==100) s="selectcount(sno)fromtranscripta,coursebwheregrade<100andgrade>=90and=andCname='概率论与数理统计'"; try{ st=().prepareStatement(s); rs=(); while()) { num=(1); } }catch(Exceptione){ (); } } returnnum; } repareStatement(s); rs=(); while()) { count=(1); } }catch(Exceptione){ (); } returncount;}主要功能:对各科成绩和总成绩进行统计,算出它的平均分。同时显示每科小于60或者大于60分的同学成绩列表。并且用直方图将每个分数段的学生数量形象地表示出来。主要目的:在实际的学生成绩管理过程中,计算平均分是很重要的,便于学校和老师对学生总体成绩的了解。从而不断发现新的教学方法来提高总体学生的学习成绩。同时成绩分布图给予协助。(3)管理员界面及主函数入口模块:import.*;importclassGradeextendsJFrame{ privatestaticfinallongserialVersionUID=1L; //定义主框架 privateJFrameframe=newJFrame("学生成绩管理系统"); //定义菜单栏 privateJMenuBarBar=newJMenuBar(); //定义菜单 privateJToolBarstatusBar=newJToolBar();//状态栏status privateJMenuJMedit=newJMenu("成绩信息"); privateJMenuJMcount=newJMenu("统计"); privateJMenuJMhelp=newJMenu("帮助"); privateJMenuJMinfor=newJMenu("基本信息管理"); //定义菜单项 privateJMenuItemJMIinput=newJMenuItem("信息添加"); privateJMenuItemJMImodify=newJMenuItem("成绩查询"); privateJMenuItemJMIall=newJMenuItem("成绩统计"); privateJMenuItemJMIgraphics=newJMenuItem("图形统计"); //privateJMenuItemJMIsignal=newJMenuItem("个人成绩"); privateJMenuItemJMIhelp=newJMenuItem("系统信息"); privateJMenuItemtohelp=newJMenuItem("帮助主题"); privateJMenuItemJMstudent=newJMenuItem("学生信息管理"); privateJMenuItemJMteacher=newJMenuItem("教师信息管理"); privateJMenuItemJMcourse=newJMenuItem("课程信息管理"); privateJMenuItemJMts=newJMenuItem("授课管理"); privateJMenuItemJMsc=newJMenuItem("成绩管理"); ImageIconimage; Icontupian; JLabellabel_pic; Componentcom=null; //定义文本标签 privateJLabeltext=newJLabel("",; //定义面板 privateContainercon=(); //显示当前时间 DateFormatdf1=,;Dated=newDate();//当前日期和时间Stringmystring=(d); JLabelStatusLabel1=newJLabel("欢迎您的使用",;//添加时间JLabelStatusLabel2=newJLabel("显示当前状态",;JLabelStatusLabel4=newJLabel(mystring,; //构造函数 publicGrade(){ //把菜单栏加入框架 (Bar); //(statusBar); //把菜单加入菜单栏 (JMedit); (JMcount); (JMinfor); (JMhelp); //把菜单项加入菜单 //(JMIinput); (JMsc); (); (JMImodify); (JMIall); (); //(JMIsignal); //(); (JMIgraphics); (JMIhelp); (); (tohelp); (JMstudent); (); (JMteacher); (); (JMcourse); (); (JMts); tupian=newImageIcon("pic\\");//加载图片 label_pic=newJLabel(tupian); (newBorderLayout()); (label_pic,; com=label_pic; (DesignStatusBar(),; //设置框架 (200,200); (400,400); (true); //增加监听器 (newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ score_querys=newscore_query(); (true); ()); }}); (newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ newAllgradeCount(); ()); }}); (newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ Photoa=newPhoto(); ()); }}); (newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ (com); Manage_studenta=newManage_student(); (true); (a,; com=a; ()); }}); (newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ (com); Manage_teachera=newManage_teacher(); (true); (a,; com=a; ()); }}); (newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ (com); Manage_coursea=newManage_course(); (true); (a,; com=a; ()); }}); (newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ (com); Manage_teacha=newManage_teach(); (true); (a,; com=a; ()); }}); (newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ (com); Manage_scorea=newManage_score(); (true); (a,; com=a; ()); }}); (newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ (null,"学生成绩管理系统,马文凭制作"); }}); (newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ (null,"如有问题请"); }}); } publicJPanelDesignStatusBar() { (false); JPanelpanel=newJPanel(); (newGridLayout(1,5)); (panel); //添加状态栏 (StatusLabel1); (StatusLabel2); (StatusLabel4); returnpanel; } publicstaticvoidmain(String[]args){ Gradea=newGrade(); }}主要功能:提供系统跟用户接口的主界面,并提供了整个程序的入口地址,也就是主入口函数main(String[]arg){…}具体的界面请见下面的界面展示。实现目的:设定学生成绩管理系统管理员界面,将功能选项放在主界面上,方便管理员使用。其中学生和教师界面和管理员界面大同小异,只是设定一些功能,如基本信息管理学生和教师不能进行操作。具体实现:系统是一个简单的界面,设定菜单栏和状态栏,方便用户使用。其中主要功能模板的函数分别为:(1)实现学生信息的添加、删除、查询、修改功能。(2)实现课程信息的添加、删除、查询、修改功能。(3)实现教师信息的添加、删除、查询、修改功能。(4)Manage_teach实现授课的添加、删除、查询、修改功能。(5)实现分数的计算。(6)实现分数的分布图,将数据以柱形图的形式表示出来。(7)实现数据库的连接。(8)实现学生课表查询。(9)实现教师课表查询。模块特色:(1)成绩查询丰富,可按学号、姓名、课程名进行模糊成绩查询。(2)课程查询丰富,可按学号、教师号、课程名、教师名、学生名进行查询。(3)成绩统计:将学生的成绩进行统计并用图形界面柱形图形象表示出来。(4)界面友好,实现不同用户的快速切换。(5)系统易操作,用户易掌握。系统运用的主要技术:技术一:数据库技术在本次大作业中,采用了SQLserver2000数据库。在数据库中,通过编写数据库脚本生成score数据库,同时在score中生成六张表和四个视图:学生(student)、教师(teacher)、课程(course)、成绩(transcript)、授课(teach)、管理员(admin)、成绩视图、学生课表视图、教师课表视图。在系统中,主要是对这五张表和四个视图进行操作。所以首先需要连接数据库,创建数据源StudentScore。在此次系统设计中,需熟练掌握SQL语句,充分使用聚合函数。如果在编写Java语句的时候,数据库语言如若出错,可以在SQLsever2000测试语句是否有错,如果没错,可能是Java语句有错或者参数没有传进去,在Java的界面可以用输出结果来测试。同时利用巧妙使用数据库中视图来查询学生成绩、学生课表、教师课表。技术二:图形界面学生成绩管理系统主要是对学生成绩进行管理,将学生成绩直方分布图表示。形象表现出学生成绩的分布情况,方便学校老师对学生成绩的掌握,以便教师不断地改善自身的教育方法。技术三:多媒体学生成绩管理系统中加入图片作为系统界面背景,将界面美观化,给与系统使用者视觉享受。数据库设计建数据库:setnocountonsetdateformatymdusemastergoifnotexists(select*fromsysloginswherename='score')execsp_addloginscore,scorego/*createdatabase*/ifexists(select*fromsysdatabaseswherename='score')dropdatabasescoregocreatedatabasescoreonprimary(name='score',filename='d:\sqlDatabase\',size=1,maxsize=5,filegrowth=1)logon(name=score_log,filename='d:\sqlDatabase\score_log',size=1,maxsize=5,filegrowth=1)go//建立学生表createtablestudent(Snochar(7)notnullprimarykey,check(Snolike'[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),Snamevarchar(10)notnull,sexchar(1)notnull,classnovarchar(20)notnull,addrchar(50)null,ageintnull,tel_novarchar(11)null,);//建立教师表createtableteacher(Tnochar(7)notnullprimarykey,check(Tnolike'[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),Tnamevarchar(20)notnull,sexchar(1)notnull,titlevarchar(8)notnull,ageintnull);//创建课程createtablecourse(Cnochar(6)notnullprimarykey,check(Cnolike'[0-9][0-9][0-9][0-9][0-9][0-9]'),Cnamevarchar(20)notnull,periodintnotnull,creditintnotnull);//创建成绩createtabletranscript(Snochar(7)notnull,Cnochar(6)notnull,gradeintnotnull,primarykey(Sno,Cno),FOREIGNKEY(Sno)REFERENCESstudent(Sno),FOREIGNKEY(Cno)REFERENCEScourse(Cno));//创建授课表createtableteaching(Tnochar(7)notnull,Cnochar(6)notnull,primarykey(Tno,Cno),FOREIGNKEY(Tno)REFERENCESteacher(Tno),FOREIGNKEY(Cno)REFERENCEScourse(Cno));创建学生成绩视图createviewstu_scoreasselect,Sname,classno,,Cname,gradefromstudentasa,courseasb,transcriptascwhere=and=创建教师查询课表视图createviewstudent_courseasselect,Tname,title,,Cnamefromcoursec,teachert,teachingbwhere=and=建立学生查询课表视图createviewstu_courseasselect,Sname,Cname,fromstudents,transcriptt,coursecwhere=and=连接数据库为方便数据库的管理和使用,在系统开发过程中,将连接数据库写在一个conn文件中,如果哪个模块功能需要连接数据库,直接调用Connect()方法就可以。importclassconn{privatestaticConnectioncon;staticStringurl="jdbc:odbc:StudentScore";staticStringusername="sa";staticStringpassword="1114";publicstaticConnectionConnect(){ try { (""); con=(url,username,password); } catch(C

温馨提示

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

评论

0/150

提交评论