Курсовая работа по дисциплине «Системное программное обеспечение»




Скачать 84.14 Kb.
НазваниеКурсовая работа по дисциплине «Системное программное обеспечение»
Дата конвертации11.07.2013
Размер84.14 Kb.
ТипКурсовая
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ

НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ КУНГТУ

Курсовая работа

по дисциплине «Системное программное обеспечение».


«Разработка программы на Java.»

«Сортировка циклического списка выбором.»


Студентка: группы ВТК-221

Выполнила: Зайда Н.В.

Проверил: Романов Е. Л.

Куйбышев, 2006

1. Задание: Курсовая работа заключается в переносе сортировки циклического списка выбором с языка Си++ на язык Java, с использованием графики и элементов управления.

2. Краткое описание алгоритма: Программа проводит сортировку задаваемого циклического списка выбором. Сама же сортировка проводится следующим образом: Задается пустой входной список, в который переписывается уже имеющийся список, далее он просматривается. Из списка выкусывается найденный минимальный элемент и вставляется перед первым (после последнего), этот процесс повторяется многократно, пока входной не опустеет. Процедура повторяется до тех пор, пока не опустеет входной список. После чего текущий элемент будет считаться начальным.
void sort(){

node out=null,p,pmax; // задается пустой список

while(hd!=null){ //пока не пуст входной список

//1 Найти максимальный элемент в списке

p=pmax=hd;

do

{

if (p.val.compareTo(pmax.val)<0)

pmax=p; // цикл обхода

p=p.next; //большим заданного, иначе

}

while(p!=hd); // просматривает список

//2 Выкусывание

if (pmax==hd) hd=hd.next; //удаляется первый элемент- сдвинуть

заголовок

if (pmax.remove()) hd=null; //выкусывает элементы

// System.out.println("========\n"+toString());

//3

if (out==null) //пустой - единственный

out=pmax.next=pmax.prev=pmax;

else pmax.before(out); // вставить перед первым - после последнего

}

hd=out; // Текущий является начальным

System.out.println(toString());

3. Особенности программирования в Java

Node - узел

ООП


List - список
В данной программе используется работа с ссылками, на языке java любая переменная p является ссылкой на указатели - указывается явно, т.е звездочки перед указателем, как в Си++ нет. Также -> заменяются на точки.

В Си ++: В Java:

node *p; node p;

p = p - > next; p = p.next;

Указатель




Указатель

4.Словесное описание классов, методов, структур данных и алгоритмов

Для создания списка создается объект класса list1, в котором создается пустая ссылка hd на объект класса node. В указатель hd записывается ссылка. Также использование стандартного класса MyFrame – наследование нашего оконного приложения, который образует окно и диалог с пользователем. Когда определённый нами класс наследует пустое окно, происходит определение объектов, которые будут созданы в нашем приложении.

class MyFrame extends Frame implements ActionListener {

TextField t=null;

TextArea t1=null;

Элементы управления, как кнопка, поле, меню и т.д., которые создаются классами являются объектами класса, включёнными в класс MyFrame. При помощи элемента управления Button - создаём кнопку, задаём её размеры и размещение, передаём ссылку на этот объект (кнопку) классу Frame.

Button C=new Button("Append");

B.setSize(80,40);

add(B); - отображение в окне

Также используются и другие методы управления цветом, шрифтом, размером и т.п.



Набор стандартных методов – Interface – не содержит данных, пустой базовый класс. Интерфейс выполняет две функции, одной из которых является генератор событий, а другой объявление обработчика (Listener), далее происходит обработка событий.

B.addActionListener(this)

Подключение интерфейса




Стандартные методы

интерфейса
public void actionPerformed(ActionEvent e)

{

if(e.getActionCommand().compareTo("Добавить")==0)

}

5. Структурное и функциональное описание программы

В программе созданы 2 класса: list1 и node.

Класс node

Этот класс используется для создания односвязного списка.

Поля:

data – хранит данные;

node next – ссылка на следующий элемент списка;

node prev – ссылка на предыдущий элемент списка;

Методы класса:

node (Object v)– конструктор, инициализирует объект списка, v - значение объекта;

public String toString() – возвращает строковое содержимое и информацию заголовка списка;

Класс list1

Этот класс используется для пользовательской работы со списком. Он содержит одно поле hd, которое является ссылкой (указателем) и используется методами этого класса для доступа к списку.

6. Листинг программы с комментариями
import java.awt.*; // подключаем библиотеки

import java.awt.event.*;

class node{ // создаём класс (list.node)

String val;

node next,prev; // ссылка на следующий, предыдущий

node (String v){

val=v;

next=prev=this;

}

void before(node p) // перемещение по списку

{

next=p;

prev=p.prev;

p.prev.next=this;

p.prev=this;

}
boolean remove() // метод удаления

{

if (next==this) return true;

next.prev=prev;

prev.next=next;

return false;

}

}

class list1 //создание класс

{

node hd; // ссылка

list1() {hd=null; } // конструктор без параметров

void front (String v){ // вставка в начало, метод front

node q=new node(v);

if(hd==null) hd=q;

else

{

q.before(hd);

hd=q;

}

}

void end (String v) // вставка в конец, метод end

{

node q=new node (v);

if (hd==null) hd=q;

else

q.before(hd);

}

public String toString(){ // возвращает строковое содержимое и информацию

String out=new String();

node q=hd;

do

{

out+=q.val+"\n";

q=q.next;

}

while(q!=hd);

return out;

}

void sort(){

node out=null,p,pmax; // задается пустой список

while(hd!=null){ //пока не пуст входной список

//1

p=pmax=hd;

do

{

if (p.val.compareTo(pmax.val)<0) pmax=p; //цикл обхода

p=p.next; //большим заданного, иначе

}

while(p!=hd); // список просматривается

//2

if (pmax==hd) hd=hd.next; //удаляется первый элемент - сдвинуть

заголовок

if (pmax.remove()) hd=null; //выкусывает элемент

// System.out.println("========\n"+toString());

//3

if (out==null) //список пустой - единственный

out=pmax.next=pmax.prev=pmax;

else pmax.before(out); // вставить перед первым - после последнего

}

hd=out; //текущий является начальным

System.out.println(toString()); //

}
}
class MyFrame extends Frame implements ActionListener {

TextField t=null;

TextArea t1=null;

list1 L=new list1();

MyFrame(){

setLayout(new FlowLayout()); // ручное размещение элементов управления

setBackground(Color.red); // цвет фона

Button C=new Button("Append"); // создаём кнопку «Добавить» Button B=new Button("Sort"); // создаём кнопку «Сортировка»

Button N=new Button("Exit"); // создаём кнопку «Выход»

t=new TextField(20); // размер строки добавления

B.addActionListener(this); // слушатель событий для кнопки

C.addActionListener(this);

N.addActionListener(this);

t1=new TextArea(10,20); // размер окна добавления

B.setSize(80,40); // задаём размеры и расположение

C.setSize(80,40); // кнопок

N.setSize(80,40);

add(B); //добавляем кнопку "Добавить"

add(C); //добавляем кнопку "Сортировка"

add(t);

add(t1);

add(N); //добавляем кнопку "Выход"

MenuBar m=new MenuBar(); // создаём меню

setMenuBar(m);

Menu F=new Menu("What to do?");

MenuItem s1=new MenuItem("Append"); // создаём подменю

s1.addActionListener(this); //используем слушатель событий для

MenuItem s2=new MenuItem("Sort"); // каждого пункта подменю

s2.addActionListener(this);

MenuItem s3=new MenuItem("Exit");

s3.addActionListener(this);

F.add(s1);

F.add(s2);

F.add(s3);

m.add(F);

setBackground(Color.blue);

resize(400,400); // размер исходного окна

show();

}

public void actionPerformed(ActionEvent e){ // описание событий для выхода

if(e.getActionCommand().compareTo("Exit")==0)

System.exit(0); // выход из программы

else

if(e.getActionCommand().compareTo("Append")==0) // описание событий для

добавления

{

L.end(t.getText()); // вызов метода append

t1.setText(L.toString()); // добавление сроки в тестовое окно

}

else

if(e.getActionCommand().compareTo("Sort")==0) // описание событий для сортировки

{

L.sort(); // вызов метода sort

t1.setText(L.toString()); // сортировка списка
}

}

}
class B {

public static void main(String argv[])

{ new MyFrame(); } }

7.Описание внешнего вида и результат работы программы


Данная программа производит сортировку задаваемого циклического списка выбором, выполненная в виде оконного интерфейса. Выбор производится по порядку от меньшего к большему. Ввод списка производится с клавиатуры. С помощью текстовой строки и кнопки «Добавить», мы формируем односвязный список. Данные отображаются в специальном окне, далее мы сортируем список при помощи кнопки «Сортировка». После этой команды получаем в специальном окне уже отсортированный список. Для завершения работы программы предусмотрена кнопка «Выход».Все эти действия можно также выполнить при помощи скрытого меню.
Не отсортированный список


Отсортированный список



8.Вывод


В данной курсовой работе были рассмотрены функциональные возможности языка программирования JAVA и успешно реализован алгоритм сортировки циклического списка выбором с языка С++ на язык JAVA. Данный алгоритм реализован с использованием оконного интерфейса, удобного для пользователя.
Содержание:

1. Постановка задачи

2. Краткое описание алгоритма

  1. Особенности программирования в Java (стандартные классы, методы, интерфейсы)

  2. Словесное описание класса, методов, структур данных и алгоритмов

  3. Структурное и функциональное описание программы

  4. Текст программы с комментариями

  5. Описание внешнего вида и результат работы программы

  6. Вывод

Похожие:

Курсовая работа по дисциплине «Системное программное обеспечение» iconП. Ф. Лесгафта г. Санкт-Петербург Л. А. Заварухина информатика (лекции) Санкт-Петербург 2009 Содержание лекция
Новые термины и понятия: программа, программное обеспечение, базовое программное обеспечение, системное программное обеспечение,...
Курсовая работа по дисциплине «Системное программное обеспечение» iconТесты Дисциплина : системное программное обеспечение

Курсовая работа по дисциплине «Системное программное обеспечение» iconУчебно-методический комплекс по дисциплине "Системное программное обеспечение".
В разд. 3 7 даются общие сведения об архитектуре некоторых эвм, используемых далее в качестве примеров. Более детальное обсуждение...
Курсовая работа по дисциплине «Системное программное обеспечение» iconИнструкция по эксплуатации плат pc board производства фирмы Белатра. Программное обеспечение
Программное обеспечение включает в себя систему бухгалтерского учета и настроек работы игрового автомата
Курсовая работа по дисциплине «Системное программное обеспечение» iconСервис на предприятиях нефтегазового комплекса вопросы по специальности программное обеспечение компьютеров
Программное обеспечение компьютеров. (Общая характеристика программного обеспечения)
Курсовая работа по дисциплине «Системное программное обеспечение» iconПрограмма обучения по дисциплине
В070300 «Информационные системы», 5В070400 «Вычислительная техника и программное обеспечение»
Курсовая работа по дисциплине «Системное программное обеспечение» iconКурсовая работа включает: титульный лист
Курсовой работа по дисциплине «Технологии программирования» состоит из 2 частей: теоретическая часть; практическое задание
Курсовая работа по дисциплине «Системное программное обеспечение» iconМетодические рекомендации к практической работе №8 по дисциплине «Пакеты прикладных программ» 2008
Методические указания составлены в соответствии с рабочей программой по дисциплине «Пакеты прикладных программ» Специальности 230105...
Курсовая работа по дисциплине «Системное программное обеспечение» iconКурсовая работа по дисциплине «Лексикология английского языка»

Курсовая работа по дисциплине «Системное программное обеспечение» iconМинистерства финансов российской федерации курсовая работа по дисциплине

Разместите кнопку на своём сайте:
kk.convdocs.org



База данных защищена авторским правом ©kk.convdocs.org 2012-2017
обратиться к администрации
kk.convdocs.org
Главная страница