Java字符串,辽宁工程技术大学上机实验报告

合集下载

Java上机实验报告(1)

Java上机实验报告(1)

Java上机实验报告(1)任务简要描述⼀、任务简要描述⼀、1、实现Java版本的快速排序。

2、编写⼀个学⽣和教师数据输⼊和显⽰程序,学⽣数据有编号、姓名、班号和成绩,教师数据有编号、姓名、职称和部门。

要求将编号、姓名输⼊和显⽰设计成⼀个类Person,并作为学⽣数据操作类Student 和教师数据操作类Teacher 的基类。

3、请设计 3 个类 , 分别是学⽣类 Student, 本科⽣类Undergaduate, 研究⽣类 Postgraduate, 其中 Student 类是⼀个抽象类 , 它包含⼀些基本的学⽣信息如姓名、所学课程、课程成绩等 , ⽽Undergraduate 类和 Postgraduate 都是 Student 类的⼦类 , 它们之间的主要差别是计算课程成绩等级的⽅法有所不同 , 研究⽣的标准要⽐本科⽣的标准⾼⼀些。

假设某班级⾥既有本科⽣也有研究⽣ , 请编写程序统计出全班学⽣的成绩等级并显⽰出来。

此题关键是设计⼀个学⽣数组 , 既能存放本科⽣对象 , ⼜能存放研究⽣对象。

问题及解决⼆、⼆、问题及解决1、算法思想:基于分治的思想,是冒泡排序的改进型。

⾸先在数组中选择⼀个基准点(该基准点的选取可能影响快速排序的效率,后⾯讲解选取的⽅法),然后分别从数组的两端扫描数组,设两个指⽰标志(lo指向起始位置,hi指向末尾),⾸先从后半部分开始,如果发现有元素⽐该基准点的值⼩,就交换lo和hi位置的值,然后从前半部分开始扫秒,发现有元素⼤于基准点的值,就交换lo和hi位置的值,如此往复循环,直到lo>=hi,然后把基准点的值放到hi这个位置。

⼀次排序就完成了。

以后采⽤递归的⽅式分别对前半部分和后半部分排序,当前半部分和后半部分均有序时该数组就⾃然有序了。

