Java實驗報告一

來源:互聯網
上載者:User

標籤:

北京電子科技學院(BESTI)

             

課程:Java程式設計實驗   班級:1353  姓名:符運錦  學號:20135323

成績:                           指導教師:婁嘉鵬      實驗日期:2015.4.17

  實驗密級:無            預習程度:                   實驗時間:15:30~18:00

儀器組次:  23                    必修/選修: 選修                  實驗序號:1

實驗名稱:Java開發環境的熟悉                                        

實驗目的與要求:                                                         

          1.使用JDK編譯、運行簡單的Java程式                               

2.使用Eclipse 編輯、編譯、運行、調試Java程式        

3.實現學產生績管理功能,並進行測試;                   

實驗儀器:                                                                                                              

名稱

型號

數量

PC

SONY 

1

虛擬機器

實驗樓

1

                                                                

                                                                       

                                                          

                                                          

         

實驗知識點

1. JVM、JRE、JDK的安裝位置與區別;

2. 命令列運行javac,java;javac -cp; java -cp;

3. PATH,CLASSPATH,SOURCEPATH的設定方法與應用;

4. 包管理:package;import;javac -d ;

5. Eclipse(Netbeans)管理Java項目,調試:斷點、逐步執行等;

6. Java基礎文法:類型與類型轉換;變數;運算子;流程式控制制等;

7. JDK協助文檔的使用;

 

 

一、實驗內容:

(一)命令列下Java程式開發

代碼:

package fyj;

import java.util.Scanner;

public class Hello

{

  public static void main(String[] args)

  {

    System.out.println("Input your first name, please:");

    Scanner s = newScanner(System.in);

    String name = s.next();

    System.out.println("Hello "+ name +" !");

  }

}

實驗:

按照虛擬機器中的實驗操作,得到以下結果:

 

 

注意事項:

 1.注意代碼的第一行,這會影響到我們使用javac編譯代碼的方式。 

 2.注意代碼第二行,我們使用到Java類庫中的類時,要用import匯入相關的類(你可以暫時理解為C語言中include的功能),匯入路徑可以查看JDK協助文檔。

 3.輸入javac -d . Hello.java命令編譯代碼,輸入java yjx.Hello命令運行程式。

 4.注意:代碼中有package時,使用javac編譯代碼時一定要加-d參數,運行代碼時一定要加包名首碼。

(二)Eclipse下Java程式開發、調試

代碼:

package fyj;

public class Hellofyj {

       public static void main(String[] args) {

              int i = 5;

              int j = 6;

              int sum = add(i,j);

              System.out.println(sum);

              sum = 0;

              for(i=0;i<100;i++)

                     sum+=i;

              System.out.println(sum);

       }

       public static int add(int augend, int addend){

              int sum = augend + addend;

              return sum;

       }

}

實驗:

運行,調試,並設定斷點後:

(三)實現學產生績管理功能,並進行測試

代碼:

 

