




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本科实验报告课程名称: Java语言程序设计 实验项目: Java实验 实验地点: 致远楼 专业班级: 软件 学号:201500 学生姓名: 指导教师: 2017年 1月 实验1 Java语言基础1.实验目的(1) 通过实验,掌握Java语言程序设计的基本方法。(2) 学会Java语言中标示符的命名、运算符和表达式的应用。(3) 熟练地掌握Java程序流程控制语句的应用。2.实验内容(1) 编写应用程序,计算100(含100)以内所有偶数的和。 package first;public class f1 public static void main(String s) int sum=0;
2、for(int i=0;i<=100;i=i+2) sum=sum+i; System.out.println("和为"+sum); (2) 编写一个程序,求1-100间的素数。 package test1;public class f3 public static void main(String args) / TODO Auto-generated method stubSystem.out.println("100内的素数为:"); loop: for (int i = 2; i < 100; i+) for (int j = 2;
3、j < i; j+) if (i % j = 0) continue loop; System.out.print(" " + i); (3) 使用for循环语句,编写程序输出以下图案。package test1;public class f11 public static void main(String args) / TODO Auto-generated method stubfor (int i = 1; i <= 4; i+) for (int k = 0; k <= 4 - i; k+) System.out.print(" &qu
4、ot;);for (int j = 1; j <= 2 * i - 1; j+) System.out.print("");System.out.println();for (int i = 3; i > 0; i-) for (int k = 0; k <=4-i; k+) System.out.print(" ");for (int j = 1; j <= 2 * i - 1; j+) System.out.print("");System.out.println();3.实验预习(1) 复习本章所学内容。
5、(2) 写出实验内容中第(2)、(3)题两个程序的源代码,作为预习报告。4.实验结论实验过程中,注意记录以下内容:(1) 遇到的问题及解决办法。 在编写星星程序时,不会它的算法,通过百度,然后自己试运行,得出了最后的结果。另外,在程序中遇到问题,积极的问了同学,解决了我的问题。(2) 实验体会。 我觉得在编写程序时,要细心并且要有耐心,认真的写每一个程序,就一定会有收获。实验2 数组和字符串编程1.实验目的(1) 通过实验,掌握Java语言中数组、字符串程序设计的基本方法。(2) 较熟练地掌握Java程序数组的应用、字符串处理操作的方法应用。2.实验内容(1) 编写一个程序,在控制台输入10个
6、数,按大小顺序输出。 package test1;import java.util.Arrays;import java.util.Scanner;public class f11 public static void main(String args) / TODO Auto-generated method stubint num=new int10;SuppressWarnings("resource")Scanner input =new Scanner(System.in);System.out.println("请输入数字:");for(in
7、t i=0;i<10;i+)numi=input.nextInt();Arrays.sort(num); System.out.println("从小到大输出:");for(int index=0;index<num.length;index+) System.out.println(numindex); (2)求一个3*3矩阵对角元素之和。package test1;import ;import java.util.Scanner;public class f11 public static void main(String args) / TODO Auto
8、-generated method stub SuppressWarnings("resource")Scanner in = new Scanner(System.in); System.out.println("请输入一个3*3矩阵:"); int sum=0; int a=new int33; for(int i=0;i<3;i+) for(int j=0;j<3;j+) aij=in.nextInt(); if(i=j) sum+=aij; System.out.print("n"); System.out.pri
9、ntln("对角线和为"+sum); (3)输入一段字符串,统计其中有多少个单词。(单词用空格隔开)package test1;import java.util.Scanner;public class f11 public static void main(String args) / TODO Auto-generated method stub SuppressWarnings("resource")Scanner input = new Scanner(System.in); System.out.print("请输入:");
10、 String sentence = input.nextLine(); / 将输入的句子转化为单词数组 String words = sentence.split(" "); / 单词数组的长度就是单词数 System.out.println("共有 " + words.length + " 个单词."); 3.实验预习(1) 将本章所学内容要点进行整理,并认真体会例题中的编程要领。(2) 写出实验内容中第(2)、(3)题两个程序的源代码,作为预习报告。4.实验结论实验过程中,注意记录以下内容:(1) 遇到的问题及解决办法。 在编写
11、排序算法时,采用了冒泡排序,对于冒泡排序,产生了一些错误,通过查阅书籍进行改正,最后得到了正确结果。(2) 实验体会 在编写程序时要认真细心,并且要认真了解它的过程,明白它的算法。实验3 Java面向对象程序设计1.实验目的掌握Java面向对象程序设计中类、继承、包和接口的概念与应用,能熟练应用方法、类、成员变量等元素。2.实验内容(1) 创建一个复数类complex,以附属进行数学运算、复数具有如下格式:RealPart+ImaginaryRart*I ,其中,I为-1的平方根。 要求如下:1 利用浮点变量表示此类的私有数据。提供两个构造方法,一个用于此类声明的对象的初始化;一个为默认的无参
12、构造方法。2 提供两复数加、减、乘的运算方法。按格式(a,b)打印复数。其中a为实部,b为虚部。package test1;import ;public class f11 public static void main(String args) / TODO Auto-generated method stubComplex a=new Complex(1,7);Complex b=new Complex(7,5);System.out.println(a.toString()+"和"+b.toString()+"相加的结果为"+plexAdd(b).
13、toString();System.out.println(a.toString()+"差"+b.toString()+"相减的结果为"+plexJian(b).toString(); class Complex int realPart; int imaginPart; public Complex()realPart=0;imaginPart=0; public Complex(int r,int i)realPart=r;imaginPart=i; public Complex complexAdd(Complex b)return new Com
14、plex(realPart+b.realPart,imaginPart+b.imaginPart ); public Complex complexJian(Complex b) return new Complex(realPart-b.realPart,imaginPart-b.imaginPart ); public String toString()String sr= "("+realPart + "," +imaginPart + ")" return sr;(2)创建银行账号Account类,实现存款(balance)的
15、存(deposit)、取(withdraw)和查询(getbalance)等功能 。package test1;import java.util.Scanner;public class f11 public static void main(String args) / TODO Auto-generated method stubdouble balance = 0;double deposit = 0;double withdraw = 0;for (;) System.out.println("请输入数字:t1.存 t2.取t3.查询n");SuppressWarn
16、ings("resource")Scanner input = new Scanner(System.in);String num = input.next();double s1 = 0, s2= 0 ;if (num.equals("1") System.out.println("输入存入金额:");deposit = input.nextDouble();System.out.println("存钱数目为:" + deposit);s1 += deposit; if (num.equals("2&q
17、uot;) 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包中。packa
18、ge shiyan3;public class question3 public Integer maxNum(int a, int b) if(a>b)return a;else return b;public Integer minNum(int a, int b) if(a>b)return b;else return a;public static void main(String args)int a=6,b=2,c=10;question3 s=new question3();int temp=s.maxNum(a, b);int temp1=s.maxNum(temp
19、, c);System.out.println("The MaxNum is"+temp1);int temp2=s.minNum(a, b);int temp3=s.minNum(temp2, c);System.out.println("The MinNum is"+temp3);(2) 编程实现以下简单超市管理,具体要求如下:1 实现描述超市的类SuperMacket类,具有货架属性,记录系统中现有商品,定义盘点商品的函数check(盘点各类商品的数量,并输出盘点结果),查询商品的函数query,并显示查询结果; package sssu;impo
20、rt java.util.ArrayList;import java.util.List;/* * 1、实现描述超市的的类Suppermacket类, * 记录系统中现有商品(Goods类), * 定义增加商品的函数Append, * 删除商品的函数Delete, * 查询商品的函数Query, * 并显示查询结果; * */public class SuperMarket private List<Goods> goodsList = new ArrayList<Goods>(); /* * 增加商品的 * param goods * return */ public
21、 String append(Goods goods) goodsList.add(goods); return "添加成功" /* * 删除商品 */ public String delete(String name) String flag = null; if(name = null) flag = "删除商品"+name+"不存在 " else for (int i = 0; i < goodsList.size(); i+) Goods goods = goodsList.get(i); if (goods.getNa
22、me().equals(name) goodsList.remove(i); flag = "删除商品"+name+"成功" break; return flag; /* * 销售 * param goods * return */ public String sale(Goods goods) String flag = "销售商品"+goods.getName()+"失败" if (goods!=null) for (int i = 0; i < goodsList.size(); i+) Goods g
23、oods_2 = goodsList.get(i); if (goods_2.getName().equals(goods.getName() if (goods.getNumber()>goods_2.getNumber() flag+=" 原因:库存不足" else if (goods_2.getPrice()*goods.getNumber() > goods.getPrice() flag+=" 原因:余额不足" else goods_2.setNumber(goods_2.getNumber()-goods.getNumber();
24、 flag = "销售商品"+goods.getName()+"成功" break; return flag; /* * 查询商品 * return */ public List<Goods> getGoodsList() return goodsList; public void setGoodsList(List<Goods> goodsList) this.goodsList = goodsList; 2 定义商品类Goods,具有商品名称Name,商品价格Price,商品产地Producer等属性,操作Sale(销售商品,
25、余额不足时给予提示)、Add(商品上架操作)和ShowMe(显示商品信息)。 package sssu;/* * 具有商品名称Name, * 商品价格Price, * 商品数量number等属性, * 操作Sale(销售商品,余额不足时给予提示)、 * Add(商品上架操作) * 和ShowMe(显示商品信息)。 */public class Goods private String name; private float price; private int number; private String Producer; public String getName() return nam
26、e; public void setName(String name) = name; public float getPrice() return price; public void setPrice(float price) this.price = price; public int getNumber() return number; public void setNumber(int number) this.number = number; public void Producer(String i) this.Producer = i; public Str
27、ing Producer() / TODO Auto-generated method stub return Producer;3 main函数,测试以上所要求的各种功能,即可以根据菜单命令增加、删除、查询商品、盘点商品,以及商品销售和商品上架的操作提示: 超市货架可以使用商品数组,数组大小100表明存放100个商品。 注意实现商品查询的多态性,要求可以根据商品的名称或产地或价格查询商品的数量。package sssu;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamRead
28、er;/* * 1、实现描述超市的的类Suppermacket类, 记录系统中现有商品(Goods类), 定义增加商品的函数Append, * 删除商品的函数Delete, 查询商品的函数Query, 并显示查询结果; * 2、定义商品类Goods,具有商品名称Name,商品价格Price,商品数量number等属性,操作Sale(销售商品,余额不足时给予提示)、Add(商品上架操作)和ShowMe(显示商品信息)。 * 3、编写包含main方法的测试类,测试以上所要求的各种功能,即可以根据菜单命令增加、删除和查询商品,以及商品销售和商品上架的操作。 */public class Test p
29、ublic static void main(String args) SuperMarket market = new SuperMarket(); SuppressWarnings("unused")String label = "商品名称", "商品价格", "商品数量" ; int type=-1 ; do System.out.println("="); System.out.println("请选择操作类型"); System.out.println("
30、1 添加商品"); System.out.println("2 删除商品"); System.out.println("3 查询商品"); System.out.println("4 销售商品"); System.out.println("0 退出系统"); System.out.println("="); int i = 0; do try type = Integer.parseInt(readString(); i = 0; catch (Exception e) i = 1;
31、System.err.println("输入有误"); while (i != 0); switch (type) case 1: Goods goods = new Goods(); System.out.println("请输入商品名称"); goods.setName(readString(); do try System.out.println("请输入商品价格"); goods.setPrice(Integer.parseInt(readString(); i = 0; catch (Exception e) i = 1;
32、System.err.println("输入有误"); while (i != 0); do try System.out.println("请输入商品数量"); goods.setNumber(Integer.parseInt(readString(); i = 0; catch (Exception e) i = 1; System.err.println("输入有误"); while (i != 0); do try System.out.println("请输入商品产地"); goods.Producer(
33、readString(); i = 0; catch (Exception e) i = 1; System.err.println("输入有误"); while (i != 0); System.out.println(market.append(goods); break; case 2: System.out.println("请输入要删除商品的名称"); String name = readString(); System.out.println(market.delete(name); break; case 3: System.out.pri
34、ntln("商品名称t商品价格t商品数量"); for (int j = 0; j < market.getGoodsList().size(); j+) Goods g = market.getGoodsList().get(j); System.out.println(g.getName() + "t" + g.getPrice() + "t" + g.getNumber(); break; case 4: Goods goods_sals = new Goods(); System.out.println("请输
35、入销售商品名称"); goods_sals.setName(readString(); do try System.out.println("请输入销售商品价格"); goods_sals.setPrice(Integer.parseInt(readString(); i = 0; catch (Exception e) i = 1; System.err.println("输入有误"); while (i != 0); do try System.out.println("请输入销售商品数量"); goods_sals.s
36、etNumber(Integer.parseInt(readString(); i = 0; catch (Exception e) i = 1; System.err.println("输入有误"); while (i != 0); System.out.println(market.sale(goods_sals); break; default: System.out.println("退出"); break; while (type != 0); /* param prompt* return */ private static String r
37、eadString() BufferedReader br = new BufferedReader(new InputStreamReader(System.in); String str = null; try str = br.readLine(); catch (IOException e) e.printStackTrace(); return str; 3.实验预习要求复习本章所学内容,思考以下问题:(1) 什么是对象?什么是类?(2) 面向对象编程的特性有哪三个?它们各自有哪些特性?(3) Java语言在面向对象编程方面有哪些独特的特点?(4) 抽象类与接口有何异同?4.实验结论
38、(1) 遇到的问题及解决办法。 在实验中超市类和接口编写遇到了问题,通过上网查阅和询问同学最后得到了结果。(2) 实验体会。 在编写程序时要有耐心去认真改正错误,并且进行不断的完善。实验4 Java异常处理1.实验目的掌握异常的概念,以及如何定义、抛出和捕获处理异常。2.实验内容(3)在实验三中的超市、商品类中创建一个自定义异常类。 要求:在定义商品类时,若销售商品数量大于余额则作为异常处理(InsufficientFundsException)。提示:1 产生异常条件是某类商品销售数量大于库存额,因此是否抛出异常要先判断该条件。2 确定产生异常的方法,应该在sale方法中产生异常Insuff
39、icient Funds Exception。3 处理异常安排在调用sale的时候,因此sale方法要声明异常,由上级方法捕获并处理。4 要定义好自己的异常。程序与实验三第三个一样。实验6 图形用户界面编程1.实验目的 掌握文本组件、按钮和单、复选按钮组件的使用;掌握列表的使用,鼠标、键盘事件的处理;掌握布局控制的方法。2.实验内容(1) 试设计一窗口,内含一个按钮。开始运行时,按钮显示“Click Me”字样,当按钮按下时,按钮显示为“Click Me Again”字样,再按一次,则按钮显示“Click Me”字样,依次循环。package test1;import java.awt.*;i
40、mport java.awt.event.*;public class L08_03 extends Frame implements MouseListener/* * */private static final long serialVersionUID = 1L;static L08_03 frm=new L08_03();static Button btn=new Button("Click Me");static int a=0;public static void main(String args)btn.addMouseListener(frm);frm.s
41、etLayout(new FlowLayout();frm.setTitle("按钮");frm.setSize(300,200);frm.add(btn);frm.setVisible(true);public void mousePressed(MouseEvent e)public void mouseReleased(MouseEvent e)public void mouseExited(MouseEvent e)public void mouseEntered(MouseEvent e)public void mouseClicked(MouseEvent e)
42、a+;if(a%2)!=0)btn.setLabel("Click Me Again");else btn.setLabel("Click Me");P177书package test1;import java.awt.Button;import java.awt.Component;import java.awt.FlowLayout;import java.awt.Label;import java.awt.TextArea;import java.awt.TextField;import java.awt.event.MouseAdapter;im
43、port java.awt.event.MouseEvent;import java.awt.event.TextEvent; import javax.swing.JFrame; /* * java编程 完成下图所示的图形用户界面设计, */public class Demo3 public static void main(String args) /创建窗体对象 JFrame jf = new JFrame("输入姓名"); /设置大小 jf.setSize(300, 300); /设置居中 jf.setLocationRelativeTo(null); /设置布局
44、jf.setLayout(new FlowLayout(); /设置关闭事件 jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); /添加label Label stuName = new Label("姓名"); /添加文本框 final TextField tfClass = new TextField(30); final TextField tfNo = new TextField(30); final TextField tfName = new TextField(30); /添加按钮 Button confirm
45、 = new Button("确定"); Button cancel = new Button("取消"); /添加文本域 final TextArea ta = new TextArea(30,30);/添加 jf.add(stuName); jf.add(tfName); jf.add(confirm); jf.add(cancel); jf.add(ta); /添加事件 confirm.addMouseListener(new MouseAdapter() Override public void mouseClicked(MouseEvent e
46、) String stuName = tfName.getText().trim(); tfClass.setText(""); tfNo.setText(""); tfName.setText(""); ta.append("姓名:"+stuName+"rn"); ); cancel.addMouseListener(new MouseAdapter() Override public void mouseClicked(MouseEvent e) System.exit(0); ); /显示
47、 jf.setVisible(true); 3.实验预习复习本章所学内容,思考以下问题:(1) Java语言是跨平台的编程语言,那么图形用户界面如何做到跨平台?(2) AWT有哪些组件和容器?它们各自的使用方法是什么?(3) AWT的事件处理模型是什么?原理又如何?(4) 什么是Swing?它和AWT比有什么优点?使用上有什么区别?4.实验结论(1) 遇到的问题及解决办法。 在编写时,有些方法记不住,就会翻阅书籍,把那些组件内容都给添加上。(2) 实验体会。 GUI是java中一个很有意思的编程,实现了可视化的界面,做完之后很有成就感。也学到了很多内容。实验7 输入与输出1.实验目的(1) 掌
48、握Java两种基本输入/输出流类的使用。(2) 掌握Java文件类型的使用。(3) 掌握文件的输入、输出方法。2.实验内容(1) 编写程序,实现从键盘输入字符串并在屏幕上输出。package shiyan7;import java.util.*;public class question1 public static void main(String args) SuppressWarnings("resource")Scanner scanner = new Scanner(System.in); System.out.print("请输入字符串: "
49、); String yy = scanner.nextLine(); StringTokenizer fenxi1 = new StringTokenizer(yy); int n=fenxi1.countTokens(); String str = new Stringn; for(int i=0;fenxi1.hasMoreTokens();i+) stri=fenxi1.nextToken(); for(int i=n-1;i>=0;i-) System.out.print(stri+" ");编写程序,利用Java字符流文件输入/输出类,实现将源程序复制到另一个文件中。.package shiyan7;import java.io.BufferedReader;import java.io.Buffere
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年山东高考化学试卷知识点分布
- 人教版七年级音乐上册(五线谱)第6单元《青少年管弦乐队指南》教学设计
- Unit 2 Food and Health-Lesson 1 Lunchtime 教学设计 2024-2025学年北师大版英语七年级下册
- 场馆礼仪礼貌培训
- 八年级上册美丽的颜色教案设计
- 咏鹅(教学设计)-2024-2025学年花城版音乐一年级上册
- 2025年中级会计专业技术资格考试知识点大全
- 2025年石家庄科技职业学院单招职业适应性测试题库有答案
- 学科学习全解析
- 2025至2030年中国中式肉制品数据监测研究报告
- 2022年中小学体育课堂教学规范
- 新人教版八年级下册英语全册教案(教学设计)
- 2022年河南省郑州市中考二模语文试卷
- 东莞市卫生与健康十三五规划
- 土壤分析技术规范(第二版)
- 3力浮力答案第1讲难题型密度计
- 地下车库交通标志标线及地坪漆工程施工组织设计
- 专题一电磁感应与电路ppt课件
- GDFJ005修改个人信息申请表
- JJF 1363-2019硫化氢气体检测仪型式评价大纲(高清版)
- 氟喹诺酮类抗菌药物的不良反应和临床应用概要
评论
0/150
提交评论