package semster2lab9; import java.util.Scanner; public class TestPerson { public static void main(String[] args) { Scanner sc=new Scanner(System.in); Person p[]=new Person[3]; p[0]=new Person(sc.nextLine(),sc.nextLine(),sc.nextInt()); p[1]=new Person(sc.nextLine(),sc.nextLine(),sc.nextInt()); p[2]=new Person(sc.nextLine(),sc.nextLine(),sc.nextInt()); System.out.println("Person 1 is called "+p[0].getName()); System.out.println("They live in "+p[0].getAddress()); System.out.println("Their PPS Number is"+p[0].getppsNo()); p[1].setName("Paul Smyth"); p[1].setAddress("Dublin"); for(int i=0;i<3;i++) { System.out.println("*****PERSONAL DETAILS*****"); p[0].showPerson(); p[1].showPerson(); p[2].showPerson(); } System.out.print(p[2].toString()); } }
时间: 2024-02-13 16:05:13 浏览: 140
这代码的问题可能是输入不匹配。在第 8、11 和 14 行中,您正在尝试通过调用 `nextInt()` 来获取输入,但是如果输入不是整数,就会抛出 `InputMismatchException`。因此,如果您输入了一个不是整数的值,就会发生异常。
为了解决这个问题,您可以考虑使用 `nextLine()` 方法获取输入,并将其转换为适当的类型。例如,您可以像这样修改代码:
```
p[0] = new Person(sc.nextLine(), sc.nextLine(), Integer.parseInt(sc.nextLine()));
p[1] = new Person(sc.nextLine(), sc.nextLine(), Integer.parseInt(sc.nextLine()));
p[2] = new Person(sc.nextLine(), sc.nextLine(), Integer.parseInt(sc.nextLine()));
```
这样,您将首先获取一个字符串,然后将其转换为适当的类型,以避免输入不匹配的问题。
相关问题
在asp中查询course表,表的字段为coursername和semster,course,要查询coursername和semster对应的courseid
您可以使用类似于以下的SQL查询语句来查询ASP中的course表:
```sql
SELECT courseid
FROM course
WHERE coursername = '要查询的课程名称'
AND semster = '要查询的学期'
```
这将返回符合条件的记录的courseid值。您可以根据需要使用ASP编程语言将其包装在代码中。
用SQL语句创建如下三张表:学生(Student),课程表(Course),和学生选课表(SC)。 表1-1 Student表结构列名说明数据类型约束Sno学号字符串,长度为7主码Sname姓名字符串,长度为10非空Ssex性别字符串,长度为2取‘男’或‘女’Sage年龄整数取值15~45Sdept所在系字符串,长度为20默认为‘计算机系’ 表1-2Course表结构列名说明数据类型约束Cno课程号字符串,长度为10主码Cname课程名字符串,长度为20非空Ccredit学分整数取值大于0Semster学期整数取值大于0Period学时整数取值大于0 表1-3 SC表结构列名说明数据类型约束Sno学号字符串,长度为7主码,引用Student的外码Cno课程名字符串,长度为10主码,引用CourseGrade成绩整数取值0~100
下面是创建三张表的 SQL 语句:
创建学生表:
```
CREATE TABLE Student (
Sno CHAR(7) PRIMARY KEY,
Sname VARCHAR(10) NOT NULL,
Ssex VARCHAR(2) CHECK(Ssex IN ('男', '女')),
Sage INT CHECK(Sage BETWEEN 15 AND 45),
Sdept VARCHAR(20) DEFAULT '计算机系'
);
```
创建课程表:
```
CREATE TABLE Course (
Cno CHAR(10) PRIMARY KEY,
Cname VARCHAR(20) NOT NULL,
Ccredit INT CHECK(Ccredit > 0),
Semester INT CHECK(Semester > 0),
Period INT CHECK(Period > 0)
);
```
创建学生选课表:
```
CREATE TABLE SC (
Sno CHAR(7),
Cno CHAR(10),
Grade INT CHECK(Grade BETWEEN 0 AND 100),
PRIMARY KEY (Sno, Cno),
FOREIGN KEY (Sno) REFERENCES Student(Sno),
FOREIGN KEY (Cno) REFERENCES Course(Cno)
);
```
注意:在创建学生选课表时,需要先创建学生表和课程表。同时,学生选课表中的学号和课程号均为主键,且分别引用学生表和课程表中的主键。
阅读全文