解释一下所有语句的作用void setcore(int s) { score = s; } int getscore() { return score; } string getname() { return name; }for (int i = 0; i getarea(); }int calculate() { return( x * y); ) Sub a; int result = a.calculate(); if (result != 0) { cout (result) << endl;
时间: 2024-01-03 19:06:01 浏览: 27
1. void setcore(int s) { score = s; }
这是一个函数,用于设置一个变量score的值,参数s为新的score值。
2. int getscore() { return score; }
这是一个函数,用于获取score变量的值,返回值为一个整数。
3. string getname() { return name; }
这是一个函数,用于获取name变量的值,返回值为一个字符串。
4. for (int i = 0; i < n; i++) {
sum += arr[i].getarea();
}
这是一个for循环,用于计算一个数组arr中所有元素的面积之和,并将结果赋值给变量sum。
5. int calculate() { return( x * y); }
这是一个类Sub中的函数,用于计算两个私有变量x和y的乘积,并返回结果。
6. Sub a;
int result = a.calculate();
if (result != 0) {
cout << result << endl;
}
这是一个程序段,首先定义了一个Sub类型的对象a,然后调用a的calculate函数计算结果,并将结果赋值给变量result,最后如果result不等于0,则输出result值。
相关问题
帮我修改该代码import java.util.*; class IllegalNameException extends Exception{ String name1; public IllegalNameException() { } public IllegalNameException(String name1) { this.name1=name1; } public String toString() { return "IllegalNameException: the first char of name must not be digit, name=" + name1; } } class IllegalScoreException extends Exception{ String score1; public IllegalScoreException() { } public IllegalScoreException(String score1) { this.score1=score1; } public String toString() { return "IllegalScoreException: score out of range, score=" + score1; } } public class Main { public static void main(String args[]) throws IllegalNameException { Scanner s=new Scanner(System.in); while(s.hasNext()) { String sc; sc=s.next(); if(!sc.equals("new")) { s.close(); System.out.println("scanner closed"); break; } Student studen=new Student(); s.nextLine(); String nands; nands=s.nextLine(); String[] arr = nands.split("\\s+"); try { String name=arr[0]; int score=Integer.parseInt(arr[1]); studen.setname(name); studen.addScore(score); System.out.println(studen); } catch (IllegalScoreException e){ System.out.println(e); }catch (Exception e){ System.out.println("java.util.NoSuchElementException"); } } } } class Student { private String name; private int score; public Student() { this.score=0; } public void setname(String name) throws IllegalNameException { if(name.charAt(0)>='0'&&name.charAt(0)<='9') { throw new IllegalNameException(name); } this.name=name; } public String getname() throws IllegalNameException { return name; } public void setscore(int score) { this.score=score; } public int getscore() { return score; } public String toString() { return "Student [" +"name=" + name +", score=" + score +']'; } public int addScore(int score) throws IllegalScoreException { if((this.score+score)<0||(this.score+score)>100) { throw new IllegalScoreException(Integer.toString(this.score + score)); } setscore(this.score + score); return this.score; } }
这段代码存在一些问题,我来帮你修改。
1. 在 addScore 方法中,如果将分数加上当前分数后得到的分数小于 0 或大于 100,应该抛出 IllegalScoreException 异常。所以需要修改 addScore 方法的代码,如下所示:
```
public int addScore(int score) throws IllegalScoreException {
int newScore = this.score + score;
if (newScore < 0 || newScore > 100) {
throw new IllegalScoreException(Integer.toString(newScore));
}
this.score = newScore;
return this.score;
}
```
2. 在 Main 类的 main 方法中,应该使用 try-catch 语句块来捕获 IllegalNameException 和 IllegalScoreException 异常。此外,应该在读取完输入后关闭 Scanner 对象,所以需要在 while 循环内添加一个 finally 语句块,如下所示:
```
public static void main(String args[]) {
Scanner s = new Scanner(System.in);
try {
while (s.hasNext()) {
String sc = s.next();
if (!sc.equals("new")) {
System.out.println("scanner closed");
break;
}
Student student = new Student();
s.nextLine();
String nands = s.nextLine();
String[] arr = nands.split("\\s+");
try {
String name = arr[0];
int score = Integer.parseInt(arr[1]);
student.setname(name);
student.addScore(score);
System.out.println(student);
} catch (IllegalScoreException e) {
System.out.println(e);
} catch (IllegalNameException e) {
System.out.println(e);
} catch (Exception e) {
System.out.println("java.util.NoSuchElementException");
}
}
} finally {
s.close();
}
}
```
3. 在 IllegalNameException 和 IllegalScoreException 类中,应该添加 serialVersionUID 属性,如下所示:
```
class IllegalNameException extends Exception {
private static final long serialVersionUID = 1L;
// ...
}
class IllegalScoreException extends Exception {
private static final long serialVersionUID = 1L;
// ...
}
```
这样,代码就可以正常运行了。
分析这段代码package demo; import java.util.HashMap; import java.util.Scanner; public class exercise333 { private static Scanner scanner; /** 学生信息集合 */ private static HashMap<String, Student> map = new HashMap<String, Student>(); public static void main(String[] args) { // TODO Auto-generated method stub select(); } private static void select() { System.out.println("请输入学号:"); Scanner sc = new Scanner(System.in); String nub = sc.nextLine(); try { Student student = map.get(nub); if (student == null) System.out.println("没有查询到该学生!"); else System.out.println(student.toString()); } catch (Exception e) { System.out.println("输入有误!"); } finally { sc.close(); } } } class Student { private String sno; /** 学号 */ private String name; /** 姓名 */ private String major; /** 专业 */ private int score; /** 成绩 */ public String toString() { return "学生信息{" + "学号='" + sno + '\'' + ", 姓名='" + name + '\'' + ", 专业='" + major + '\'' + ", 成绩='" + score + '\'' + '}'; } public String getSno() { return sno; } public void setSno(String sno) { this.sno = sno; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getMajor() { return major; } public void setMajor(String major) { this.major = major; } public int getScore() { return score; } public void setScore(int score) { this.score = score; } public Student(String sno, String name, String major, int score) { this.sno = sno; this.name = name; this.major = major; this.score = score; } }
这段代码定义了一个名为exercise333的类,其中包含了一个静态的HashMap对象map,存储了学号与对应的Student对象。main方法仅仅是调用了select方法。select方法中先读取从控制台输入的学号,然后通过map.get方法获取对应的Student对象,若不存在,则输出"没有查询到该学生!",否则调用Student的toString方法输出学生信息。由于可能存在异常,所以使用try-catch-finally语句块处理异常并关闭Scanner。
Student类定义了对象的基本属性及相关的getter、setter方法,同时还有一个构造方法用于创建Student对象。其中toString方法返回了该对象的字符串表示形式,也即学生信息的全部内容。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)