排序过程:输出结果:2、Person类:1public class person {2 String name;3 String number;45 person(){ }6 person(String number, String name){7this.number = number; = name;9 }10public void setNumber(String n){11 number = n;12 }13public String getNumber(){14return number;15 }16public void setName(String c){17 name = c;18 }19public String getName(){20return name;21 }22public void input(){23 Scanner sc = new Scanner(System.in);24 System.out.println("Please input the name:");25 name = sc.nextLine();26 System.out.println("Please input the number:");27 number = sc.nextLine();28 }29public void showInfo(){30 System.out.println("The number is:" + getNumber() + ", name is:" + getName());31 }32 }Teacher类:1class Teacher extends person{2 String title; //职称3 String dept; //部门4 Teacher(){5super();6 }7 Teacher(String number, String name, String title, String dept){8super(number, name);9this.title = title;10this.dept = dept;11 }12public void setTitle(String t){13 title = t;14 }15public String getTitle(){16return title;17 }18public void setDept(String d){19 dept = d;20 }21public String getDept() {22return dept;23 }24//⼦类重载⽗类⽅法25public void input(){26super.input();27 System.out.println("Please input the title:");28 Scanner sc = new Scanner(System.in);29 setTitle(sc.nextLine());30//title = sc.nextLine();31 System.out.println("Please input the dept:");32 dept = sc.nextLine();33 }34public void showInfo(){35super.showInfo();36 System.out.println("The teacher's title is:" + getTitle() + ", department is:" + getDept());37 }38 }Student类:1class Student extends person{2 String classnumber; //班号3int grade; //成绩4 Student(){5super();6 }7 Student(String number, String name, String classnumber, int grade){8super(number, name);9this.classnumber = classnumber;10this.grade = grade;11 }12public void setClassnumber(String c){13 classnumber = c;14 }15public String getClassnumber(){16return classnumber;17 }18public void setGrade(int g){19 grade = g;20 }21public int getGrade() {22return grade;23 }24//⼦类重载⽗类⽅法25public void input(){26super.input();27 System.out.println("Please input the classnumber:");28 Scanner sc = new Scanner(System.in);29 setClassnumber(sc.nextLine());30//classnumber = sc.nextLine();31 System.out.println("Please input the grade:");32 grade = sc.nextInt();33 }34public void showInfo(){35super.showInfo();36 System.out.println("The student's classnumber is:" + getClassnumber() + ", grade is:" + getGrade());37 }38 }输出结果:3、对象数组:1 Student[] students = new Student[5];Student类:1public abstract class Student2 {3 String name;4 String type;5int courseScore;6 String courseGrade;78public Student(String name)9 { = name;11 courseGrade="";12 }14public abstract void calculateGrade();1516public String getName()17 {18return name;19 }2021public String getType()22 {23return type;24 }2526public String getCourseGrade()27 {28return courseGrade;29 }3031public int getCourseScore()32 {33return courseScore;34 }3536public void setName(String name)37 { = name;39 }4041public void setType(String type)42 {43this.type = type;44 }4546public void setCourseScore(int courseScore)47 {48this.courseScore = courseScore;49 }5051 }本科⽣类:1class Undergraduate extends Student2 {3public Undergraduate(String name, int courseScore)4 {5super(name);6 type = "本科⽣";7this.courseScore = courseScore;8 }910public void calculateGrade()11 {12if (courseScore >= 80 && courseScore < 100) courseGrade = "优秀"; 13else if (courseScore >= 70 && courseScore < 80) courseGrade = "良好"; 14else if (courseScore >= 60 && courseScore < 70) courseGrade = "⼀般"; 15else if (courseScore >= 50 && courseScore < 60) courseGrade = "及格"; 16else courseGrade = "不及格";1718 }19 }研究⽣类:1class Postgraduate extends Student2 {3public Postgraduate(String name, int courseScore)4 {5super(name);6 type = "研究⽣" ;7this.courseScore = courseScore;8 }9public void calculateGrade()10 {11if (courseScore >= 90 && courseScore < 100) courseGrade = "优秀"; 12else if (courseScore >= 80 && courseScore < 90) courseGrade = "良好"; 13else if (courseScore >= 70 && courseScore < 80) courseGrade = "⼀般"; 14else if (courseScore >= 60 && courseScore < 70) courseGrade = "及格"; 15else courseGrade = "不及格";17 }18 }19成绩计算类:1public class Polymorphism2 {3int total = 0;4double average;56public void showInfo(){7 Student[] students = new Student[5];89 students[0] = new Undergraduate("ABC", 95);10 students[1] = new Undergraduate("DEF", 85);11 students[2] = new Postgraduate("GHI", 75);12 students[3] = new Undergraduate("JKL", 65);13 students[4] = new Postgraduate("MNO", 55);14for (int i=0; i<5; i++)15 {16 total += students[i].courseScore;17 students[i].calculateGrade();18 }19 average = total / 5;20 System.out.println("姓名" + " 类型" +" 成绩");21 System.out.println("-----------------------");2223for (int i=0; i<5; i++)24 {25 System.out.println(students[i].getName( )+" "+students[i].getType( )+" "+students[i].getCourseGrade( ));26 }2728//Student st = new Student("李明");29 System.out.println("平均成绩:" + average);30 System.out.println();31for(int i=0; i<5; i++)32 {33if(students[i] instanceof Undergraduate )34 {35 System.out.println(students[i].getName()+"是本科⽣");36 }37else38 {39 System.out.println(students[i].getName()+"是研究⽣");40 }41 }42 }43public static void main(String[] args)44 {45 Polymorphism show = new Polymorphism();46 show.showInfo();4748 }49 }输出结果:总结: 练习使⽤了创建对象数组的⽅法,使⽤⾯向对象的思想,⼦类继承⽗类的属性和⽅法,并对⽗类的⽅法进⾏重写,在题⽬三中,我本来将计算成绩的内容全部写在main⽅法⾥,经过⽼师讲解,我重新修改了程序,将创建对象数组和成绩计算的相关程序单独写在⼀个类⾥⾯。

java上机实验报告(二)

java上机实验报告(二)

JA V A程序设计实验报告(二)院系:专业:班级:姓名:指导老师:试验时间:1.了解java的数据类型。

2.理解运算符的优先级。

3.理解java的程序语法结构,掌握程序结构。

4.通过编程,熟悉java语言编程规则。

二,实验要求熟悉java编程的基本要求,正确的编程,正确的输出运行程序,处理运算时出现的错误,基本达到熟练使用java编写程序。

三,实验设备与环境装有java的语言工具软件(myeclipse)的计算机四,实验内容题目:编写程序找出所有三位的降序数。

(个位数小于十位数且十位数小于百位数即升序数,如210。

)代码分析:public class test6{public static void main(String args[]){int x,a,b,c;for(x=100;x<1000;x++){a=x/100;b=(x-a*100)/10;c=x%10;if(a>b&&b>c){System.out.println("结果:"+x);}}}}六,心得体会通过对这两次的上机操作实验,使我对java语言编程有了更多的认识和感触。

我觉得java语言编程并不是想象中的那么困难,如果对其进行深入了解的话还是一门十分有趣的学科。

在编写程序中,一次次的对错误的更改也是一种全新的学习,而当算出了正确的结果后那心中又会产生一个小小的成就感。

我会尽力去学好这一门学科的!。

大一学生java上机实验报告

大一学生java上机实验报告

大一学生java上机实验报告大一学生Java上机实验报告实验名称:Java基础语法练习实验目的:通过完成一系列Java基础语法的练习,熟悉Java 的语法规则和基本操作,加深对Java编程的理解。

实验内容及步骤:1. 编写一个Java程序,实现计算器功能。

该程序需要接收用户输入的两个数字和一个运算符,然后根据运算符的不同进行相应的运算,并将结果输出。

代码示例:```javaimport java.util.Scanner;public class Calculator {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入第一个数字:");double num1 = scanner.nextDouble();System.out.print("请输入第二个数字:");double num2 = scanner.nextDouble();System.out.print("请输入运算符(+、-、*、/):");String operator = scanner.next();double result = 0;switch (operator) {case "+":result = num1 + num2;break;case "-":result = num1 - num2;break;case "*":result = num1 * num2;break;case "/":result = num1 / num2;break;default:System.out.println("输入的运算符无效!");return;}System.out.println("计算结果为:" + result);}}```2. 编写一个Java程序,实现2到100之间的所有素数的查找和输出。

java上机实验报告

java上机实验报告

java上机实验报告Java上机实验报告引言:Java作为一种广泛应用于软件开发领域的编程语言,具有跨平台、面向对象等优点,因此在计算机科学教育中被广泛使用。

本文将介绍我在Java上机实验中所掌握的内容和经验。

一、实验目的本次实验的主要目的是通过实际操作,掌握Java编程语言的基本语法和常用类库的使用方法,加深对面向对象编程的理解,并培养解决问题的能力。

二、实验过程1. 实验环境准备在开始实验前,我首先安装了Java开发环境(JDK)并配置好相关的环境变量。

这样我就可以在本地计算机上进行Java编程了。

2. 实验内容本次实验主要涉及以下几个方面的内容:a. 基本语法:学习了Java的基本数据类型、运算符、流程控制语句等。

通过编写简单的程序,我能够熟练地使用这些语法来解决实际问题。

b. 面向对象编程:学习了类、对象、继承、封装、多态等面向对象的概念和技术。

通过定义类和对象,我可以更好地组织和管理代码。

c. 异常处理:学习了如何使用try-catch语句来捕获和处理异常。

这对于编写健壮的程序非常重要,可以有效地避免程序崩溃或出现不可预料的错误。

d. 输入输出:学习了如何使用Java的输入输出类库来实现数据的读取和写入。

这对于与用户进行交互或者读取外部文件非常有用。

3. 实验结果通过本次实验,我成功完成了多个编程任务,并获得了满意的结果。

例如,我实现了一个简单的学生管理系统,可以添加、查询和删除学生信息。

这个程序不仅让我熟悉了Java的面向对象编程思想,还提升了我的编程能力。

三、实验心得通过这次实验,我深刻体会到了实践的重要性。

仅仅理论上了解一门编程语言是远远不够的,只有通过实际编写程序,才能真正掌握它。

在实验过程中,我遇到了很多问题,比如语法错误、逻辑错误等,但通过不断的调试和修改,我最终解决了这些问题。

这个过程让我学会了如何分析问题、查找错误并解决它们。

此外,我还意识到编程是一项需要耐心和细心的工作。

大一学生java上机实验报告

大一学生java上机实验报告

大一学生java上机实验报告非常好,下面是一个简单的Java上机实验报告示例,该实验要求创建一个名为Hello World的程序,该程序将在控制台输出 "Hello, World!" 消息。

1. 安装Java环境在开始上机实验之前,您需要确保已经安装了Java开发环境。

Java具有多种版本,其中最常见的是Java 8。

您可以从Oracle官方网站下载Java 8安装程序并按照提示安装。

2. 编写Hello World程序以下是一个简单的Java程序,用于在控制台输出 "Hello, World!" 消息:```javapublic class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}}```3. 运行程序保存代码并使用Java编译器将其编译为字节码文件。

您可以使用以下命令运行程序:```javajavac HelloWorld.javajava HelloWorld```这将在控制台打印 "Hello, World!"消息。

4. 调试程序如果您的程序在运行时出现问题,您可以尝试调试它。

您可以通过在控制台输入命令行参数来运行您的程序,并使用调试器来查找错误。

例如,如果您的程序在打印 "Hello, World!" 消息时出现问题,您可以尝试使用以下命令调试程序:```javajava HelloWorldjava -XX:+PrintFlagsFinal -XX:+UseConcMarkSweepGC HelloWorld```这将启用标记清除GC和ConcMarkSweepGC选项,以查找和清除内存错误。

这是一个简单的Java上机实验,它要求您编写和运行一个名为Hello World的程序,并在控制台输出 "Hello, World!" 消息。

实验二Java基本语法及应用

实验二Java基本语法及应用
实验中,我自定义了一个包huahua,在这个包中创建了三个类,分别为Application,student类和stuSystem类用来存储学生四学科的成绩、学号、姓名等信息。
在编辑程序的过程中出现了很多错误。首先,是字母大小写错误、标点错误,即使再细心也没能避免。在编写this语句时也出现了问题,没分清是在构造方法中使用this还是在实例方法中使用this,其实这并不难,回想老师上课讲的内容并在书中回顾相关的章节也马上明白了。数据类型也发生了错误,定义name时用的String,在下面定义sno,chinese,math等变量的时候没注意就写错了,后来发现了及时改成int。
this.math=math;
}
publicintgetEnglish() {
returnenglish;
}
publicvoidsetEnglish(intenglish) {
this.english=english;
}
publicintgetPolitics() {
returnpolitics;
}
b=i;
System.out.println();
System.out.println("\t学生成绩单");
System.out.println("学生学号"+students[b].getSno()+" 学生姓名"+students[b].getName());
System.out.println("语文"+students[b].getChinese()+" 数学"+students[b].getMath()+" 英语"+students[b].getEnglish()+" 政治"+students[b].getPolitics());

