JAVA课程设计(论文)学生成绩管理系统_第1页
JAVA课程设计(论文)学生成绩管理系统_第2页
JAVA课程设计(论文)学生成绩管理系统_第3页
JAVA课程设计(论文)学生成绩管理系统_第4页
JAVA课程设计(论文)学生成绩管理系统_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、目 录1 需求分析.21.1 系统功能要求分析.21.2 其它要求分析31.3 数据库需求分析32概要结构设计32.1系统功能结构设计32.2 概要结构设计43 详细设计及实现.53.1 用户登陆界面.53.2 管理员界.73.3 用户界面.93.4 添加模块123.5 删除模块153.5.1 代码实现:154设计总结.175 参考文献 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .181 需求分析1.1系统功能要求分析:(1)具有新用户注册功能。(2)具有注册用

2、户登录功能。(3)具有学生成绩的录入功能,要求只录入各科成绩,自动计算每个学生的总成绩。(4)具有数据查询功能,可以实现查询全部信息和按条件执行查询。(5)具有按条件删除数据功能。具体功能的详细描述如下1.1.1 选择学生基本维护菜单命令,即可进入 学生基本维护功能窗体,在其中输入学生的相关信息,如果需要添加或修改学生信息,则单击相应的按纽,输入新信息后单击添加就可以了。需要删除一条信息,则只要选择这条信息再点击 删除。在搜索条件中输入相关的条件,单击 查询就可查找信息。1.1.2 选择学生信息查询菜单命令,即可进入学生信息查询功能窗体,在其中的下拉列表中选择你要看的信息,则在下面的表格中显示

3、你要的信息。1.1.3 选择成绩管理 添加成绩菜单命令,即可进入 添加成绩功能窗体,此功能权限只有管理员和教师。1.1.4 选择成绩管理 输入成绩菜单命令,即可进入 输入成绩功能窗体,此功能权限只有管理员和教师。 1.1.5 选择成绩管理 修改成绩 界面,此功能规管理员所有。 1.1.6 选择成绩管理 查询成绩界面此界面对学生也是可见的,它的权限规所有用户所有。1.1.7 选择登陆 重新登陆 则会返回登陆界面,为用户提供方便。1.1.8 选择退出将退出整个系统。1.2其它要求分析:(1)只能使用java语言,采用面向对象方法进行设计,要求源程序要有适当的注释,使程序容易阅读。(2)程序必须与数

4、据库进行通信。(3)系统必须是图形用户界面的形式并连接数据库。(4)学生可根据自身情况酌情增加新功能(视情况可另外加分)。(5)独立完成课程设计,并完成课程设计报告,报告应记录设计的过程,尤其是分析/设计/实现过程中的决策。1.3 数据库需求分析在系统中功能模块主要牵涉到的信息包括:是学生信息(student)、课程信息(course)、成绩表(sc).学生信息:包含学号(stno)、姓名(sname)、年龄(sage)、性别(ssex)、系别(sdept)课程信息:包括课程编号(cno)、课程名称(cname)、先行课(cpno)成绩表;学号(stno)、课程号(cno)、成绩(grade)

5、2概要结构设计2.1系统功能结构设计根据需求分析阶段得到的功能需求,管理员、学生和教师用户通过输入口令号和密码进下该系统后,可以进行一些学生基础信息查询(学生信息查询、班级信息查询、课程信息查询)、学生信息维护、成绩管理(成绩查询、计算平均分)重新登陆系统、退出。 模块功能大概可以分为如下4个方面:这几个模块学生基础维护、成绩管理、登陆、退出。其中基础维护还要包括学生信息维护、班级信息维护、课程信息维护。成绩管理包括成绩查询、添加成绩、成绩输入等。综上所述,得到客户端功能模块图如下2.1所示。2.2 概要结构用户登陆登陆管理员登陆增加信息查询信息查询信息删除信息e-r 图:开课系别 名称成绩姓

6、名先行课课名课程选课学号系别年龄学生含有装订线长 春 大 学 课程设计纸3详细设计及实现3.1用户登陆模块3.1.1 代码实现package com.mkx;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class login extends jframe textfield f1;textfield f2;/文本域jbutton b1;jbutton b2;jbutton b3; string power; /表示权限login() container cp=getcontentpane(); cp

