Не сте регистриран! Регистрирайте се БЕЗПЛАТНО, за да използвате услугите на сайта!

Нова тема
Помощ пичове спешно е за една програма
Тази тема е погледната 579 пъти
Добави темата към любими | Принтирай темата | Нова тема 
Публикувано на: 27.06.2008 11:07
sandala
Чирак

Мнения: (8)

Пичове помогнете трябва ми спешно една програма но сам начинаещ и немога да я направа.ПРограмата е следната:
Да се състави абстрактен базов клас „фигура” (Figure) и три производни от него класа „окръжност” (Circle), „триъгълник” (Triangle) и „правоъгълник” (Rectang). Базовият клас съдържа наименованието на геометричната фигура name, метод toString(), за извеждане на наименованието на фигурата, абстрактен метод getArea() – за извеждане на лицето (на производните класове от този клас), метод compareTo() – за сравнение на две фигури по стойността на лицето им, метод getName(), който връща стойността, записана в полето name.
Производните класове съдържат основните геометрични характеристики на съответните фигури:
-    класа Circle – поле radius;
-    класа Triangle – полета a, b и c – страни на триъгълника;
-    класа Rectang – полета x и y – страни на правоъгълника.
Всеки от производните класове има конструктор по подразбиране (без параметри), конструктор, който чете стойностите на геометричните параметри от файл (използвайте класа Scanner), метод toString(), който извежда името на фигурата и нейното лице (обръща се към метода toString() на базовия клас) и метод getArea(), който връща лицето на фигурата.

Да бъдат решени следните подзадачи:
1.    Метод за създаване и запълване на списък от обекти от класовете Circle, Triangle и Rectang като данните за геометричните им параметри се четат от текстов файл. Данните във файла са организирани по следния начин:
<брой на обектите във файла>
<тип на обекта> <списък от геометрични параметри>
<тип на обекта> <списък от геометрични параметри>
...
<тип на обекта><списък от геометрични параметри>

Тип на обекта: 0 – за Circle, 1 – за Triangle, 2 – за Rectangl

2.    Метод за записване на информацията от списъка от обекти във файл (сериализация)
3.     Метод за прочитане на информацията от файла в списък от обекти (десериализация)
4.    Метод за извеждане на сумата от лицата на фигурите, включени в списъка 





 
Това мнение е редактирано от sandala на 27.06.2008 11:21
---------------------------
Потребител от: 10.03.08 | Всички уроци от sandala | Всички скриптове от sandala

„Спасението на давещите се е в ръцете на самите давещи се!"
напиши eMail напиши лично съобщение виж профила на sandala
Публикувано на: 27.06.2008 17:57
tsvetozar
Ронин

Мнения: (130)

веднага се хващам!


 
---------------------------
Потребител от: 16.01.05 | Всички уроци от tsvetozar | Всички скриптове от tsvetozar

http://webstrategy.awardspace.com/ - една идея за web-базирана страгегия с използването на AJAX
http://bizast.hit.bg/ - една web-базирана бизнес ориентирана системка, която все повече започва да влиза в употреба (за моя радост)
напиши eMail напиши лично съобщение виж профила на tsvetozar
Публикувано на: 27.06.2008 22:06
cthulhu
Чирак

Мнения: (3)

Хаха това за днешния изпит в нбу ли е?


 
---------------------------
Потребител от: 24.06.08 | Всички уроци от cthulhu | Всички скриптове от cthulhu
напиши eMail напиши лично съобщение виж профила на cthulhu
Публикувано на: 28.06.2008 04:24
sandala
Чирак

Мнения: (8)

Хаха да от изпита в нбу.Тя е примерната задача , но на изпита беше подобна.Понеже немогаж да я направа и си търся помощ :)
Здравко ти в Нбу ли си ?


 
Това мнение е редактирано от sandala на 28.06.2008 04:25
---------------------------
Потребител от: 10.03.08 | Всички уроци от sandala | Всички скриптове от sandala

„Спасението на давещите се е в ръцете на самите давещи се!"
напиши eMail напиши лично съобщение виж профила на sandala
Публикувано на: 28.06.2008 12:46
cthulhu
Чирак

Мнения: (3)

