JAVA_课程设计报告材料

JAVA_课程设计报告材料

ID:38402650

大小:171.94 KB

页数:17页

时间:2019-06-11

上传者:linlin921
JAVA_课程设计报告材料_第1页
JAVA_课程设计报告材料_第2页
JAVA_课程设计报告材料_第3页
JAVA_课程设计报告材料_第4页
JAVA_课程设计报告材料_第5页
资源描述:

《JAVA_课程设计报告材料》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

实用标准文案《JAVA程序设计》课程设计报告设计题目:学生信息管理系统学院名称:信息工程学院专业班级:13计本1姓名:学号:  文档大全 实用标准文案目录一需求分析。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3二概要设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3三详细设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。33.1数据库设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。33.2模块及窗体设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。33.2.1数据库模块设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。33.2.2用户登录识别模块。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。53.2.3用户信息管理模块。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。6(1)密码修改。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。6(2)用户信息添加和删除。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。83.2.4学生息管理模块。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。10(1)添加信息。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。10(2)信息查看。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。11(3)信息修改。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。12(4)删除信息。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。143.2.5系统管理模块。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。153.2.6主窗体菜单设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。15四软件测试。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。15五总结。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。15参考资料:.......................................................17文档大全 实用标准文案一需求分析本系统的主要目的就是实现学生信息管理,使学生信息管理工作更加容易,从而提高工作效率,降低管理成本.系统中需要对拥护身份进行管理,采取登陆进入系统的形式.二概要设计/************************************************************************概要设计阶段主要是粗略描述整个软件的框架,并从业务的角度描述软件的模块、工作流程等。项目的成功取决于设计的好坏,而概要设计则是整个设计的关键部分。概要设计的主要任务是将用户的需求划分为不同的功能,然后将这些功能细分成模块,并给模块一些规则约束,以达到各个模块之间可以相互交流的目的。概要设计关乎到系统的整体架构,因此想做好一个概要设计,不仅仅要熟悉用户的业务流程,还要具备相当丰富的设计经验。2.1概要设计的原则概要设计是根据系统分析的需求和工作环境的情况对整个软件的总体结构进行大致的设计。概要设计要坚持以下几个原则。(1)细分原则:软件系统都是由很多不同的模块组成,当设计一套软件时,要先将所有的功能分解。解决复杂问题的方法是将其分解成几个小问题,一个个来解决。(2)提高代码重用性:在面向对象设计中,首先考虑的就是代码的重用,一个好的设计,将来在升级换代时不需要太大的改动,节省了人力物力。(3)从上而下层层分析:概要设计要从整体出发,逐个剖析软件的功能,从上而下,先分析系统总的功能,然后一步步细分,直到最小的功能模块。(4)一致性原则:概要设计要求所有功能模块在定义时使用统一的规范。(5)提高独立性,减少耦合:各个模块与模块之间尽量减少关联,否则修改一个地方就会引起其他多处的变动,不符合面向对象的原则。一般情况下,对类封装后,只允许对类进行扩展,而不能修改,而封装的类必须具有单一职责,既理论情况下不允许两个类共同完成一个功能。(6)模块的大小要尽量适中:不是结构算法越复杂的模块越好,模块的大小要根据实际工作目标和其他类的耦合紧密程度来决定。经验表明,一个模块的规模不应过大,模块的总行数应控制在10~100行的范围内,最好为30~60行,这样理解和阅读都较方便。过长的模块往往是分解不充分的表现,会增加阅读理解的难度;但小规模太多也会使模块之间联系变得复杂,增大系统在模块调用时传递信息所花费的开销。由于概要设计是整个设计的重中之重,牵一发而动全身,所以要努力做一个好的概要设计,才能在今后软件开发过程中不再反复。现在软件行业流行模式化驱动设计,将一些市场上比较成功的模式拿来用在自己的设计中。2.2将用户需求模块化根据概要设计的原则来分析一下本项目的用户需求,并最终转化成用程序语言描述的模块。什么样的需求才是一个模块?模块应该具备如下3个特征。(1)输入和输出:模块必须能被调用并且正确的返回调用,而且调用都是相对一个对象而言,这是模块独立性的一个体现。(2)处理功能:模块必须可以对调用的输入数据进行灵活的处理,并为输出准备好处理结果。(3)程序代码:用来实现模块功能的源代码。3.3确定系统最终模块文档大全 实用标准文案概要设计中最重要的就是确定此项目包括哪些模块。根据上两节讲述的设计原则和模块特征,将用户需求转化为下面的模块。**************************************************************************/2.1UML用例图1用户登录信息管理2用户信息管理3学生信息管理4系统管理系统首页用户登陆信息管理用户信息管理学生信息管理通过身份请求添加删除用户修改密码添加查看修改删除系统管理重新登陆退出登陆2.2模块设计文档大全 实用标准文案1数据库设计模块2用户登录识别模块3用户信息管理模块4学生信息管理模块5系统管理模块三详细设计3.1数据库设计数据库名称:student表名:user,stud表user:存放登陆用户的用户名和密码表stud:存放学生基本信息学生表(stus)字段名类型备注stusIDVarchar(30)学生idstuNameNvarchar(50)NotnullstuSexNchar(1)性别'男'或者'女'stuAgeint年龄>0stuDeptNvarchar(30)所在系……3.2模块及窗体设计3.2.1数据库模块设计将数据库的连接包装在一个database类中,以便其他模块能够轻松调用,避免每次重写数据库连接代码。下表是他的基本属性文件名成员变量成员方法database.javapublicstaticConnectioncn;publicstaticStatementst;publicstaticResultSetrs;publicstaticbooleanjoinDB()publicstaticbooleanexecuteSQL(StringsqlString)publicstaticbooleanquery(StringsqlString)代码如下:importjava.sql.*;//引入包publicclassdatabase{publicstaticConnectioncn;//定义一个连接对象publicstaticStatementst;//定义一个SQL语句对象publicstaticResultSetrs;//定义一个数据集publicstaticbooleanjoinDB(){//用来判断是否连接成功booleanjoinFlag;try{joinFlag=true;Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//通过调用java.lang中的Class类的forName方法来实现JDBC—ODBC桥接器cn=DriverManager.getConnection("jdbc:odbc:student","sa","");创建一个连接对象cn.setCatalog("student");//加载数据库System.out.println("数据库连接成功");文档大全 实用标准文案st=cn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);//返回一个可滚动的结果集,数据库变化时结果集跟着变化;不能用结果集更新数据库中的表returnjoinFlag;}catch(SQLExceptionsqlEx){System.out.println(sqlEx.getMessage());joinFlag=false;returnjoinFlag;}catch(ClassNotFoundExceptionnotfoundEX){System.out.println(notfoundEX.getMessage());joinFlag=false;returnjoinFlag;}}publicstaticbooleanexecuteSQL(StringsqlString){booleanexecuteFlag;try{st.execute(sqlString);executeFlag=true;}catch(Exceptione){executeFlag=false;System.out.println("sqlexception:"+e.getMessage());}returnexecuteFlag;}publicstaticbooleanquery(StringsqlString){try{rs=null;rs=st.executeQuery(sqlString);}catch(ExceptionEx){System.out.println("sqlexception:"+Ex);returnfalse;}returntrue;}}3.2.2用户登录识别模块文档大全 实用标准文案代码封装在类Land里,所用到的信息保存在表user里下表是他的基本属性文件名控件成员方法Land.javaJLabel:labelname=newJLabel("用户名")labelmima=newJLabel("密码")Jbutton:btenter=newJButton("确定");btcancel=newJButton("清空");privatevoidJudge(StringsqlString)判断用户名和密码是否正确的成员方法代码:privatevoidJudge(StringsqlString){if(database.joinDB()){//如果数据库连接成功if(database.query(sqlString))//如果SQL语句执行成功try{if(database.rs.isBeforeFirst()){//如果指向记录集的在第一条记录的前面System.out.println("密码正确");jf.setVisible(false);//窗体不可见database.cn.close();//关闭数据库连接newMain();//主窗体}else{System.out.println("错误");newJOptionPane().showMessageDialog(null,"用户名或密码错误!","",JOptionPane.ERROR_MESSAGE);}}catch(Exceptionex){System.out.println(ex.getMessage());}}else{System.out.println("连接数据库不成功!!!");文档大全 实用标准文案}}按钮“确定”的监听事件代码:publicvoidactionPerformed(ActionEvente){if(textname.getText().equals("")){newJOptionPane().showMessageDialog(null,"用户名不能为空!");}elseif(textmima.getText().equals("")){newJOptionPane().showMessageDialog(null,"密码不能为空!");}else{Stringsql="select*fromuserwhereuser_id='"+textname.getText()+"'andpassword='"+textmima.getText()+"'";System.out.println(sql);Judge(sql);//调用成员方法,判断是否用户名和密码正确}}3.2.3用户信息管理模块(1)密码修改用户名将自动从表user里检索出来,供用户选择以下是它的基本属性文件名控件名称xgmima.javaJlabel:lbe2、lbe3、lbe4、lbe5jTextField:tfJpasswordField:pas1、pas2、pas3Jbutton:b1=newJButton("提交");b2=newJButton("退出");将所有用用户名读出来database.joinDB();//连接数据库Stringsql="select*fromuser";try{文档大全 实用标准文案if(database.query(sql)){while(database.rs.next()){//依次将用户名读出Stringname=database.rs.getString("user_id");tf.addItem(name);}}}catch(Exceptione){}确定“按钮”的监听事件代码:b1.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){Stringname=""+tf.getSelectedItem();System.out.println(name);Stringsql="select*fromuserwhereuser_id='"+name+"'";System.out.println(sql);try{if(database.query(sql)){database.rs.next();Stringps1=pas1.getText();Stringpassword=database.rs.getString("Password");if(ps1.equals(password)){if(pas2.getText().equals(pas3.getText())){Stringsupdate="updateusersetpassword='"+pas3.getText()+"'whereuser_id='"+name+"'";database.executeSQL(supdate);newJOptionPane().showMessageDialog(null,"密码更改成功!");}else{newJOptionPane().showMessageDialog(null,"两次密码不同!");}}else{newJOptionPane().showMessageDialog(null,"旧密码不正确!");}}}catch(Exceptionel){System.out.println(el);}}});(2)用户信息添加和删除文档大全 实用标准文案上半部分用来添加用户,下半部分用来删除用户基本属性如下文件名控件名AddDeleteUser.javaprivateJButtonbutACancel,butDCancel,butDelete,butOk;privateJComboBoxcbUserName;privateJLabeljLabel1,jLabel2,jLabel3,jLabel4,jLabel5;privateJPasswordFieldpas1,pas2,pas3;privateJTextFieldtxtname;//将所有用用户名读出来database.joinDB();Stringsql="select*fromuser";try{if(database.query(sql)){while(database.rs.next()){//记录集若有记录则通过循环将数据依次读出Stringname=database.rs.getString("user_id");cbUserName.addItem(name);}}}catch(Exceptione){}//为添加按钮加事件-----------------------------------------butOk.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){if(txtname.getText().equals("")){//判断是否为空newJOptionPane().showMessageDialog(null,"用户名不能为空!");}elseif(pas1.getText().equals("")){newJOptionPane().showMessageDialog(null,"密码不能为空!");文档大全 实用标准文案}elseif(pas1.getText().equals(pas2.getText())){Stringsql="insertintouservalues('"+txtname.getText()+"','"+pas1.getText()+"')";try{if(database.executeSQL(sql)){//若SQL执行成功newJOptionPane().showMessageDialog(null,"添加成功!");cbUserName.addItem(txtname.getText());}}catch(Exceptionea){}}}});删除按钮监听事件代码butDelete.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){Stringname=""+cbUserName.getSelectedItem();//得到用户名Stringsql="select*fromuserwhereuser_id='"+name+"'";try{if(database.query(sql)){database.rs.next();Stringpas=pas3.getText();Stringpassword=database.rs.getString("Password");System.out.println(password);if(pas.equals(password)){//比较密码是否与记录集里对应一致Stringsdelete="deletefromuserwhereuser_id='"+name+"'";if(database.executeSQL(sdelete)){newJOptionPane().showMessageDialog(null,"删除成功!");pas3.setText("");cbUserName.removeAllItems();//将删除的条目从JcomboBox中删除Stringsql1="select*fromuser";if(database.query(sql1)){while(database.rs.next()){//更新JcomboBox条目Stringname1=database.rs.getString("user_id");cbUserName.addItem(name1);}}}}else{newJOptionPane().showMessageDialog(null,"密码不正确!");}}}catch(Exceptionel){System.out.println(el);}}文档大全 实用标准文案});3.2.4学生信息管理模块(1)添加信息该添加是按照先添加学生信息,添加学生信息中的“添加“按钮代码:butOk.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){if(jtf1.getText().equals("")){newJOptionPane().showMessageDialog(null,"学号不能为空");}elseif(jtf2.getText().equals("")){newJOptionPane().showMessageDialog(null,"姓名不能为空");}elseif(jtf3.getText().equals("")){newJOptionPane().showMessageDialog(null,"性别不能为空");}else{Stringsql="insertintostudvalues('"+jtf1.getText()+"','"+jtf2.getText()+"','"+jtf3.getText()+"','"+jtf4.getText()+"','"+jtf5.getText()+"','"+jtf6.getText()+"','"+jtf7.getText()+"')";try{if(database.executeSQL(sql)){newJOptionPane().showMessageDialog(null,"添加成功!");}}catch(Exceptionea){}}}});(2)信息查看分为查看学生基本信息和查看学生成绩信息,因为代码和窗体大致相识,进取其一讲述文档大全 实用标准文案下面是他的属性文件名称控件名称viewstud.javaJtextArea:te=newJTextArea();代码为:classviewstudextendsJInternalFrame{viewstud(){super("查看学生基本信息");//窗体显示得名称Containercon=getContentPane();//创建JinternalFrame的容器对象con.setLayout(newBorderLayout());//设定窗体布局JTextAreate=newJTextArea();JScrollPanecroll=newJScrollPane(te);//加载垂直水平滚动条con.add(croll,BorderLayout.CENTER);database.joinDB();//连接数据库Stringsql="SELECT*FROMstud";try{if(database.query(sql)){while(database.rs.next()){te.append("学号:"+database.rs.getString(1)+"");te.append("姓名:"+database.rs.getString(2)+"");te.append("性别:"+database.rs.getString(3)+"");te.append("年龄:"+database.rs.getString(4)+"");te.append("政治面貌:"+database.rs.getString(5)+"");te.append("系别:"+database.rs.getString(6)+"");te.append("班级:"+database.rs.getString(7)+"");te.append(" ");}}}catch(SQLExceptionex)文档大全 实用标准文案{System.out.println(ex);}this.setClosable(true);//关闭窗口可用setVisible(true);//窗体可见setBounds(20,70,600,350);}}(3)信息修改信息修改分为学生基本信息修改,学生成绩信息修改,由于原理相似就以修改学生基本信息作为例子进行介绍下面是他的属性信息文件名称控件名称xiugai.javaprivateJButtonbutCancel,butOk,butShow;privateJLabeljLabel1,jLabel2,jLabel3,jLabel4,jLabel5,jLabel6,jLabel7;privateJTextFieldjtf1,jtf2,jtf3,jtf4,jtf5,jtf6,jtf7;显示信息按钮的监听事件代码如下:database.joinDB();butShow.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){if(jtf1.getText().equals("")){newJOptionPane().showMessageDialog(null,"请输入学号");}else{Stringsql="select*fromgradewhere学号="+"'"+jtf1.getText()+"'";try{if(database.query(sql)){//此处用了个database.executeSQL(sql)提示resultset关闭if(!database.rs.first()){JOptionPane.showMessageDialog(null,"没有该学生信息...");文档大全 实用标准文案}//下面是用来显示其他文本框里的内容else{database.rs.first();jtf2.setText(database.rs.getString("VBA开发"));jtf3.setText(database.rs.getString("大学英语"));jtf4.setText(database.rs.getString("java开发"));jtf5.setText(database.rs.getString("SQLServer"));jtf6.setText(database.rs.getString("高等数学"));jtf7.setText(database.rs.getString("网站建设"));butOk.setEnabled(true);}}}catch(NullPointerExceptionupe){System.out.println(upe.toString());}catch(SQLExceptionsqle){System.out.println(sqle.toString());}catch(Exceptionex){System.out.println(ex.toString());}}}});(4)删除信息删除学生信息下面是窗口属性文件名称控件名称shanchu.javaprivateJButtonbutCancel,butOk;privateJLabeljLabel1;privateJTextFieldjtf1;privateJPanelp;butOk=newJButton("删除");butCancel=newJButton("清空")删除按钮监听事件代码如下:butOk.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){if(jtf1.getText().equals("")){文档大全 实用标准文案newJOptionPane().showMessageDialog(null,"请输入学号");}else{Stringsql="select*fromstudwhere学号="+"'"+jtf1.getText()+"'";try{if(database.query(sql)){//此处用了个database.executeSQL(sql)提示resultset关闭if(!database.rs.first()){JOptionPane.showMessageDialog(null,"没有该学生信息...");}else{Stringsqq="deletefromstudwhere学号='"+jtf1.getText()+"'";Stringqll="deletefromgradewhere学号='"+jtf1.getText()+"'";Stringslq="select*fromgradewhere学号='"+jtf1.getText()+"'";if(database.query(slq)){if(database.rs.first()){if(database.executeSQL(qll)){}if(database.executeSQL(sqq)){JOptionPane.showMessageDialog(null,"删除成功");}}}}}}3.2.5系统管理模块重新登陆监听事件代码:land.addActionListener(newActionListener(){//重新登陆监听publicvoidactionPerformed(ActionEvente){System.out.println("Land");setVisible(false);newLand();}});退出菜单监听事件代码:exit.addActionListener(newActionListener(){//退出系统监听publicvoidactionPerformed(ActionEvente){setVisible(false);}});3.2.6主窗体菜单设计分为三个主菜单:系统管理、用户管理、学生信息管理系统管理分为:重新登陆和退出用户管理:密码修改、添加/删除用户学生信息管理:删除学生信息及二级菜单--添加记录、信息查看、信息修改添加记录:学生基本信息添加信息查看:基本信息查看修改信息:基本信息修改五软件测试测试数据截图文档大全 实用标准文案/******************************************************************************测试的方法软件测试的方法和技术是多种多样的,网路上也提供了很多免费的工具。对于软件测试技术,可以从不同的角度加以划分。(1)从是否需要执行被测软件的角度,可分为静态测试和动态测试。(2)从是否针对系统的内部结构和具体实现算法的角度来看,可分为白盒测试和黑盒测试。下面具体介绍黑盒测试和白盒测试。(1)黑盒测试。又叫功能测试,由测试人员在不知道程序如何实现的情况下,输入功能需要的数据,查看输出结果的正确性。所谓“黑盒”,其实就是把程序看成是一个完全密封的盒子,测试人员不考虑程序的内部构造,只是按照需求说明,进行数据的录入操作,并查看结果是否满足需求要完成的功能。“黑盒”法着眼于程序外部结构,不考虑内部运算,针对界面和功能进行测试。“黑盒”法是穷举测试,只有把所有可能的输入都进行测试,才能查处程序中所有的错误。实际上测试情况有无穷多个,测试人员不仅要测试合法的输入,还要对那些不合法的输入进行测试。(2)白盒测试。又叫逻辑结构测试。测试人员需要了解功能的内部构造,对所有逻辑路径都进行测试。“白盒”法是穷举路径测试。测试人员必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。即使每条路径都测试了,仍然可能有错误。第一,穷举路径测试无法查出程序违反了设计规范,即程序本身是个错误的程序。第二,穷举路径测试查不出程序中因遗漏路径而出错的情况。第三,穷举路径测试可能发现不了输入数据的错误。******************************************************************************/六总结本次java课程设计主要侧重在对学生信息管理里的添加、删除、修改、查看等最基本的操作,掌握这些最基本的设计思想是很重要的,能够帮助我们开发更加复杂的软件提供依据和基础,所以看似简单的课程设计,却是对我们设计软件的一次考验,一次磨练,所以我一直都保持着很认真地精神来进行设计的,通过这次课程设计对java类和对象的概念有了更深一步的了解,也培养了我们对java课程设计的兴趣的,增强了设计软件的思维能力,虽然时间很短,但还是收获了很多,每次课程设计都是一种锻炼。在今后的学习里,一定要更加努力,学好这门编程语言。参考资料文档大全

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