




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科学生综合性实验报告课程名称:Java开发技术工程名称:学生成绩管理系统学生姓名学号指导教师开课学期2023至2023学年第一学期完成时间2023年1月3日目录摘要21工程研究开发的背景及意义21.1本课题设计学术价值、理论意义和实践意义21.2本课题设计拟研究的主要问题21.3重点和难点31.4研究方法、预期效益31.5本工程创新点和特色32需求分析32.1开发背景32.2工程目标42.3运行环境42.4任务说明书43技术路线及关键技术73.1系统总体功能图73.2学生成绩管理系统的功能模块简介:103.3系统运用的主要技术:233.4数据库设计243.5连接数据库274测试报告及系统评价284.1系统简介:284.2系统特色及缺点:285系统使用说明295.1用户操作指南:296个人感受及收获377大作业总结37感谢388参考文献:38摘要人类已进入21世纪,科学技术突飞猛进,经济知识和信息产业初见端倪,特别是信息技术和网络技术的讯速开展和广泛应用,对社会的政治,经济,军事,文化等领域产生越来越深刻.学生成绩管理系统是一个教育单位不可缺少的局部,它的内容对于学校的决策者和管理者来说都至关重要。本次大作业的学生成绩管理系统是用java编程+SQLserver2000数据库+SQL查询语言实现的.重点介绍了学生成绩管理系统的实现过程:包括系统需求分析、功能设计、数据库设计、系统实现、系统测试和调试等。关键字:成绩管理统计信息管理数据库1工程研究开发的背景及意义1.1本课题设计学术价值、理论意义和实践意义现在的社会知识经济在世界经济开展的地位越来越高,国家综合国力和国际竞争能力越来越取决于教育开展,科学技术和知识创新的水平,教育在经济和社会开展过程中将呈现出越来越突出的重要作用。学生成绩管理系统是一个教育单位不可缺少的局部,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段。但是有些学校还是使用传统人工的方式管理学生成绩,填写各种表格,这种管理方式存在着许多缺点,如:效率低,保密性差,另外所用其时间长,产生大量的文件和数据,这对于查找,更新和维护都带来了不少的困难。在此次大作业中,我综合java编程、SQL数据库和SQL查询语言来实现一个简单的学生成绩管理系统。1.2本课题设计拟研究的主要问题一个完整的学生管理系统包括四个功能模板:〔1〕根本信息管理:包括对学生、教师、课程、成绩信息进行查找、删除、修改和添加。〔2〕课表查询:学生和教师都可以对自身的课表进行查询。〔3〕统计功能:对学生单科成绩、总成绩、所有学生成绩的平均分进行统计,并作出相应的排名。〔4〕图形界面,将学生单科成绩用柱形图表示出来,清晰简单地表示出成绩的分布情况。1.3重点和难点〔1〕界面要求美观,需熟练掌握利用java语言来布局。〔2〕数据库多个表联系,利用视图或者存储过程,需熟练掌握数据库的操作。〔3〕模糊查找和精确查找,在界面上要求两者兼容,数据库上要求联系紧密。〔4〕统计功能,单科和总成绩要求进行统计。〔5〕图形界面,系统主界面参加背景图片以及成绩统计时以不同颜色的柱形图形象表达。1.4研究方法、预期效益本次课程设计属于很普遍的应用研究类,我只是在大家做的根底上加上我自己的的想法以及设计。同时结合我们现在学生的成绩情况来进行设计。我采用的方法是理论分析结合实际来进行研究的,通过学习经验来建立模型,在此根底上对学生成绩管理系统进行设计。这个系统将在12月下旬设计结束,界面美观,使用方便,功能较全的一个原型系统。此系统可以应用于落后的乡村的中小学教学管理。1.5本工程创新点和特色〔1〕本系统采用java和数据库结合的方式开发,可以对大量的数据进行存储和操作。〔2〕本系统使用java开发,具有跨平台特性。〔3〕本系统功能俱全,具有学生、教师、课程的信息管理和多条件的成绩查询和课程查询,成绩统计和利用柱形图反响成绩分布。〔4〕系统具有平安性,用户只能通过用户名和密码访问。同时设定三种用户:管理员、学生、教师。不同的用户权限不同。2需求分析2.1开发背景当今时代是飞速开展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理.使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其平安性.尤其对于复杂的信息管理,计算机能够充分发挥它的优越性.。管理信息系统是进行信息的采集、存储、加工、维护和使用的系统,它是随着管理科学和技术科学的开展而形成的。学生成绩管理系统是一个教育单位不可缺少的局部,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段,对学生来说可以轻松的查阅自己在校的成绩,个人信息和课表查询等,但是一直以来在落后的乡村一些中小学人们都是靠传统人工的方式管理学生成绩,这种管理方式存在着许多缺点,如:效率低,保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用,作为计算机应用的一局部,使用计算机对学生成绩信息进行管理,有着手工管理所无法比较的优点,例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、本钱低等。这些优点能够极大地提高学生成绩管理的效率,也是企业的科学化,正规化管理,与世界接轨的重要条件。因此,开发这样的一套成绩管理系统成为很有必要的事情。学生成绩管理系统提供了比较全面的学生成绩管理管理功能,方便系统管理员对学生成绩等信息的添加、修改、删除、查询、统计等操作。2.2工程目标〔1〕管理员能够实现对整个学生信息的添加、修改、删除、查询等操作。〔2〕管理员能够实现对整个教师信息的添加、修改、删除、查询等操作。〔3〕管理员能够实现对整个课程信息的添加、修改、删除、查询等操作。〔4〕学生、教师、管理员对整个成绩的查询。〔5〕教师、学生查询课表。〔6〕系统对成绩具有统计计算的功能,将成绩情况用柱形图形象地表现出来,并对成绩进行排名,包括单科和总成绩。〔7〕不同的角色不同的权限。2.3运行环境学生成绩对运行环境没有很高的要求,而且可以跨平台运行,包括现有的linux和uniux等操作系统。但是让学生成绩管理系统反响操作更快,我推荐用户使用如下的配置:最正确配置:CPU2GHz内存512M硬盘80GWindowsXP/linux/uniuxJDK1.6.0,Java程序开发环境Eclipse/MyEclipse,SQLsever20002.4任务说明书任务概述:通过在网上看一些学生成绩管理系统的源代码,设想自己系统该有的功能框架。将自己的设想和网上的进行比照,将自己的系统不断地完善。一下是此次大作业的工程进度安排表:表2.4-工程进度表阶段任务时间方案完成工作实际完成情况阶段一:分析选题阶段2023年11月20日-2023年11月30日接到大作业任务后,对供选题目进行分析,并通过查询资料及相关信息,结合我们所学习的知识及的具体情况,选择相应的题目并且确定工作方案。通过网上查阅地资料,结合自身目前所学的知识,并且结合了老师的相关意见,最终个人选择了学生成绩管理系统。该系统是桌面应用系统,结合数据库和java来完成。阶段二:程序编写及调试阶段阶段二:程序编写及调试阶段2023年12月1日-2023年12月9日思考程序的大体方向及主题思路,确定程序所包含的相关功能,同时完成对程序流程、模块以及相关类的设计。个人经过一番思考,确定程序大体的思路及程序包含的功能,即为教学单位提供一个能对学生成绩统计与管理,学生信息,教师信息,授课信息管理的系统。然后画出了程序主体的流程图,将系统分成三个大模块模块。成绩信息成绩统计根本信息管理2023年12月10日-2023年12月15日在前期设定的流程图和系统模块化的根底上,完成程序所有的具体局部代码的编写及各种相关功能的实现。经过一段的时间的编写,建立好数据库,同时完成了程序各个具体局部的实现,完成了三个模块及其他布局函数的编写,具体如下:〔1〕Manage_student.java实现学生信息的添加、删除、查询、修改功能。〔2〕Manage_course.java实现课程信息的添加、删除、查询、修改功能。〔3〕Manage_teacher.java实现教师信息的添加、删除、查询、修改功能。〔4〕Manage_teach实现授课的添加、删除、查询、修改功能。〔5〕SignalCount.java实现分数的计算〔6〕SignalCount.java实现分数的计算〔7〕Photo.java实现分数的分布图,将数据以柱形图的形式表示出来。〔8〕DataManager.java实现数据库的连接。阶段三:程序编写及调试阶段阶段三:报告撰写阶段阶段三:报告撰写阶段阶段三:程序完善阶段2023年12月16日-2023年12月21日完成了整个程序的编写工作之后,将数据库中的数据对我们的程序进行完善的测试,确保程序的准确性。使用所准备的数据库中不同的数据对程序进行测试,并且对得出的结果进行分析,最终得出测试结果没有错误的结论。确定程序没有错误,整个程序的具体情况与个人最初的目标相吻合。2023年12月22日-2023年12月27日完成大作业报告中的需求分析及程序分析局部的填写。基于在第一阶段所作的工作并结合收集的相关资料,我们用了很短的时间完成这一局部的填写。2023年12月28日-2023年12月31日完成大作业报告技术路线及测试报告局部的填写。基于在第二阶段所作的工作,对整个程序经过细致的分析最后对其进行逻辑的归类,完成了技术路线这一局部的填写;再对前期所作的测试的结果进行分析、汇总、总结,完成了测试局部的填写。因为程序需要添加很多注释,再加上程序的内容较多以及对前期测试结果的整理,使得这一局部花费了相对较长的时间2023年1月1日—2023年1月3日完善程序代码以及实验报告由于前阶段代码出现了一定的错误,对其进行修改,并取得成功。3技术路线及关键技术3.1系统总体功能图〔1〕系统结构图学生成绩管理系统学生成绩管理系统管理员学生老师学生信息管理教师信息管理课程信息管理成绩信息管理课程授课管理查询成绩查询个人课表查询成绩统计查询成绩查询教师课表查询成绩统计图3.1-系统总结构图〔2〕系统流程图:在系统设计中,将用户分成三种权限,不同权限的用户,那么访问的内容不同、控制的信息也不同,系统结构图如图3.1,系统流程图如图3.2。开始开始选择用户登录输入用户名密码正确退出结束操作Y图3.2-系统流程图〔3〕在系统结构图中,我们可以看到管理员对学生、课程、成绩、教师的根本信息有增删改除的功能,以下是具体功能模块结构图:学生信息管理学生信息管理学生信息添加学生信息修改学生信息查询学生信息删除图3.3-学生信息管理模块教师信息管理教师信息管理教师信息添加教师信息修改教师信息查询教师信息删除图3.4-教师信息管理模块课程信息管理课程信息管理课程信息添加课程信息修改课程信息查询课程信息删除图3.5-课程信息管理模块成绩信息管理成绩信息管理成绩信息添加成绩信息修改成绩信息查询成绩信息删除成绩统计图3.6-成绩信息管理模块3.2学生成绩管理系统的功能模块简介:〔1〕根本信息管理〔以学生为例〕if(obj==tianjia)//添加 {Sno=tf_xuehao.getText().trim();Sname=tf_xingming.getText().trim();sex=tf_xingbie.getText().trim();age1=Integer.parseInt(tf_nianling.getText().trim());tel_no=tf_dianhua.getText().trim();classno=tf_banhao.getText().trim();addr=tf_dizhi.getText().trim();if(Sno.length()==0||Sname.length()==0||sex.length()==0||age1==0||Sno.length()==0||tel_no.length()==0||addr.length()==0||classno.length()==0) { JOptionPane.showMessageDialog(this,"请添加完整信息!","提示信息",JOptionPane.QUESTION_MESSAGE); }else {try {ps=con.prepareStatement("insertintostudentvalues(?,?,?,?,?,?,?)");ps.setString(1,Sno);ps.setString(2,Sname);ps.setString(3,sex);ps.setString(4,classno);ps.setString(5,addr);ps.setInt(6,age1);ps.setString(7,tel_no); JOptionPane.showMessageDialog(this,"确定添加吗?","提示信息",JOptionPane.QUESTION_MESSAGE);tf_xuehao.setText("");tf_xingming.setText("");tf_xingbie.setText("");tf_nianling.setText("");tf_dianhua.setText("");tf_dizhi.setText("");tf_banhao.setText("");rs=ps.executeQuery(); }catch(SQLExceptionsql) { JOptionPane.showMessageDialog(this,"添加成功!","提示信息",JOptionPane.QUESTION_MESSAGE); } } }if(obj==xiugai)//修改 { Stringno=shuru.getText().trim();Sno=tf_xuehao.getText().trim();Sname=tf_xingming.getText().trim();sex=tf_xingbie.getText().trim();age1=Integer.parseInt(tf_nianling.getText().trim());tel_no=tf_dianhua.getText().trim();addr=tf_dizhi.getText().trim();classno=tf_banhao.getText().trim();try {ps=con.prepareStatement("updatestudentsetSno=?,Sname=?,sex=?,classno=?,addr=?,age=?,tel_no=?whereSno=?");ps.setString(1,Sno);ps.setString(2,Sname);ps.setString(3,sex);ps.setString(4,classno);ps.setString(5,addr);ps.setInt(6,age1);ps.setString(7,tel_no);ps.setString(8,no); JOptionPane.showMessageDialog(this,"确定修改吗?","提示信息",JOptionPane.QUESTION_MESSAGE);tf_xuehao.setText("");tf_xingming.setText("");tf_xingbie.setText("");tf_banhao.setText("");tf_dizhi.setText("");tf_nianling.setText("");tf_dianhua.setText(""); JOptionPane.showMessageDialog(this,"修改成功!","提示信息",JOptionPane.INFORMATION_MESSAGE);rs=ps.executeQuery();rs.next(); }catch(SQLExceptionsql) { JOptionPane.showMessageDialog((Component)null,sql.getMessage(),"提示信息",JOptionPane.QUESTION_MESSAGE); } }if(obj==shanchu)//删除 {try { Stringno=shuru.getText().trim();ps=con.prepareStatement("deletefromstudentwhereSno=?");ps.setString(1,no); JOptionPane.showMessageDialog(this,"确定删除吗?","提示信息",JOptionPane.QUESTION_MESSAGE);tf_xuehao.setText("");tf_nianling.setText("");tf_xingming.setText("");tf_dianhua.setText("");tf_dizhi.setText("");tf_xingbie.setText("");tf_banhao.setText("");rs=ps.executeQuery(); JOptionPane.showMessageDialog(this,"删除成功!","提示信息",JOptionPane.INFORMATION_MESSAGE); }catch(SQLExceptionsqlex) { sqlex.getMessage(); } }if(obj==qingkong)//清空 {shuru.setText("");tf_xuehao.setText("");tf_nianling.setText("");tf_xingming.setText("");tf_dianhua.setText("");tf_dizhi.setText("");tf_xingbie.setText("");tf_banhao.setText(""); }}}主要功能:添加、删除、修改、查询学生根本信息。实现目的:对于每个新的学年都有大量的学生入录,对学生信息的添加是必不可少的。同时,在管理员的日常工作过程中,难免不出现错误。所以对其信息修改功能也是必不可少的,删除那么是在学生开除学籍时可以使用。同时课程、教师、成绩信息和学生信息操作是相同的。〔2〕成绩统计://统计各科平均分publicStringSubjectAvg(Stringsubject){ Strings=null;floatt=0;this.Connect();if(subject.equals("计算机网络")) { s="selectavg(grade)fromtranscriptwhereCno=003125";try{st=this.Connect().prepareStatement(s);rs=st.executeQuery();while(rs.next()) { t=rs.getFloat(1); } }catch(Exceptione){ e.printStackTrace(); } }if(subject.equals("数据库系统原理")) { s="selectavg(grade)fromtranscriptwhereCno=003126";try{st=this.Connect().prepareStatement(s);rs=st.executeQuery();while(rs.next()) { t=rs.getFloat(1); } }catch(Exceptione){ e.printStackTrace(); } }if(subject.equals("多媒体技术根底")) { s="selectavg(grade)fromtranscriptwhereCno=003127";try{st=this.Connect().prepareStatement(s);rs=st.executeQuery();while(rs.next()) { t=rs.getFloat(1); } }catch(Exceptione){ e.printStackTrace(); } }if(subject.equals("概率论与数理统计")) { s="selectavg(grade)fromtranscriptwhereCno=003128";try{st=this.Connect().prepareStatement(s);rs=st.executeQuery();while(rs.next()) { t=rs.getFloat(1); } }catch(Exceptione){ e.printStackTrace(); } }returnFloat.toString(t); }//总分平均分统计publicStringallAvg(){floatsum=0;intcount=0;// st=this.Connect().prepareStatement(sql); Strings="selectsum(grade)astotalfromtranscript"; System.out.println("s="+s);try{st=this.Connect().prepareStatement(s);rs=st.executeQuery(); System.out.println("rs="+rs);if(rs.next()) { sum=rs.getFloat("total"); System.out.println("sum="+sum); }rs=null; s="selectsum(grade)fromtranscriptwhereCno=001325";st=this.Connect().prepareStatement(s);rs=st.executeQuery();if(rs.next()) { sum=sum+rs.getFloat(1); }rs=null; s="selectsum(grade)fromtranscriptwhereCno=001326";st=this.Connect().prepareStatement(s);rs=st.executeQuery();if(rs.next()) { sum=sum+rs.getFloat(1); }rs=null; s="selectsum(grade)fromtranscriptwhereCno=001328";st=this.Connect().prepareStatement(s);rs=st.executeQuery();if(rs.next()) { sum=sum+rs.getFloat(1); }rs=null; s="selectcount(distinctSno)fromtranscript";st=this.Connect().prepareStatement(s);rs=st.executeQuery();if(rs.next()) { count=rs.getInt(1); } }catch(Exceptione){ e.printStackTrace(); }if(count==0)return"0";else { sum=sum/count;returnFloat.toString(sum); } }//获得各科的分数段人数publicintgethigh(Stringsubject,intgrade){//总的人数intnum=0; Strings=null;this.Connect();if(subject.equals("计算机网络")) {if(grade==60) s="selectcount(sno)fromtranscripta,coursebwheregrade<60anda.Cno=b.CnoandCname='计算机网络'";if(grade==70) s="selectcount(sno)fromtranscripta,coursebwheregrade<70andgrade>=60anda.Cno=b.CnoandCname='计算机网络'";if(grade==80) s="selectcount(sno)fromtranscripta,coursebwheregrade<80andgrade>=70anda.Cno=b.CnoandCname='计算机网络'";if(grade==90) s="selectcount(sno)fromtranscripta,coursebwheregrade<90andgrade>=80anda.Cno=b.CnoandCname='计算机网络'";if(grade==100) s="selectcount(sno)fromtranscripta,coursebwheregrade<100andgrade>=90anda.Cno=b.CnoandCname='计算机网络'";try{st=this.Connect().prepareStatement(s);rs=st.executeQuery();while(rs.next()) { num=rs.getInt(1); } }catch(Exceptione){ e.printStackTrace(); } }if(subject.equals("数据库系统原理")) {if(grade==60) s="selectcount(sno)fromtranscripta,coursebwheregrade<60anda.Cno=b.CnoandCname='数据库系统原理'";if(grade==70) s="selectcount(sno)fromtranscripta,coursebwheregrade<70andgrade>=60anda.Cno=b.CnoandCname='数据库系统原理'";if(grade==80) s="selectcount(sno)fromtranscripta,coursebwheregrade<80andgrade>=70anda.Cno=b.CnoandCname='数据库系统原理'";if(grade==90) s="selectcount(sno)fromtranscripta,coursebwheregrade<90andgrade>=80anda.Cno=b.CnoandCname='数据库系统原理'";if(grade==100) s="selectcount(sno)fromtranscripta,coursebwheregrade<100andgrade>=90anda.Cno=b.CnoandCname='数据库系统原理'";try{st=this.Connect().prepareStatement(s);rs=st.executeQuery();while(rs.next()) { num=rs.getInt(1); } }catch(Exceptione){ e.printStackTrace(); } }if(subject.equals("多媒体技术根底")) {if(grade==60) s="selectcount(sno)fromtranscripta,coursebwheregrade<60anda.Cno=b.CnoandCname='多媒体技术根底'";if(grade==70) s="selectcount(sno)fromtranscripta,coursebwheregrade<70andgrade>=60anda.Cno=b.CnoandCname='多媒体技术根底'";if(grade==80) s="selectcount(sno)fromtranscripta,coursebwheregrade<80andgrade>=70anda.Cno=b.CnoandCname='多媒体技术根底'";if(grade==90) s="selectcount(sno)fromtranscripta,coursebwheregrade<90andgrade>=80anda.Cno=b.CnoandCname='多媒体技术根底'";if(grade==100) s="selectcount(sno)fromtranscripta,coursebwheregrade<100andgrade>=90anda.Cno=b.CnoandCname='多媒体技术根底'";try{st=this.Connect().prepareStatement(s);rs=st.executeQuery();while(rs.next()) { num=rs.getInt(1); } }catch(Exceptione){ e.printStackTrace(); } }if(subject.equals("概率论与数理统计")) {if(grade==60) s="selectcount(sno)fromtranscripta,coursebwheregrade<60anda.Cno=b.CnoandCname='概率论与数理统计'";if(grade==70) s="selectcount(sno)fromtranscripta,coursebwheregrade<70andgrade>=60anda.Cno=b.CnoandCname='概率论与数理统计'";if(grade==80) s="selectcount(sno)fromtranscripta,coursebwheregrade<80andgrade>=70anda.Cno=b.CnoandCname='概率论与数理统计'";if(grade==90) s="selectcount(sno)fromtranscripta,coursebwheregrade<90andgrade>=80anda.Cno=b.CnoandCname='概率论与数理统计'";if(grade==100) s="selectcount(sno)fromtranscripta,coursebwheregrade<100andgrade>=90anda.Cno=b.CnoandCname='概率论与数理统计'";try{st=this.Connect().prepareStatement(s);rs=st.executeQuery();while(rs.next()) { num=rs.getInt(1); } }catch(Exceptione){ e.printStackTrace(); } }returnnum; }//获得总的人数publicintcount(){intcount=0; Strings="selectcount(distinctSno)fromtranscript";this.Connect();try{st=this.Connect().prepareStatement(s);rs=st.executeQuery();while(rs.next()) { count=rs.getInt(1); } }catch(Exceptione){ e.printStackTrace(); }returncount;}主要功能:对各科成绩和总成绩进行统计,算出它的平均分。同时显示每科小于60或者大于60分的同学成绩列表。并且用直方图将每个分数段的学生数量形象地表示出来。主要目的:在实际的学生成绩管理过程中,计算平均分是很重要的,便于学校和老师对学生总体成绩的了解。从而不断发现新的教学方法来提高总体学生的学习成绩。同时成绩分布图给予协助。〔3)管理员界面及主函数入口模块:MainAndGUI.java//主界面〔管理员界面〕importjavax.swing.*importjava.awt.*;importjava.awt.event.*;importjava.text.DateFormat;importjava.util.Date;publicclassGradeextendsJFrame{ 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("",SwingConstants.CENTER); //定义面板 privateContainercon=frame.getContentPane(); //显示当前时间 DateFormatdf1=DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM);Dated=newDate();//当前日期和时间Stringmystring=df1.format(d);JLabelStatusLabel1=newJLabel("欢送您的使用",SwingConstants.LEFT);//添加时间JLabelStatusLabel2=newJLabel("显示当前状态",SwingConstants.CENTER);JLabelStatusLabel4=newJLabel(mystring,SwingConstants.CENTER); //构造函数 publicGrade(){ //把菜单栏参加框架 frame.setJMenuBar(Bar); //frame.setJToolBar(statusBar); //把菜单参加菜单栏 Bar.add(JMedit); Bar.add(JMcount); Bar.add(JMinfor); Bar.add(JMhelp); //把菜单项参加菜单 //JMedit.add(JMIinput); JMedit.add(JMsc); JMedit.addSeparator(); JMedit.add(JMImodify); JMcount.add(JMIall); JMcount.addSeparator(); //JMcount.add(JMIsignal); //JMcount.addSeparator(); JMcount.add(JMIgraphics); JMhelp.add(JMIhelp); JMhelp.addSeparator(); JMhelp.add(tohelp); JMinfor.add(JMstudent); JMinfor.addSeparator(); JMinfor.add(JMteacher); JMinfor.addSeparator(); JMinfor.add(JMcourse); JMinfor.addSeparator(); JMinfor.add(JMts); tupian=newImageIcon("pic\\lianhua.jpg");//加载图片 label_pic=newJLabel(tupian); con.setLayout(newBorderLayout()); con.add(label_pic,BorderLayout.CENTER); com=label_pic; con.add(DesignStatusBar(),BorderLayout.SOUTH); //设置框架 frame.setLocation(200,200); frame.setSize(400,400); frame.setVisible(true); //增加监听器 JMImodify.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ score_querys=newscore_query(); s.setVisible(true); StatusLabel2.setText(JMImodify.getText()); }}); JMIall.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ newAllgradeCount(); StatusLabel2.setText(JMIall.getText()); }}); JMIgraphics.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ Photoa=newPhoto(); StatusLabel2.setText(JMIgraphics.getText()); }}); JMstudent.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ con.remove(com); Manage_studenta=newManage_student(); a.setVisible(true); con.add(a,BorderLayout.CENTER); com=a; StatusLabel2.setText(JMstudent.getText()); }}); JMteacher.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ con.remove(com); Manage_teachera=newManage_teacher(); a.setVisible(true); con.add(a,BorderLayout.CENTER); com=a; StatusLabel2.setText(JMteacher.getText()); }}); JMcourse.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ con.remove(com); Manage_coursea=newManage_course(); a.setVisible(true); con.add(a,BorderLayout.CENTER); com=a; StatusLabel2.setText(JMcourse.getText()); }}); JMts.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ con.remove(com); Manage_teacha=newManage_teach(); a.setVisible(true); con.add(a,BorderLayout.CENTER); com=a; StatusLabel2.setText(JMts.getText()); }}); JMsc.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ con.remove(com); Manage_scorea=newManage_score(); a.setVisible(true); con.add(a,BorderLayout.CENTER); com=a; StatusLabel2.setText(JMsc.getText()); }}); JMIhelp.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ JOptionPane.showMessageDialog(null,"学生成绩管理系统,马文凭制作"); }}); tohelp.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ JOptionPane.showMessageDialog(null,"如有问题请加QQ771626930"); }}); } publicJPanelDesignStatusBar() { statusBar.setFloatable(false); JPanelpanel=newJPanel(); panel.setLayout(newGridLayout(1,5)); statusBar.add(panel); //添加状态栏 panel.add(StatusLabel1); panel.add(StatusLabel2); panel.add(StatusLabel4); returnpanel; } publicstaticvoidmain(String[]args){ Gradea=newGrade(); }}主要功能:提供系统跟用户接口的主界面,并提供了整个程序的入口地址,也就是主入口函数main(String[]arg){…}具体的界面请见下面的界面展示。实现目的:设定学生成绩管理系统管理员界面,将功能选项放在主界面上,方便管理员使用。其中学生和教师界面和管理员界面大同小异,只是设定一些功能,如根本信息管理学生和教师不能进行操作。具体实现:系统是一个简单的界面,设定菜单栏和状态栏,方便用户使用。其中主要功能模板的函数分别为:〔1〕Manage_student.java实现学生信息的添加、删除、查询、修改功能。〔2〕Manage_course.java实现课程信息的添加、删除、查询、修改功能。〔3〕Manage_teacher.java实现教师信息的添加、删除、查询、修改功能。〔4〕Manage_teach实现授课的添加、删除、查询、修改功能。〔5〕SignalCount.java实现分数的计算。〔6〕Photo.java实现分数的分布图,将数据以柱形图的形式表示出来。〔7〕DataManager.java实现数据库的连接。〔8〕stu_course.java实现学生课表查询。〔9〕course_query.java实现教师课表查询。模块特色:〔1〕成绩查询丰富,可按学号、姓名、课程名进行模糊成绩查询。〔2〕课程查询丰富,可按学号、教师号、课程名、教师名、学生名进行查询。〔3〕成绩统计:将学生的成绩进行统计并用图形界面柱形图形象表示出来。〔4〕界面友好,实现不同用户的快速切换。〔5〕系统易操作,用户易掌握。3.3系统运用的主要技术:技术一:数据库技术在本次大作业中,采用了SQLserver2000数据库。在数据库中,通过编写数据库脚本生成score数据库,同时在score中生成六张表和四个视图:学生〔student〕、教师〔teacher〕、课程〔course〕、成绩〔transcript〕、授课〔teach〕、管理员〔admin〕、成绩视图、学生课表视图、教师课表视图。在系统中,主要是对这五张表和四个视图进行操作。所以首先需要连接数据库,创立数据源StudentScore。在此次系统设计中,需熟练掌握SQL语句,充分使用聚合函数。如果在编写Java语句的时候,数据库语言如假设出错,可以在SQLsever2000测试语句是否有错,如果没错,可能是Java语句有错或者参数没有传进去,在Java的界面可以用输出结果来测试。同时利用巧妙使用数据库中视图来查询学生成绩、学生课表、教师课表。技术二:图形界面学生成绩管理系统主要是对学生成绩进行管理,将学生成绩直方分布图表示。形象表现出学生成绩的分布情况,方便学校老师对学生成绩的掌握,以便教师不断地改善自身的教育方法。技术三:多媒体学生成绩管理系统中参加图片作为系统界面背景,将界面美观化,给与系统使用者视觉享受。3.4数据库设计建数据库:setnocountonsetdateformatymdusemastergoifnotexists(select*fromsysloginswherename='score')execsp_addloginscore,scorego/*createdatabase*/ifexists(select*fromsysdatabaseswherename='score')dropdatabasescoregocreatedatabasescoreonprimary(name='score',filename='d:\sqlDatabase\score.mdf',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_scoreasselecta.Sno,Sname,classno,c.Cno,Cname,gradefromstudentasa,courseasb,transcriptascwherea.Sno=c.Snoandb.Cno=c.Cno创立教师查询课表视图createviewstudent_courseasselectt.Tno,Tname,title,c.Cno,Cnamefromcoursec,teachert,teachingbwherec.Cno=b.Cnoandt.Tno=b.Tno建立学生查询课表视图createviewstu_courseasselects.Sno,Sname,Cname,c.Cnofromstudents,transcriptt,coursecwheres.Sno=t.Snoandc.Cno=t.Cno3.5连接数据库为方便数据库的管理和使用,在系统开发过
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家庭护理居间合同样本
- 教育学工作汇报
- 窒息护理操作规程
- 矿山运输纠纷处理合同
- 膜性肾病诊疗规范
- 舞蹈工作室教练聘用合同范本
- 2024珠海市索卡科技技工学校工作人员招聘考试及答案
- 2024温州第二职业中等专业学校工作人员招聘考试及答案
- 2024清远市清新区职业技术学校工作人员招聘考试及答案
- 2024河南省工业和信息化高级技工学校工作人员招聘考试及答案
- 【原创】学校书记中央八项规定精神学习心得
- 楼梯踏步抹灰标准合同7篇
- 【厦门大学】DeepSeek大模型赋能高校教学和科研
- 西安房屋租赁合同(官方版)6篇
- 2025年商丘职业技术学院单招职业技能考试题库含答案
- 2025年榆林城市投资经营集团有限公司招聘笔试参考题库含答案解析
- 2025届高三化学二轮复习 化学工艺流程 课件
- 2024广东深圳市龙岗区产服集团“春雨”第二批招聘笔试笔试参考题库附带答案详解
- 提高水性玻璃烤漆水性金属烤漆的耐溶剂耐水煮附着力和柔韧性的解决方案
- 内蒙矿产资源产业投资基金总体方案
- 高二化学电离水解
评论
0/150
提交评论