Министерство образования и науки Российской федерации
Федеральное агентство по образованию
Государственное образовательное учреждение высшего профессионального образования «Алтайский государственный технический университет им. И. И. Ползунова»
Факультет информационных технологий
Кафедра систем автоматизированного проектирования
Отчет защищен с оценкой ________________
Преподаватель __________________________
(подпись)
«__________» ____________________ 20___ г.
Отчет
по лабораторной работе № 3
Отношение между классами и объектами.
(название лабораторной работы)
по дисциплине «Программирование»
Студент группы ИВТ-11 Н.В.Едакин
(И. О. Фамилия)
Преподаватель доцент Л. Ю. Качесова
Барнаул 2012
Вариант - 3.
Задание 1.
Создать класс «Издание», хранящий информацию об издательстве(наименование, адрес). На его основе создать класс «Журнал»(номер, название, список статей – массив). Написать метод, возвращающий список авторов статей, В алфавитном порядке.
Постановка задачи:
Входящие данные: базовый класс Издание.
Результирующие данные: производный класс Журнал, с методом сортировки статей по автору.
Текст программы:
Главный класс prog3_1
package prog3_1;
import paket1.*;
import java.util.Scanner;
import java.io.*;
import java.lang.*;
public class Prog3_1 {
public static void main(String[] args) throws IOException{
Scanner in = new Scanner(System.in);
System.out.print("Название издания: ");
String name = in.nextLine();
System.out.print("Адрес: ");
String a = in.nextLine();
int adres = Integer.parseInt(a);
Jornal jor = new Jornal(name, adres);
System.out.print("Название журнала: ");
String naz = in.nextLine();
jor.setNazvan(naz);
System.out.print("Номер журнала: ");
int num = in.nextInt();
jor.setNumber(num);
Scanner ob = new Scanner(System.in);
int stop;
do{
System.out.println("1 - Показать журнал");
System.out.println("2 - Добавить статью");
System.out.println("3 - Выход");
System.out.print(" Ваш выбор: ");
stop = ob.nextInt();
if(stop == 1) jor.disp();
else if(stop == 2) jor.setZapol(1);
}while(stop != 3);
} }
Базовый класс Izdanie
package paket1;
import java.util.Scanner;
import java.lang.*;
public class Izdanie {
private String name;
private int adres;
public Izdanie ( String n, int a) {
name = n; adres = a;
}
public void setName (String n) {name = n;}
public String getName () {return name;}
public void setAdres (int a) {adres = a;}
public int getAdres () {return adres;}
}
Производный класс Jornal
package paket1;
import java.util.*;
import java.io.*;
import java.lang.*;
public class Jornal extends Izdanie {
private int number;
private String nazvan;
private String [] stats;
private String [] author;
public Jornal (String name, int adres){super(name, adres);}
public void setNazvan (String naz) {nazvan = naz;}
public String getNazvan () {return nazvan;}
public void setNumber (int num) {number = num;}
public int getNumber () {return number;}
public void setZapol(int p) throws IOException{
BufferedReader BufRead = new BufferedReader(new InputStreamReader(System.in));
if(stats == null){
stats = new String [1];
author = new String [1];
for(int i = 0; i < stats.length; i++){
System.out.print("Название статьи: ");
stats[i] = BufRead.readLine();
System.out.print("Автор: ");
String u = BufRead.readLine();
author[i] = u;
//if(mark[i] < 3) this.setDebt();
}
}
else if(stats != null){
String [] tmp_s = new String [stats.length];
String [] tmp_u = new String [author.length];
for(int i = 0; i < stats.length; i++){
tmp_s[i] = stats[i];
tmp_u[i] = author[i];
}
stats = new String [tmp_s.length + p];
author = new String [tmp_s.length + p];
for(int j = 0; j < stats.length; j++){
if(j < tmp_s.length){
stats[j] = tmp_s[j];
author[j] = tmp_u[j];
}
else{
System.out.print("Название статьи: ");
stats[j] = BufRead.readLine();
System.out.print("Автор: ");
String u1 = BufRead.readLine();
author[j] = u1;
//if(mark[j] < 3) this.setDebt();
}
} }
}
public void disp(){
System.out.println("Название статьи: " + this.getNazvan() + " | Номер журнала: " + this.getNumber());
System.out.println("* **** *");
if(stats == null) System.out.println("В журнале нет статей." + "\n");
else{
for(int i = 0; i < stats.length; i++){
Arrays.sort(author);
}
for(int i = 0; i < stats.length; i++){
System.out.println("Статья: " + stats[i] + " - Автор: " + author[i]);
System.out.println("* **** *");
}
//System.out.println("Кол-во долгов: " + this.getDebt() + "\n");
}
} }
Д
+ Jornal
-Number: int
- Nazvan: String
- Stats []: String
- Author []: String
+ setNazvan()
+ getNazvan() : String
+ setNumber ()
+ getNumber () : int
+ setZapol (int p)
+ disp ()
иаграмма UML:
Тест программы:
Вариант - 3.
Задание 2.
Класс «АВТОМОБИЛЬ» содержит закрытые поля: гос. номер, цвет, фамилия владельца и признак присутствия на стоянке и метод вывода сведений об автомобиле. Класс «АВТОСТОЯНКА», содержит закрытые поля: название автостоянки, массив объектов класса «АВТОМОБИЛЬ», методы поиска автомобиля по разным критериям и методы вывода списка присутствующих и отсутствующих на стоянке автомобилей.
Постановка задачи:
Входящие данные: два класса Автомобиль и Автостоянка.
Результирующие данные: реализация отношения между классами – композиция, полиморфизм.
Текст программы:
Основной класс prog3_2.
package prog3_2;
Import java.Util.Scanner;
import EdakinNW.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Prog3_2 {
public static void main(String[] args) throws IOException{
BufferedReader BufRead = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Введите название автостоянки: ");
String a = BufRead.readLine();
System.out.print("Введите колличество автомобилей: ");
String kols = BufRead.readLine();
int kol = Integer.parseInt(kols);
Avtosto ob = new Avtosto(a);
Scanner in = new Scanner(System.in);
int st;
do{
System.out.println("1 - Заполнить информацию об автомобилях");
System.out.println("2 - Поиск авто по гос. номеру");
System.out.println("3 - Поиск авто по цвету");
System.out.println("4 - Поиск авто по фамилии владельца");
System.out.println("5 - Вывод авто находящихся на стоянке");
System.out.println("6 - Вывод всех");
System.out.println("7 - Выход");
System.out.print(" Ваш выбор: ");
st = in.nextInt();
if(st == 1) ob.init(kol);
else if(st == 2) ob.pos_number();
else if(st == 3) ob.pos_Color();
else if(st == 4) ob.pos_fio();
else if(st == 5) ob.pos_stops();
else if(st == 6) ob.display();
}while(st != 7);
} }
Класс Avtosto
package EdakinNW;
//@author Nikolay
import java.text.*;
import java.util.*;
Import java.Io.*;
public class Avtosto {
private String nazvan;
private Avtomobil [] avto;
public Avtosto(String naz) {nazvan = naz;}
public String getNazvan(){return nazvan;}
public void init(int k) throws IOException{
avto = new Avtomobil[k];
BufferedReader BufRead = new BufferedReader(new InputStreamReader(System.in));
Scanner in = new Scanner(System.in);
for(int i = 0; i <avto.length ; i++){
System.out.print("Гос. номер: ");
String n = BufRead.readLine();
System.out.print("Цвет: ");
String c = BufRead.readLine();
System.out.print("Фамилия владельца: ");
String f = BufRead.readLine();
System.out.print("Есть ли авто на стоянке: ");
int s = in.nextInt();
avto[i] = new Avtomobil (n, c, f, s);
} }
public void pos_number() throws IOException
{ BufferedReader BufRead = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Введите гос. номер для поиска: ");
String numb = BufRead.readLine();
//Scanner in = new Scanner(System.in);
for (int i=0;i<avto.length;i++)
{if (avto[i].getNumber().equals(numb)) {
System.out.println("Искомый автомобиль");
System.out.print("Гос. номер авто: ");
System.out.println(avto[i].getNumber());
System.out.print("Цвет авто: ");
System.out.println(avto[i].getColor());
System.out.print("Фамилия владельца: ");
System.out.println(avto[i].getFio());
System.out.print("Есть ли авто на стоянке: ");
System.out.println(avto[i].getStop());
System.out.println("* * * * * * * * *");
}
} }
public void display()
{Scanner in = new Scanner(System.in);
for (int i=0;i<avto.length;i++){
System.out.print("Гос. номер авто: ");
System.out.println(avto[i].getNumber());
System.out.print("Цвет авто: ");
System.out.println(avto[i].getColor());
System.out.print("Фамилия владельца: ");
System.out.println(avto[i].getFio());
System.out.print("Есть ли авто на стоянке: ");
System.out.println(avto[i].getStop());
System.out.println("* * * * * * * * *");
}
}
public void pos_Color() throws IOException
{BufferedReader BufRead = new BufferedReader(new InputStreamReader(System.in));
String col;
System.out.print("Введите цвет для поиска: ");
col = BufRead.readLine();
for (int i = 0; i<avto.length;i++)
{if(avto[i].getColor().equals(col)){
System.out.println("Искомый автомобиль");
System.out.print("Гос. номер авто: ");
System.out.println(avto[i].getNumber());
System.out.print("Цвет авто: ");
System.out.println(avto[i].getColor());
System.out.print("Фамилия владельца: ");
System.out.println(avto[i].getFio());
System.out.print("Есть ли авто на стоянке: ");
System.out.println(avto[i].getStop());
System.out.println("* * * * * * * * *");
}
} }
public void pos_fio() throws IOException
{BufferedReader BufRead = new BufferedReader(new InputStreamReader(System.in));
String fam;
System.out.print("Введите фаиилию владельца для поиска: ");
fam = BufRead.readLine();
for(int i = 0;i<avto.length;i++)
{if(avto[i].getFio().equals(fam)){
System.out.println("Искомый автомобиль");
System.out.print("Гос. номер авто: ");
System.out.println(avto[i].getNumber());
System.out.print("Цвет авто: ");
System.out.println(avto[i].getColor());
System.out.print("Фамилия владельца: ");
System.out.println(avto[i].getFio());
System.out.print("Есть ли авто на стоянке: ");
System.out.println(avto[i].getStop());
System.out.println("* * * * * * * * *");
}
} }
public void pos_stops() throws IOException
{Scanner in = new Scanner(System.in);
int fl;
System.out.print("Вывод Авто находящихся или отстутсвующих на стоянке(1 - да, 0 - нет): ");
do{
fl = in.nextInt();
}while (fl>1 || fl<0);
for(int i=0;i<avto.length;i++)
{if(avto[i].getStop()==fl) {
System.out.print("Гос. номер авто: ");
System.out.println(avto[i].getNumber());
System.out.print("Цвет авто: ");
System.out.println(avto[i].getColor());
System.out.print("Фамилия владельца: ");
System.out.println(avto[i].getFio());
System.out.print("Есть ли авто на стоянке: ");
System.out.println(avto[i].getStop());
System.out.println("* * * * * * * * *");
}
}
} }
Класс Avtomobil
package EdakinNW;
public class Avtomobil {
private String number;//гос. номер
private String color;//цвет
private String fio;//фамилия владельца
private int stop;//признак присутствия на стоянке
public Avtomobil(String n, String c, String f, int s) {
number = n; color = c; fio = f; stop = s;
}
public void pos_number(){}
public void display(){}
public void pos_Color(){}
public void pos_fio(){}
public void pos_stops(){}
public void setNumber(String n){number = n;}
public String getNumber(){return number;}
public void setColor(String c) {color = c;}
public String getColor(){return color;}
public void setFio(String f) {fio = f;}
public String getFio(){return fio;}
public void setStop(int s) {stop = s;}
public int getStop(){return stop;}
}
Диаграммы UML
Тест программы: