Автор работы: Пользователь скрыл имя, 20 Декабря 2011 в 11:21, курсовая работа
Основной целью курсовой является решение выданных заданий и подробное описание решений.
Для реализации цели необходимо выполнить следующие задачи:
Показать умение работать с операторами циклов, строками, матрицами и, как частный случай, массивами. Результат – небольшие программы написанные на Java и Pascal
Создать файл соответствующей предметной области
Реализовать задачу II на Java с графическим интерфейсом и максимальным использованием всех компонентов пакета Swing
Введение 4
Глава 1. Алгоритмизация - работа с массивами на Pascal и Java 5
Массивы в Pascal 5
Решение задач на работу с массивами на алгоритмическом
языке Pascal 6
1.2 Массивы в Java 17
Решение задач на работу с массивами на алгоритмическом
языке Java 19
На Turbo Pascal 28
Глава 3. Разработка графического интерфейса на Java 60
Заключение 67
Литература 68
Приложение А 69
Приложение Б 70
Приложение В 71
Приложение Г 73
Приложение Д 74
Приложение Е 75
Приложение Ж 76
Приложение З 77
Приложение И 78
Приложение К 80
Приложение Л 81
Приложение М 82
Приложение Н 83
Приложение О 87
Приложение П 91
Пояснительная записка 104
procedure poisk;
var
i: integer;
begin
for i := 0 to W-1 do
if nam = data[i].nazv then
writeln(Data[i].Nazv:10, Data[i].art:10, Data[i].kolvo:10, Data[i].prize:5);
end;
//процедура поиска товара с конкретной ценой
procedure find;
var
i: integer;
cena: integer;
begin
writeln('Товар какой цены вы хотели бы найти?');
readln(cena);
for i := 0 to W-1 do
if cena = Data[i].prize then
writeln(Data[i].Nazv:10, Data[i].art:10, Data[i].kolvo:10, Data[i].prize:5);
end;
//основное тело программы
begin
Fna := 'Sklad.txt';
Load(Fna); //загружаем файл
OK := true;
repeat
writeln;
writeln;
writeln('Что вы хотите сделать с файлом?'); //выводим меню
writeln;
writeln('1: Вывести всю информацию из файла');
writeln('2: Найти атрибуты товара');
writeln('3: Изменить атрибуты товара');
writeln('4: Найти товар с нужной вам ценой');
writeln('5: Добавить информацию о новом товаре в файл');
writeln('6: Выход');
readln(menu);
case menu of
1: begin
writeln('Информация о товарах, прочитанная с файла');
writeln;
Print; //выводим информацию из файла
end;
2: begin
writeln('Атрибуты товара, который вы хотите найти');
writeln;
readln(nam);
writeln;
poisk;//вызываем процедуру поиска по названию товара
end;
3: begin
writeln('Атрибуты товара, который вы хотите изменить');
Edit(Fna); //вызов процедуры изменения свойств товара
end;
4: find;
5: begin
writeln('Добавить новые атрибуты в товар');
readln(newS); //добавление новой записи в файл
Zapis(Fna, newS);
writeln;
writeln('Информация, добавленная в файл', Fna);
Load(Fna); //вызов процедуры загрузки информации из файла
writeln;
Print; //процедуры вывода информации на экран
end;
6: exit;
end;
writeln;
writeln('Хотите
вы повторить свои действия?(y/
readln(input_2);
if (input_2='n') or (input_2='N') then
OK := false;
writeln;
Until (OK = false); // цикл прерывается
Readln;
end.
//подключение библиотеки ввода/вывода
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.RandomAccessFile;
import java.io.StreamTokenizer;
import java.util.*;
public class Chast_2{
//в массив вводятся хозяева
public static String owner[]=new String[200];
//в массив вводятся вместимости
public static int vmestimost []=new int[200];
//в массив вводятся номера
public static String number[]=new String[200];
//в массив вводятся содержания складов
public static String soderganie[]=new String[200];
public static int i=0; //счетчик
public static int r=0; //переменная в дальнейшем будет указывать размер
//вышезаданных массивов
//метод для ввода данных с клавиатуры
public static String vvod() throws Exception{
byte b[]=new byte[200];
//формирование массива в строку
System.in.read(b);
String s=new String(b);
//удаление лишних пробелов
s=s.trim();
return s;
}
//метод, позволяющий вводить содержимое файла по массивам
public static void loadFile(String file) throws Exception{
i=0;
RandomAccessFile access=new RandomAccessFile(file, "rw");
String s;
while(((s=access.
StringTokeni
while(d.
number
owner[
vmesti
soderg
}
i++;
r=i;
}
}
//метод служит для вывода массива на экран
public static void print(){
System.out.
for (i=0;i<r;i++)
System.out.println(number[i]+" "+owner[i]+" "+vmestimost[i]+" "+soderganie[i]);
}
//метод, в котором файл обрабатывается
public static void method(String file) throws Exception{
// загрузка файла
loadFile(file);
//нужна для организации повтора программного кода, который находится ниже в //теле оператора do....while
boolean OK=true;
do{
/*создание меню*/
System.out.println("Что вы хотите сделать с файлом?");
System.out.
System.out.
System.out.
System.out.
System.out.
System.out.
//пункт меню, вводимый с клавиатуры
int point=Integer.parseInt(vvod())
//описание случаев пункта меню
switch (point){
case 1:
System.out.println("Исходная информация о складах:");
print();//вызов метода печати массивов
break;
case 2:
System.out.println("Свойства какого склада вы хотите увидеть?");
String vvod=vvod();//вводится марка машины
for (i=0;i<r;i++)
//если вводимый
нами номер равен однму из
номеров в массиве выводятся
свойства вводимого нами
if (vvod.equalsIgnoreCase(number[
System.
break;
case 3:
System.out.println("Склады с каким содержимым вы хотите увидеть?");
vvod=vvod();//вводится содержание склада
int kol=0; //счетчик
for (i=0;i<r;i++)
if (vvod.equalsIgnoreCase(
System.out.println(number[i]+" "+owner[i]+" "+vmestimost[i]+" "+soderganie[i]);
kol++;
}
if (kol==0) //если
он равен нулю, то складов с таким содержи
//мым нет
System.out.println("Складов с содержимым "+vvod+" нет");
break;
case 4:
System.out.println("Свойства какой склада вы хотите изменить?");
vvod=vvod();//вводим номер искомого вклада
for (i=0;i<r;i++)
//находим искомый склад в массиве
if (number[i].equalsIgnoreCase(
//изменяем свойства данного склада
System.out.println("Введите нового хозяина:");
owner[i]=vvod();
System.out.println("Введите новую вместимость:");
vmestimost[i]=Integer.
System.out.println("Введите новое содержание:");
soderganie[i]=vvod();
}
FileOutputStream output=new FileOutputStream(file);
for (i=0;i<r;i++)
//переписываем измененной информацией старый файл
output.write((number[i]+"
"+owner[i]+" "+vmestimost[i]+" "+soderganie[i]+"\n").
output.close(); //закрытие выходного потока
System.out.println();
print();
break;
case 5:
RandomAccessFile das=new RandomAccessFile(file, "rw");
System.out.println("Введите данные о складе через клавишу TAB");
//в переменной содержится информация о новом складе
String write=vvod();
//в переменной
содержится длина файла в
long a=das.length();
//устанавливается новая длина файла: к старой длине файла прибавляется длина //строки write
das.setLength(das.length()+
das.seek(a);
//установка указатель на позицию,равную длине исходного файла, т.е. в конец //сходного файла
das.writeBytes(write+"\n");//
das.close();
System.out.println("Запись добавлена в файл: "+file);
loadFile(file);
print(); //печать
break;
case 6: System.exit(0); //если выбран пункт 6, то программа завераша //ет свою работу
}
System.out.println("Повторить запрос?(y/n)");
//в переменной находится либо символ 'y' либо 'n'
String vvod=vvod();
if (vvod.equalsIgnoreCase("n"))
//если был введен символ n, переменной ОК присваивается false и цикл прерыва //ется
OK=false;
}
while(OK);
}
public static void main (String args []){ //главный метод программы
try{