关于java综合实验的信息
今天给各位分享java综合实验的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java面向对象综合实验。
- 2、JAVA的两个实验
- 3、java实验报告
- 4、java实验报告程序
java面向对象综合实验。
源代码:
import java.util.*;
public class Test1 {
public static class Student{
int id;
String name;
int math;
int english;
int history;
public void setId(int id){
this.id=id;
}
public int getId(){
return id;
}
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
public void setMath(int math){
this.math=math;
}
public int getMath(){
return math;
}
public void setEnglish(int english){
this.english=english;
}
public int getEglish(){
return english;
}
public void setHistory(int history){
this.history=history;
}
public int getHistory(){
return history;
}
}
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
System.out.println("请输入学生人数:");
int renshu=scan.nextInt();
Student[]stu=new Student[renshu];
for(int i=0;irenshu;i++){
stu[i]=new Student();
int id,math,english,history;
String name;
System.out.println("请输入学生的学号:");
Scanner scan1=new Scanner(System.in);
id=scan1.nextInt();
System.out.println("请输入该生的姓名:");
Scanner scan2=new Scanner(System.in);
name=scan2.next();
System.out.println("请输入该生的数学、英语、历史成绩:");
Scanner scan3=new Scanner(System.in);
math=scan3.nextInt();
english=scan3.nextInt();
history=scan3.nextInt();
stu[i].setId(id);
stu[i].setName(name);
stu[i].setMath(math);
stu[i].setEnglish(english);
stu[i].setHistory(history);
}
ListStudentlist=new ArrayList();
list=Arrays.asList(stu);
IteratorStudentit=list.iterator();
while(it.hasNext()){
Student s=new Student();
s=it.next();
System.out.print("学号:"+s.getId()+" 姓名:"+s.getName()+" 数学:"+s.getMath()+" 英语:"+s.getEglish()+" 历史"+s.getHistory());
System.out.println();
}
System.out.println("三门全部通过的同学为:");
IteratorStudentit1=list.iterator();
while(it1.hasNext()){
Student s=new Student();
s=it1.next();
if(s.getMath()=60 s.getEglish()=60 s.getHistory()=60)
System.out.println("学号:"+s.getId()+" 姓名:"+s.getName()+" 数学:"+s.getMath()+" 英语:"+s.getEglish()+" 历史"+s.getHistory());
}
System.out.println("三门全部不通过的同学为:");
IteratorStudentit2=list.iterator();
while(it2.hasNext()){
Student s=it2.next();
if(s.getMath()60 s.getEglish()60 s.getHistory()60)
System.out.println("学号:"+s.getId()+" 姓名:"+s.getName()+" 数学:"+s.getMath()+" 英语:"+s.getEglish()+" 历史"+s.getHistory());
}
System.out.println();
System.out.println("三门至少有一门通过的同学为:");
IteratorStudentit3=list.iterator();
while(it3.hasNext()){
Student s=it3.next();
if(s.getMath()=60 || s.getEglish()60 || s.getHistory()60)
System.out.println("学号:"+s.getId()+" 姓名:"+s.getName()+" 数学:"+s.getMath()+" 英语:"+s.getEglish()+" 历史"+s.getHistory());
}
System.out.println();
System.out.println("数学不通过的同学为:");
IteratorStudentit4=list.iterator();
while(it4.hasNext()){
Student s=it4.next();
if(s.getMath()60)
System.out.println("学号:"+s.getId()+" 姓名:"+s.getName()+" 数学:"+s.getMath()+" 英语:"+s.getEglish()+" 历史"+s.getHistory());
}
}
}
其实这样get、set不如直接定义一个构造函数方便。
还有下面这个源代码可能不符合要求,没有键盘输入,但是有分别用for和迭代器,更好理解。
import java.util.*;
public class Test {
public static class Student{
int id;
String name;
int math;
int english;
int history;
public void setId(int id){
this.id=id;
}
public int getId(){
return id;
}
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
public void setMath(int math){
this.math=math;
}
public int getMath(){
return math;
}
public void setEnglish(int english){
this.english=english;
}
public int getEglish(){
return english;
}
public void setHistory(int history){
this.history=history;
}
public int getHistory(){
return history;
}
}
public static void main(String[] args) {
Student s1=new Student();
s1.setId(11);
s1.setName("dr");
s1.setMath(100);
s1.setEnglish(90);
s1.setHistory(80);
Student s2=new Student();
s2.setId(12);
s2.setName("spe");
s2.setMath(100);
s2.setEnglish(50);
s2.setHistory(80);
Student s3=new Student();
s3.setId(13);
s3.setName("wr");
s3.setMath(50);
s3.setEnglish(100);
s3.setHistory(80);
Student s4=new Student();
s4.setId(14);
s4.setName("axe");
s4.setMath(50);
s4.setEnglish(50);
s4.setHistory(50);
ListStudentlist=new ArrayList();
list.add(s1);
list.add(s2);
list.add(s3);
list.add(s4);
System.out.println("使用迭代器:");
System.out.println("所有学生成绩:");
IteratorStudentit=list.iterator();
while(it.hasNext()){
Student s=it.next();
System.out.print("学号:"+s.getId()+" 姓名:"+s.getName()+" 数学:"+s.getMath()+" 英语:"+s.getEglish()+" 历史"+s.getHistory());
System.out.println();
}
System.out.println();
System.out.println("三门全部通过的同学为:");
IteratorStudentit1=list.iterator();
while(it1.hasNext()){
Student s=it1.next();
if(s.getMath()=60 s.getEglish()=60 s.getHistory()=60)
System.out.println("学号:"+s.getId()+" 姓名:"+s.getName()+" 数学:"+s.getMath()+" 英语:"+s.getEglish()+" 历史"+s.getHistory());
}
System.out.println("三门全部不通过的同学为:");
IteratorStudentit2=list.iterator();
while(it2.hasNext()){
Student s=it2.next();
if(s.getMath()60 s.getEglish()60 s.getHistory()60)
System.out.println("学号:"+s.getId()+" 姓名:"+s.getName()+" 数学:"+s.getMath()+" 英语:"+s.getEglish()+" 历史"+s.getHistory());
}
System.out.println();
System.out.println("三门至少有一门通过的同学为:");
IteratorStudentit3=list.iterator();
while(it3.hasNext()){
Student s=it3.next();
if(s.getMath()=60 || s.getEglish()60 || s.getHistory()60)
System.out.println("学号:"+s.getId()+" 姓名:"+s.getName()+" 数学:"+s.getMath()+" 英语:"+s.getEglish()+" 历史"+s.getHistory());
}
System.out.println();
System.out.println("数学不通过的同学为:");
IteratorStudentit4=list.iterator();
while(it4.hasNext()){
Student s=it4.next();
if(s.getMath()60)
System.out.println("学号:"+s.getId()+" 姓名:"+s.getName()+" 数学:"+s.getMath()+" 英语:"+s.getEglish()+" 历史"+s.getHistory());
}
System.out.println();
System.out.println("使用for语句");
System.out.println("所有学生成绩:");
for(int i=0;ilist.size();i++)
System.out.println("学号"+list.get(i).getId()+" 姓名 "+list.get(i).getName()+" 数学"+list.get(i).getMath()+" 英语"+list.get(i).getEglish()+" 历史"+list.get(i).getHistory());
System.out.println();
System.out.println("三门全部通过的同学为:");
for(int i=0;ilist.size();i++){
if(list.get(i).getMath()=60 list.get(i).getEglish()=60 list.get(i).getHistory()=60)
System.out.println("学号"+list.get(i).getId()+" 姓名 "+list.get(i).getName()+" 数学"+list.get(i).getMath()+" 英语"+list.get(i).getEglish()+" 历史"+list.get(i).getHistory());
}
System.out.println();
System.out.println("三门全部不通过的同学为:");
for(int i=0;ilist.size();i++){
if(list.get(i).getMath()60 list.get(i).getEglish()60 list.get(i).getHistory()60)
System.out.println("学号"+list.get(i).getId()+" 姓名 "+list.get(i).getName()+" 数学"+list.get(i).getMath()+" 英语"+list.get(i).getEglish()+" 历史"+list.get(i).getHistory());
}
System.out.println();
System.out.println("三门至少有一门通过的同学为:");
for(int i=0;ilist.size();++i){
if(list.get(i).getMath()60 || list.get(i).getEglish()60 || list.get(i).getHistory()60)
System.out.println("学号"+list.get(i).getId()+" 姓名 "+list.get(i).getName()+" 数学"+list.get(i).getMath()+" 英语"+list.get(i).getEglish()+" 历史"+list.get(i).getHistory());
}
System.out.println();
System.out.println("数学不通过的同学为:");
for(int i=0;ilist.size();++i){
if(list.get(i).getMath()60)
System.out.println("学号"+list.get(i).getId()+" 姓名 "+list.get(i).getName()+" 数学"+list.get(i).getMath()+" 英语"+list.get(i).getEglish()+" 历史"+list.get(i).getHistory());
}
System.out.println();
}
}
JAVA的两个实验
/*
* 编写使用抽象类的程序
* 抽象类Shape:
* double getArea():求一个形状的面积
* double getPerimeter ():求一个形状的周长
*/
abstract class Shape{
abstract double getArea();
abstract double getPerimeter();
}
/*
* 类 MyCircle:
* 由Shape类派生的具体类,除实现Shape类中的方法外,另有以下成员变量和方法:
* Radius:double类型,表示圆的半径
* MyCircle(double r):构造方法
* toString()方法 :输出圆的描述信息,如“radius=1.0, perimeter=6.28, area=3.14”
*/
class MyCircle extends Shape{
private double radius;
MyCircle(double r){
this.radius = r;
}
double getArea(){
return 3.14 * radius * radius;
}
double getPerimeter(){
return 2 * 3.14 * radius;
}
public String toString(){
return "radius= " + this.radius + " " + "perimeter= " + getPerimeter() + " " + "area " + getArea();
}
}
/*
* Test类作为主类要完成测试功能
* ①生成MyCircle对象,
* ②调用对象的toString方法,输出对象的描述信息
*/
class test{
public static void main(String[] args){
MyCircle my = new MyCircle(2);
System.out.println(my.toString());
}
}
/*
* (二)编写创建接口及实现接口的程序
* 接口ShapeArea:
* double getArea():求一个形状的面积
* double getPerimeter():求一个形状的周长
*/
interface ShapeArea{
double getArea();
double getPerimeter();
}
/*
* 类Rectangle:实现ShapeArea接口,另有以下成员变量和方法:
* Width,height:double型,表示长方形的宽度和长度
* Rectangle(double w, double h):构造方法
* toString():输出矩形的描述信息,如“width=1.0,height=2.0,perimeter=6.0,area=2.0”
*/
class Rectangle implements ShapeArea{
private double width;
private double height;
Rectangle(double w, double h){
this.width = w;
this.height = h;
}
public double getArea(){
return width * height;
}
public double getPerimeter(){
return 2 * (width + height);
}
public String toString(){
return "width= " + this.width + " " + "height= " + this.height + " " + "perimeter= " + getPerimeter() + " " + "area " + getArea();
}
}
/*
*(3)Test类作为主类要完成测试功能。
* 创建Rectangle类的对象,调用对象的toString方法,输出对象的描述信息
*/
class test{
public static void main(String[] args){
Rectangle my = new Rectangle(2, 4);
System.out.println(my.toString());
}
}
java实验报告
实验1
Java开发工具及程序设计初步
实验目的
能够搭建Java的开发环境
熟悉常用的JDK操作命令的使用
熟悉Java程序的编写和编译过程
了解常用Java开发工具的使用
实验内容
实验练习1:搭建和使用JDK
1.JDK的下载和安装
JDK是SUN公司免费在网上发布的,我们可以进入SUN公司的网站()下载并安装。JDK安装完成后,进行如下操作:
(1)查看并写出JDK的安装目录______________________________;
(2)查看主目录bin文件夹中常用的JDK命令文件,写出java、javac等JDK命令所在的文件目录_________________________________;
(3)在Windows中打开一个命令行窗口,打开命令行窗口的方法有两种:
•选择“开始”→“所有程序”→“附件”→“命令提示符”
•选择“开始”→“运行…”命令,在打开的“运行”窗口中输入“cmd”命令并“确定”。
(4)在打开的命令行窗口中,分别执行java和javac命令,如:C:\java
查看执行结果,看是否输出如下的java命令的帮助信息(如图1-1所示)。
图1-1:java命令的帮助信息
C:\javac
查看执行结果,看是否输出如下的javac命令的帮助信息(如图1-2所示)。
图1-2:javac命令的帮助信息
如果上面的信息均能输出,说明JDK的安装成功,基本上可正常使用。
2.操作系统环境变量的使用
操作系统的环境变量是在操作系统中定义的变量,可被该操作系统上运行的程序访问。JDK中主要有两个相关的操作系统环境变量,即path和classpath。
(1)查看操作系统环境变量
•在命令行窗口中执行set命令
如:C:\set
查看set命令的输出结果,在set命令的输出结果中可看到许多等式,其中等号的左边是环境变量的名称,等号的右边是环境变量的取值。
命令:set
环境变量名,可查看指定的某个环境变量的设置情况。
执行命令:C:\set
path,查看path变量的设置情况。
•在“环境变量”窗口中查看环境变量
用鼠标右键单击“我的电脑”,选择“属性”命令,在打开的“系统属性”对话框中选择“高级”→“环境变量”,打开“环境变量”窗口。
在“环境变量”窗口中,有用户变量和系统变量两种环境变量。其中,用户环境变量只对某个用户起作用;系统环境变量对该系统上的所有用户都有效。
当我们以某一用户身份登录Windows时,它所使用的变量是系统变量和用户变量的总和。
如果一个变量在系统变量窗口和用户变量窗口都进行了设置,那么这个变量的取值在一般情况下为系统变量的取值与用户变量的取值相加;但有时也会出现用户变量的取值覆盖系统变量取值的情况。不管是什么情况,最终都以在命令行窗口中通过set命令查看到的结果为准。
(2)设置系统的环境变量
•在命令窗口中执行set命令
格式:set
变量名=[变量值]
执行如下命令,查看执行结果。
C:\set
Xx=aa
//新建一个环境变量并设置其取值
C:\set
Xx
//查看该环境变量
C:\set
Xx=
//取消环境变量的设置
C:\set
//查看环境变量
注意:在命令行窗口中设置的环境变量,只在该命令行窗口中起作用。
•在“环境变量”窗口中进行设置
可使用“新建”或“编辑”按钮。
注意:①
在“环境变量”窗口中设置的环境变量对以后所有的应用程序和命令行窗口都起作用,但不会影响原来运行的应用程序和启动的命令行窗口。
②
在“用户环境变量”窗口中进行的设置需要在注销重新登录后才起作用。
(3)path环境变量的作用和设置
环境变量path的值指定了JDK命令搜索路径,即当我们要执行某个命令时,操作系统首先会在当前目录下查找这个命令,如果当前目录下没有这个命令程序,操作系统会沿着path环境变量中所指定的目录依次去查找这个命令文件,并以最先找到的为准。
观察path变量的取值情况,path变量可以有多个取值,每个值代表一条搜索路径,它们之间用“;”分隔。
在命令行窗口中执行如下命令:
C:\set
path
//查看path环境变量
C:\set
path=
或set
path=C:\
//取消path变量的设置或重新设置path的值
C:\set
path
C:\java
或javac
//执行java或javac命令
会出现如下错误信息(如图1-3所示):
图1-3:错误信息
分析错误的原因:_____________________________________________________
改正的方法:__________________________________
实验练习2:Java程序的编写与编译过程
1.一个简单的Java程序的编写与编译
第一步:先在磁盘上创建保存程序文件的目录(文件夹),如:D:\javawork\lesson1。
第二步:在“记事本”中创建并编辑Java源程序文件Test1.java,程序代码如下:
class
Test1
{
}
保存文件,扩展名为.java。
第三步:在命令行窗口中,对源文件Test1.java进行编译。
可参考如下命令:
如果当前盘当前目录为C:\,先将当前目录设置为D:\javawork\lesson1。
C:\d:
D:\cd
ja*w*
D:\javaworkcd
le*
D:\javawork\lesson1javac
Test1.java
如果编译成功,则不出现任何提示,回到命令提示符状态下。打开保存源文件的文件夹,查看编译生成的字节码文件Test1.class。
第四步:运行字节码文件Test1.class。
D:\javawork\lesson1java
Test1
执行结果出现异常,如图1-4所示。
图1-4:执行出现异常
出现异常的原因是:缺少执行应用程序的入口main方法。main方法的声明必须是public
static
void
main(String
args[]){}。修改源程序代码并重新编译,源程序代码如下:
class
Test1
{
public
static
void
main(String
args[])
{
}
}
编译完成后,执行字节码文件。
在main方法中,添加输出的语句并重新编译执行,程序代码如下:
class
Test1
{
public
static
void
main(String
args[])
{
System.out.println("Hello
World!");
}
}
输出结果如图1-5所示。
图1-5:程序执行结果
2.classpath环境变量的作用与设置
环境变量calsspath用于指定Java类的路径,即设置classpath的作用是告诉Java运行系统的类加载器到哪里去寻找要执行的类。
在前面打开的命令行窗口中继续执行以下命令:
D:\java
Test1
执行结果如图1-6所示:
图1-6:改变当前目录后重新执行的结果
会发现程序执行出现异常:无法找到Test1类。说明在classpath变量中没有将Test1.class文件所在的目录设置为搜索路径,在命令行窗口中执行命令:
D:\set
classpath=%classpath%;d:\javawork\lesson1
重新执行程序,则运行结果正常。
调试练习
本节中的程序Test2.java不能正确地编译,修改所有的语法错误,使程序能够成功编译。程序编译之后,执行程序,比较输出结果与示例输出,然后排除所有可能的逻辑错误,示例输出演示了代码更正后程序的正确输出结果。
1.示例输出
2.错误的代码
//Test2.java
import
javax.swing.JOptionPane;
public
class
test2
{
public
static
void
main(string
args[])
{
JOptionPane.showMessageDialog(null,"Hello")
}
}
java实验报告程序
public interface Auth {
public void check(String name,String pwd,AuthResult result);
}
class AuthResult{
public String msg;// 结果信息
public boolean success;// 验证结果
public boolean isSuccess(){
return success;
}
public String getMsg(){
return msg;
}
}
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
public class Auth1 implements Auth {
MapString, String data = new HashMapString, String();
@Override
public void check(String name,String pwd,AuthResult result) {
try {
// 加载用户名和密码
InputStream in = getClass().getResourceAsStream("Auth1.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String temp = null;
while((temp = br.readLine()) != null){
data.put(temp.split(":")[0], temp.split(":")[1]);
}
if(data.get(name) == null){
result.success = false;
result.msg = "用户名错误";
return;
}
if(!pwd.equals(data.get(name))){
result.success = false;
result.msg = "密码错误";
return;
}
result.success = true;
result.msg = "auth success!";
} catch (Exception e) {
e.printStackTrace();
}
}
}
public class Auth2 implements Auth {
MapString, String data = new HashMapString, String();
@Override
public void check(String name,String pwd,AuthResult result) {
try {
// 加载用户名和密码
InputStream in = getClass().getResourceAsStream("Auth2.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String temp = null;
int i = 1;
String temp1 = null;
while((temp = br.readLine()) != null){
if(i % 2 == 0){
data.put(temp1, temp);
} else {
temp1 = temp;
}
i++;
}
if(data.get(name) == null){
result.success = false;
result.msg = "用户名错误";
return;
}
if(!pwd.equals(data.get(name))){
result.success = false;
result.msg = "密码错误";
return;
}
result.success = true;
result.msg = "auth success!";
} catch (Exception e) {
e.printStackTrace();
}
}
}
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Auth1 a1 = new Auth1();
Auth2 a2 = new Auth2();
Scanner sc = new Scanner(System.in);
String name = null;
String pwd = null;
System.out.println("enter name:");
name = sc.nextLine();
System.out.println("enter pwd:");
pwd = sc.nextLine();
AuthResult result = new AuthResult();
System.out.println("---Auth1---check");
a1.check(name,pwd,result);
if(result.isSuccess()){
System.out.println("auth success!");
} else {
System.out.println("auth fail! because " + result.getMsg());
}
System.out.println("---Auth2---check");
a2.check(name,pwd,result = new AuthResult());
if(result.isSuccess()){
System.out.println("auth success!");
} else {
System.out.println("auth fail! because " + result.getMsg());
}
}
}
文件与这些类同包下应该就能读到
Auth1.txt
name1:pwd1
name2:pwd2
Auth2.txt
name3
pwd3
name4
pwd4
关于java综合实验和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-23,除非注明,否则均为
原创文章,转载请注明出处。