面向对象课程设计java大作业报告含源代码
- 格式:docx
- 大小:41.52 KB
- 文档页数:14
华北科技学院计算机系课程综合作业实验报告课程名称JAVA程序设计实验学期2010 至2011 学年第 1 学期学生所在系部计算机年级08级专业班级信管B082学生姓名学号************ 任课教师实验成绩计算机系制《JAVA程序设计》课程综合作业实验报告学生的学号,可以更新这条记录中的数据;“查询记录”,输入要查询学生学号可以查询这个学生的所有信息;选择分数信息中的“各科最高低分”菜单,可以查询所有学科中的最高分和最低分;“总分平均分”显示所有学生的总分和平均分。
3.主要代码本程序使用Java中基于SWING的图形设计,用到java中的java.awt.*内的包,控件的布局用到java.swing.border.*包,事件处理用到java.awt.event.*,连接数据库用到java.sql 登录界面主要代图1public class denglu{public static void main(String args[]){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){ //11System.out.println(""+e);}new WindowBox("登录窗口"); //调用方法}}class WindowBox extends JDialog implements ActionListener{//声明Box baseBox,boxV1,boxV2,boxV3;JButton button1,button2;}}}如果出现用户名密码错误则会出现提示信息对话框图2通过调用Datawin类中的内容可以进入到主界面声明菜单中的显示、添加、删除、修改、查询、最高低分以及总分平均分菜单项和类,能过给菜单添加事件监听事件图3public void actionPerformed(ActionEvent e){if(e.getSource()==itemshow)show.setVisible(true);else if(e.getSource()==itemadd)add.setVisible(true);else if(e.getSource()==itemupdata)updata.setVisible(true);a[k][0]=rs.getString(1);a[k][1]=rs.getString(2);a[k][2]=rs.getString(3);a[k][3]=rs.getString(4);a[k][4]=rs.getString(5);a[k][5]=rs.getString(6);k++;}con.close();}catch(SQLException ee){System.out.println(ee);} //处理异常table=new JTable(a,name);getContentPane().removeAll(); //采用BorderLayout布局add(showRecord,BorderLayout.NORTH);add(new JScrollPane(table),BorderLayout.CENTER);validate();}图4构造增加类,声明组件,定义一个表名Object name[]={"学号","姓名","年龄","性别","系别","班级"};和定义一个表单Object a[][]=new Object[1][6];然后给按钮组件增加以下监听事件,通过对表单中输入数据进而增加到数据库中public void actionPerformed(ActionEvent e)//处理事件图5图6构造删除类,声明组件,在文本框中输入信息,进而可以删除数据库中相应的记录给文本框和按钮增加以下事件public void actionPerformed(ActionEvent e){if(e.getSource()==inputNumber){try{num=inputNumber.getText().trim();con=DriverManager.getConnection("jdbc:odbc:hello","","");sql=con.createStatement();rs=sql.executeQuery("SELECT * FROM 学生信息 WHERExueid='"+num+"'");boolean boo=rs.next();if(boo==false){JOptionPane.showMessageDialog(this,"学号不存在",table.repaint();//重打印表con.close();}catch(SQLException ee){JOptionPane.showMessageDialog(this,"更新失败"+ee,"失败",JOptionPane.ERROR_MESSAGE);}}//if图7构造查询方法查询这个窗体整体彩盒式布局,首先声明类和方法设计窗体的外观,给相应的组件添加事件利用SQL语句查询数据库中的信息 rs=sql.executeQuery("SELECT * FROM 学生信息WHERE xueid='"+num+"'");如果输入学号数据库中不存在提示信息“学号不存在”,否则利用table.repaint();方法将数据库中的信息输入到窗体中的table中public void actionPerformed(ActionEvent e)//处理事件{try//连接数据原 hello{num=inputNumber.getText().trim();con=DriverManager.getConnection("jdbc:odbc:hello","","");图8构造最高最低分类首先定义两个静态变量m,n;将数据库中的信息利用查询的方法显示在数字 int b[][]中,con=DriverManager.getConnection("jdbc:odbc:hello","","");sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);//只读形式rs=sql.executeQuery("SELECT * FROM 分数信息");st();利用如下方法求得语文成绩的最高分和最低分for(k=0;k<lastNumber;k++){if(m<b[k][0]){m=b[k][0];}if(n>b[k][0]){n=b[k][0];}}a[0][1]=m;a[1][1]=n;同理可以求得其它几科成绩的最高分和最低分然后,将object a[][]中的信息显示有窗体中图9构造总分平均分方法首先将数据库中的信息显示在利用SQL查询方法显示有两个数据中object a[][]和int b[][]中利用如下方法将求得总分和平均分try{con=DriverManager.getConnection("jdbc:odbc:hello","",""); sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);rs=sql.executeQuery("SELECT * FROM 分数信息");st();int lastNumber=rs.getRow();b=new int[lastNumber][4];a=new Object[lastNumber][8];int k=0;rs.beforeFirst();while(rs.next()){a[k][0]=rs.getString(1);a[k][1]=rs.getString(2);a[k][2]=rs.getByte(3);b[k][0]=rs.getByte(3);a[k][3]=rs.getByte(4);b[k][1]=rs.getByte(4);a[k][4]=rs.getByte(5);b[k][2]=rs.getByte(5);a[k][5]=rs.getByte(6);b[k][3]=rs.getByte(6);a[k][6]=b[k][0]+b[k][1]+b[k][2]+b[k][3];a[k][7]=(b[k][0]+b[k][1]+b[k][2]+b[k][3])/4;k++;}con.close();}catch(SQLException ee){System.out.println(ee);}图10四、实验结果及分析程序运行中的报告分析1、在登陆时如果输入不正确的用户和密码会提示用户名或密码错误,因为通过getText()方法无法获得正确的字符串从而提示错误2、在进行数据库相应操作时,如果无法正确连接数据库则会提示不存在所需的数据资源,可能原因是没有正确连接到数据源,即可能数据源名称不正确,或者在数据库中不存在相应的表,或者可能SQL语法错误在进行相应的查询的删除操作时,如果不存在输入的学号会提示用户,“学号学号不存在”,因为不在数据库不无法在相应的字段下找到相匹配的字符串。
JAVA面向对象程序设计课程综合作业实验报告一.设计目的JAVA面向对象程序设计课程综合作业是在学生系统地学习了“JAVA面向对象程序设计课程”后,编写“俄罗斯方块游戏”雏形系统。
通过对一个实际问题的分析、设计与实现,将原理与应用相结合,使学生学会将书本知识用于解决实际问题,培养学生的动手能力;另一方面,使学生能深入理解和灵活掌握教学内容。
二.系统名称简易俄罗斯方块游戏三.系统功能需求本游戏的主要工作是:控制一个下落的方块,并尽量使用下落的方块填满一行或多行已存在的方格,并要避免方块层叠到游戏场景的顶部。
不同类型的方块均由多个小方格组成,方块将一直自动下落,直到落在游戏场景底部或者已停住方块上面游戏玩家,可以控制下落方块左移、右移以及下移,也可以旋转方块✧当一个方块停止下落时,要检查是否存在填满方格的行;若存在填满的行,则将其清除;清除一行则游戏玩家可获得一些分值 当前方块层叠到游戏场景的顶部时,游戏结束。
四.系统实现功能1、键盘实现功能:2、菜单功能:(1)方块变形:上健(1)分数栏;(5)方块右移按钮;(2)方块左移:左键(2)游戏开始按钮;(6)方块下移按钮;(3)方块右移:右键(3)方块旋转按钮;(4)方块下移:下健(4)方块左移按钮;3、控制功能:(1)当前方块的左移、右移、下移、旋转;(2)方块块不会超越边界,不会覆盖当前已经落下的方块;(3)随机产生7种方块;(4)实现方块自动下落;(5)当游戏区域底行填满时进行消行;(6)判断某一行是否填满;(7)消行后记录分数(8)判断游戏是否结束。
五.概要设计详细描述出系统中定义了几个类,类之间的关系。
每个类定义了哪些数据成员和方法,数据成员和方法的功能是什么。
六.界面设计及功能实现图1图2如上图1游戏界面,分别有游戏区域,分数标签和开始、旋转、左移、右移、下移按钮。
1、当鼠标点击开始时,随机产生一个方块然后自动下落实现随机产生一个方块的代码如下:int ramd;ramd=(int)(Math.random()*7);//随机产生方块switch(ramd){case 0:block=new JShapeBlock(); break;case 1:block=new LineShapeBlock();break;case 2:block=new LShapeBlock();break;case 3:block=new SquareBlock();break;case 4:block=new TShapeBlock();break;case 5:block =new SShapeBlock();break;case 6:block=new ZShapeBlock();break;}block.setGraphics(drawPanel.getGraphics());block.blockDraw();}实现方块自由下落的代码:public class GameTimerTask extends TimerTask{//线程,实现方块开始后自行下落public void run(){if(canStepDown()){//判断方块是否可以下落block.blockDown();}else {//在背景二维数组里定义方块for(int i=0;i<block.squares.length;i++){Square s=block.squares[i];int rowIndex=s.getLocationY()/squareHeight;int columnIndex=s.getLocationX()/squareWidth;gameFieldSquares[rowIndex][columnIndex]=s;}clearFullRows();//方块满行消除gameOver();int ramd;ramd=(int)(Math.random()*7);//随机产生方块switch(ramd){case 0:block=new JShapeBlock(); break;case 1:block=new LineShapeBlock();break;case 2:block=new LShapeBlock();break;case 3:block=new SquareBlock();break;case 4:block=new TShapeBlock();break;case 5:block =new SShapeBlock();break;case 6:block=new ZShapeBlock();break;}block.setGraphics(drawPanel.getGraphics());block.blockDraw();}}}和gameTimer=new Timer();gameTimer.scheduleAtFixedRate(new GameTimerTask(),0,timerPeriod);2、分数标签栏,当满行并消除后加10分,当同时消除两行时加100分,当同时消三行以上时加(行数*200)分。
Java大作业报告课程名称:面向对象JAVA编程技术设计题目:猜数字游戏姓名:徐俏学号:3100403012专业班级:信息工程类101班一.设计内容:游戏者在"0~100","0~200","0~300"三个区间内选择随机数字范围,点击按钮“随机产生数字”产生数字n,假设在“0~100”之间,2、当输入一个整数m时,点击按钮“比较”n与m比较。
当m>n时,提示"太大了哦!还可以再小一点~~~";否则显示"小了哦,可以猜大一点的数!",依次类推,直到猜到数字n。
显示"答对啦!!!"。
并且出现"猜的次数大于三次请自觉摁下惩罚键吧!",是的话,按下按钮"进入惩罚选择"。
3、然后点击按钮选择惩罚方式:"惩罚装扮对象""惩罚地点""惩罚事件",都由程序随机产生,最终得到惩罚事件。
二.摘要:J ava.awt,即java抽象窗口工具包(Abstract Window Toolkit,AWT)提供了许多用来设计GUI (Graphics User Interface,图形用户界面)组件类。
java早期进行用户界面设计时,主要是用java.awt包提供的类。
如Button(按钮)、TextField(文本框)和List(列表)等。
JDK1.2推出之后,增加了一个新的javax.swing包,该包提供了功能更为强大的用来设计GUI的类。
Java.awt.event,提供处理由 AWT 组件所激发的各类事件的接口和类。
有关 AWT 事件模型的细节,请参见 java.awt.AWTEvent 类。
事件由事件源所激发。
向事件源注册的事件侦听器可接收有关特定事件类型的通知。
此包定义了事件和事件侦听器,以及事件侦听器适配器,它是让事件侦听器的编写过程更为轻松的便捷类。
实验报告学年第学期任课老师:m=max[i];}}System.out.println("5个人中java成绩最大值是:"+m);}}实验结果分析与总结1、程序运行结果(请提供所完成的各道题运行结果界面截图):2、在实验过程中遇到的问题与解决方法:实验中并未有太多技术上的问题,除了对软件运用的不够熟练造成最初的一些错误,比如,用Jcreator时未编译便运行,一直出错,检查多次后才发现此处与eclipse的不同(上机时没问题,写实验报告用的Jcreator出错了,所以是软件用的不熟记错的缘故。
)而且要先编译Student类才可编译Main。
3、实验过程中的发现与收获,未解决或需进一步解决的问题:实验中的发现便是java其实较C/C++简单许多,很多东西都不要自己多加考虑,但试验还是太少所以会在一些小的细节方面浪费很多时间。
指导老师评阅意见指导老师:年月日填写内容时,可把表格扩大。
附:实验源程序代码//Mainpackage Test;public class Main {public static void main(String[] args) {Main ma=new Main();Student stu1=new Student();stu1.setAge(18);stu1.setJava(86);stu1.setName("aaa");stu1.setNo("001");stu1.setSex("M");int a=stu1.getJava();System.out.println("第一个学生的信息为:\r\n"+"姓名是:"+stu1.getName()+"\r\n"+"年龄是:"+stu1.getAge()+"\r\n"+"性别是:"+stu1.getSex()+"\r\n"+"学号是:"+stu1.getNo()+"\r\n"+"成绩是:"+stu1.getJava()+"\r\n");Student stu2=new Student();stu2.setAge(18);stu2.setJava(90);stu2.setName("bbb");stu2.setNo("011");stu2.setSex("M");int b=stu2.getJava();System.out.println("第二个学生的信息为:\r\n"+"姓名是:"+stu2.getName()+"\r\n"+"年龄是:"+stu2.getAge()+"\r\n"+"性别是:"+stu2.getSex()+"\r\n"+"学号是:"+stu2.getNo()+"\r\n"+"成绩是:"+stu2.getJava()+"\r\n");System.out.println("两个人的java平均成绩为:"+(stu1.getJava()+stu2.getJava())/2);Student stu3=new Student();stu3.setAge(20);stu3.setJava(76);stu3.setName("ccc");stu3.setNo("067");stu3.setSex("F");int c=stu3.getJava();System.out.println("第三个学生的信息为:\r\n"+"姓名是:"+stu3.getName()+"\r\n"+"年龄是:"+stu3.getAge()+"\r\n"+"性别是:"+stu3.getSex()+"\r\n"+"学号是:"+stu3.getNo()+"\r\n"+"成绩是:"+stu3.getJava()+"\r\n");Student stu4=new Student();stu4.setAge(19);stu4.setJava(100);stu4.setName("ddd");stu4.setNo("09091219");stu4.setSex("M");int d=stu4.getJava();System.out.println("第四个学生的信息为:\r\n"+"姓名是:"+stu4.getName()+"\r\n"+"年龄是:"+stu4.getAge()+"\r\n"+"性别是:"+stu4.getSex()+"\r\n"+"学号是:"+stu4.getNo()+"\r\n"+"成绩是:"+stu4.getJava()+"\r\n");Student stu5=new Student();stu5.setAge(22);stu5.setJava(89);stu5.setName("eee");stu5.setNo("097");stu5.setSex("F");int e=stu2.getJava();System.out.println("第五个学生的信息为:\r\n"+"姓名是:"+stu5.getName()+"\r\n"+"年龄是:"+stu5.getAge()+"\r\n"+"性别是:"+stu5.getSex()+"\r\n"+"学号是:"+stu5.getNo()+"\r\n"+"成绩是:"+stu5.getJava()+"\r\n");int max[]={a,b,c,d,e};int m=max[0];for(int i=0;i<5;i++){if(m<max[i]){m=max[i];}}System.out.println("5个人中java成绩最大值是:"+m);}}//Student类package Test;public class Student {private String sNo;private String sName;private String sSex;private int sJava;private int sAge;//set方法public void setJava(int java){sJava=java;;}public void setAge(int age){sAge=age;}public void setNo(String no){sNo=no;}public void setName(String name){ sName=name;}public void setSex(String sex){sSex=sex;}//get方法public int getJava(){return sJava;}public int getAge(){return sAge;}public String getNo(){return sNo;}public String getName(){return sName;}public String getSex(){return sSex;}}。
课程设计一、实验目的1.加深对课堂讲授内容的理解,掌握解决实际应用问题时所应具有的查阅资料、技术标准和规范,以及软件编程、调试等能力,掌握面向对象的编程思想及Java语言程序设计的规律与技巧,为进一步学习web应用开发及今后从事专业工作打下基础。
2. 使用本学期学习的Java SE技术(也可以使用课堂教学中没有学习过的Java技术,但是应当以Java SE技术为主)完成多功能日历GUI程序的设计,使之具有如下基本功能:一年日历用12页显示,每页显示一个月的日历。
日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。
3.在完成基本功能的基础上发挥自己的想象力与创造力,使程序凸显出与众不同的特点与功能,形成本小组的特性色。
二、实验要求1.问题描述准确、规范。
2.程序结构合理,调试数据准确、有代表性.。
3.界面布局整齐,人机交互方便。
4.输出结果正确。
5.正确撰写实验报告。
三、实验内容编写一个GUI程序实现日历的功能。
一年日历用12页显示,每页显示一个月的日历。
日历可以按年或月前后翻动,能够显示当前的日期以及当前农历,可以为每页日历选择背景图片。
可以实现显示时钟,时钟能进行整点报时。
可以实现备忘记事功能,能在每天添加、修改、删除记事等操作。
四、实验步骤1.在上机实验前,小组成员进行选题讨论,确定小组感兴趣而又伸缩性强的题目多功能日历。
2.在第一次上机实验时讨论分工,分工明确之后,分头合作进行。
3.各成员完成自己的任务后,最后进行统筹合并,以及程序最后的优化。
4. 根据实验结果,写出合肥工业大学实验报告。
实验报告应当包括:实验内容,程序流程图,类结构,程序清单,运行结果,以及通过上机取得的经验。
5.详细的上机实验步骤见任务分工及程序设计进度表。
五、实验结果经过小组成员的共同努力,最终我们小组设计的多功能日历程序能够实现实验的基本要求——一年日历用12页显示,每页显示一个月的日历。
日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。
课程设计(大作业)报告课程名称:面向对象程序设计课程设计设计题目:设计一个计算器院系:班级:设计者:学号:指导教师:设计时间:2013.1..1.18课程设计(大作业)任务书目录课程设计(大作业)报告 (4)一、题目要求 (4)⑴、界面设计 (4)⑵、计算器的基本功能 (4)二、需求分析 (4)三、题目分析 (5)四、分工设计 (5)⑴、程序代码 (5)⑵、运行结果截图 (9)五、总体设计 (10)⑴流程图 (10)⑵UML图 (11)六、详细设计和主要代码 (11)七、运行结果 (21)八、总结 (21)九、参考文献 (22)课程设计(大作业)报告一、题目要求⑴、界面设计首先按设计要求实现其基本功能,其次设计布局,按照GridLayoutd的布局方法,将空间划分为由行和列组成的网格单元,每个单元放一个组件,网格单元大小可不同,尽量将相同属性的按钮放在一个区域,方便操作。
⑵、计算器的基本功能:①加法:两个数据进行加操作,可以为小数。
②减法:两个数据进行减操作,可以为负数相减。
③乘法:两个数相乘操作。
④除法:两个数相除操作。
⑤开平方:对任意一个数进行开平方运算,可以是小数。
⑥求余:对任意一个数进行求余运算。
⑦倒数:对任意一个数进行倒数运算功能可自行增加。
提示:添加相关组件并进行按钮事件处理。
二、需求分析在日常生活中经常要用到计算器,比如科学计算器、数值计算、会计业务等,在Applet中实现一个精巧实用的计算器,可以让用户在使用网站服务的同时,可以很方便地进行数据运算,可增加页面的实用性,同时让用户的操作也更方便与快捷。
本次实验要求实现一个具有四则运算的计算器,拥有加、减、乘、除、求余、求倒等功能,并且还要求具备清零等功能。
三、题目分析计算器功能键的实现actionPerformed(ActionEvent e)响应整个计算的文本框。
这次设计的计算器计算功能主要包括加法、减法、乘法、除法、求平方根、取余,1/x将文本框中的数据为它的倒数,sqrt将文本框中的内容求平方根,且有小数点、正负号、求倒数、退格和清零等功能。
面向对象大作业JAVA---我的小闹钟--闹钟的制作和功能扩充每个人呢,都有一个属于自己喜欢的闹钟,在夜里静静的时候,它依然有着欢快的声音,陪着你入眠。
从这里起步,经过我的设计,变成了下面这幅:程序运行结果:通过对程序的阅读,理解,注释,借鉴和修改,我在原先的基础上增加了:一、图片的插入【两种方法】二、窗口添加的格言和数字时间的汉字,并进行了字体和颜色的改换三、音乐的添加【背景音乐和钟表的伴奏声】两种方法四、闹铃功能的添加五、克服屏幕闪烁的两种方法添加,其中双缓冲的比较好。
以下进行分别介绍:(1)图片的插入【两种方法】我增加了表盘的方框,并在里面插入静态jpg图片,在表的两旁添加了两幅成对的蝴蝶gif动态图片,在显示的数字时间下面铺垫了远景图;Image img,img1,img2,img3;////添加图片的方法一img=getImage(getCodeBase(),"1.jpg");//初始化操作,将图像"1.jpg"装入img中img1=getImage(getCodeBase(),"2.jpg");//初始化操作,将图像"2.jpg"装入img1中img2=getImage(getCodeBase(),"9.gif");//初始化操作,将图像"9.jpg"装入img2中img3=getImage(getCodeBase(),"7.gif");//初始化操作,将图像"7.jpg"装入img3中g.drawImage(img,xcenter-54,ycenter-54,109,109,this); //将img显示在表盘的窗口中//g.drawImage(img1,10,220,680,330,this); //继续将img1显示在盘外的窗口中g.drawImage(img2, 420, 10, this );g.drawImage(img3, 140, 10, this );//添加图片的方法二Toolkit toolkit=Toolkit.getDefaultToolkit();img = toolkit.getImage("1.jpg");//图片的背景g.drawImage(img, xcenter-54,ycenter-54,109,109, this );img1 = toolkit.getImage("2.jpg");//图片的背景g.drawImage(img1, 10, 220,680,330, this );img2 = toolkit.getImage("9.gif");//动态图片g.drawImage(img2, 420, 10, this );img3 = toolkit.getImage("7.gif");//动态图片g.drawImage(img3, 140, 10, this );(2)参考书本知识,我对窗口添加的格言和数字时间的汉字进行了字体和颜色的改换(可以让自己对自己的闹钟个性化):g.setFont(new Font("/*Monospaced/Dialog/Arial*/Times newRoman",Font.BOLD/*PLAIN*/,14)); //设置字体g.setColor(Color.blue); //该语句使下面格言字体呈颜色为blueg.drawString("先相信自己,然后别人才会相信你。
课程:Java程序设计与应用开发题目:登录系统与钟表实现班级:XXXXXXXXXX学号:XXXXXXXX姓名:XXXX日期:XXXXX一、大作业目的用面向对象语言JA V A完成登录系统和钟表的分析、设计和实施。
通过课程设计掌握面向对象编程技术、GUI编程、常用类库的使用和应用系统的开发过程。
二、大作业题目描述和要求1.题目设计简单的登录系统和钟表界面,掌握Java编程中的多媒体应用。
2.要求(1)登录系统是java编程中比较基础的,设计一个登录对话框,通过输入正确的用户名和密码来进入系统,系统是一个带有菜单栏的记事本程序,通过点击菜单栏上的按钮来实现相应的功能。
(2) 通过设计一个钟表程序进一步掌握java在多媒体方面的应用。
3. 开发环境Eclipce + JDK1.4.2三、系统分析1.对于登录系统,首先应该对登录界面进行设计,该对话框中包括两个标签,一个文本输入框,一个密码输入框和两个按钮,这些GUI组件被添加到一个使用了网络袋布局的面板panel中,面板panel又被添加到Text_Login的内容窗格。
设计该系统的初步思路就是首先需要定义图像生成器的界面窗口,其次就是往每个按钮上添加触发事件监听器(如ActionListener、MouseListener、MouseMotionListener),然而在实际操作的过程中,新的问题不断出现,不过最后依依解决了。
对于记事本程序中的菜单栏的实现,菜单也是一种常用的GUI组件,菜单是一种层次结构,最顶层是菜单栏,在菜单栏中可以添加若干个菜单,每个菜单又可以添加若刚菜单选项,子菜单。
当单击一个菜单选项时,会生成一个动作事件,为菜单选项添加事件侦听器就可以侦听起动作事件。
2.对于Java的多媒体应用之钟表实现,程序在窗口上显示一个表盘,时刻度和分刻度为3D样式的,分别为黑灰色和灰色时针分针秒针随着时间在走动,间隔1s。
时针和分针的样式设计为略显锥形,秒针为简单的直线形。
《JAVA面向对象程序设计》课程设计报告(2011-2012学年第2学期)系别:厦门理工学院计算机科学与技术系专业名称:10级网络工程1班课程设计科目:《JAVA面向对象程序设计》课程设计学生姓名:学号:指导教师:***成绩:完成时间:2012年7月6日题目JAVA程序课程设计任务一手机号码检测器(一)设计任务与目标任务:手机号码是由11位数字构成,用户在输入手机号码时经常混乱输入若干位数字或字母,要求你编写一个程序检测用户所输入的手机号码是否符合规则。
要求目标:检测所输入的手机号码是否是11位检测每一位是否都为数字。
分析论证:本题目要求对用户输入的手机号码进行检测,判断输入的正确性。
曾经有做过类似字符比较的题目,可以借鉴。
将字符的比较运用进来,把用户的输入字符和正确的进行比较。
但是必须满足多次输入和错误提醒。
同时还可以添加提示错误的位置和错误字符是什么。
程序正确运行时可以满足以上功能,基本可以达到题目要求了。
(二)方案设计与论证为了满足多次输入的要求,将提示和输入的操作放在一个循环体中,我采用了do_whiele()循环。
每次输入结束后提示是否继续输入。
在循环中逐步对输入的号码位数和字符类型进行检测。
位数可以分超出和不足,并均给出错误提示。
如果位数满足要求后对手机号码类型进行检测。
一般手机号在0~9之间,所以不满足的字符将报错。
通过将输入的整个字符串调用charAt(int i)方法对字符串逐位比较。
本程序的特点在于可以满足了多次输入和错误字符的显示(内容和位置)。
在程序的调试过程中,有过多次输入正确的号码也会报错(还会报错0位错误),这是因为记录错误位子的变量放在错误条件下并且未在循环体中初始化为0。
最终解决了此问题。
(三)程序框图或流程图,程序清单与调用关系(四)程序运行的测试与分析实现了多次输入和错误提示,可以判断输入的号码的错误位置及字符,错误类型,满足了设计构思要求。
最终结果如下图:实验结果截图:(五)结论心得实验过程中对于判断条件的选择出现了问题,开始时觉得要对输入的字符一个一个的比较,这样增加了难度也不方便实现。
Java面向对象课程设计报告报告题目:基于Java的制药企业进销存管理系统的设计与开发学院: 信息与电子工程学院专业: 计算机科学与技术班级: 计算机191、192学号: 190210001、190210051学生姓名: 王一领(组长)、李二信、指导教师: 许加兵二○二一年七月Java面向对象程序课程设计任务书一、主要任务与目标1.掌握Java语言,能够学会使用JSP开发具体的网站。
2.熟悉数据库MySQL的使用,熟悉数据库编程语言(主要是SQL)。
3.使用所学知识开发一个基于Java的制药公司进销存管理系统。
二、主要内容与基本要求本系统在实施后应能集中处理原料、成药、半成品、废料的进销存等的管理。
该系统按结构分为两大部分:前台管理和后台管理。
根据制药行业自身的特点,系统主要功能设计有:信息管理:对企业产品、原辅料供应商、客户等基础信息实现登记入库,并提供查询功能。
进货管理: 对进货入库进行流程化管理,建立完善的产品和报表管理。
进货管理与系统的财务、销售和库存等管理功能结合可以动态掌握进货业务的付款情况、从而减少盲目采购, 有效控制库存, 使财务部门及时掌握库存的进货成本。
销售管理:销售管理对销售部门的日常业务进行跟踪和控制管理, 能够处理多种销售方式, 提供多种方便灵活的查询方式, 并能进行发票和报表打印。
库存管理:库存管理对企业物流的业务操作进行全面的控制和管理, 及时反映出物资资金占用的状况。
提供商品入库、出库、库存统计和查询等功能。
来往管理:来往管理对企业进货和销售过程中产生的现金交易进行管理,及时反映出企业现金流的状况。
提供原辅料入库结账、结账查询等等功能。
系统管理:这是系统管理员的工作。
可设置各操作员使用系统操作的权限。
并进行数据备份和数据恢复。
对操作员进行的操作进行日志管理,还可提供用户密码的更改。
三、开发工具Eclipse、Android、iOS、JDK、MyEclipse、NetBean、MySQL、Oracle、UML、Rational Rose等等(供选择)四、计划进度1.5月26日-- 5月28日:搜集资料、查阅文献,确定选题2.5月29日--5月31日:需求分析,系统软件总体设计,系统功能模块分析与划分,设计UML类图。
Java程序设计报告年级专业信息管理与信息系统学号学生姓名指导教师二○一四年六月一、所用到的表的结构及数据类型customer顾客表操作人员表1、登录功能打开Java文件Login.java运行后输入错误的用户名后出现:输入用户名Lucy 密码:123点击登录进入操作界面:2、添加功能下拉顾客信息系统菜单,选择添加客户信息添加信息前数据库客户表的内容:没有编号0000013添加客户0000013:数据库内表变为:注:0000015号是截图之前添加进去的3、查询功能下拉客户信息系统菜单,选择查询客户信息,输入客户编码0000013后点击确定查询此顾客:4、修改功能下拉菜单客户信息系统,选择修改客户信息,重新输入相应的正确信息,将错误的覆盖掉,此处将0000013张蔷年龄改为32:数据库表内内容:5、删除功能下拉菜单客户信息系统,选择删除客户信息,输入客户编码0000013点击确认:数据库信息变为:0000013号信息已经删除6、退出系统功能下拉菜单客户信息管理选择退出:然后就退出了界面。
三、程序源代码package LoginSystem;import java.sql.*;import java.io.*;import javax.swing.*;import java.awt.*;//登录界面public class Login extends JFrame{private TextField nameField = new TextField(10);private JPasswordField passwordField = new JPasswordField(15); private JButton loginButton = new JButton("登录");private JButton exitButton = new JButton("退出");private JLabel titleLabel = new JLabel("梦之路时尚天堂商品管理系统"); private JLabel userLabel = new JLabel("用户名");private JLabel pwdLabel = new JLabel("密码");private String user = null;private char[] pwd = null;public static void main(String args[]){Login frame = new Login();frame.setTitle("系统登录");frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);frame.setResizable(false);frame.setLocation(600,300);frame.pack();frame.setVisible(true);}public Login(){JPanel titlePanels = new JPanel();titlePanels.add(titleLabel);titleLabel.setForeground(Color.red);JPanel labelPanels = new JPanel();labelPanels.setLayout(new GridLayout(2,1,10,40));labelPanels.add(userLabel);labelPanels.add(pwdLabel);JPanel textFieldPanels = new JPanel();textFieldPanels.setLayout(new GridLayout(2,1,10,40));textFieldPanels.add(nameField);textFieldPanels.add(passwordField);JPanel buttonPanels = new JPanel();buttonPanels.add(loginButton);buttonPanels.add(exitButton);JPanel picturePanels = new JPanel();JLabel lb = new JLabel(new ImageIcon("A.png"));picturePanels.add(lb);JPanel dialogPanels = new JPanel();dialogPanels.setLayout(new BorderLayout());dialogPanels.add(titlePanels,BorderLayout.NORTH);dialogPanels.add(labelPanels,BorderLayout.WEST);dialogPanels.add(textFieldPanels,BorderLayout.CENTER);dialogPanels.add(buttonPanels,BorderLayout.SOUTH);dialogPanels.add(picturePanels,BorderLayout.EAST);add(dialogPanels);exitButton.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent event){System.exit(0);}});loginButton.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent event){Connection con=Login.getConnection();try{Statement state=con.createStatement();user = nameField.getText();pwd = passwordField.getPassword();String pwds = new String(pwd);String sql = "select 密码from 操作人员where 用户名='"+user+"'";ResultSet rs = state.executeQuery(sql);rs.next();if(pwds.equals("")||user.equals("")){JOptionPane.showMessageDialog(null,"用户名或密码不能为空!","错误",JOptionPane.ERROR_MESSAGE);}else if(!(rs.getString("密码").equals(pwds))){JOptionPane.showMessageDialog(null,"用户名或密码错误!","错误",JOptionPane.ERROR_MESSAGE);}else{new Goods();dispose();}Login.closeConn(con);Login.closeState(state);Login.closeRs(rs);}catch(SQLException e){JOptionPane.showMessageDialog(null,"用户名或密码错误!","错误",JOptionPane.ERROR_MESSAGE);}}});}public static void closeConn(Connection conn){try {if(conn != null){conn.close();}} catch (SQLException e) {e.printStackTrace();}}public static void closeState(Statement state) {try {if(state != null){state.close();}} catch (SQLException e) {e.printStackTrace();}}public static void closeRs(ResultSet rs) {try {if(rs != null){rs.close();}} catch (SQLException e) {e.printStackTrace();}}//连接数据库public static Connection getConnection(){String userName = "sa";String userPwd = "123";Connection conn=null;try {Class.forName(driverName);conn = DriverManager.getConnection(dbURL, userName, userPwd);}catch (Exception e){e.printStackTrace();}return conn;}}//菜单界面class Goods{private static final long serialVersionUID=1L;static final int WIDTH=760;static final int HEIGHT=510;JPopupMenu pop;JMenuItem item2;JFrame f;JMenuItem item1;JPanel p;JTabbedPane tp;public Goods(){f=new JFrame("梦之路时尚天堂商品管理系统");JMenuBar menubar1=new JMenuBar();tp=new JTabbedPane();p=new JPanel();f.setJMenuBar(menubar1);f.add(p);p.add(tp);JMenu menu1=new JMenu("顾客信息系统");menu1.setMnemonic('Z');menubar1.add(menu1);JMenuItem item1=new JMenuItem("添加客户信息");JMenuItem item2=new JMenuItem("修改客户信息");JMenuItem item3=new JMenuItem("查询客户信息");JMenuItem item4=new JMenuItem("删除客户信息");JMenuItem item5=new JMenuItem("退出");menu1.add(item1);menu1.add(item2);menu1.add(item3);menu1.add(item4);menu1.add(item5);f.add(p);JLabel lb = new JLabel(new ImageIcon("SC.jpg"));p.add(lb);f.setVisible(true);f.setSize(WIDTH,HEIGHT);Toolkit kit=Toolkit.getDefaultToolkit();Dimension screenSize=kit.getScreenSize();int width=screenSize.width;int height=screenSize.height;int x=(width-WIDTH)/2;int y=(height-HEIGHT)/2;f.setLocation(x,y);item1.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent Event){Add con1=new Add();tp.addTab("添加客户信息",con1);tp.setEnabledAt(0,true);tp.setTitleAt(0,"添加客户信息");tp.setPreferredSize(new Dimension(500,200));tp.setTabPlacement(JTabbedPane.TOP);tp.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);}});item2.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent Event){Update con2=new Update();tp.addTab("修改客户信息",con2);tp.setEnabledAt(0,true);tp.setTitleAt(0,"修改客户信息");tp.setPreferredSize(new Dimension(500,200));tp.setTabPlacement(JTabbedPane.TOP);tp.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);}});item3.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent Event){Select con3=new Select();tp.addTab("查询客户信息",con3);tp.setEnabledAt(0,true);tp.setTitleAt(0,"查询客户信息");tp.setPreferredSize(new Dimension(500,200));tp.setTabPlacement(JTabbedPane.TOP);tp.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);}});item4.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent Event){Delect con4=new Delect();tp.addTab("删除客户信息",con4);tp.setEnabledAt(0,true);tp.setTitleAt(0,"删除客户信息");tp.setPreferredSize(new Dimension(500,200));tp.setTabPlacement(JTabbedPane.TOP);tp.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);}});item5.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){System.exit(0);}});menu1.addMenuListener(new MenuListener(){public void menuSelected(MenuEvent event){item2.setEnabled(!item1.isSelected());}public void menuDeselected(MenuEvent event){}public void menuCanceled(MenuEvent event){}});}}//信息添加class Add extends JPanel{public void add(Component c,GridBagConstraints constraints,int x,int y,int w,int h){constraints.gridx=x;constraints.gridy=y;constraints.gridwidth=w;constraints.gridheight=h;add(c,constraints);}Add(){GridBagLayout lay=new GridBagLayout();setLayout(lay);JButton ok=new JButton("确定");JButton clear=new JButton("清空");JButton c=new JButton("关闭");JLabel name=new JLabel("姓名");JLabel phone=new JLabel("电话号码");JLabel sex=new JLabel("性别");JLabel num=new JLabel("客户编码");JLabel years=new JLabel("年龄");Font font=new Font("Serief", Font.BOLD, 22);final JTextField nameinput=new JTextField(10);final JTextField phoneinput=new JTextField(10);final JTextField sexinput=new JTextField(10);final JTextField numinput=new JTextField(10);final JTextField yearsinput=new JTextField(10);JLabel title=new JLabel("顾客基本信息");title.setFont(font);title.setForeground(Color.blue);JButton additionbutton=new JButton("添加");GridBagConstraints constraints=new GridBagConstraints();constraints.fill=GridBagConstraints.NONE;constraints.weightx=4;constraints.weighty=7;add(title,constraints,0,0,4,1);add(num,constraints,0,4,1,1);add(name,constraints,0,1,1,1);add(phone,constraints,0,5,1,1);add(sex,constraints,0,3,1,1);add(years,constraints,0,2,1,1);add(nameinput,constraints,1,1,1,1);add(phoneinput,constraints,1,5,1,1);add(sexinput,constraints,1,3,1,1);add(numinput,constraints,1,4,1,1);add(yearsinput,constraints,1,2,1,1);add(ok,constraints,3,1,1,1);add(clear,constraints,3,3,1,1);add(c,constraints,3,5,1,1);c.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent Event){removeAll();}});ok.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent Event){try{}catch(ClassNotFoundException ex) {}String user="sa";String password="123";Statement stmt;ResultSet rs;PreparedStatement prestmt;String nametext=nameinput.getText();String phonetext=phoneinput.getText();String sextext=sexinput.getText();String numtext=numinput.getText();String yearstext=yearsinput.getText();try{Connection con= DriverManager.getConnection(url,user,password);prestmt=con.prepareStatement("INSERT INTO customer顾客VALUES(?,?,?,?,?)" );prestmt.setString(5,phonetext);prestmt.setString(2,nametext);prestmt.setString(4,sextext);prestmt.setString(1,numtext);prestmt.setString(3,yearstext);prestmt.executeUpdate();con.close();JOptionPane.showMessageDialog(null,"信息添加成功","OK",RMATION_MESSAGE);}catch(SQLException ex) {}}});clear.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent Event){nameinput.setText("");phoneinput.setText("");sexinput.setText("");numinput.setText("");yearsinput.setText("");}});}}//信息修改class Update extends JPanel{public void add(Component c,GridBagConstraints constraints,int x,int y,int w,int h){constraints.gridx=x;constraints.gridy=y;constraints.gridwidth=w;constraints.gridheight=h;add(c,constraints);}Update(){GridBagLayout lay=new GridBagLayout();setLayout(lay);JButton ok=new JButton("确定");JButton clear=new JButton("清空");JButton c=new JButton("关闭");JLabel name=new JLabel("姓名");JLabel phone=new JLabel("电话号码");JLabel sex=new JLabel("性别");JLabel num=new JLabel("客户编码");JLabel years=new JLabel("年龄");final JTextField nameinput=new JTextField(10);final JTextField phoneinput=new JTextField(10);final JTextField sexinput=new JTextField(10);final JTextField numinput=new JTextField(10);final JTextField yearsinput=new JTextField(10);JLabel title=new JLabel("修改基本信息");Font font=new Font("Serief", Font.BOLD, 22);title.setFont(font);title.setForeground(Color.blue);//设置标签前景色JButton additionbutton=new JButton("添加");GridBagConstraints constraints=new GridBagConstraints();constraints.fill=GridBagConstraints.NONE;constraints.weightx=4;constraints.weighty=7;add(title,constraints,0,0,4,1);add(name,constraints,0,1,1,1);add(phone,constraints,0,5,1,1);add(sex,constraints,0,3,1,1);add(num,constraints,0,4,1,1);add(nameinput,constraints,1,1,1,1);add(phoneinput,constraints,1,5,1,1);add(sexinput,constraints,1,3,1,1);add(numinput,constraints,1,4,1,1);add(years,constraints,0,2,1,1);add(yearsinput,constraints,1,2,1,1);add(ok,constraints,3,1,1,1);add(clear,constraints,3,3,1,1);add(c,constraints,3,5,1,1);c.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){removeAll();}});ok.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent Event) {try{}catch(ClassNotFoundException ex) {}String user="sa";String password="123";Statement stmt;ResultSet rs;PreparedStatement prestmt;String nametext=nameinput.getText();String phonetext=phoneinput.getText();String sextext=sexinput.getText();String numtext=numinput.getText();String yearstext=yearsinput.getText();try{Connection conn= DriverManager.getConnection(url,user,password);prestmt=conn.prepareStatement("update customer顾客set cname=?,csex=?,ctelephone=?,cage=? WHERE cno=?");prestmt.setString(1,nametext);prestmt.setString(2,sextext);prestmt.setString(5,numtext);prestmt.setString(4,yearstext);prestmt.setString(3,phonetext);prestmt.executeUpdate();prestmt.close();conn.close();JOptionPane.showMessageDialog(null,"信息修改成功","OK",RMATION_MESSAGE);}catch(SQLException ex) {ex.printStackTrace();}}});clear.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent Event){nameinput.setText("");phoneinput.setText("");sexinput.setText("");numinput.setText("");yearsinput.setText("");}});}}//信息删除class Delect extends JPanel{public void add(Component c,GridBagConstraints constraints,int x,int y,int w,int h){constraints.gridx=x;constraints.gridy=y;constraints.gridwidth=w;constraints.gridheight=h;add(c,constraints);}Delect(){GridBagLayout lay=new GridBagLayout();setLayout(lay);JButton ok=new JButton("确定删除此顾客!");JButton clear=new JButton("清空");JLabel c=new JLabel("客户编码");Font font=new Font("Serief", Font.BOLD, 22);c.setFont(font);c.setForeground(Color.blue);//设置标签前景色final JTextField d=new JTextField(16);JLabel title=new JLabel("识别信息");JButton additionbutton=new JButton("添加");GridBagConstraints constraints=new GridBagConstraints();constraints.fill=GridBagConstraints.NONE;constraints.weightx=4;constraints.weighty=6;add(c,constraints,0,1,1,1);add(d,constraints,1,1,1,1);add(ok,constraints,0,2,1,1);add(clear,constraints,1,2,1,1);ok.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent Event){try{}catch(ClassNotFoundException ex) {}String user="sa";String password="123";Statement stmt;ResultSet rs;PreparedStatement prestmt;try{ Connection conn= DriverManager.getConnection(url,user,password);prestmt=conn.prepareStatement("DELETE FROM customer顾客WHERE cno=?");prestmt.setString(1,d.getText());prestmt.executeUpdate();prestmt.close();conn.close();JOptionPane.showMessageDialog(null,"该顾客记录已删除","OK",RMATION_MESSAGE);}catch(SQLException ex) {}}});clear.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent Event){d.setText("");}});}}//顾客信息查询class Select extends JPanel{public void add(Component c,GridBagConstraints constraints,int x,int y,int w,int h){constraints.gridx=x;constraints.gridy=y;constraints.gridwidth=w;constraints.gridheight=h;add(c,constraints);}Select(){GridBagLayout lay=new GridBagLayout();setLayout(lay);JButton ok=new JButton("确定查询此顾客");JButton clear=new JButton("清空");JLabel c=new JLabel("客户编码");final JTextField d=new JTextField(16);JLabel title=new JLabel("识别信息");JButton additionbutton=new JButton("添加");JLabel name=new JLabel("姓名");JLabel id=new JLabel("客户编码");JLabel sex=new JLabel("性别");JLabel num=new JLabel("电话号码");JLabel years=new JLabel("年龄");final JTextField nameinput=new JTextField(10);final JTextField idinput=new JTextField(10);final JTextField sexinput=new JTextField(10);final JTextField numinput=new JTextField(10);final JTextField yearsinput=new JTextField(10);GridBagConstraints constraints=new GridBagConstraints();constraints.fill=GridBagConstraints.NONE;constraints.weightx=4;constraints.weighty=7;add(c,constraints,0,1,1,1);add(d,constraints,1,1,1,1);add(ok,constraints,0,2,1,1);add(clear,constraints,1,2,1,1);add(id,constraints,0,3,1,1);add(name,constraints,0,4,1,1);add(sex,constraints,0,5,1,1);add(num,constraints,0,7,1,1);add(years,constraints,0,6,1,1);add(idinput,constraints,1,3,1,1);add(nameinput,constraints,1,4,1,1);add(sexinput,constraints,1,5,1,1);add(numinput,constraints,1,7,1,1);add(yearsinput,constraints,1,6,1,1);ok.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent Event){{try{}catch(ClassNotFoundException ex) {}String user="sa";String password="123";Statement stmt;ResultSet rs;PreparedStatement prestmt;String dtext=d.getText();try{Connection conn= DriverManager.getConnection(url,user,password);prestmt=conn.prepareStatement("Selectcno,cname,csex,ctelephone,cage FROM customer顾客WHERE cno=?");prestmt.setString(1,d.getText());rs=prestmt.executeQuery();if(rs.next()){idinput.setText(rs.getString(1));nameinput.setText(rs.getString(2));sexinput.setText(rs.getString(3));numinput.setText(rs.getString(4));yearsinput.setText(rs.getString(5));}else{JOptionPane.showMessageDialog(null,"未查到该顾客记录","ERROR",RMATION_MESSAGE);}conn.close();}catch(SQLException ex) {}}}});clear.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent Event){d.setText("");idinput.setText("");nameinput.setText("");sexinput.setText("");numinput.setText("");yearsinput.setText("");}});}}。