您好,欢迎访问三七文档
Java面向对象程序设计一、编程题(一人选取任意4题完成,每题25分)1、编写一个小型计算器应用程序,用户可从键盘输入两个整型变量,并可通过JComboBox选择计算操作符,计算结果在JtextField中显示,界面风格请参照Windows计算器界面。packagetest;importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;publicclassCounterextendsWindowAdapter{staticJFramef=newJFrame(计算器);staticJTextFieldtext1=newJTextField(0.);staticStringsource=;staticStringcal=;staticStringobject=;staticbooleanflag=false;staticbooleanflag1=true;staticbooleanflag2=false;publicvoidinit(){try{Containerc=f.getContentPane();JPanelpan1=newJPanel();JButtonb1=newJButton(1);JButtonb2=newJButton(2);JButtonb3=newJButton(3);JButtonb4=newJButton(4);JButtonb5=newJButton(5);JButtonb6=newJButton(6);JButtonb7=newJButton(7);JButtonb8=newJButton(8);JButtonb9=newJButton(9);JButtonb0=newJButton(0);JButtonb11=newJButton(+);JButtonb12=newJButton(-);JButtonb13=newJButton(*);JButtonb14=newJButton(/);JButtonb15=newJButton(.);JButtonb16=newJButton(=);JButtonbclar=newJButton(清零);text1.setHorizontalAlignment(JTextField.RIGHT);c.add(text1,North);c.add(pan1);Aaa=newA();Resultre=newResult();Operationop=newOperation();Clarcl=newClar();b1.addActionListener(aa);b2.addActionListener(aa);b3.addActionListener(aa);b4.addActionListener(aa);b5.addActionListener(aa);b6.addActionListener(aa);b7.addActionListener(aa);b8.addActionListener(aa);b9.addActionListener(aa);b0.addActionListener(aa);b11.addActionListener(op);b12.addActionListener(op);b13.addActionListener(op);b14.addActionListener(op);b15.addActionListener(op);b16.addActionListener(re);bclar.addActionListener(cl);pan1.add(b1);pan1.add(b2);pan1.add(b3);pan1.add(b11);pan1.add(b4);pan1.add(b5);pan1.add(b6);pan1.add(b12);pan1.add(b7);pan1.add(b8);pan1.add(b9);pan1.add(b9);pan1.add(b13);pan1.add(b0);pan1.add(b15);pan1.add(b16);pan1.add(b14);pan1.add(bclar);f.setSize(200,220);f.setVisible(true);}catch(Exceptione){System.out.println(e.getMessage());}}classAimplementsActionListener{publicvoidactionPerformed(ActionEvente){Stringa=text1.getText();Strings=e.getActionCommand();if(a.equals(0.)||a.equals(+)||a.equals(*)||a.equals(/))text1.setText(s);else{if(flag2){text1.setText(s);flag2=false;}elsetext1.setText(a+s);}}}classOperationimplementsActionListener{publicvoidactionPerformed(ActionEvente){cal=e.getActionCommand();if(flag1==true)source=text1.getText();text1.setText(cal);flag1=false;flag=true;}}classResultimplementsActionListener{publicvoidactionPerformed(ActionEvente){doublenum1;num1=Double.parseDouble(source);object=text1.getText();doublenum2;num2=Double.parseDouble(object);doubleresult=0;if(cal.equals(+))result=num1+num2;if(cal.equals(-))result=num1-num2;if(cal.equals(*))result=num1*num2;if(cal.equals(/))if(num2==0)text1.setText(除数不能为0);elseresult=num1/num2;Strings1=Double.toString(result);text1.setText(s1);flag1=true;flag2=true;}}classClarimplementsActionListener{publicvoidactionPerformed(ActionEvente){text1.setText(0.);}}publicstaticvoidmain(String[]args){Countercount=newCounter();count.init();}publicvoidwindowClosing(WindowEvente){System.exit(1);}publicvoidwindowOpend(WindowEvente){}publicvoidwindowIconified(WindowEvente){}publicvoidwindowDeiconified(WindowEvente){}publicvoidwindowClosed(WindowEvente){}publicvoidwindowActivated(WindowEvente){}publicvoidwindowDeactivated(WindowEvente){}}2、编写一个程序,以随机颜色绘制8个同心圆,圆和圆之间相差10个像素。使用Graphics类的drawArc方法,其8个圆的颜色随机生成。packagetest;importjava.awt.*;importjava.awt.image.*;importjavax.swing.*;publicclassMultiCircleextendsJPanel{privateBufferedImagebi=newBufferedImage(320,240,BufferedImage.TYPE_INT_BGR);publicMultiCircle(){setPreferredSize(newDimension(320,240));}publicvoidpaintComponent(Graphicsg){intradius=50;g.setColor(Color.red);for(inti=1;i=5;i++){g.drawOval(150-(radius+10*i),150-(radius+10*i),(radius+10*i)*2,(radius+10*i)*2);}}publicstaticvoidmain(String[]args){JFrameframe=newJFrame(MultiCircle);frame.add(newMultiCircle());frame.pack();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);}}3、设计一个人员类(Person),其中包含一个方法Pay,代表人员的工资支出。再从Person类派生出教师类(Teacher)和大学生类(CollegeStudent),其中教师的工资支出为:基本工资+授课时数*30大学生的工资支出为:奖学金支出1)将人员类定义为抽象类,pay为抽象方法,设计程序实现多态性。2)Pay定义在接口中,设计程序实现多态性。packagetest;abstractclassPerson{abstractvoidPay();publicclassTeacherextendsPerson{@OverridevoidPay(){//TODOAuto-generatedmethodstub}}publicclassCollegeStudentextendsPerson{@OverridevoidPay(){//TODOAuto-generatedmethodstub}}4、从键盘输入一行字符串:1)统计每个字符串出现的次数和位置;2)统计含有的单词个数;3)正向和反向输出单词。packagetest;importjava.util.Scanner;publicclasstest{publicstaticvoidmain(String[]args){Scannerin=newScanner(System.in);Stringnum=in.next();num.}}5、编写一个应用程序,请使用菜单技术(弹出菜单),菜单项由可控制颜色的选择,当用户选择某菜单项时,Frame的背景色为相应的颜色。6、通过拖动鼠标在窗口组件上绘制任意图形,且图形颜色为红色。7、定义一个学生类和一个课程类,要求能够表现现实生活中一个学生可以选择多门课程,一门课程可以有多个学生选修的情况。编写程序进行测试。8、编写一个类实现地址的概念,包括的属性有“国家、省份、市县、街道、门牌、单位、邮编”,自定义方法封装这些属性,并定义一个方法按照标准格式打印出寄给该地址的信封。从该地址类派生出国内、国际两种地址,两种地址的格式不同,重载打印信封的方法,该方法不再在方法的内部直接打印,而是按格式组合好的地址字符串。9、使用简单工厂方法,实现计算功能。(只需设计计算相关类如加、减、乘和除)。10、参照ATM系统主界面,使用Java技术设计类似界面(只需设计界面,不需要编写事件处理代码)。11、编写一个程序完成在银行的取款和存款操作。在定义银行类时,若取款大于余额则作为异常处理。12、结合数据库课程所学DDL语言知识,利用JDBC技术,请在前台利用程序给数据库创建表Students(ID,na
本文标题:高级程序设计试卷
链接地址:https://www.777doc.com/doc-1952539 .html