Да в нбу съм.На мен ми се падна задачата с кухнениските уреди.
Как мина изпита?Направи ли нещо?


 
---------------------------
Потребител от: 24.06.08 | Всички уроци от cthulhu | Всички скриптове от cthulhu
напиши eMail напиши лично съобщение виж профила на cthulhu
Публикувано на: 28.06.2008 21:43
silver_fox
Калфа

Мнения: (14)

import java.io.*;
import java.util.*;

public class Test
{      
        public static void main(String... args) throws FileNotFoundException
        {
            String path = "D:\\Java\\parametri.txt";
            /* Така изглежда parametri.txt
               0 10
               1 2.0 2.0 2.0
               2 10 6

             */
            Scanner in0 = new Scanner(new File(path));
            Scanner in1 = new Scanner(new File(path));
            Scanner in2 = new Scanner(new File(path));
           
            Figure[] F = new Figure[6];
            F[0] = new Circle();
            F[1] = new Triangle();
            F[2] = new Rectang();
           
            F[3] = new Circle(in0);
            F[4] = new Triangle(in1);
            F[5] = new Rectang(in2);
            for(Figure figure : F){
                System.out.println( figure.toString() );
            }
            System.out.println( F[0].compareTo(F[3]));
            System.out.println( F[1].compareTo(F[4]));
            System.out.println( F[2].compareTo(F[5]));


           
        }
}
//Figure
abstract class Figure implements Comparable<Figure>{
    private String name;
   
    public Figure(){
        name = getClass().getName();
    }
   
    public Figure(Scanner in){
        this();
       
    }
    @Override
    public String toString() {
        return name;
    }
   
    public String getName(){
        return name;
    }
   
    public abstract double getArea();
   
    @Override
    public int compareTo(Figure other) {
        if (getArea() < other.getArea()) return -1;
        if (getArea() > other.getArea()) return 1;
        return 0;
    }
       
}
//Circle
class Circle extends Figure{
    private double radius;
   
    public Circle(){
        radius = 20;
    }
   
    public Circle(Scanner in){
        super(in);
        String str;
        while(in.hasNext()){
            if( (str = in.nextLine()).charAt(0) == '0'){
                radius = Double.parseDouble(str.substring(2));
            }
        }
    }
   
    @Override
    public String toString() {
        return super.toString()+", S = " + getArea();
    }
    @Override
    public double getArea() {
        //S = PI.r.r
        return Math.PI * Math.pow(radius, 2);
       
    }
}
//Triangle
class Triangle extends Figure{
    private double a, b, c;
   
    public Triangle(){
        a = b = c = 2;
    }
   
    public Triangle(Scanner in){
        super(in);
        String str;
        while(in.hasNext()){
            if( (str = in.nextLine()).charAt(0) == '1'){
                int n1 = 0,n2 = 0, n3 = 0;
               
                int[] ind = new int[str.length()];
               
                for(int i = 0;i< str.length();i++){
                    if( str.charAt(i) == ' '){
                        ind[i] = i;
                    }
                }
               
                Arrays.sort(ind);
                               
                for(int i = 0;i< str.length();i++){
                    if(ind[i] != 0){
                        n1 = ind[i];
                        n2 = ind[i+1];
                        n3 = ind[i+2];
                        break;
                    }
                }
                   
                a = Double.parseDouble(str.substring(n1+1, n2));
                b = Double.parseDouble(str.substring(n2+1, n3));
                c = Double.parseDouble(str.substring(n3+1));
               
            }
        }

    }
    @Override
    public String toString() {
        return super.toString()+", S = " + getArea();
    }
    @Override
    public double getArea() {
        //p = (a + b + c)/2 - полупериметъра
        //S = Херонова формула
        double p = (a + b + c) / 2;
        return Math.sqrt( p*(p - a)*(p - b)*(p - c) );
       
    }
   
   
}
//Rectang
class Rectang extends Figure{
    private double x, y;
   
    public Rectang(){
        x = y = 6;
    }
   
    public Rectang(Scanner in){
        super(in);
        String str;
        while(in.hasNext()){
            if( (str = in.nextLine()).charAt(0) == '2'){
                int n1 = 0,n2 = 0;
               
                int[] ind = new int[str.length()];
               
                for(int i = 0;i< str.length();i++){
                    if( str.charAt(i) == ' '){
                        ind[i] = i;
                    }
                }
               
                Arrays.sort(ind);
                               
                for(int i = 0;i< str.length();i++){
                    if(ind[i] != 0){
                        n1 = ind[i];
                        n2 = ind[i+1];
                        break;
                    }
                }
               
                   
                x = Double.parseDouble(str.substring(n1+1, n2));
                y = Double.parseDouble(str.substring(n2+1));
               
            }
        }
    }
    @Override
    public String toString() {
        return super.toString()+", S = " + getArea();
    }
    @Override
    public double getArea() {
        // S = x.y
        return x * y;
       
    }
}