Java语言上机实验报告(1-17)

Java语言上机实验报告(1-17)

JA V A实验报告班级:计科1301姓名:雷云洁学号:0902130112实验日期:2014.11.20实验报告(1)实验内容:内容1:基本输出,以及同一个文件建立两个类public class My{public static void main(String[] args){System.out.println();}}class you{static String info="同学们好";}实验结果展示:内容2:基本框架的输出public class SimpleMenu{public static void main(String[] args){System.out.println("***************");System.out.println("* 1.求圆面积 *");System.out.println("* 2.求圆周长 *");System.out.println("* 0.退出 *");System.out.println("***************");}}实验结果展示:内容3:输出三角形(利用Applet类)import java.applet.Applet;import java.awt.Color;import java.awt.Graphics;public class Triangle extends Applet {public void paint(Graphics g){// TODO Auto-generated method stub super.paint(g);g.setColor(Color.red);g.drawLine(80, 20, 20,100);g.drawLine(20, 100, 140,100);g.drawLine(140, 100, 80, 20);g.setColor(Color.blue);g.drawString("三角形", 65, 80);}}实验结果展示:实验心得:通过这次上机我了解了Java的基本编程语句以及如何利用Applet类来编辑界面窗口等等,总之,我觉得学习Java主要考自己多钻研多调试才能出成果。

Java开发环境及语言基础,辽宁工程技术大学上机实验报告

Java开发环境及语言基础,辽宁工程技术大学上机实验报告

辽宁工程技术大学上机实验报告(1)在控制台中输入java命令,查看输入结果。

public class HelloWorld {public static void main(String[] args) {System.out.println("我能学好Java语言!");System.out.println("hello world.");}}结果如下:(2)编写一个java程序,计算半径为3.0的圆周长和面积并输出结果。

程序如下:public class Circle {public static double Circum(double R){return 2*R*Math.PI;}public static double Area(double R){return R*R*Math.PI;}public static void main(String[] args) {double R=3.0,c,s;c=Circum(R);s=Area(R);System.out.print("半径为3的圆周长为:C=");System.out.println(c);System.out.print("半径为3的圆面积为:S=");System.out.println(s);}}(3)求a+aa+aaa+...+a...a(n个)的和,其中a为1~9之间的整数。

例如,当a=3、n=4时,求3+33+333+3333的和。

程序如下:①import java.util.Scanner;public class SumAAA1 {public static void main(String[] args) {int a,n,sum=0,t=0;Scanner sc = new Scanner(System.in);System.out.print("请依次输入a,n的值:");a=sc.nextInt();n=sc.nextInt();while(n>=1){ t=a+t*10;sum=sum+t;n=n-1;}System.out.print("a+aa+aaa+...+a...a(n个)的和为:sum=");System.out.println(sum);}}结果如下:程序如下:②import java.util.Scanner;public class SumAAA2 {public static void main(String[] args) {int n=0,sum=0,t=0;Scanner sc = new Scanner(System.in);System.out.print("请输入a的值:");int a=sc.nextInt();while(sum<=1E6){ t=a+t*10;sum=sum+t;n=n+1;}System.out.print("n的值为:n= ");System.out.println(n);System.out.print("a+aa+aaa+...+a...a(n个)的和为:sum=");System.out.println(sum);}}结果如下:(4)给定一个正整数m,统计其位数,分别打印每一位数字,再按照逆序打印出各位数字。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

辽宁工程技术大学上机实验报告
实验内容:
(1)用命令行方式提供1至3个整数,按顺序分别为年、月、日数据。

若仅提供一个整数,则为年号,程序判断该年是否为闰年;若提供两个整数,则为年号、月号,程序输出为该年月的天数;若提供三个整数,则为年、月、日数据,程序输出这一天是星期几。

若未提供任何数据或提供的数据个数超过三个,则程序输出出错信息并给出程序的使用方法。

程序如下:
public class Date {
public static int MonthDay(int year,int month){
int n=0;
if(month==1||month==3||month==5||month==7||month==8||month==10||month== 12) n=31;
else if(month==2){if(year%400==0||(year%4==0&&year%100!=0)) n=29;
else n=28;}
else n=30;
return n;
}
public static void main(String[] args) {
int year,month,day,len,bool=0,n,i,a,b=0,c;
len=args.length;
if(len<1||len>3){
System.out.println("您输入的参数个数错误!");
System.out.println("请重新启动程序,并用命令行方式提供1至3个整数参数");
}
else{
switch(len)
{case 1:year=Integer.parseInt(args[0]);
if(year%400==0||(year%4==0&&year%100!=0))
System.out.println(year+"是闰年。

");
else
System.out.println(year+"是平年。

");break;
case 2:year=Integer.parseInt(args[0]);
month=Integer.parseInt(args[1]);
n=MonthDay(year,month);
System.out.println(year+"年 "+month+"月有 "+n+"天。

");break;
case 3:year=Integer.parseInt(args[0]);
month=Integer.parseInt(args[1]);
day=Integer.parseInt(args[2]);
a=year+(year-1)/4-(year-1)/100+(year-1)/400;
for(i=1;i<=month-1;i++)
b=b+MonthDay(year,i);
a=(a+b+day-1)%7;
switch(a)
{case 0:System.out.println(year+"年"+month+"月"+day+"日是星期天.");;break;
case 1:System.out.println(year+"年"+month+"月"+day+"日是星期一.");break;
case 2:System.out.println(year+"年"+month+"月"+day+"日是星期二.");break;
case 3:System.out.println(year+"年"+month+"月"+day+"日是星期三.");break;
case 4:System.out.println(year+"年"+month+"月"+day+"日是星期四.");break;
case 5:System.out.println(year+"年"+month+"月"+day+"日是星期五.");break;
case 6:System.out.println(year+"年"+month+"月"+day+"日是星期六.");break;
}}
}}
}
结果如下:
(2)用split方法对一个逗号分隔的数字字符串中的各个数字求最大值、最小值。

程序如下:
public class Split {
public static void main(String[] args) {
String s="18,97,63,54,22,78,101,3,88,39";
String a[]=s.split(",");
int b[]=new int [a.length],max,min,i;
for(i=0;i<a.length;i++)
b[i]=Integer.parseInt(a[i]);
max=b[0];min=b[0];
for(i=0;i<b.length;i++)
{if(b[i]>max)max=b[i];
if(b[i]<min)min=b[i];}
System.out.println("这个数字字符串中的各个数字的最大值为:"+max);
System.out.println("这个数字字符串中的各个数字的最小值为:"+min);
}
精选文库
}
结果如下:
(3)利用正则表达式判断当前字符是否是汉字并计数。

程序如下:
public class Chinese {
public static void main(String[] args) {
String message="辽宁工程技术大学理学院理科13-1班,Java!";
String regex="^[\u4e00-\u9fff]$";
int counter=0;
for(int i=0;i<message.length();i++){
if((""+message.charAt(i)).matches(regex)){
counter++;}
}
System.out.println(message+"中包含"+counter+"个汉字!");
}
}
结果如下:。

相关文档
最新文档