import java.util.ArrayList;
import java.util.Scanner;
public class student2
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.println("請輸入學生人數:");
int number = 0;
number = input.nextInt();
System.out.println("請輸入課程的數目:");
int courses = 0;
courses = input.nextInt();
String[] coursesname = new String[courses];
for(int i=0;i<coursesname.length;i++)
{
System.out.println("請輸入第"+(i+1)+"門課的名字:");
coursesname[i]=input.next();
}
ArrayList<student> name=new ArrayList<student>();
int [][] score = new int[number][courses];
for(int i=0;i<number;i++)
{
student forNew=new student();
name.add(forNew);
System.out.println("請輸入第"+(i+1)+"個學生的名字:");
name.get(i).name = input.next();
System.out.println("請輸入第"+(i+1)+"個學生的學號:");
name.get(i).number = input.next();
for (int j=0;j<coursesname.length;j++ )
{
System.out.println("請輸入"+name.get(i).name+"的"+coursesname[j]+"的成績");
score[i][j] = input.nextInt();
}
}
int sum = 0;
int[] scoreSum = new int[number];
int[] ci = new int[number];
for (int i=0;i<number;i++)
{
for (int j=0;j<courses;j++)
{
sum += score[i][j];
}
scoreSum[i] = sum;
ci[i] = sum;
sum = 0;
}
for (int i = 0;i<number-1;i++)
{
for (int j=i+1;j<number;j++)
{
if (ci[i]<ci[j])
{
int temp = ci[j];
ci[j] = ci[i];
ci[i] = temp;
}
}
}
System.out.print("學生\t");
System.out.print("學號\t");
for (int i=0;i<courses;i++)
{
System.out.print(coursesname[i]+"\t");
}
System.out.print("總分\t");
System.out.print("平均分\t");
System.out.print("熱門排行榜");
System.out.print("\n");
int[] temp = new int[number];
for (int i=0;i<temp.length;i++)
{
for (int j=0;j<scoreSum.length;j++)
{
if (ci[i] == scoreSum[j])
{
temp[i] = j;
}
}
}
for (int i=0;i<number;i++)
{
System.out.print(name.get(temp[i]).name+"\t");
System.out.print(name.get(temp[i]).number+"\t");
for (int j=0;j<courses;j++)
{
System.out.print(score[temp[i]][j]+"\t");
}
System.out.print(scoreSum[temp[i]]+"\t");
System.out.print(scoreSum[temp[i]]/courses+"\t");
System.out.print("NO."+(i+1));
System.out.print("\n");
}
}
}
class student{
public String name;
public String number;
}

(四)實驗總結:

本次實驗是本學期的第一次實驗,對於實驗的一切內容都令我感受到了JAVA這門課程並不好學,但是我對自己充滿信心。

對於實驗一,目的是讓我們熟悉虛擬機器的運用並熟悉SCANNER。在這個實驗中,按照操作執行,並沒有遇到特別多的問題

對於實驗二,插入斷點,這個實驗讓我瞭解到了如果代碼出現錯誤該要如何進行找出。斷點可以有效地分離出代碼,快速找到錯誤之處。

對於實驗三,1.我的學號抽到的是學生管理系統,對於我而言真的很難,因為自己對於JAVA的編程沒有完全上手,學生管理系統可以做的內容又太多。最後,結合自身的一些水平,我做了一個涵蓋學號、姓名、科目、                    總分、平均分、排名的簡單的學產生績管理系統。

                 2.在實驗一當中,我學會了調用Scanner,這就可以解決輸入的問題。但是輸入完了以後,問題就出來了,如何處理這些輸入的資料並實現它的功能。

                 3.對於學生的屬性,可以涵蓋成三類,分別是學號、姓名、各科成績。到這時,我就想到需要調用一個二維數組。但是二維數組只能調用兩類資料,自己又不會使用多維陣列,如何將剩餘的一個類與之進行                      同步呢?這成為我一個很難解決的問題。

                 4.對於如何解決多出一個類,我上網尋找了很多資料,並且查閱了很多跟學生管理系統有關的代碼,發現他們對於處理這個問題時會用一個動態數組ArrayList。並且在代碼中,我加入了

                     class student{
                     public String name;
                     public String number;
                     }                這就相當於C語言當中的結構體,然後用ArrayList<student> name=new ArrayList<student>();相當於student[],為student分配一個容量,可以儲存name和number。這樣學號                     和姓名就捆綁在了一起。

                 5.在接下來的代碼中,用arraylist中的add和get功能。add功能負責將姓名和學號插入動態數組中,get負責將姓名和學號從動態數組中讀取輸出。

                 6.其餘的例如總分,平均分和排名跟C語言類似,在此不贅述。

        總而言之,這次實驗自己準備了一個周,查閱了很多的相關資料,真的學到了很多,也希望自己下次能夠再更積極一點,學習到更多有關JAVA的知識。

 

(五)PSP時間統計

步驟

耗時百分比

需求分析

5%

設計

8%

代碼實現

70%

測試

10%

分析總結

7%

                

Java實驗報告一

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.