package step1 ;
public class Date {
private int year, month, day;
public Date ( ) {
year= 1999 ;
month= 9 ;
day= 9 ;
}
public Date ( int year, int month, int day) {
this . year= year;
this . month= month;
this . day= day;
}
public Date ( String date) {
int i;
for ( i= 6 ; i< date. length ( ) ; i++ )
{
if ( date. substring ( i, i) . equals ( "." ) )
break ;
}
this . year= Integer . parseInt ( date. substring ( 0 , 4 ) ) ;
this . month= Integer . parseInt ( date. substring ( 5 , 5 + 1 ) ) ;
this . day= Integer . parseInt ( date. substring ( i- 1 ) ) ;
}
public Date ( Date date) {
year= date. year;
month= date. month;
day= date. day;
}
public void setDate ( int year, int month, int day) {
this . year= year;
this . month= month;
this . day= day;
}
public int getYear ( ) {
return year;
}
public int getMonth ( ) {
return month;
}
public int getDay ( ) {
return day;
}
public String toString ( ) {
return year+ "." + month+ "." + day;
}
}
package step1 ;
public class Person {
private String name;
private String number;
private Date birthday;
public Person ( ) { this . name = name;
this . number = number;
birthday= new Date ( ) ;
}
public Person ( String name, String number, Date birthday) {
this . name = name;
this . number = number;
this . birthday= birthday;
}
public Person ( String name, String number, int year, int month, int day) {
birthday = new Date ( year, month, day) ;
this . number = number;
this . name= name;
}
public void setinfo ( String name, String number, Date birthday) {
this . name= name;
this . number= number;
this . birthday= birthday;
}
public Date getbirthday ( ) {
return birthday;
}
public String toString ( ) {
return "name=" + name+ " " + "number=" + number+ " " + "birthday:" + birthday. toString ( ) ;
}
public String getname ( ) {
return name;
}
public String getnum ( ) {
return number;
}
}
package step1 ;
import java. util. * ;
public class Person_test {
public static void main ( String args[ ] ) {
Person p1, p2, p3;
Scanner scan= new Scanner ( System . in) ;
p1= new Person ( ) ;
int y, m, d;
y= scan. nextInt ( ) ;
m= scan. nextInt ( ) ;
d= scan. nextInt ( ) ;
Date d1= new Date ( y, m, d) ;
p2= new Person ( "小明" , "110105" + y+ m+ d+ "1001" , d1) ;
int year, month, day;
year= scan. nextInt ( ) ;
month= scan. nextInt ( ) ;
day= scan. nextInt ( ) ;
p3= new Person ( "大师兄" , "110105" + year+ month+ day+ "1002" , year, month, day) ;
System . out. println ( p1) ;
System . out. println ( p2) ;
System . out. println ( p3) ;
}
}
package step2 ;
import step1. Person ;
import step1. Date ;
public class Student extends Person {
private int reg_num;
private Date reg_day;
public Student ( ) {
super ( ) ;
this . reg_day = new Date ( ) ;
this . reg_num = reg_num;
}
public Student ( String name, String number, int year, int month, int day, int reg_num, int y, int m, int d) {
super ( name, number, year, month, day) ;
this . reg_num = reg_num;
this . reg_day = new Date ( y, m, d) ;
}
public Student ( String name, String number, Date birthday, int reg_num, Date reg_day) {
super ( name, number, birthday) ;
this . reg_num = reg_num;
this . reg_day = reg_day;
}
public int getreg_num ( ) {
return reg_num;
}
public Date getreg_day ( ) {
return reg_day;
}
public String toString ( ) {
return super . toString ( ) + "reg_num=" + reg_num+ "reg_day=" + reg_day;
}
}
package step2 ;
import step1. Date ;
import java. util. * ;
public class Student_Test {
public static void main ( String [ ] args) {
Student s1= new Student ( ) ;
Student s2= new Student ( "Tom" , "110105200001010001" , 2000 , 12 , 11 , 18070001 , 2018 , 9 , 1 ) ;
Date d1= new Date ( 2001 , 10 , 1 ) ;
Date d2= new Date ( 2018 , 9 , 1 ) ;
Student s3= new Student ( "Jerry" , "110105200001010001" , d1, 18070002 , d2) ;
Scanner scan= new Scanner ( System . in) ;
int y, m, d;
y= scan. nextInt ( ) ;
m= scan. nextInt ( ) ;
d= scan. nextInt ( ) ;
s3. getreg_day ( ) . setDate ( y, m, d) ;
System . out. println ( s1) ;
System . out. println ( s2) ;
System . out. println ( s3) ;
}
}
package step3 ;
import step1. Date ;
public class Course {
private int code;
private String courseName;
private Date testTime;
private int score;
public Course ( ) {
this . code = code;
this . courseName = " " ;
this . testTime = new Date ( ) ;
this . score = score;
}
public Course ( int code, String courseName, Date testTime, int score) {
this . code = code;
this . courseName = courseName;
this . testTime = testTime;
this . score = score;
}
public Course ( int code, String courseName, int year, int m, int d, int score) {
this . code = code;
this . courseName = courseName;
this . testTime = new Date ( year, m, d) ;
this . score = score;
}
public String toString ( ) {
return code+ " " + courseName+ " " + testTime+ " " + score;
}
}
package step3 ;
import java. util. * ;
import step1. Date ;
public class Course_Test {
public static void main ( String [ ] args) {
Scanner scan= new Scanner ( System . in) ;
int y, m, d;
Course c1= new Course ( ) ;
Course c2= new Course ( 201 , "math" , 2018 , 12 , 24 , 95 ) ;
y= scan. nextInt ( ) ;
m= scan. nextInt ( ) ;
d= scan. nextInt ( ) ;
Date d1= new Date ( y, m, d) ;
Course c3= new Course ( 202 , "PE" , d1, 98 ) ;
System . out. println ( c1) ;
System . out. println ( c2) ;
System . out. println ( c3) ;
}
}
package step4 ;
import step1. Date ;
import step2. Student ;
import step3. Course ;
public class Report {
private Student s;
private String major;
private Course [ ] selCourse;
public Report ( ) {
this . s = s;
this . major = major;
this . selCourse = selCourse;
}
public Report ( Student s, String major, Course [ ] selCourse) {
this . s = s;
this . major = major;
this . selCourse = selCourse;
}
public Student getStudent ( ) {
return s;
}
public String toString ( ) {
String str = "name=" + s. getname ( ) + " " + "number=" + s. getnum ( ) + " " + "birthday:" + s. getbirthday ( ) + "reg_num:" + s. getreg_num ( ) + "reg_day:" + s. getreg_day ( ) + " " + "major:" + major + "\n" ;
for ( int i = 0 ; i < selCourse. length; i++ ) {
str += selCourse[ i] . toString ( ) + "\n" ;
}
return str;
}
}
注释:s. getname ( ) , s. getnum ( ) , s. getbirthday ( ) 是Student 类的对象s调用父类Personsde 方法,
s. getreg_num ( ) , s. getreg_date ( ) 是调用对象s的方法。
package step4 ;
import step1. Date ;
import step2. Student ;
import step3. Course ;
public class Report_Test {
public static void main ( String [ ] args) {
Report r;
Date d1= new Date ( 2001 , 10 , 17 ) ;
Date d2= new Date ( 2018 , 9 , 1 ) ;
Student s= new Student ( "Tom" , "110101" + d1. getYear ( ) + d1. getMonth ( ) + d1. getDay ( ) + "5555" , d1, 17070001 , d2) ;
Course selCourse[ ] = new Course [ 2 ] ;
Date d3= new Date ( 2018 , 10 , 17 ) ;
Date d4= new Date ( 2018 , 12 , 11 ) ;
selCourse[ 0 ] = new Course ( 201 , "math" , new Date ( 2018 , 11 , 15 ) , 75 ) ;
selCourse[ 1 ] = new Course ( 202 , "C++" , new Date ( 2018 , 11 , 22 ) , 86 ) ;
r= new Report ( s, "Computer" , selCourse) ;
System . out. print ( r) ;
Report r1;
Student s1= new Student ( ) ;
Course selCourse_1[ ] = new Course [ 5 ] ;
Date d;
String [ ] str1= { "Math" , "Physics" , "Chemistry" , "biology" , "material" } ;
for ( int i= 0 ; i< selCourse_1. length; i++ ) {
d4= new Date ( 2018 , 12 , i+ 1 ) ;
selCourse_1[ i] = new Course ( 300 + i, str1[ i] , d4, 100 - i) ;
}
r1= new Report ( s1, "Material" , selCourse_1) ;
System . out. print ( "\n" + r1) ;
r1. getStudent ( ) . setinfo ( "JERRY" , "610101200205010364" , new Date ( 2002 , 5 , 1 ) ) ;
System . out. print ( "\n" + r1) ;
}
}
package step4 ;
import step1. Date ;
import step2. Student ;
import step3. Course ;
import step3. Course_Test ;
import java. awt. * ;
import java. awt. event. * ;
import java. text. SimpleDateFormat ;
import javax. swing. * ;
public class TryJFrame {
int flag= 0 ;
int count = 0 ;
int b[ ] = new int [ 100 ] ;
Student s[ ] = new Student [ 100 ] ;
Course slec[ ] [ ] = new Course [ 100 ] [ 100 ] ;
public TryJFrame ( ) {
JFrame frame = new JFrame ( "学生成绩单管理" ) ;
frame. setDefaultCloseOperation ( JFrame . EXIT_ON_CLOSE) ;
JLabel label1 = new JLabel ( "请输入姓 名:" ) ;
JLabel label2 = new JLabel ( "请输入学 号:" ) ;
JLabel label3 = new JLabel ( "请输入出生日期:" ) ;
JLabel label4 = new JLabel ( "请输入注册号 :" ) ;
JLabel label5 = new JLabel ( "请输入注册日期:" ) ;
JButton b0 = new JButton ( "请确认学生信息" ) ;
JTextField text1= new JTextField ( 10 ) ;
JTextField text2= new JTextField ( 10 ) ;
JTextField text3= new JTextField ( 10 ) ;
JTextField text4= new JTextField ( 10 ) ;
JTextField text5= new JTextField ( 10 ) ;
JPanel jp = new JPanel ( ) ;
jp. add ( label1) ;
jp. add ( text1) ;
jp. add ( label2) ;
jp. add ( text2) ;
jp. add ( label3) ;
jp. add ( text3) ;
jp. add ( label4) ;
jp. add ( text4) ;
jp. add ( label5) ;
jp. add ( text5) ;
frame. getContentPane ( ) . add ( jp, BorderLayout . CENTER) ;
frame. pack ( ) ;
frame. setVisible ( true ) ;
jp. add ( b0) ;
JLabel label = new JLabel ( "----以下为学生的考试信息----" ) ;
jp. add ( label) ;
JLabel label6 = new JLabel ( "参加了几门课程考试:" ) ;
JLabel label7 = new JLabel ( "请输入考试科目:" ) ;
JLabel label8 = new JLabel ( "请输入考试成绩:" ) ;
JLabel label9 = new JLabel ( "请输入考试日期:" ) ;
JTextField text6= new JTextField ( 10 ) ;
JTextField text7= new JTextField ( 10 ) ;
JTextField text8= new JTextField ( 10 ) ;
JTextField text9= new JTextField ( 10 ) ;
jp. add ( label6) ;
jp. add ( text6) ;
jp. add ( label7) ;
jp. add ( text7) ;
jp. add ( label8) ;
jp. add ( text8) ;
jp. add ( label9) ;
jp. add ( text9) ;
JButton b1 = new JButton ( "请确认第一门课程的输入" ) ;
JButton b2 = new JButton ( "显示该同学的基本信息和成绩" ) ;
JButton b3 = new JButton ( "显示全班成绩" ) ;
jp. add ( b1) ;
jp. add ( b2) ;
jp. add ( b3) ;
JLabel label10 = new JLabel ( "以下为该同学的基本信息和成绩:" ) ;
jp. add ( label10) ;
JTextArea area = new JTextArea ( 10 , 20 ) ;
jp. add ( area) ;
b0. addActionListener ( new ActionListener ( ) {
@Override
public void actionPerformed ( ActionEvent e) {
b1. setEnabled ( true ) ;
String name = text1. getText ( ) ;
String number = text2. getText ( ) ;
String date = text3. getText ( ) ;
String [ ] d = date. split ( "\\." ) ;
int year = Integer . parseInt ( d[ 0 ] ) ;
int month = Integer . parseInt ( d[ 1 ] ) ;
int day = Integer . parseInt ( d[ 2 ] ) ;
Date date1 = new Date ( year, month, day) ;
int reg_num = Integer . parseInt ( text4. getText ( ) ) ;
String date2 = text5. getText ( ) ;
String [ ] d2 = date2. split ( "\\." ) ;
int year1 = Integer . parseInt ( d2[ 0 ] ) ;
int month1 = Integer . parseInt ( d2[ 1 ] ) ;
int day1 = Integer . parseInt ( d2[ 2 ] ) ;
Date date3 = new Date ( year1, month1, day1) ;
s[ count] = new Student ( ) ;
s[ count] . setinfo ( name, number, date1) ;
s[ count] . setReg_num ( reg_num) ;
s[ count] . setReg_day ( date3) ;
System . out. println ( s[ count] . toString ( ) ) ;
b0. setText ( "确认下一个学生信息" ) ;
text1. setText ( "" ) ;
text2. setText ( "" ) ;
text3. setText ( "" ) ;
text4. setText ( "" ) ;
text5. setText ( "" ) ;
count++ ;
}
} ) ;
b1. addActionListener ( new ActionListener ( ) {
@Override
public void actionPerformed ( ActionEvent e) {
int num = Integer . parseInt ( text6. getText ( ) ) ;
if ( flag < num - 1 ) {
String subject = text7. getText ( ) ;
int grade = Integer . parseInt ( text8. getText ( ) ) ;
String date4 = text9. getText ( ) ;
String [ ] d3 = date4. split ( "\\." ) ;
int year2 = Integer . parseInt ( d3[ 0 ] ) ;
int month2 = Integer . parseInt ( d3[ 1 ] ) ;
int day2 = Integer . parseInt ( d3[ 2 ] ) ;
Date date5 = new Date ( year2, month2, day2) ;
slec[ count - 1 ] [ flag++ ] = new Course ( 1 , subject, date5, grade) ;
b1. setText ( "请输入下一门课并确认" ) ;
text7. setText ( "" ) ;
text8. setText ( "" ) ;
text9. setText ( "" ) ;
}
else {
String subject = text7. getText ( ) ;
int grade = Integer . parseInt ( text8. getText ( ) ) ;
String date4 = text9. getText ( ) ;
String [ ] d3 = date4. split ( "\\." ) ;
int year2 = Integer . parseInt ( d3[ 0 ] ) ;
int month2 = Integer . parseInt ( d3[ 1 ] ) ;
int day2 = Integer . parseInt ( d3[ 2 ] ) ;
Date date5 = new Date ( year2, month2, day2) ;
slec[ count - 1 ] [ flag++ ] = new Course ( 1 , subject, date5, grade) ;
b1. setText ( "课程信息输入完毕!" ) ;
text6. setText ( "" ) ;
text7. setText ( "" ) ;
text8. setText ( "" ) ;
text9. setText ( "" ) ;
b1. setEnabled ( false ) ;
b[ count - 1 ] = num;
flag = 0 ;
}
}
} ) ;
b2. addActionListener ( new ActionListener ( ) {
@Override
public void actionPerformed ( ActionEvent e) {
area. append ( s[ count - 1 ] . toString ( ) ) ;
area. append ( "\n" ) ;
for ( int i = 0 ; i < slec[ count - 1 ] . length; i++ ) {
area. append ( slec[ count - 1 ] [ i] . toString ( ) ) ;
area. append ( "\n" ) ;
}
}
} ) ;
b3. addActionListener ( new ActionListener ( ) {
@Override
public void actionPerformed ( ActionEvent e) {
area. setText ( "" ) ;
for ( int i = 0 ; i < count; i++ ) {
area. append ( s[ i] . toString ( ) + "\n" ) ;
for ( int j = 0 ; j < b[ i] ; j++ ) {
area. append ( slec[ i] [ j] . toString ( ) + "\n" ) ;
}
}
}
} ) ;
}
public static void main ( String agrs[ ] )
{
TryJFrame jframe= new TryJFrame ( ) ;
}
}