太原理工大学java实验报告_第1页
太原理工大学java实验报告_第2页
太原理工大学java实验报告_第3页
太原理工大学java实验报告_第4页
太原理工大学java实验报告_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

...wd......wd......wd...本科实验报告课程名称:Java语言程序设计实验工程:Java实验实验地点:致远楼专业班级:软件学号:201500学生姓名:指导教师:2017年1月实验1Java语言根基1.实验目的通过实验,掌握Java语言程序设计的根本方法。学会Java语言中标示符的命名、运算符和表达式的应用。熟练地掌握Java程序流程控制语句的应用。2.实验内容编写应用程序,计算100(含100)以内所有偶数的和。packagefirst;publicclassf1{publicstaticvoidmain(Strings[]) {intsum=0;for(inti=0;i<=100;i=i+2)sum=sum+i; System.out.println("和为"+sum);}}编写一个程序,求1-100间的素数。packagetest1;publicclassf3{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstub System.out.println("100内的素数为:");loop:for(inti=2;i<100;i++){for(intj=2;j<i;j++){if(i%j==0){continueloop;}}System.out.print(""+i);} }}使用for循环语句,编写程序输出以以下列图案。☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆packagetest1;publicclassf11{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubfor(inti=1;i<=4;i++){for(intk=0;k<=4-i;k++){ System.out.print(""); }for(intj=1;j<=2*i-1;j++){ System.out.print("☆"); } System.out.println(); }for(inti=3;i>0;i--){for(intk=0;k<=4-i;k++){ System.out.print(""); }for(intj=1;j<=2*i-1;j++){ System.out.print("☆"); } System.out.println();} }}3.实验预习复习本章所学内容。写出实验内容中第(2)、(3)题两个程序的源代码,作为预习报告。4.实验结论实验过程中,注意记录以下内容:遇到的问题及解决方法。在编写星星程序时,不会它的算法,通过百度,然后自己试运行,得出了最后的结果。另外,在程序中遇到问题,积极的问了同学,解决了我的问题。实验体会。我觉得在编写程序时,要细心并且要有耐心,认真的写每一个程序,就一定会有收获。实验2数组和字符串编程1.实验目的通过实验,掌握Java语言中数组、字符串程序设计的根本方法。较熟练地掌握Java程序数组的应用、字符串处理操作的方法应用。2.实验内容编写一个程序,在控制台输入10个数,按大小顺序输出。packagetest1;importjava.util.Arrays;importjava.util.Scanner;publicclassf11{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubint[]num=newint[10];@SuppressWarnings("resource") Scannerinput=newScanner(System.in); System.out.println("请输入数字:");for(inti=0;i<10;i++){num[i]=input.nextInt(); } Arrays.sort(num); System.out.println("从小到大输出:");for(intindex=0;index<num.length;index++){ System.out.println(num[index]); } } }〔2〕求一个3*3矩阵对角元素之和。packagetest1;importjava.util.Arrays;importjava.util.Scanner;publicclassf11{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstub@SuppressWarnings("resource") Scannerin=newScanner(System.in); System.out.println("请输入一个3*3矩阵:");intsum=0;int[][]a=newint[3][3];for(inti=0;i<3;i++) {for(intj=0;j<3;j++) {a[i][j]=in.nextInt();if(i==j)sum+=a[i][j]; } System.out.print("\n"); } System.out.println("对角线和为"+sum); }}〔3〕输入一段字符串,统计其中有多少个单词。〔单词用空格隔开〕packagetest1;importjava.util.Scanner;publicclassf11{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstub@SuppressWarnings("resource") Scannerinput=newScanner(System.in); System.out.print("请输入:"); Stringsentence=input.nextLine();//将输入的句子转化为单词数组 String[]words=sentence.split("");//单词数组的长度就是单词数 System.out.println("共有"+words.length+"个单词."); }}3.实验预习将本章所学内容要点进展整理,并认真体会例题中的编程要领。写出实验内容中第(2)、(3)题两个程序的源代码,作为预习报告。4.实验结论实验过程中,注意记录以下内容:遇到的问题及解决方法。在编写排序算法时,采用了冒泡排序,对于冒泡排序,产生了一些错误,通过查阅书籍进展改正,最后得到了正确结果。实验体会在编写程序时要认真细心,并且要认真了解它的过程,明白它的算法。实验3Java面向对象程序设计1.实验目的掌握Java面向对象程序设计中类、继承、包和接口的概念与应用,能熟练应用方法、类、成员变量等元素。2.实验内容创立一个复数类complex,以附属进展数学运算、复数具有如下格式:RealPart+ImaginaryRart*I,其中,I为-1的平方根。要求如下:利用浮点变量表示此类的私有数据。提供两个构造方法,一个用于此类声明的对象的初始化;一个为默认的无参构造方法。提供两复数加、减、乘的运算方法。按格式(a,b)打印复数。其中a为实部,b为虚部。packagetest1;importjava.util.Scanner;publicclassf11{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstub Complexa=newComplex(1,7); Complexb=newComplex(7,5); System.out.println(a.toString()+"和"+b.toString()+"相加的结果为"+aplexAdd(b).toString()); System.out.println(a.toString()+"差"+b.toString()+"相减的结果为"+aplexJian(b).toString());}}classComplex{intrealPart;intimaginPart;publicComplex(){realPart=0;imaginPart=0;}publicComplex(intr,inti){realPart=r;imaginPart=i;}publicComplexcomplexAdd(Complexb){returnnewComplex(realPart+b.realPart,imaginPart+b.imaginPart);}publicComplexcomplexJian(Complexb){returnnewComplex(realPart-b.realPart,imaginPart-b.imaginPart);}publicStringtoString(){ Stringsr="("+realPart+","+imaginPart+")";returnsr;} }〔2〕创立银行账号Account类,实现存款(balance)的存(deposit)、取(withdraw)和查询(getbalance)等功能。packagetest1;importjava.util.Scanner;publicclassf11{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubdoublebalance=0;doubledeposit=0;doublewithdraw=0;for(;;){ System.out.println("请输入数字:\t1.存\t2.取\t3.查询\n");@SuppressWarnings("resource") Scannerinput=newScanner(System.in); Stringnum=input.next();doubles1=0,s2=0;if(num.equals("1")){ System.out.println("输入存入金额:");deposit=input.nextDouble(); System.out.println("存钱数目为:"+deposit);s1+=deposit; }if(num.equals("2")){ System.out.println("输入取钱金额:");withdraw=input.nextDouble(); System.out.println("取走金额为:"+withdraw);s2+=withdraw; }if(true|num.equals("3")){balance+=s1-s2; System.out.println("账户余额为:"+balance); } } }}〔3〕编程定义一个接口,实现三个数中求最小值和最大值的方法,并将程序存放在mymaths包中。packageshiyan3;publicclassquestion3{ publicIntegermaxNum(inta,intb){ if(a>b){ returna; }else{ returnb; } } publicIntegerminNum(inta,intb){ if(a>b){ returnb; }else{ returna; } } publicstaticvoidmain(String[]args){ inta=6,b=2,c=10; question3s=newquestion3(); inttemp=s.maxNum(a,b); inttemp1=s.maxNum(temp,c); System.out.println("TheMaxNumis"+temp1); inttemp2=s.minNum(a,b); inttemp3=s.minNum(temp2,c); System.out.println("TheMinNumis"+temp3); }}编程实现以下简单超市管理,具体要求如下:实现描述超市的类SuperMacket类,具有货架属性,记录系统中现有商品,定义盘点商品的函数check(盘点各类商品的数量,并输出盘点结果),查询商品的函数query,并显示查询结果;packagesssu;importjava.util.ArrayList;importjava.util.List;/***1、实现描述超市的的类Suppermacket类,*记录系统中现有商品(Goods类),*定义增加商品的函数Append,*删除商品的函数Delete,*查询商品的函数Query,*并显示查询结果;**/publicclassSuperMarket{privateList<Goods>goodsList=newArrayList<Goods>();/** *增加商品的 *@paramgoods *@return */publicStringappend(Goodsgoods) {goodsList.add(goods);return"添加成功"; }/** *删除商品 */publicStringdelete(Stringname) {Stringflag=null;if(name==null){ flag="删除商品["+name+"]不存在"; }else {for(inti=0;i<goodsList.size();i++) { Goodsgoods=goodsList.get(i);if(goods.getName().equals(name)) {goodsList.remove(i); flag="删除商品["+name+"]成功";break; } } }returnflag; }/** *销售 *@paramgoods *@return */publicStringsale(Goodsgoods) { Stringflag="销售商品["+goods.getName()+"]失败";if(goods!=null) {for(inti=0;i<goodsList.size();i++) { Goodsgoods_2=goodsList.get(i);if(goods_2.getName().equals(goods.getName())) {if(goods.getNumber()>goods_2.getNumber()) { flag+="原因:库存缺乏"; }elseif((goods_2.getPrice()*goods.getNumber())>goods.getPrice()) { flag+="原因:余额缺乏"; }else { goods_2.setNumber(goods_2.getNumber()-goods.getNumber()); flag="销售商品["+goods.getName()+"]成功"; }break; } } }returnflag; }/** *查询商品 *@return */publicList<Goods>getGoodsList() {returngoodsList; }publicvoidsetGoodsList(List<Goods>goodsList) {this.goodsList=goodsList; } }定义商品类Goods,具有商品名称Name,商品价格Price,商品产地Producer等属性,操作Sale〔销售商品,余额缺乏时给予提示〕、Add〔商品上架操作〕和ShowMe〔显示商品信息〕。packagesssu;/***具有商品名称Name,*商品价格Price,*商品数量number等属性,*操作Sale〔销售商品,余额缺乏时给予提示〕、*Add〔商品上架操作〕*和ShowMe〔显示商品信息〕。*/publicclassGoods {privateStringname;privatefloatprice;privateintnumber;privateStringProducer;publicStringgetName() {returnname; }publicvoidsetName(Stringname) {=name; }publicfloatgetPrice() {returnprice; }publicvoidsetPrice(floatprice) {this.price=price; }publicintgetNumber() {returnnumber; }publicvoidsetNumber(intnumber) {this.number=number; }publicvoidProducer(Stringi) {this.Producer=i; }publicStringProducer(){//TODOAuto-generatedmethodstubreturnProducer; } }main函数,测试以上所要求的各种功能,即可以根据菜单命令增加、删除、查询商品、盘点商品,以及商品销售和商品上架的操作提示:①超市货架可以使用商品数组,数组大小100说明存放100个商品。②注意实现商品查询的多态性,要求可以根据商品的名称或产地或价格查询商品的数量。packagesssu;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;/***1、实现描述超市的的类Suppermacket类,记录系统中现有商品(Goods类),定义增加商品的函数Append,*删除商品的函数Delete,查询商品的函数Query,并显示查询结果;*2、定义商品类Goods,具有商品名称Name,商品价格Price,商品数量number等属性,操作Sale〔销售商品,余额缺乏时给予提示〕、Add〔商品上架操作〕和ShowMe〔显示商品信息〕。*3、编写包含main方法的测试类,测试以上所要求的各种功能,即可以根据菜单命令增加、删除和查询商品,以及商品销售和商品上架的操作。*/publicclassTest{publicstaticvoidmain(String[]args) { SuperMarketmarket=newSuperMarket();@SuppressWarnings("unused") String[]label={"商品名称","商品价格","商品数量"};inttype=-1;do { System.out.println("================="); System.out.println("请选择操作类型"); System.out.println("1添加商品"); System.out.println("2删除商品"); System.out.println("3查询商品"); System.out.println("4销售商品"); System.out.println("0退出系统"); System.out.println("=================");inti=0;do {try { type=Integer.parseInt(readString()); i=0; }catch(Exceptione) { i=1; System.err.println("输入有误"); } }while(i!=0);switch(type) {case1: Goodsgoods=newGoods(); System.out.println("请输入商品名称"); goods.setName(readString());do {try { System.out.println("请输入商品价格"); goods.setPrice(Integer.parseInt(readString())); i=0; }catch(Exceptione) { i=1; System.err.println("输入有误"); } }while(i!=0);do {try { System.out.println("请输入商品数量"); goods.setNumber(Integer.parseInt(readString())); i=0; }catch(Exceptione) { i=1; System.err.println("输入有误"); } }while(i!=0);do {try { System.out.println("请输入商品产地"); goods.Producer(readString()); i=0; }catch(Exceptione) { i=1; System.err.println("输入有误"); } }while(i!=0); System.out.println(market.append(goods));break;case2: System.out.println("请输入要删除商品的名称"); Stringname=readString(); System.out.println(market.delete(name));break;case3: System.out.println("商品名称\t商品价格\t商品数量");for(intj=0;j<market.getGoodsList().size();j++) { Goodsg=market.getGoodsList().get(j); System.out.println(g.getName()+"\t"+g.getPrice()+"\t" +g.getNumber()); }break;case4: Goodsgoods_sals=newGoods(); System.out.println("请输入销售商品名称"); goods_sals.setName(readString());do {try { System.out.println("请输入销售商品价格"); goods_sals.setPrice(Integer.parseInt(readString())); i=0; }catch(Exceptione) { i=1; System.err.println("输入有误"); } }while(i!=0);do {try { System.out.println("请输入销售商品数量"); goods_sals.setNumber(Integer.parseInt(readString())); i=0; }catch(Exceptione) { i=1; System.err.println("输入有误"); } }while(i!=0); System.out.println(market.sale(goods_sals));break;default: System.out.println("退出");break; } }while(type!=0); }/****@paramprompt*@return*/privatestaticStringreadString() { BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in)); Stringstr=null;try { str=br.readLine(); }catch(IOExceptione) { e.printStackTrace(); }returnstr; } }3.实验预习要求复习本章所学内容,思考以下问题:什么是对象什么是类面向对象编程的特性有哪三个它们各自有哪些特性Java语言在面向对象编程方面有哪些独特的特点抽象类与接口有何异同4.实验结论遇到的问题及解决方法。在实验中超市类和接口编写遇到了问题,通过上网查阅和询问同学最后得到了结果。实验体会。在编写程序时要有耐心去认真改正错误,并且进展不断的完善。实验4Java异常处理1.实验目的掌握异常的概念,以及如何定义、抛出和捕获处理异常。2.实验内容(3〕在实验三中的超市、商品类中创立一个自定义异常类。要求:在定义商品类时,假设销售商品数量大于余额则作为异常处理〔InsufficientFundsException〕。提示:产生异常条件是某类商品销售数量大于库存额,因此是否抛出异常要先判断该条件。确定产生异常的方法,应该在sale方法中产生异常InsufficientFundsException。处理异常安排在调用sale的时候,因此sale方法要声明异常,由上级方法捕获并处理。要定义好自己的异常。程序与实验三第三个一样。实验6图形用户界面编程1.实验目的掌握文本组件、按钮和单、复选按钮组件的使用;掌握列表的使用,鼠标、键盘事件的处理;掌握布局控制的方法。2.实验内容试设计一窗口,内含一个按钮。开场运行时,按钮显示“ClickMe〞字样,当按钮按下时,按钮显示为“ClickMeAgain〞字样,再按一次,则按钮显示“ClickMe〞字样,依次循环。packagetest1;importjava.awt.*;importjava.awt.event.*;publicclassL08_03extendsFrameimplementsMouseListener{ /** * */ privatestaticfinallongserialVersionUID=1L; staticL08_03frm=newL08_03(); staticButtonbtn=newButton("ClickMe"); staticinta=0; publicstaticvoidmain(Stringargs[]){ btn.addMouseListener(frm); frm.setLayout(newFlowLayout()); frm.setTitle("按钮"); frm.setSize(300,200); frm.add(btn); frm.setVisible(true);} publicvoidmousePressed(MouseEvente){} publicvoidmouseReleased(MouseEvente){} publicvoidmouseExited(MouseEvente){} publicvoidmouseEntered(MouseEvente){} publicvoidmouseClicked(MouseEvente){ a++; if((a%2)!=0) btn.setLabel("ClickMeAgain"); elsebtn.setLabel("ClickMe"); } }P177书packagetest1;importjava.awt.Button;importjava.awtponent;importjava.awt.FlowLayout;importjava.awt.Label;importjava.awt.TextArea;importjava.awt.TextField;importjava.awt.event.MouseAdapter;importjava.awt.event.MouseEvent;importjava.awt.event.TextEvent;importjavax.swing.JFrame;/**java编程完成以下列图所示的图形用户界面设计,*/publicclassDemo3{publicstaticvoidmain(String[]args){//创立窗体对象JFramejf=newJFrame("输入姓名");//设置大小jf.setSize(300,300);//设置居中jf.setLocationRelativeTo(null);//设置布局jf.setLayout(newFlowLayout());//设置关闭事件jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//添加labelLabelstuName=newLabel("姓名");//添加文本框finalTextFieldtfClass=newTextField(30);finalTextFieldtfNo=newTextField(30);finalTextFieldtfName=newTextField(30);//添加按钮Buttonconfirm=newButton("确定");Buttoncancel=newButton("取消");//添加文本域finalTextAreata=newTextArea(30,30); //添加jf.add(stuName);jf.add(tfName);jf.add(confirm);jf.add(cancel);jf.add(ta);//添加事件confirm.addMouseListener(newMouseAdapter(){@OverridepublicvoidmouseClicked(MouseEvente){StringstuName=tfName.getText().trim();tfClass.setText("");tfNo.setText("");tfName.setText("");ta.append("姓名:"+stuName+"\r\n");}});cancel.addMouseListener(newMouseAdapter(){@OverridepublicvoidmouseClicked(MouseEvente){System.exit(0);}});//显示jf.setVisible(true);}}3.实验预习复习本章所学内容,思考以下问题:Java语言是跨平台的编程语言,那么图形用户界面如何做到跨平台AWT有哪些组件和容器它们各自的使用方法是什么AWT的事件处理模型是什么原理又如何什么是Swing它和AWT比有什么优点使用上有什么区别4.实验结论遇到的问题及解决方法。在编写时,有些方法记不住,就会翻阅书籍,把那些组件内容都给添加上。实验体会。GUI是java中一个很有意思的编程,实现了可视化的界面,做完之后很有成就感。也学到了很多内容。实验7输入与输出1.实验目的(1)掌握Java两种根本输入/输出流类的使用。(2)掌握Java文件类型的使用。(3)掌握文件的输入、输出方法。2.实验内容(1)编写程序,实现从键盘输入字符串并在屏幕上输出。packageshiyan7;importjava.util.*;publicclassquestion1{publicstaticvoidmain(String[]args){@SuppressWarnings("resource") Scannerscanner=newScanner(System.in); System.out.print("请输入字符串:"); Stringyy=scanner.nextLine(); StringTokenizerfenxi1=newStringTokenizer(yy);intn=fenxi1.countTokens(); Stringstr[]=newString[n];for(inti=0;fenxi1.hasMoreTokens();i++){str[i]=fenxi1.nextToken(); }for(inti=n-1;i>=0;i--){ System.out.print(str[i]+"");} }}编写程序,利用Java字符流文件输入/输出类,实现将源程序复制到另一个文件中。.packageshiyan7;importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.OutputStreamWriter;publicclassquestion3{ publicstaticvoidmain(String[]args)throwsIOException{ Stringinfile=args[1].toString();//输入文件 Stringfileout="result.txt";//输出路径 try{ //输出结果 File

温馨提示

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

评论

0/150

提交评论