江苏大学-JAVA语言程序设计报告_第1页
江苏大学-JAVA语言程序设计报告_第2页
江苏大学-JAVA语言程序设计报告_第3页
江苏大学-JAVA语言程序设计报告_第4页
江苏大学-JAVA语言程序设计报告_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

JAVA语言程序设计班级:J通信1101学号:姓名:2014.10.151.设计2个基本语法的应用程序(1)一元二次方程求解问题源程序如下://一元二次方程求解importjava.util.Scanner;publicclassS2{ publicstaticvoidmain(String[]args){ doublea,b,c;//定义一元二次方程的系数 Scannerscanner=newScanner(System.in);//从键盘输入数 System.out.println("请输入一元二次方程的三个系数,数与数之间用空格分隔。"); a=scanner.nextDouble();//输入系数a b=scanner.nextDouble();//输入系数b c=scanner.nextDouble();//输入系数c if(a==0){//若系数a=0 if(b==0){//若系数b=0 if(c==0)//当系数c=0时 System.out.println("x是任意值。"); else //系数c=!0时 System.out.println("方程无解。"); }else //系数b=!0 System.out.println("方程有一个解,值为:"+(-c/b)); }else{//系数a=!0时 doubled=b*b-4*a*c;//判断方程是否有解 if(d<0)//无解时 System.out.println("方程无实数解。"); else{//有解时 doublex1=(-b+Math.sqrt(d))/(2*a);//方程的解x1 doublex2=(-b-Math.sqrt(d))/(2*a);//方程的解x2 if(x1==x2)//若x1=x2 System.out.println("方程有一个解:"+x1); else //x1!=x2 System.out.println("方程有两个解,分别为"+x1+"和"+x2); } } }}运行结果如下:(2)编写一个Java应用程序。用户从键盘输入一个1—9999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数。回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如12121、3223都是回文数。源程序如下:importjava.util.Scanner;publicclassS1{ publicstaticvoidmain(String[]args){ inti; inta,b,c,d;//1—9999之间的数的每个位的数字 intk=0;//数字的个数 System.out.print("请输入一个数:"); //从键盘输入1—9999之间的数 Scannersc=newScanner(System.in); i=sc.nextInt(); System.out.println(i); intj=i; //判断数的位数 if(i>0&i<=9999){ do{ i/=10; k++; }while(i!=0); System.out.println("这个数是"+k+"位数"); //一位数 if(k==1){ System.out.println("这个数是回文数"); } //二位数 if(k==2){ c=j/10; d=j%10; if(j==(d*10+c)){ System.out.println("这个数是回文数"); }else System.out.println("这个数不是回文数"); } //三位数 if(k==3){ b=j/100; d=j%10; if(b==d){ System.out.println("这个数是回文数"); }else System.out.println("这个数不是回文数"); } //四位数 if(k==4){ a=j/1000; b=j%1000/100; c=j%1000%100/10; d=j%10; if(j==(d*1000+c*100+b*10+a)){ System.out.println("这个数是回文数"); }else System.out.println("这个数不是回文数"); } }else System.out.println("这个数不在1~9999之间"); }}运行结果如下:2.参考银行账号实例,运用面向对象原理实现一个具体功能的类。如下:某公司的雇员分为以下若干类:Employee:这是所有员工总的父类,属性:员工的姓名和生日月份。方法:getSalary(intmonth)根据参数月份来确定工资,如果该月员工过生日。则公司会额外奖励100元。SalariedEmployee:Employee的子类,拿固定工资的员工。属性:月薪。HourlyEmployee:Employee的子类,按小时拿工资的员工,每月工作超出160小时的部分按照1.5倍工资发放,属性:每小时的工资、每月工作的小时数。SalesEmployee:Employee的子类,销售人员,工资由月销售额和提成率决定。属性:月销售额、提成率。BasePlusSalesEmployee:SalesEmployee的子类,有固定底薪的销售人员。工资由底薪加上销售提成部分属性:底薪。编写测试类Test,用来测试每个工种每月的工资数。源程序如下:publicclassEmployee{ Stringname;//姓名 intmonth;//生日月份 doublesalary;//工资 publicEmployee(Stringname,intmonth){ =name; this.month=month; } publicdoublegetSalary(intmonth){ if(this.month==month){ return100;//如果该月员工过生日,则公司会额外奖励100元 }else return0; }//SalariedEmployee:Employee的子类,拿固定工资的员工。属性:月薪 staticclassSalariedEmployeeextendsEmployee{ doublemonthsalary;//月薪 publicSalariedEmployee(Stringname,intmonth,doublemonthsalary){ super(name,month); this.monthsalary=monthsalary; } publicdoublegetSalary(intmonth){ doublesalary=super.getSalary(month); salary+=this.monthsalary; returnsalary; } }//HourlyEmployee:Employee的子类,按小时拿工资的员工,每月工作超出160小时的部分按照1.5倍工资发放,//属性:每小时的工资、每月工作的小时数staticclassHourlyEmployeeextendsEmployee{ doublehoursalary;//时薪 inthour;//小时数 publicHourlyEmployee(Stringname,intmonth,doublehoursalary,inthour){ super(name,month); this.hoursalary=hoursalary; this.hour=hour; } publicdoublegetSalary(intmonth){ doublesalary=super.getSalary(month); if(0<=hour&&hour<=160){//工作0~160小时的工资 salary+=hoursalary*hour; returnsalary; }else salary+=hoursalary*160+(hour-160)*hoursalary*1.5;//超过160x小时后的工资 returnsalary; }}//SalesEmployee:Employee的子类,销售人员,工资由月销售额和提成率决定。属性:月销售额、提成率staticclassSalesEmployeeextendsEmployee{ doublemonthsale;//月销售额 doublerate;//提成率 publicSalesEmployee(Stringname,intmonth,doublemonthsale, doublerate){ super(name,month); this.monthsale=monthsale; this.rate=rate; } publicdoublegetSalary(intmonth){ doublesalary=super.getSalary(month); salary+=monthsale*rate;//提成后的工资 returnsalary; } }//BasePlusSalesEmployee:SalesEmployee的子类,有固定底薪的销售人员, //工资由底薪加上销售提成部分属性:底薪。staticclassBasePlusSalesEmployeeextendsSalesEmployee{ privatedoublebasicsalary;//底薪 publicBasePlusSalesEmployee(Stringname,intmonth,doublemonthsale, doublerate,doublebasicsalary){ super(name,month,monthsale,rate); this.basicsalary=basicsalary; } publicdoublegetSalary(intmonth){ doublesalary=super.getSalary(month); salary+=basicsalary;//底薪和提成后的工资 returnsalary; } }publicstaticvoidmain(String[]args){ Employeea[]=newEmployee[5]; a[0]=newSalariedEmployee("A",2,2000);//A,2月份,工资2000 a[1]=newHourlyEmployee("B",3,200,9);//B,3月份,时薪200,时间9小时 a[2]=newHourlyEmployee("B",3,200,200);//B,3月份,时薪200,时间200小时 a[3]=newSalesEmployee("C",4,30000,0.1d);//C,4月份,月销售额30000,提成率0.1 a[4]=newBasePlusSalesEmployee("D",5,30000,0.1d,2000);//D,5月份,月销售额30000,提成率0.1,底薪2000 System.out.println(a[0].name+"的工资为:"+a[0].getSalary(1));//A,1月生日,2月的工资 System.out.println(a[0].name+"的工资为:"+a[0].getSalary(2));//A,2月生日,2月的工资 System.out.println(a[1].name+"的工资为:"+a[1].getSalary(3));//B,3月生日,3月工作9小时的工资 System.out.println(a[1].name+"的工资为:"+a[1].getSalary(2));//B,2月生日,3月工作9小时的工资 System.out.println(a[3].name+"的工资为:"+a[2].getSalary(2));//B,2月生日,3月工作200小时的工资 System.out.println(a[3].name+"的工资为:"+a[2].getSalary(3));//B,3月生日,3月工作200小时的工资 System.out.println(a[3].name+"的工资为:"+a[3].getSalary(2));//C,2月生日,4月无底薪工资 System.out.println(a[3].name+"的工资为:"+a[3].getSalary(4));//C,4月生日,4月无底薪工资 System.out.println(a[4].name+"的工资为:"+a[4].getSalary(2));//D,2月生日,5月有底薪工资 System.out.println(a[4].name+"的工资为:"+a[4].getSalary(5));//D,5月生日,5月有底薪工资}}运行结果如下:3.请利用图形用户界面和事件处理实现一个计算器功能。源程序如下:importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassJCalculatorextendsJFrameimplementsActionListener{/***SerialVersionUID*/privatestaticfinallongserialVersionUID=-169068472193786457L;/***ThisclasshelpclosetheWindow.*@authorSingyuenYip**/privateclassWindowCloserextendsWindowAdapter{publicvoidwindowClosing(WindowEventwe){System.exit(0);}}inti;//StringsforDigit&Operatorbuttons.privatefinalString[]str={"7","8","9","/","4","5","6","*","1","2","3","-",".","0","=","+"};//Buildbuttons.JButton[]buttons=newJButton[str.length];//Forcancelorreset.JButtonreset=newJButton("CE");//Buildthetextfieldtoshowtheresult.JTextFielddisplay=newJTextField("0");/***Constructorwithoutparameters.*/publicJCalculator(){super("Calculator");//Addapanel.JPanelpanel1=newJPanel(newGridLayout(4,4));//panel1.setLayout(newGridLayout(4,4));for(i=0;i<str.length;i++){buttons[i]=newJButton(str[i]);panel1.add(buttons[i]);}JPanelpanel2=newJPanel(newBorderLayout());//panel2.setLayout(newBorderLayout());panel2.add("Center",display);panel2.add("East",reset);//JPanelpanel3=newPanel();getContentPane().setLayout(newBorderLayout());getContentPane().add("North",panel2);getContentPane().add("Center",panel1);//Addactionlistenerforeachdigit&operatorbutton.for(i=0;i<str.length;i++)buttons[i].addActionListener(this);//Addlistenerfor"reset"button.reset.addActionListener(this);//Addlistenerfor"display"button.display.addActionListener(this);//The"close"button"X".addWindowListener(newWindowCloser());//Initializethewindowsize.setSize(800,800);//Showthewindow.//show();Usingshow()whileJDKversionisbelow1.5.setVisible(true);//Fitthecertainsize.pack();}publicvoidactionPerformed(ActionEvente){Objecttarget=e.getSource();Stringlabel=e.getActionCommand();if(target==reset)handleReset();elseif("0123456789.".indexOf(label)>0)handleNumber(label);elsehandleOperator(label);}//Isthefirstdigitpressed?booleanisFirstDigit=true;/***Numberhandling.*@paramkeythekeyofthebutton.*/publicvoidhandleNumber(Stringkey){if(isFirstDigit)display.setText(key);elseif((key.equals("."))&&(display.getText().indexOf(".")<0))display.setText(display.getText()+".");elseif(!key.equals("."))display.setText(display.getText()+key);isFirstDigit=false;}/***Resetthecalculator.*/publicvoidhandleReset(){display.setText("0");isFirstDigit=true;operator

温馨提示

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

评论

0/150

提交评论