7、.setlayout(new gridlayout(4,1); label l1=new label(用户名);/设置标签名 label l2=new label(密 码); panel p1=new panel();/添加面板 panel p2=new panel(); panel p3=new panel(); f1=new textfield(10); f2=new textfield(10); f2.setechochar(*); b1=new jbutton(登录); b2=new jbutton(重置); b3=new jbutton(退出); p1.add(l1); p1.add

8、(f1); p2.add(l2); p2.add(f2); p3.add(b1); p3.add(b2); p3.add(b3); cp.add(p1); cp.add(p2); cp.add(p3); b1.addactionlistener(new enter(); b2.addactionlistener(new rewrite(); b3.addactionlistener(new close();public static void main(string args) login log=new login(); log.settitle(系统登录); log.setbounds(2

9、00, 200, 300, 300); log.setbackground(color.blue); log.setvisible(true);class enter implements actionlistener /对登陆具体进行处理 public void actionperformed(actionevent e) if(f1.gettext().equals(1100)&(f2.gettext().equals(mkx) joptionpane.showmessagedialog(null, 登录成功!用户权限是管理员); power=管理员; xuesheng frame1 =

10、new xuesheng(); frame1.setvisible(true); else if(f1.gettext().equals(abc)&(f2.gettext().equals(123456) joptionpane.showmessagedialog(null, 登录成功!用户权限是学生); power=学生; find f2 = new find(); f2.setvisible(true); else joptionpane.showmessagedialog(null, 登录失败,请重新登录!); class rewrite implements actionlistene

11、r public void actionperformed(actionevent e) f1.settext(); f2.settext(); f1.requestfocus(); class close implements actionlistenerpublic void actionperformed(actionevent e) if(e.getsource()=b3) system.exit(0) ; 3.2 管理员界面3.2.1 代码实现:package com.mkx;import java.awt.*;import java.awt.event.*;import javax

12、.swing.*;import javax.swing.jframe;public class xuesheng extends jframe implements actionlistener jbutton cx, zj, tc, sc;xuesheng() setbounds(100, 100, 600, 600);jpanel panel2 = new jpanel(); /创建新面板setcontentpane(panel2);panel2.setlayout(null); /设计布局为空jlabel label1 = new jlabel(欢迎进入学生信息管理界面); /创建标签l

13、abel1.setfont(new font(bold, font.bold, 28); /设计字体颜色大小panel2.add(label1);label1.setbounds(50, 20, 400, 100);cx = new jbutton(查询);panel2.add(cx);cx.setbounds(50, 200, 80, 50);zj = new jbutton(增加);panel2.add(zj);ianzj.setbounds(150, 200, 80, 50);sc = new jbutton(删除);panel2.add(sc);sc.setbounds(250, 20

14、0, 80, 50);tc = new jbutton(退出);panel2.add(tc);tc.setbounds(350, 200, 80, 50);cx.addactionlistener(this);/添加监听zj.addactionlistener(this);sc.addactionlistener(this);tc.addactionlistener(this);setvisible(true);public void actionperformed(actionevent e) /对监听具体处理方法if (e.getsource() = cx) find f = new fi

15、nd(); if(e.getsource()=zj) addfi f = new addfi(); if(e.getsource()=sc) delet d = new delet(); if(e.getsource()=tc)shutdown();private void shutdown()this.dispose();3.3 用户界面3.3.1 代码实现:package com.mkx;import java.awt.*;import java.awt.event.*;import java.sql.connection;import java.sql.drivermanager;imp

16、ort java.sql.preparedstatement;import java.sql.resultset;import java.sql.sqlexception;import javax.swing.*;public class find extends jframe implements actionlistener jtextfield t1;string stno, r1, r2, r3, r4, r5, r6;jbutton b1, b2;xuesheng xue;find() super(查询学生信息);container c1 = this.getcontentpane(

17、);/获得默认面板setbackground(new color(215, 215, 215);c1.setlayout(new gridlayout(3, 2);jpanel pp = new jpanel();jlabel label0 = new jlabel(请输入你的学号);label0.setforeground(color.blue);pp.add(label0);jpanel p1 = new jpanel();t1 = new jtextfield(10);p1.add(new label();p1.add(t1);c1.add(p1);jpanel p2 = new jpa

18、nel();b1 = new jbutton(查询);b2 = new jbutton(退出);b1.addactionlistener(this);b2.addactionlistener(this);p2.add(b1);p2.add(b2);c1.add(p2);this.setvisible(true);this.setbounds(200, 200, 400, 300);public void actionperformed(actionevent e) try if (e.getsource() = b1) try stno = t1.gettext();class.forname

19、(com.microsoft.sqlserver.jdbc.sqlserverdriver).newinstance();string url = jdbc:sqlserver:/localhost:1433; /数据库所在地址 databasename=ss;string username = sa; / 默认用户名string userpwd = sa;connection cn = drivermanager.getconnection(url, username,userpwd);string str = select student.sname,student.sage,studen

20、t.ssex,student.stno,course.cname,sc.grade from student,course ,sc where student.stno = sc.stno and sc.cno = course.cno and student.stno =+stno+;preparedstatement ps = cn.preparestatement(str);/创建结果处理类resultset rs = ps.executequery();system.out.println(stno= + stno);if (rs.next() r1 = rs.getstring(st

21、no);r2 = rs.getstring(sname);r3 = rs.getstring(sage);r4 = rs.getstring(ssex);r5 = rs.getstring(cname);r6 = rs.getstring(grade); else joptionpane.showmessagedialog(null, 你输入的学号有误);cn.close(); catch (sqlexception g) system.out.println(error + g.geterrorcode();system.out.println(merrage= + g.getmessage

22、(); catch (exception f) f.printstacktrace();file f = new file();this.dispose();if (e.getsource() = b2) t1.settext();t1.repaint(); catch (numberformatexception ex) joptionpane.showmessagedialog(null, 数据转换错误);class file extends jframe implements actionlistener jtextfield tt1, t2, t3, t4, t5, t6;jbutto

23、n b3;file() super(查询学生信息);container c2 = this.getcontentpane();setbackground(new color(215, 215, 215);c2.setlayout(new gridlayout(3, 1);tt1 = new jtextfield(r1);t2 = new jtextfield(r2);t3 = new jtextfield(r3);t4 = new jtextfield(r4);t5 = new jtextfield(r5);t6 = new jtextfield(r6);tt1.seteditable(fal

24、se);t2.seteditable(false);t3.seteditable(false);t4.seteditable(false);t5.seteditable(false);t6.seteditable(false);jpanel pp1 = new jpanel();jlabel label2 = new jlabel(学号为 + stno + 学生的信息);pp1.add(label2);label2.setfont(new font(bold, font.bold, 28);c2.add(pp1);jpanel pp2 = new jpanel(new gridlayout(6

25、, 2);pp2.add(new jlabel(学号, swingconstants.center);tt1.settext(stno);pp2.add(tt1);pp2.add(new jlabel(姓名, swingconstants.center);pp2.add(t2);pp2.add(new jlabel(年龄, swingconstants.center);pp2.add(t3);pp2.add(new jlabel(性别, swingconstants.center);pp2.add(t4);pp2.add(new jlabel(课程, swingconstants.center

26、);pp2.add(t5);pp2.add(new jlabel(成绩, swingconstants.center);pp2.add(t6);c2.add(pp2);jpanel pp3 = new jpanel();b3 = new jbutton(返回);b3.addactionlistener(this);pp3.add(b3);c2.add(pp3);this.setbounds(200, 200, 600, 400);setvisible(true);public void actionperformed(actionevent f) if (f.getsource() = b3)

27、 this.dispose();3.4 添加模块3.4.1 添加模块代码实现:package com.mkx;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.sql.*;public class addfi extends jframe implements actionlistener jtextfield stnotext, snametext, sagetext, ssextext, sdepttext;jbutton b1, b2, b3;string stno, sname, sag

28、e, ssex, sdept;public addfi() container c = this.getcontentpane(); /获得默认面板c.setlayout(new gridlayout(3, 1);jpanel center = new jpanel(new gridlayout(5, 2);jpanel low = new jpanel(new flowlayout();jlabel label1 = new jlabel(添加学生信息, swingconstants.center);label1.setfont(new font(true, font.truetype_fo

29、nt, 20);c.add(label1);stnotext = new jtextfield(30);snametext = new jtextfield(30);ssextext = new jtextfield(30);sagetext = new jtextfield(30);sdepttext = new jtextfield(30);center.add(new jlabel(学号, swingconstants.center);center.add(stnotext);center.add(new jlabel(姓名, swingconstants.center);center.

30、add(snametext);center.add(new jlabel(性别, swingconstants.center);center.add(ssextext);center.add(new jlabel(年龄, swingconstants.center);center.add(sagetext);center.add(new jlabel(系别, swingconstants.center);center.add(sdepttext);c.add(center);b1 = new jbutton(添加);b2 = new jbutton(清除);b3 = new jbutton(退

31、出);low.add(b1);low.add(b2);low.add(b3);c.add(low);/ 为按钮添加jiantingb1.addactionlistener(this);b2.addactionlistener(this);b3.addactionlistener(this);this.setbounds(200, 200, 600, 400);this.setvisible(true);this.settitle(添加学生信息);public void actionperformed(actionevent e) if (e.getsource() = b1) addfi();

32、if (e.getsource() = b2) clearform();if (e.getsource() = b3) shutdown();private void addfi() stno = stnotext.gettext();sname = snametext.gettext();ssex = ssextext.gettext();sage = sagetext.gettext();sdept = sdepttext.gettext();if (stno.length() = 0 | sname.length() = 0 | sage.length() = 0| sdept.leng

33、th() = 0 | ssex.length() = 0)joptionpane.showmessagedialog(this, 请添加完全信息);else try class.forname(com.microsoft.sqlserver.jdbc.sqlserverdriver).newinstance();string url = jdbc:sqlserver:/localhost:1433; databasename=ss;string username = sa; / 默认用户名string userpwd = sa;connection cn = drivermanager.get

34、connection(url, username,userpwd);string str = insert into student values(?,?,?,?,?);preparedstatement ps = cn.preparestatement(str);ps.setstring(1, stno);ps.setstring(2, sname);ps.setstring(3, ssex);ps.setstring(4, sage);ps.setstring(5, sdept);ps.executeupdate();cn.close();joptionpane.showmessagedi

35、alog(this, 添加成功);clearform(); catch (sqlexception e) system.out.println(ecode + e.geterrorcode();system.out.println(e m= + e.getmessage(); catch (exception e) e.printstacktrace();private void clearform() stnotext.settext();snametext.settext();sagetext.settext();ssextext.settext();sdepttext.settext()

36、;private void shutdown() this.dispose();3.5 删除模块3.5.1 代码实现:package com.mkx;import java.awt.*;import java.awt.event.*;import java.sql.connection;import java.sql.drivermanager;import java.sql.preparedstatement;import java.sql.sqlexception;import javax.swing.*;public class delet extends jframe implemen

37、ts actionlistenerjbutton yes;jbutton cancle;jtextfield text1;string stno;delet()container c = this.getcontentpane();c.setlayout(new gridlayout(3, 1);c.setfont(new font(true,font.truetype_font,13);jpanel p1 = new jpanel();jpanel p2 = new jpanel();jlabel label1 = new jlabel(删除学生信息,swingconstants.cente

38、r);label1.setfont(new font(true,font.truetype_font,13);label1.setforeground(color.blue);c.add(label1);jlabel label2 = new jlabel(请输入学号); text1 = new jtextfield(10);p1.add(label2);p1.add(text1);c.add(p1); yes = new jbutton(确定); cancle = new jbutton(退出);p2.add(yes);p2.add(cancle);c.add(p2);yes.addactionlistener(this);cancle.addactionlistener(this);this.settitle(删除学生信息);this.setbounds(200,200,400,300);this.setvisible(true); public void a

温馨提示

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

评论

0/150

提交评论