课程设计报告学院、系:吉林大学珠海学院计算机科学与技术系专业名称:网络工程课程设计科目java程序课程设计学生姓名:王佳指导教师:吕健波完成时间:2010年9月-11月教师管理系统一、设计任务与目标1)负责教师管理的主界面(用菜单方式打开下面的四个功能界面)录入教师管理的界面修改教师管理的界面查询教师管理的界面删除教师管理的界面2)教师数据表的字段要求至少包含:工号、姓名、年龄、职称、所在系、教授的主要课程、联系电话、联系地址等字段。要求字段类型设计合理、使用方便。3)要求界面美观大方、功能实现完整此程序的设计,主要包括两个主体部分,一是界面部分,二是创建按钮并监听,实现录入,修改,查询,删除等功能。以前在C++编写过类似的教师管理系统,其主要思路和本题保持一致,但代码不同。需要准备的工作是创建主界面并完善各项分功能,连接数据库,实现录入和查看同步。此次设计将会提高我对真正的JAVA程序设计的实战能力,对以前学过的知识融会贯通,并且深化和应用。意在最终程序可以美观,实用,人性化,尽最大的能力扩充相关分模块。二、方案设计与论证针对这道设计题的特点,首先做一个界面,界面中包括相关的分功能,录入,修改,查询,删除等,用surface做界面,分别设置各自的监听器,监听每一个button,并且各个分功能是对应各自的类。这样的话,有利于用户提出不同修改的要求,此时只要单独修改个别类即可,提高程序的便捷化并且满足不同客户的需要。在做这道题时遇到最大的障碍就是连接access数据库,因为以前没学过,所以这部分知识完全不会,必须考自学。自己做这道题与其他设计人员最大的不同就在于将每个分功能,各自单独的写在一个类中,与把所有源代码都写在一个JAVA文件中的方法,更易于修改和编辑。三、程序框图或流程图,程序清单与调用关系四、全部源程序清单packageparent_window;//(packageparentwindow包中的类)importjava.awt.*;importjavax.swing.*;importson_windows.*;publicclasssurFaceextendsJFrame{JButtonfindSt,addSt,chanSt,delSt,exitSt;//查找,添加,删除,退出//构造函数publicsurFace(){教师信息管理系统主界面SurfaceAds(录入)Chan(修改)Fin(查询)Del(删除)Ext(退出)Access数据库对数据库中的内容进行编辑Containerc=this.getContentPane();c.setLayout(newGridLayout(2,1));JPanellowerPanel=newJPanel();c.setFont(newFont(plain,Font.PLAIN,13));JLabellabel=newJLabel(欢迎进入教师信息管理系统,SwingConstants.CENTER);label.setFont(newFont(BOLD,Font.BOLD,30));c.add(label);//创建按钮addSt=newJButton(录入);addSt.setToolTipText(添加教师信息);findSt=newJButton(查询);findSt.setToolTipText(查询信息);chanSt=newJButton(修改);chanSt.setToolTipText(修改成绩);delSt=newJButton(删除);delSt.setToolTipText(删除信息);exitSt=newJButton(退出);exitSt.setToolTipText(安全退出本系统);lowerPanel.add(findSt);lowerPanel.add(addSt);lowerPanel.add(chanSt);lowerPanel.add(delSt);lowerPanel.add(exitSt);c.add(lowerPanel);//注册监听器,新建独立监听器类查找:fin(),添加:ads(),删除:del(),退出本体统:ext()findSt.addActionListener(newfin());addSt.addActionListener(newads());chanSt.addActionListener(newcc());//chanSt.addActionListener(newchan());delSt.addActionListener(newdel());exitSt.addActionListener(newext());}//main方法,实现主界面publicstaticvoidmain(Stringargs[]){surFacesu=newsurFace();su.setSize(500,400);su.setTitle(欢迎使用教师管理系统!);su.setVisible(true);}}/**建立独立事件监听器类ads,处理surFace中“录入”点击事件*/packageson_windows;//(packageson_windows包中的类)(1)importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;importjava.sql.*;publicclassadsextendsJFrameimplementsActionListener{JTextFieldnumberText,nameText,ageText,jobText,departmenText,classText,phoneText,addressText;JButtonaddButton,clearButton,closeButton;Containerc2;JDialogjd;JDialogjd2;publicads(){c2=this.getContentPane();c2.setLayout(newGridLayout(3,1));JPanelp1=newJPanel(newGridLayout(8,2));JPanelp2=newJPanel(newFlowLayout());//JLabellogoLabel=newJLabel(ii,SwingConstants.CENTER);logoLabel.setForeground(Color.black);logoLabel.setFont(newFont(TRUE,Font.TRUETYPE_FONT,20));logoLabel.setText(教师信息);c2.add(logoLabel);//创建JTextFieldnumberText=newJTextField();nameText=newJTextField();ageText=newJTextField();jobText=newJTextField();departmenText=newJTextField();classText=newJTextField();phoneText=newJTextField();addressText=newJTextField();//添加JTextFieldp1.add(newJLabel(工号,SwingConstants.CENTER));p1.add(numberText);p1.add(newJLabel(姓名,SwingConstants.CENTER));p1.add(nameText);p1.add(newJLabel(年龄,SwingConstants.CENTER));p1.add(ageText);p1.add(newJLabel(职称,SwingConstants.CENTER));p1.add(jobText);p1.add(newJLabel(所在系,SwingConstants.CENTER));p1.add(departmenText);p1.add(newJLabel(主授课程,SwingConstants.CENTER));p1.add(classText);p1.add(newJLabel(联系电话,SwingConstants.CENTER));p1.add(phoneText);p1.add(newJLabel(联系地址,SwingConstants.CENTER));p1.add(addressText);c2.add(p1);//addButton=newJButton(添加);clearButton=newJButton(清除);closeButton=newJButton(退出);p2.add(addButton);p2.add(clearButton);p2.add(closeButton);c2.add(p2);this.setSize(500,400);this.setTitle(添加教师信息);//为添加按钮添加监听器(使用匿名内部类处理点击事件)addButton.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){Stringnumber,name,age,job,departmen,clas,phone,address;Statementstm;Stringstr;intj=0;number=numberText.getText();name=nameText.getText();age=ageText.getText();job=jobText.getText();departmen=departmenText.getText();clas=classText.getText();phone=phoneText.getText();address=addressText.getText();str=insertintodata1values('+number+','+name+','+age+','+job+','+departmen+','+clas+','+phone+','+address+');if(number.equals()&&name.equals()&&age.equals()&&job.equals()&&departmen.equals()&&clas.equals()&&phone.equals()&&address.equals())j=2;elsetry{//加载驱动Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);//连接数据源forStuConnectioncon=DriverManager.getConnection(jdbc:odbc:forStu,,);stm=con.createStatement();j=stm.executeUpdate(str);con.close();}catch(ClassNotFoundExceptione1){}catch(SQLExceptione1){}//jd=newJDialog();jd.setLayout(newGridLayout(2,1));jd.setSize(255,100);JPanelp1=newJPanel();JPanelp2=newJPanel();jd.add(p1);jd.add(p2);JLabeljl=newJLabel(添加成功!);JLabeljl2=newJLabel(不能添加空数据,请从新输入!);JLabeljl3=newJLabel(不能为相同数据,请从新输入!);JButtonb=newJButton(确定);if(j==1){p1.add(jl);j=0;}elseif(j==2)p1.add(jl2);elsep1.add(jl3);p2.add(b);jd.