- •Курсовая работа
- •Пояснительная записка
- •Содержание
- •Задание
- •Структурное описание разработки
- •Функциональное описание
- •Класс tList
- •Класс BigInt
- •Класс Elm
- •Класс window
- •Класс MainClass
- •Интерфейс object
- •Приложение Класс MainClass
- •Класс window
- •Класс tList
- •Класс Elm
- •Класс BigInt
- •Интерфейс object
Класс tList
import java.io.*;
public class Tlist implements java.io.Serializable
{
elm head;
public Tlist()
{
head=null;
}
void insert_numb(int N,object val)
{
if(head==null)
{
head=new elm(val);
return;
}
elm p=head;
for(int i=1;i<N;i++,p=p.next);
p.before(val);
if(N==1) head=head.prev;
}
void del_numb(int N)
{
if(head==null) return;
if(head==head.next){head=null; return;}
elm p=head;
for(int i=1;i<N;i++,p=p.next);
p.remove();
}
int find_max()
{
int i,_max;
elm max=head; //первый элемент максимальный
i =1;_max=1;
elm p=head.next;
for(;p!=head;p=p.next,i++)
if((p.obj.Cmp(max.obj))>0){ max=p;_max=i;}
return _max;
}
int find_min()
{
elm min=head; //первый элемент максимальный
elm p;
int i,_min;
i=0;_min=0;
for(p=head.next;p!=head;p=p.next)
if((p.obj.Cmp(min.obj))<0){ min=p;_min=i;}
return _min;
}
void insert_por(object val)
{
if(head==null)
{
head=new elm(val);
return;
}
elm p=head;
if((p.obj.Cmp(val))>0)
{
insert_numb(1,val);
return;
}
p=p.next;
for(;p!=head && p.obj.Cmp(val)<0;p=p.next);
p.before(val);
}
//сортировка вставками
public void sort()
{
Tlist out=new Tlist();
elm p=head;
out.insert_por(p.obj.Copy());
p=p.next;
while(p!=head)
{
out.insert_por(p.obj.Copy());
p=p.next;
}
destroy();
head=out.head;
out.head=null;
//show();
}
void destroy()
{
if(head==null) return;
head=null;
}
int size()
{
int i=0;
elm p=head;
i++;
p=p.next;
for(;p!=head;p=p.next,i++);
return i;
}
public void show()
{
if(head==null)
return;
head.put();
elm p=head.next;
for(;p!=head;p=p.next)
{
p.put();
}
}
public object Get_obj(int index)
{
if(head==null)
return null;
if(index==-1) return head.prev.obj;
if(index==0) return head.obj;
elm p=head;
p=p.next;
for(int i=1;p!=head && i<index;p=p.next,i++);
return p.obj;
}
public void Save_list(String fn)
{
try
{
FileOutputStream F=new FileOutputStream(fn);
int v0=size();
integer t=new integer(v0);
t.Save(F);
elm p=head;
F.write(p.obj.Type());
p.obj.Save(F);
p=p.next;
for (;p!=head;p=p.next)
{
F.write(p.obj.Type());
p.obj.Save(F);
}
F.close();
}
catch(FileNotFoundException e){
System.out.println("Невозможно произвести запись в файл: " + fn);}
catch (IOException e){
System.out.println("Ошибка ввода/вывода: " + e.toString());}
catch (Exception e){
System.out.println("Ошибка ввода/вывода объекта: " + e.toString());
}
}
public void BSave_list(String fn) throws Exception
{
FileOutputStream F=new FileOutputStream(fn);
Object objSave = this;
ObjectOutputStream oos = new ObjectOutputStream(F);
oos.writeObject(objSave);
F.close();
}
public void Load_list(String fn)
{
try
{
FileInputStream F=new FileInputStream(fn);
integer N_ob=new integer(0);
N_ob.Load(F);
int i;
int T;
object val;
integer dati=new integer(0);
cstring dats=new cstring();
for(i=0;i<N_ob.val;i++)
{
T=F.read();
switch(T)
{
case 1: dati.Load(F); val=dati; break;
case 2: dats.Load(F); val=dats; break;
default: dats.Load(F); val=dats; break;
}
insert_numb(0,val.Copy());
}
F.close();
}
catch(FileNotFoundException e){
System.out.println("Невозможно произвести запись в файл: " + fn);}
catch (IOException e){
System.out.println("Ошибка ввода/вывода: " + e.toString());}
catch (Exception e){
System.out.println("Ошибка ввода/вывода объекта: " + e.toString());
}
}
public void BLoad_list(String fn) throws Exception
{
FileInputStream F = new FileInputStream(fn);
ObjectInputStream ois = new ObjectInputStream(F);
Object objRead = ois.readObject();
Tlist tmp=(Tlist)objRead;
head = tmp.head;
F.close();
}
}