Java實驗報告彙總
實驗四
1、1)宣告一個類Person,該類擁有:
①成員變數name(protected,String);//用於存放姓名;age(protected,int);//用於存放年齡;address(protected,String);//用於存放家庭地址
② 兩個構造方法
無參構造方法()//預設將姓名設定為“張三”;
有參構造方法(Stringname,int age,String addr)//建立Person物件時設定姓名、年齡和地址;
2)宣告一個類Student,它繼承了上面的Person類。還擁有:
①一個成員變數department(私有,String)//用於存放所在系
②兩個構造方法
無參構造方法()//先呼叫父類構造方法,並把所在系的預設設為“資訊系”;
有參構造方法(Stringname,int age,String addr ,String dep)//先呼叫父類的構造方法,然後再設定所在系
3)編寫類Test作為主類完成如下測試。
編寫應用程式,以自己個人資訊作為引數分別建立Person類和Student類的例項物件,並在主方法main中編寫程式碼輸出個人資訊。
2 編寫一個類,該類有如下一個方法:public int f(int a ,int b){
…………………………………..//要求該方法返回a和b的最大公約數
}
再編寫一個該類的子類,要求子類重寫方法發(),而且重寫的方法返回兩個整數的最小公倍數。
3.
1)定義一個圖形類Shape,定義兩個方法分別用來求面積和周長。(這兩個方法的體內容應該為空)
2)定義圖形類Shape的子類Rectangular類重寫求面積及周長的功能
3)定義圖形類Shape的子類Circle類重寫求面積及周長的功能
編寫應用程式,通過上轉型物件呼叫被重寫的方法。
class Person{
protected String name;
protected int age;
protected String address;
Person(){
name="張三";
}
Person (String a,int b,String addr){
name=a;
age=b;
address=addr;
}
}
class Student extends Person{
private String department;
Student(){
department="資訊系";
}
Student(String name,int age,String addr,String dep){
super(name,age, addr);
department=dep;
}
void x(){
System.out.println(department);
}
}
public class Main {
public static void main(String args[]){
Person people1=new Person("呂",18,"汶上");
Student people2=new Student("小明",18,"哈爾濱","資訊2系");
System.out.println(people1.name+people1.age+people1.address);
System.out.println(people2.name+people2.age+people2.address);
people2.x();
}
}
import java.text.NumberFormat;
class Person{
public int f(int a,int b){
if(a==0)
return b;
return f(a%b,a);
}
}
class A extends Person{
public int f1(int a,int b){
if(a==0)
return b;
return f1(a%b,a);
}
public int f(int a,int b){
return a*b/f1(a,b);
}
}
public class Main {
public static void main(String args[]){
Person a=new Person();
A b=new A();
System.out.println(a.f(3,6)+" "+b.f(3,6));
}
}
import java.text.NumberFormat;
class Shape{
void area(){
}
void length(){
}
}
class Rectangular extends Shape{
void area(){
System.out.println("長方形的面積");
}
void length(){
System.out.println("長方形的周長");
}
}
class Circle extends Shape{
void area(){
System.out.println("圓的面積");
}
void length(){
System.out.println("圓的周長");
}
}
public class Main {
public static void main(String args[]){
Shape a;
Rectangular b=new Rectangular();
Circle c=new Circle();
a=b;
a.area();
a.length();
a=c;
a.area();
a.length();
}
}
實驗51.設計一個抽象類,宣告有關算術運算的方法,並建立四個子類繼承該抽象的類,完成進行加、減、乘、除四則運算。要求:在應用程式的主類中使用這些子類建立物件,再讓他們的上轉型物件呼叫算術運算方法。
2.編寫一個ComputerAverage抽象類,類中有一個抽象方法求平均分average,可以有引數。定義Gymnastics類和School類,它們都是ComputerAverage的子類,Gymnastics類中計算選手的平均成績的方法是去掉一個最低分,去掉一個最高分,然後求平均分。School中計算平均分的方法是直接是總分除以總科目。
要求:定義ComputerAverage的物件為上轉型物件,並呼叫重寫的方法averge。
3.將1或2中完成的功能使用介面回撥重新實現。
4.編寫一個類,完成功能為通過scanner物件獲得從鍵盤輸入的值,如int,但實際從鍵盤輸入非int值,如float,觸發異常,並在catch中處理此異常,如輸出異常的資訊。(e.getMessage())
abstract class A{
abstract double op(int a,int b);
}
class B extends A{
double op(int a, int b) {
return a+b;
}
}
class C extends A{
double op(int a, int b) {
return a-b;
}
}
class D extends A{
double op(int a, int b) {
return a*b;
}
}
class E extends A{
double op(int a, int b) {
return a*1.0/b;
}
}
public class Main {
public static void main(String args[]){
B b=new B();
C c=new C();
D d=new D();
E e=new E();
System.out.println(b.op(3,4)+" "+c.op(3,4)+" "+d.op(3,4)+" "+e.op(3,4));
}
}
interface A{
double op(int a,int b);
}
class B implements A{
public double op(int a, int b) {
return a+b;
}
}
class C implements A{
public double op(int a, int b) {
return a-b;
}
}
class D implements A{
public double op(int a, int b) {
return a*b;
}
}
class E implements A{
public double op(int a, int b) {
return a*1.0/b;
}
}
public class Main {
public static void main(String args[]){
A sm;
sm=new B();
System.out.println(sm.op(3,4));
sm=new C();
System.out.println(sm.op(3,4));
sm=new D();
System.out.println(sm.op(3,4));
sm=new E();
System.out.println(sm.op(3,4));
}
}
import java.util.*;
public class Main {
public static void main(String args[]){
Scanner reader=new Scanner(System.in);
int n;
try{
n=reader.nextInt();
}
catch(Exception e){
System.out.println("發生異常");
}
}
}
實驗6
實驗內容(1.2中任選一個,3.4.5中任選一個,6必做)
1.編寫一個程式,實現字串的大小寫轉換並倒序輸出,如輸入為“HelloWord”,輸出為“DROwOLLEH”。要求如下:不能使用StringBudder類的reverse()方法實現。
程式設計思路:將字串放入字元陣列中,從最後一個字元開始遍歷,通過方法判斷如是小寫字元則轉換為大寫,反之轉換為小寫;定義一個StringBuffer物件,呼叫方法將數字中轉換後的字元放入,用toString()方法輸出。
注:String的toLowerCase()方法,可將大寫字元轉換為小寫,toUpperCase()方法可將小寫轉換為大寫。其餘方法書上參考或查API幫助。
2.編寫一個應用程式,使用者從鍵盤輸入一行含有數字和字元的字串,程式僅僅輸出字串中的全部數字字元。
3.編寫一個應用程式,計算從今天起,100天后是幾月幾號,並使用SimpleDateFormat類,按你設定的格式顯示某面某月某日,星期幾。
注:可用Calendar類的Add()方法計算100天后的日期。
4編寫一個應用程式,輸出某年某月的日曆。
5.編寫一個應用程式,使用BigInteger類實現計算大整數的階乘。
6.自己編寫一個泛型的例子。
import java.util.*;
public class Main {
public static void main(String args[]){
Scanner reader=new Scanner(System.in);
String a;
int i;
a=reader.next();
char[] ch=a.toCharArray();
for(i=0;i<ch.length;i++)
if(ch[i]>='0'&&ch[i]<='9')
System.out.printf("%c",ch[i]);
System.out.printf("\n");
}
}
import java.math.*;
public class Main {
public static void main(String args[]){
BigInteger n=new BigInteger("5");
BigInteger mul=new BigInteger("1");
BigInteger one=new BigInteger("1");
for(BigInteger i=n;i.compareTo(one)>=0;i=i.subtract(one)){
mul=mul.multiply(i);
}
System.out.println(mul);
}
}
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("1234567");
list.add("89101112");
for (int i = 0; i < list.size(); i++) {
String name = list.get(i);
System.out.println("name:" + name);
}
}
}
實驗7
二、實驗內容(1.2.3.4中任選一個,5.6任選一個)
1.使用TreeSet類,編寫一個應用程式,輸入5個學生的姓名和數學分數、英語分數。程式分別按英語、數學和總分排序輸出學生的姓名和分數。
2.使用LinkList類,編寫一個應用程式,用一個二維陣列模擬4*4方針,然後將整數1~8隨機放入方陣中,要求1~8中的每個數在方陣中恰好出現2次。
提示:首先將1~8新增到連結串列中,使得連結串列的長度為16,前8個是1~8,後8個也是1~8,然後隨機刪除連結串列中的節點,同時將該結點中的資料順序的放入方陣中。
3.有集合A={1,2,3,4},和B={1,3,7,9,11},編寫一個應用程式輸出A和B交集、並集和差集。
4.有5個硬碟,有兩個重要的屬性:價格和容量。使用TreeMap類編寫一個應用程式,分別按照價格和容量排序輸出10個硬碟的詳細資訊。
5. 編寫一個java程式,在主執行緒中在建立2個執行緒,一個執行緒輸出“我是執行緒A”10次, 一個執行緒輸出“我是執行緒B”10次,多次執行此程式,觀察結果是否一樣。
6. 哈爾濱火車站下面有三個火車票代售點,假如哈爾濱到北京的火車票總共是200張,如何用程式來實現三個售票點同時賣票的功能。
import java.util.*;
class Student implements Comparable{
int english=0;
int math=0;
int sum=0;
String name;
Student(int e,int m,String n){
english=e;
name=n;
math=m;
sum=m+e;
}
public int compareTo(Object b) {
Student st=(Student)b;
//return (this.english-st.english);//按英語排序
//return (this.math-st.math);//按數學排序
return (this.sum-st.sum);//按總分排序
}
}
public class Main{
public static void main(String args[]){
TreeSet<Student>mytree=new TreeSet<Student>();
Student st1,st2,st3;
st1=new Student(90,80,"張");
st2=new Student(70,85,"呂");
st3=new Student(20,95,"劉");
mytree.add(st1);
mytree.add(st2);
mytree.add(st3);
Iterator <Student>te=mytree.iterator();
while(te.hasNext()){
Student stu=te.next();
System.out.println(" "+stu.name+" "+" "+stu.english+" "+" "+stu.math+" "+" "+stu.sum);
}
}
}
class WriteWordThread extends Thread{
WriteWordThread(String s){
setName(s);
}
public void run(){
for(int i=1;i<=10;i++){
System.out.println(" "+getName());
}
}
}
public class Main{
public static void main(String args[]){
WriteWordThread zhang,wang;
zhang=new WriteWordThread("我是執行緒A");
wang=new WriteWordThread("我是執行緒B");
zhang.start();
wang.start();
}
}
實驗8
二、實驗內容(1.2.3任選一個,4.5.6任選一個)
1.在某目錄下建立一個文字檔案test.txt,通過位元組輸出流向檔案中寫入“Beijing歡迎你!”,通過位元組輸入流讀出檔案中的內容並顯示;如果再已有檔案中再追加“我的學號是:你自己的學號”如何實現?
2.檔案的拷貝的實現原理通常是通過輸入流來讀取檔案中的資料,通過輸出流將資料寫入檔案。通過編寫一段程式來文成檔案拷貝的工作。首先在當前目錄下建立資料夾source和target,然後在source資料夾中存放“High.mp3”,使用位元組輸入流讀入檔案,使用位元組輸出流寫入資料夾target下。(試試你拷貝的檔案是否好使)
3.將字串加密後,通過字元輸出流寫入檔案,然後讀取該檔案,並解密。
4.程式設計包含一個文字框和一個文字區域,文字框內容改變時,將文字框中的內容顯示在文字區域中;在文字框中按Enter鍵時,清空文字區域的內容。
5.編寫一個算術測試小軟體,用來訓練小學生的算術能力。程式由3個類組成:teacher類的物件充當監視器,負責給出算術題目,並判斷回答者的答案是否正確;ComputerFrame類的物件負責為算術題目提供檢視,如使用者提供ComputerFrame類的物件提供GUI介面看到題目,並通過該GUI介面給出題目的答案;MailClass類是軟體的主類。
6.編寫一個簡單的計算器,要求能實現簡單的加、減、乘、除四則運算和置零的功能。
import java.io.*;
public class Main{
public static void main(String args[]){
File file=new File("E:/","hello.txt");
byte b[]="Beijing 歡迎你!".getBytes();
try{
FileOutputStream out=new FileOutputStream(file);
out.write(b);
out.close();
FileInputStream in=new FileInputStream(file);
int n=0;
while((n=in.read(b,0,2))!=-1){
String str=new String(b,0,n);
System.out.println(str);
}
FileWriter writer = new FileWriter("E:/hello.txt", true);
writer.write("我的學號是:你自己的學號");
writer.close();
n=0;
while((n=in.read(b,0,2))!=-1){
String str=new String(b,0,n);
System.out.println(str);
}
}
catch(IOException e){
System.out.println(e);
}
}
}
相關文章
- 彙編實驗報告中出現的例題
- Java 實現彙總排序Java排序
- 實驗二十————OSPF路由彙總的配置路由
- jmeter_彙總報告_資料解讀JMeter
- FTP實驗報告FTP
- 實驗報告4
- 實驗報告5
- 實驗報告5 6
- libSVM使用實驗報告
- Matlab實驗資料處理程式大彙總Matlab
- c語言程式實驗————實驗報告十C語言
- c語言程式實驗——實驗報告五C語言
- c語言程式實驗————實驗報告十二C語言
- Spring報錯彙總Spring
- 實驗報告(1和2)
- Zabbix安裝實驗報告
- 「雜文」應用基礎實踐一(網路+Java)實驗報告Java
- 計算機網路實驗報告:【Wirshark 實驗】計算機網路
- JAVA語法彙總(三)Java
- 彙編 實驗3
- 彙編 實驗2
- 彙編 實驗四
- 彙編 實驗五
- 彙編 實驗九
- 彙編 實驗一
- 大學物理實驗電學基本引數的測量實驗報告_大學物理電學實驗報告
- 寫資料庫實驗報告資料庫
- 實驗報告,共同進步(一)
- 行為驗證碼接入彙總
- 驗證碼安全問題彙總
- 實用工具彙總
- 大學物理實驗電學基本引數的測量實驗報告_大學物理實驗報告(清華大學)實驗3.1電學元件伏安特性的測量實驗報告.doc...元件
- Java 常見問題彙總Java
- Java學習書籍彙總Java
- java面試彙總:JVM篇!Java面試JVM
- 中級實訓總結報告
- 畢業實習總結報告
- mysql報錯程式碼彙總MySql
- Java | 個人總結的Java常用API手冊彙總JavaAPI