//Това  нещо иска бая да се тества :)


 
---------------------------
Потребител от: 22.06.08 | Всички уроци от silver_fox | Всички скриптове от silver_fox
напиши eMail напиши лично съобщение виж профила на silver_fox
Публикувано на: 28.06.2008 21:55
Skull
Самурай

Мнения: (184)

Уаууу пич бая кодец си написал 


 
---------------------------
Потребител от: 07.12.07 | Всички уроци от Skull | Всички скриптове от Skull

===============================================
Sianan Sakich-Sunce moje
===============================================
http://pbs.free.bg/
===============================================

напиши eMail напиши лично съобщение виж профила на Skull
Публикувано на: 29.06.2008 00:03
sandala
Чирак

Мнения: (8)

[quote=silver_fox@28.06.2008 21:43]import java.io.*;
import java.util.*;

public class Test
{      
        public static void main(String... args) throws FileNotFoundException
        {
            String path = "D:\\Java\\parametri.txt";
            /* Така изглежда parametri.txt
               0 10
               1 2.0 2.0 2.0
               2 10 6

             */
            Scanner in0 = new Scanner(new File(path));
            Scanner in1 = new Scanner(new File(path));
            Scanner in2 = new Scanner(new File(path));
           
            Figure[] F = new Figure[6];
            F[0] = new Circle();
            F[1] = new Triangle();
            F[2] = new Rectang();
           
            F[3] = new Circle(in0);
            F[4] = new Triangle(in1);
            F[5] = new Rectang(in2);
            for(Figure figure : F){
                System.out.println( figure.toString() );
            }
            System.out.println( F[0].compareTo(F[3]));
            System.out.println( F[1].compareTo(F[4]));
            System.out.println( F[2].compareTo(F[5]));


           
        }
}
//Figure
abstract class Figure implements Comparable<Figure>{
    private String name;
   
    public Figure(){
        name = getClass().getName();
    }
   
    public Figure(Scanner in){
        this();
       
    }
    @Override
    public String toString() {
        return name;
    }
   
    public String getName(){
        return name;
    }
   
    public abstract double getArea();
   
    @Override
    public int compareTo(Figure other) {
        if (getArea() < other.getArea()) return -1;
        if (getArea() > other.getArea()) return 1;
        return 0;
    }
       
}
//Circle
class Circle extends Figure{
    private double radius;
   
    public Circle(){
        radius = 20;
    }
   
    public Circle(Scanner in){
        super(in);
        String str;
        while(in.hasNext()){
            if( (str = in.nextLine()).charAt(0) == '0'){
                radius = Double.parseDouble(str.substring(2));
            }
        }
    }
   
    @Override
    public String toString() {
        return super.toString()+", S = " + getArea();
    }
    @Override
    public double getArea() {
        //S = PI.r.r
        return Math.PI * Math.pow(radius, 2);
       
    }
}
//Triangle
class Triangle extends Figure{
    private double a, b, c;
   
    public Triangle(){
        a = b = c = 2;
    }
   
    public Triangle(Scanner in){
        super(in);
        String str;
        while(in.hasNext()){
            if( (str = in.nextLine()).charAt(0) == '1'){
                int n1 = 0,n2 = 0, n3 = 0;
               
                int[] ind = new int[str.length()];
               
                for(int i = 0;i< str.length();i++){
                    if( str.charAt(i) == ' '){
                        ind[i] = i;
                    }
                }
               
                Arrays.sort(ind);
                               
                for(int i = 0;i< str.length();i++){
                    if(ind[i] != 0){
                        n1 = ind[i];
                        n2 = ind[i+1];
                        n3 = ind[i+2];
                        break;
                    }
                }
                   
                a = Double.parseDouble(str.substring(n1+1, n2));
                b = Double.parseDouble(str.substring(n2+1, n3));
                c = Double.parseDouble(str.substring(n3+1));
               
            }
        }

    }
    @Override
    public String toString() {
        return super.toString()+", S = " + getArea();
    }
    @Override
    public double getArea() {
        //p = (a + b + c)/2 - полупериметъра
        //S = Херонова формула
        double p = (a + b + c) / 2;
        return Math.sqrt( p*(p - a)*(p - b)*(p - c) );
       
    }
   
   
}
//Rectang
class Rectang extends Figure{
    private double x, y;
   
    public Rectang(){
        x = y = 6;
    }
   
    public Rectang(Scanner in){
        super(in);
        String str;
        while(in.hasNext()){
            if( (str = in.nextLine()).charAt(0) == '2'){
                int n1 = 0,n2 = 0;
               
                int[] ind = new int[str.length()];
               
                for(int i = 0;i< str.length();i++){
                    if( str.charAt(i) == ' '){
                        ind[i] = i;
                    }
                }
               
                Arrays.sort(ind);
                               
                for(int i = 0;i< str.length();i++){
                    if(ind[i] != 0){
                        n1 = ind[i];
                        n2 = ind[i+1];
                        break;
                    }
                }
               
                   
                x = Double.parseDouble(str.substring(n1+1, n2));
                y = Double.parseDouble(str.substring(n2+1));
               
            }
        }
    }
    @Override
    public String toString() {
        return super.toString()+", S = " + getArea();
    }
    @Override
    public double getArea() {
        // S = x.y
        return x * y;
       
    }
}

//Това  нещо иска бая да се тества :)[/quote]


Пич бая си се потрудил мерси за която , но или аз съм бая зле или нещо нищо не излиза.Мерси все пак че си се потрудил наистина   


 
---------------------------
Потребител от: 10.03.08 | Всички уроци от sandala | Всички скриптове от sandala

„Спасението на давещите се е в ръцете на самите давещи се!"
напиши eMail напиши лично съобщение виж профила на sandala
Публикувано на: 29.06.2008 08:18
silver_fox
Калфа

Мнения: (14)

То може аз да съм бая зле :) .Защото сега се уча. Виж какво ми дава на мен:

Circle, S = 1256.6370614359173
Triangle, S = 1.7320508075688772
Rectang, S = 36.0
Circle, S = 314.1592653589793
Triangle, S = 1.7320508075688772
Rectang, S = 60.0
1
0
-1

- Имай предвид, че  трябва да промениш
String path = "D:\\Java\\parametri.txt";!!!


 
---------------------------
Потребител от: 22.06.08 | Всички уроци от silver_fox | Всички скриптове от silver_fox
напиши eMail напиши лично съобщение виж профила на silver_fox
Публикувано на: 29.06.2008 13:25
silver_fox
Калфа

Мнения: (14)

//Това трябва да е по добро:

import java.io.*;
import java.util.*;

public class Test
{      
        public static void main(String... args) throws Exception
        {
            String path = "D:\\Java\\parametri.txt";
            /* Така изглежда parametri.txt
               Circle 10
               Triangle 2,0 2,0 2,0
               Rectang 10 6
             */
            Scanner in = new Scanner(new File(path));
           
            Figure[] F = new Figure[6];
            F[0] = new Circle();
            F[1] = new Triangle();
            F[2] = new Rectang();
           
            F[3] = new Circle(in);
            F[4] = new Triangle(in);
            F[5] = new Rectang(in);

            for(Figure figure : F){
                System.out.println( figure.toString() );
            }
            System.out.println( F[0].compareTo(F[3]));
            System.out.println( F[1].compareTo(F[4]));
            System.out.println( F[2].compareTo(F[5]));
           
            System.out.println( F[0].getName());   
            in.close();
        }
}
//Figure
abstract class Figure implements Comparable<Figure>{
    private String name = getClass().getName();
    protected  static double[]D = new double[6];
   
    public String toString() {
        return getClass().getName();
    }
   
    public String getName(){
        return name;
    }
   
    public abstract double getArea();
   
    public int compareTo(Figure other) {
        if (getArea() < other.getArea()) return -1;
        if (getArea() > other.getArea()) return 1;
        return 0;
    }
   
    public void parameter(Scanner in){
        String str;
        while(in.hasNext()){
            if( (str = in.next()).equals("Circle")){
                D[0] = in.nextDouble();
            }
           
            if((str = in.next()).equals("Triangle")){
                D[1] = in.nextDouble();
                D[2] = in.nextDouble();
                D[3] = in.nextDouble();
            }
           
            if((str = in.next()).equals("Rectang")){
                D[4] = in.nextDouble();
                D[5] = in.nextDouble();
            }
        }   
    }
}
//Circle
class Circle extends Figure{
    private double radius;
   
    public Circle(){
        radius = 20;
    }
   
    public Circle(Scanner in){
        parameter(in);
        radius = D[0];
    }
   
    public String toString() {
        return super.toString()+", S = " + getArea();
    }

    public double getArea() {
        //S = PI.r.r
        return Math.PI * Math.pow(radius, 2);
    }
}
//Triangle
class Triangle extends Figure{
    private double a, b, c;
   
    public Triangle(){
        a = b = c = 2;
    }
   
    public Triangle(Scanner in){
        parameter(in);
        a = D[1]; b = D[2]; c = D[3];
    }

    public String toString() {
        return super.toString()+", S = " + getArea();
    }
   
    public double getArea() {
        double p = (a + b + c) / 2;//p = (a + b + c)/2 - полупериметъра
        return Math.sqrt( p*(p - a)*(p - b)*(p - c) );//S = Херонова формула
    }
}
//Rectang
class Rectang extends Figure{
    private double x, y;
   
    public Rectang(){
        x = y = 6;
    }
   
    public Rectang(Scanner in){
        parameter(in);
        x = D[4]; y = D[5];
    }
   
    public String toString() {
        return super.toString()+", S = " + getArea();
    }
   
    public double getArea() {
        // S = x.y
        return x * y;
    }
}


 
---------------------------
Потребител от: 22.06.08 | Всички уроци от silver_fox | Всички скриптове от silver_fox
напиши eMail напиши лично съобщение виж профила на silver_fox
Публикувано на: 20.07.2008 14:36
sandala
Чирак

Мнения: (8)

Пичове и тва нещо не става.И аз се мъча нещо ама и аз незнам.Вижте следния код -

abstract class Job {
    String position;
    double percent1,percent2;
    int rate, regilar_days, irregilar_days;
    String toString() {
        System.out.println("dlyjnosta e: " + position);
    }
    abstract int getSalary();
    int getPosition { return position; }
    }
}
class Manager extends Job {
    Manager() {
    percent1 = 70;
    percent2 = 80;
    }
    Manager(Manager man) {
        DataInputStream datain;       
    }
    String toString() {
        System.out.println("Dlyjnosta e: " + position " a zaplatata: " + rate);
    }
    double getSalery() {
        double salary;
        salary = regular_days * percent1/100 + irregular_days*percent2/100;
    }
}
class Worker extends Job {
    Worker() {
    percent1 = 50;
    percent2 = 60;
    }
    Worker(Worker wk) {
        DataInputStream datain;
    }
    String toString() {
        System.out.println("Dlyjnosta e: " + position " a zaplatata " + rate);
    double getSalery() {
        double salary;
        salary = regular_days * percent1/100 + irregular_days*percent2/100;
}
class Assistent extends Job {
    Assistent() {
    percent1 = 55;
    percent2 = 65;
    }
    Assistent(Assistent as) {
        DataInputStream datain;
    }
    String toString() {
        System.out.println("Dlyjnosta e: " + position " a zaplatata " + rate);
    }
    double getSalery() {
        double salary;
        salary = regular_days * percent1/100 + irregular_days*percent2/100;
}
class ThreeJobs {
    public static void main(String args[])
        throws IOException {
            Job jobs = new Job[3];
            Manager mn = new Manager();
            Worker wk = new Worker();
            Assistent as = new Assistent();
            mn.toString();
           
        }
    }

Горе долу нещо такова трябва да е по-простоватичко така да се каже
този мой код не върви а и не е довършен.Показвам ви го ако можете да ми помогнете да го редактираме и завършим заедно и да направиме тая задачка.Благодаря ви отново че проявявате интерес.


 
Това мнение е редактирано от sandala на 20.07.2008 14:37
---------------------------
Потребител от: 10.03.08 | Всички уроци от sandala | Всички скриптове от sandala

„Спасението на давещите се е в ръцете на самите давещи се!"
напиши eMail напиши лично съобщение виж профила на sandala
 1 посетител чете тази тема (0 потребители и 1 гост)  
Активни потребители: ---
   





IT-PLACE.NET © 2004 - 2008