Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб.3.в3.docx
Скачиваний:
1
Добавлен:
23.11.2019
Размер:
507.93 Кб
Скачать

Министерство образования и науки Российской федерации

Федеральное агентство по образованию

Государственное образовательное учреждение высшего профессионального образования «Алтайский государственный технический университет им. И. И. Ползунова»

Факультет информационных технологий

Кафедра систем автоматизированного проектирования

Отчет защищен с оценкой ________________

Преподаватель __________________________

(подпись)

«__________» ____________________ 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

Тест программы: