Wyszukiwanie instrukcji w kodzie

0

Witam to moj pierwszy post, jestem studentem informatyki i niestety troche przebalowalem pierwszy semestr no i teraz mam zaleglosci a zadanka trza robic niestety. na razie zglebiam poczatki jak tworzyc klasy i procedury ich obslugi (wiem ze to jest zalosny poziom no ale coz). takie oto zadanka zem dostal, jezeli ktos by znalazl chwilke i troche naprowadzil moj nedzny umysl albo zrobil chociaz troche to bylo by super

Zadanie 1

Napisać program, który wczytuje plik o nazwie "C:\Temp\Test.java" z kodem źródłowym Javy i wyszukuje w nim instrukcje if oraz napisy "wielkość". Wyniki dzialania programu w postaci:
Liczba instrukcji if: n
Liczba napisów 'wielkość': m
należy zapisac do pliku o nazwie C:\Temp\out.

Uwaga: nazwy plików (wraz ze ścieżkami katalogowymi) są obowiązkowe i podajemy je bezpośrednio w tekście programu.
Proszę nie dołączać plików do projektu.
Za niespełnienie tego warunku nie będą przyznawane punkty.

Zadanie 2

Napisać program, który uruchamia w trzech wątkach ten sam kod. Pierwszy wątek będzie wypisywał literę A co 3 sek, drugi B - co 4 sek, trzeci C - co 5 sek. Zapewnić możliwość zakończenia działania wszystkich wątków z dialogu JOptionPane.showConfirmDialog(null, "Czy zakończyć pracę?");

Zadanie 3

Kod, działający w wątku A czyta z pliku C:\Temp\Towary.txt informacje o towarach w postaci:

id_towaru waga

tworzy obiekty klasy Towar, zawierające przeczytane informacje oraz wyprowadza na konsolę informacje o liczbie utworzonych obiektów. Informacja ma być wyprowadzana co 200 obiektów w postaci:

utworzono 200 obiektów
utworzono 400 obiektów
utworzono 600 obiektów
itd.

Kod działający równolegle w innym wątku (B) sięga po te obiekty, sumuje wagę towarów i wyprowadza na konsolę informację o przeprowadzonym sumowaniu co 100 obiektów np.:
policzono wagę 100 towarów
policzono wagę 200 towarów
policzono wagę 300 towarów
itd.
Na końcu podaje sumaryczną wagę wszystkich towarów.

Uwaga1: plik powinien zawierać co najmniej 10 tys. opisów towarów (należy sobie go wygenerować programistycznie, ale na boku, nie w tym programie), nazwa pliku (wraz ze ścieżką) jest obowiązkowa i podajemy ją bezpośrednio w tekście programu, proszę nie dołączać tego pliku do projektu..
Za niespełnienie tych warunku nie będą przyznawane punkty.

Uwaga2: zapewnić synchronizację i koordynację pracy obu wątków.

0

Cóż zacznij od lektury jakiś tutków i zapoznaj się z budową dokumentacji jeżyka. Dużo tego nie ma, ale jak będziesz czegoś potrzebował to będziesz wstanie to znaleźć.

  1. Masz klasę FileReader wystraczy teraz czytać po linijce każdy plik i sprawdzać czy nie zawiera napisu if(.*(^))) (zapoznaj się z wyrażeniami regularnymi, podstawy wystarczą). Do zapisu klasa FileWriter.

swoją drogą co to znaczy, że konfigurację zaszywa się w kodzie.... jakaś głupota, no ale psorowie zazwyczaj zatrzymali się na poziomie pascala.

  1. Klasa Thread i interfejs runnable. Do tego trochę Swinga. W sumie pikuś ;)

  2. Połączenie 1 i 2. Tu polecam wziąć sobie do zabawy kolekcje np. Map czy też List. Ułatwi Ci to obróbkę danych.

0

No dobra ja wiem ze trza sie uczyc od podstaw ale kurcze nie dam rady w 3dni wylukac wszystkiego i napisac programy spelniajace wymagania tych zadan. Moze ktos by wspomogl?? albo napisal jakis szkielet tego wszystkiego. A co do tutkow to mozecie polecic jakies ebooki albo cos w tym stylu zeby na sam poczatek??

0

kurcze główkuje i szukam ale nie daje rady wczytac pliku i wylukac ile razy w tym kodzie jest urzyte if, pomozecie troche??

0

Normalnie nie rób wiochy gościu - albo nie umiesz korzystać z google albo ściemniasz:

wpisujesz w google:
java io tutorial - pierwszy wynik tutorial suna...

http://java.sun.com/docs/books/tutorial/essential/io/

Co do zliczania instrukcji if - javadoc do klasy String.

A użyte pisze się przez "ż"

1

zadanie 2: (pamietaj ze jesli pokaze sie dialog i wcisniesz cos inego niz Ok to juz wiecej sie nie pojawi i trzeba bedzie program zamknac inaczej - ctrl-c np, ale mozesz np puscic kolejny watek ktory co pare sekund pokazuje okienko jesli nie jest jeszcze pokazane z pytaniem - to juz sam sobie napisz na podstawie tego co tu masz, wiesz juz jak uzywac watkow

import javax.swing.JOptionPane;

public class Threads {

public static void main(String[] args) {
    Thread a = new Thread(new WritingRunnable('A', 3));
    Thread b = new Thread(new WritingRunnable('B', 4));
    Thread c = new Thread(new WritingRunnable('C', 5));
    a.start();
    b.start();
    c.start();
    int res = JOptionPane.showConfirmDialog(null, "Czy zakończyć pracę?");
    if (res == JOptionPane.OK_OPTION) {
        a.interrupt();
        b.interrupt();
        c.interrupt();
    }
}

}

class WritingRunnable implements Runnable {

private char letter;

private long interval;

public WritingRunnable(char letter, int interval) {
    this.letter = letter;
    this.interval = interval * 1000;
}

public void run() {
    while (!Thread.currentThread().isInterrupted()) {
        try {
            Thread.sleep(interval);
        } catch (InterruptedException exc) {
            // interrupted while asleep
            // break the loop
            break;
        }
        System.out.print(letter);
    }
}

}

0

kurcze wielkie dzieki, naprawde.
Moze ktos wytlumaczyc jak wczytac ten plik z pierwszego zadania??

1 użytkowników online, w tym zalogowanych: 0, gości: 1