ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Реалізація списку
         

     

    Інформатика, програмування
    Реалізація списку

    Необхідно реалізувати перелік такого виду:

    Технічний опис програми.

    У програмі передбачена робота зі списком, що включає в себе:

    Створення нового вписка;

    Додавання елемента в список;

    Виведення списку на дисплей;

    Збереження даних списку в файл;

    Читання даних з файлу;

    Видалення списку з пам'яті комп'ютера;

    Пошук елемента в списку;

    Сортування списку;

    Видалення елемента списку.

    Специфікація програми.

    Введення даних в програму може здійснюватися двома способами: введення з клавіатури або з файлу.

    Для роботи з файлом необхідно на відповідний запит програми ввести ім'я файлу, з якого будуть взяті дані для побудови списку.

    Для нормальної роботи програми потрібно PC сумісний комп'ютер і компілятор Borland 3.01 і вище. При використання іншого поєднуючи характеристик системи на якій буде тестуватися програма можливі деякі розбіжності з результатами тесту, але в основному нічого страшного статися не повинно.

    Текст програми.

    # include

    # include

    class List

    (struct Tree

    (int Body;

    Tree * LP;

    Tree * RP;

    Tree (int Bdy = 0) (Body = Bdy; LP = NULL; RP = NULL;)

    ~ Tree () (Body = 0; LP = NULL; RP = NULL;)

    );

    public:

    List (int Digit = 0);

    Tree * Root;

    List * LNext;

    List * LPrev;

    );

    List:: List (int Digit)

    (Root = NULL;

    for (int i = Digit * 10; i (Tree * PTree;

    PTree = new Tree (i);

    PTree-> LP = NULL;

    PTree-> RP = NULL;

    if (Root == NULL)

    Root = PTree;

    else

    (Tree * PTree1 = Root;

    do

    (if (PTree1-> LP! = NULL)

    PTree1 = PTree1-> LP;)

    while (PTree1-> LP! = NULL);

    PTree1-> LP = PTree;

    PTree = NULL; PTree1 = NULL;

    )

    )

    )

    class TreeWork: private List

    (public:

    void TreeWorkStart ();

    private:

    int ElementQuantity;

    int Mass;

    int i;

    List * BegP;

    List * PList;

    int MainMenu ();

    int Work (int Task);

    int MakeNewList ();

    int AddElements ();

    int PrintList ();

    void EraseList ();

    int DeleteElement ();

    int FindElement ();

    int SubMenu ();

    int SubWork (int Task);

    int SortByIncrease ();

    int SortByDecrease ();

    int SaveList ();

    int OpenList ();

    protected:

    void GoThroughTree (Tree * L);

    void Erase (Tree * L);

    );

    int TreeWork:: MainMenu ()

    (cout < cout << "1. Make New List." < cout << "2. Add Element." < cout << "3. Print List." < cout << "4. Delete Element." < cout << "5. Save List." < cout << "6. Erase List." < cout << "7. Open File." < cout << "8. Find Element." < cout << "9. Sort List." < cout << "0. Exit." < cout < int i;

    do

    (cin>> i;

    if (i <0 | | i> 9) cout <)

    while (i <0 | | i> 9);

    return i;

    )

    int TreeWork:: SubMenu ()

    (cout < cout << "1. Sort list by increase." < cout << "2. Sort list by decrease." < int i;

    cout << "Your choice:";

    do

    (cin>> i;

    if (i <1 | | i> 2) cout <)

    while (i <1 | | i> 2);

    return i;

    )

    int TreeWork:: SubWork (int Task)

    (switch (Task)

    (case 1: SortByIncrease (); break;// Increase

    case 2: SortByDecrease (); break;// Decrease

    )

    return 0;

    )

    int TreeWork:: Work (int Task)

    (switch (Task)

    (case 1: ElementQuantity = MakeNewList (); break;// Make New List

    case 2: ElementQuantity + = AddElements (); break;// Add Element

    case 3: PrintList (); break;// Print List

    case 4: DeleteElement (); break;// Delete Element

    case 5: SaveList (); break;// Save List

    case 6: ElementQuantity = 0; EraseList (); break;// Erase List

    case 7: OpenList (); break;// Open File

    case 8: FindElement (); break;// Find Element

    case 9: SubWork (SubMenu ()); break;// Sort List

    case 0: EraseList (); return -1;// Exit

    )

    return 0;

    )

    void TreeWork:: TreeWorkStart ()

    (ElementQuantity = 0;

    do () while (Work (MainMenu ())!=- 1);

    )

    int TreeWork:: MakeNewList ()

    (if (BegP! = NULL)

    (cout < int Quant;

    cout < do

    (cin>> Quant;

    if (Quant <1)

    cout <)

    while (Quant <1);

    for (int i = 0; i (cout < int Digit; cin>> Digit;

    PList = new List (Digit);

    if (BegP == NULL)

    (BegP = PList;

    BegP-> LNext = BegP;

    BegP-> LPrev = BegP;

    PList = NULL;)

    else

    (List * PList1 = BegP-> LPrev;

    if (PList1 == BegP)

    (BegP-> LNext = PList;

    BegP-> LPrev = PList;

    PList-> LNext = BegP;

    PList-> LPrev = BegP;

    PList = NULL; PList1 = NULL;)

    else

    (BegP-> LPrev = PList;

    PList1-> LNext = PList;

    PList-> LNext = BegP;

    PList-> LPrev = PList1;

    PList = NULL; PList1 = NULL;)

    )

    )

    return Quant;

    )

    int TreeWork:: AddElements ()

    (if (BegP == NULL)

    (MakeNewList (); return 0;)

    int Quant;

    cout < do

    (cin>> Quant;

    if (Quant <1)

    cout <)

    while (Quant <1);

    for (int i = 0; i (cout < int Digit;

    cin>> Digit;

    PList = new List (Digit);

    List * PList1 = BegP-> LPrev;

    if (PList1 == BegP)

    (BegP-> LNext = PList;

    BegP-> LPrev = PList;

    PList-> LPrev = BegP;

    PList-> LNext = BegP;

    PList1 = NULL; PList = NULL;)

    else

    (BegP-> LPrev = PList;

    PList-> LNext = BegP;

    PList-> LPrev = PList1;

    PList1-> LNext = PList;

    PList = NULL; PList1 = NULL;)

    )

    return Quant;

    )

    int TreeWork:: PrintList ()

    (if (BegP == NULL)

    (cout < cout < PList = BegP;

    int i = 1;

    do

    (cout < GoThroughTree (PList-> Root);

    cout < i + +;

    PList = PList-> LNext;)

    while (PList! = BegP);

    return 0;

    )

    void TreeWork:: GoThroughTree (Tree * L)

    (Tree * PL = L, * PL1;

    if (PL-> LP! = NULL)

    (PL1 = PL;

    PL = PL-> LP;

    cout <<"("<< PL1-> Body <<","<< PL-> Body << ")";

    GoThroughTree (PL);)

    if (PL-> RP! = NULL)

    (PL1 = PL;

    PL = PL-> RP;

    cout <<"("<< PL1-> Body <<","<< PL-> Body << ")";

    GoThroughTree (PL);)

    )

    void TreeWork:: Erase (Tree * L)

    (Tree * PL = L;

    if (PL-> LP! = NULL)

    (PL = PL-> LP;

    Erase (PL);)

    if (PL-> RP! = NULL)

    (PL = PL-> RP;

    Erase (PL);)

    PL-> LP = NULL;

    PL-> RP = NULL;

    )

    void TreeWork:: EraseList ()

    (if (BegP! = NULL)

    (do

    (List * PList1 = BegP-> LNext;

    PList = PList1-> LNext;

    BegP-> LNext = PList;

    PList-> LPrev = BegP;

    Erase (PList1-> Root);

    delete [] PList1;

    )

    while (PList! = BegP);

    BegP = NULL; PList = NULL;

    )

    )

    int TreeWork:: DeleteElement ()

    (cout < int Number = 0;

    cin>> Number;

    if (Number> ElementQuantity | | Number <0)

    (cout < Number -;

    PList = BegP;

    for (int i = 0; i PList = PList-> LNext;

    List * PList1 = PList-> LNext, * PList2 = PList-> LPrev;

    if (PList == BegP)

    (PList1-> LPrev = PList2;

    PList2-> LNext = PList1;

    PList-> LNext = NULL;

    PList-> LPrev = NULL;

    delete [] PList;

    BegP = PList1;

    PList1 = NULL; PList2 = NULL;)

    else

    (PList1-> LPrev = PList2;

    PList2-> LNext = PList1;

    PList-> LNext = NULL;

    PList-> LPrev = NULL;

    delete [] PList;

    PList1 = NULL; PList2 = NULL;)

    ElementQuantity -;

    return 0;

    )

    int TreeWork:: FindElement ()

    (cout < int Number = 0;

    cin>> Number;

    PList = BegP;

    do

    (Tree * PT = PList-> Root;

    if (Number> PT-> Body & & Number Body +10)

    (cout < GoThroughTree (PList-> Root);

    PList = NULL; cout < PList = PList-> LNext;

    )

    while (PList! = BegP);

    cout < PList = NULL;

    return -1;

    )

    int TreeWork:: SortByIncrease ()

    (

    if (BegP == NULL) (cout < List * PList1 = BegP; PList = BegP;

    do

    (do

    (if (PList1-> Root-> Body> PList-> Root-> Body)

    (Tree * PT;

    PT = PList1-> Root;

    PList1-> Root = PList-> Root;

    PList-> Root = PT;

    PT = NULL;)

    PList1 = PList1-> LNext;

    )

    while (PList1! = BegP);

    PList = PList-> LNext;

    )

    while (PList! = BegP);

    return 0;

    )

    int TreeWork:: SortByDecrease ()

    (

    if (BegP == NULL) (cout < List * PList1 = BegP; PList = BegP;

    do

    (do

    (if (PList1-> Root-> Body Root-> Body)

    (Tree * PT;

    PT = PList1-> Root;

    PList1-> Root = PList-> Root;

    PList-> Root = PT;

    PT = NULL;)

    PList1 = PList1-> LNext;

    )

    while (PList1! = BegP);

    PList = PList-> LNext;

    )

    while (PList! = BegP);

    return 0;

    )

    int TreeWork:: SaveList ()

    (if (BegP == NULL)

    (cout < ofstream F;

    char * FileName = new char [25];

    cout <> FileName;

    F.open (FileName);

    PList = BegP;

    do

    (i = 0;

    Mass = PList-> Root-> Body;

    PList = PList-> LNext;

    if (PList! = BegP)

    F < else

    F <)

    while (PList! = BegP);

    F.close ();

    delete [] FileName;

    return 0;

    )

    int TreeWork:: OpenList ()

    (if (BegP! = NULL)

    (cout < cout < char * FileName = new char [25];

    cin>> FileName;

    ifstream f;

    ElementQuantity = 0;

    f.open (FileName);

    char Next;

    Next = f.peek ();

    while (Next! = EOF)

    (

    f>> Mass;

    PList = new List (Mass/10);

    if (BegP == NULL)

    (BegP = PList;

    BegP-> LNext = BegP;

    BegP-> LPrev = BegP;

    PList = NULL;)

    else

    (List * PList1 = BegP-> LPrev;

    if (PList1 == BegP)

    (BegP-> LNext = PList;

    BegP-> LPrev = PList;

    PList-> LNext = BegP;

    PList-> LPrev = BegP;

    PList = NULL; PList1 = NULL;)

    else

    (BegP-> LPrev = PList;

    PList1-> LNext = PList;

    PList-> LNext = BegP;

    PList-> LPrev = PList1;

    PList = NULL; PList1 = NULL;)

    )

    Next = f.peek ();

    ElementQuantity + +;

    )

    f.close ();

    delete [] FileName;

    return 0;

    )

    TreeWork TW;

    void main ()

    (TW.TreeWorkStart ();)

    Результати роботи програми.

    Початок роботи:

    Main Menu:

    1. Make New List.

    2. Add Element.

    3. Print List.

    4. Delete Element.

    5. Save List.

    6. Erase List.

    7. Open File.

    8. Find Element.

    9. Sort List.

    0. Exit.

    Your choice:

    Для створення списку вибираємо пункт 1:

    Main Menu:

    1. Make New List.

    2. Add Element.

    3. Print List.

    4. Delete Element.

    5. Save List.

    6. Erase List.

    7. Open File.

    8. Find Element.

    9. Sort List.

    0. Exit.

    Your choice: 1

    Input kol-vo of elements:

    Вводимо кількість записів у списку (припустимо 4):

    Main Menu:

    1. Make New List.

    2. Add Element.

    3. Print List.

    4. Delete Element.

    5. Save List.

    6. Erase List.

    7. Open File.

    8. Find Element.

    9. Sort List.

    0. Exit.

    Your choice: 1

    Input kol-vo of elements: 4

    Input digit:

    Успішне завершення введення списку:

    Input kol-vo of elements: 4

    Input digit: 1

    Input digit: 2

    Input digit: 3

    Input digit: 4

    Main Menu:

    1. Make New List.

    2. Add Element.

    3. Print List.

    4. Delete Element.

    5. Save List.

    6. Erase List.

    7. Open File.

    8. Find Element.

    9. Sort List.

    0. Exit.

    Your choice:

    Після введення списку потрапляємо в головне меню де вибираємо пункт додати елементи:

    Input digit: 1

    Input digit: 2

    Input digit: 3

    Input digit: 4

    Main Menu:

    1. Make New List.

    2. Add Element.

    3. Print List.

    4. Delete Element.

    5. Save List.

    6. Erase List.

    7. Open File.

    8. Find Element.

    9. Sort List.

    0. Exit.

    Your choice: 2

    Input kol-vo of elements:

    Програма просить ввести кількість елементів яке ми хочемо додасть до нашого списку. Вводимо 1 (для прикладу):

    Input digit: 2

    Input digit: 3

    Input digit: 4

    Main Menu:

    1. Make New List.

    2. Add Element.

    3. Print List.

    4. Delete Element.

    5. Save List.

    6. Erase List.

    7. Open File.

    8. Find Element.

    9. Sort List.

    0. Exit.

    Your choice: 2

    Input kol-vo of elements: 1

    Input digit:

    Далі відбувається введення списку як було описано вище.

    Після вдалого завершення додавання елемента в список ми знову потрапляємо в головне меню, де вибираємо пункт виведення списку на екран монітора:

    1 element: 1234

    2 element: 2345

    3 element: 3456

    4 element: 4567

    5 element: 2345

    Main Menu:

    1. Make New List.

    2. Add Element.

    3. Print List.

    4. Delete Element.

    5. Save List.

    6. Erase List.

    7. Open File.

    8. Find Element.

    9. Sort List.

    0. Exit.

    Your choice:

    Швидко прослизнувши повз Ваших очей незрозумілі дані ви знову потрапляєте в головне меню, де обираєте пункт видалення елемента:

    2 element: 2345

    3 element: 3456

    4 element: 4567

    5 element: 2345

    Main Menu:

    1. Make New List.

    2. Add Element.

    3. Print List.

    4. Delete Element.

    5. Save List.

    6. Erase List.

    7. Open File.

    8. Find Element.

    9. Sort List.

    0. Exit.

    Your choice: 4

    Input number of element: 5

    Після чого елемент до введеного номера був знищений. Після вдалого завершення видалення елемента Ви знову потрапляєте в головне меню, де обираєте пункт збереження списку:

    Main Menu:

    1. Make New List.

    2. Add Element.

    3. Print List.

    4. Delete Element.

    5. Save List.

    6. Erase List.

    7. Open File.

    8. Find Element.

    9. Sort List.

    0. Exit.

    Your choice: 5

    Input file name: demon13.txt

    Після введення імені файлу дані зі списку потрапляють на диск. І ви знову в головному меню, де обираєте видалення списку:

    5. Save List.

    6. Erase List.

    7. Open File.

    8. Find Element.

    9. Sort List.

    0. Exit.

    Your choice: 5

    Input file name: demon13.txt

    Main Menu:

    1. Make New List.

    2. Add Element.

    3. Print List.

    4. Delete Element.

    5. Save List.

    6. Erase List.

    7. Open File.

    8. Find Element.

    9. Sort List.

    0. Exit.

    Your choice: 6

    Після чого всі дані в списку безповоротно вмирають і Ви знову у головного списку, і обираєте Ви - відкрити файл:

    5. Save List.

    6. Erase List.

    7. Open File.

    8. Find Element.

    9. Sort List.

    0. Exit.

    Your choice: 6

    Main Menu:

    1. Make New List.

    2. Add Element.

    3. Print List.

    4. Delete Element.

    5. Save List.

    6. Erase List.

    7. Open File.

    8. Find Element.

    9. Sort List.

    0. Exit.

    Your choice: 7

    Input file name: demon13.txt

    Після чого вашому списку оживає і ... не треба "і" - краще продовжимо - Ви в головному меню і Ви обираєте знайти елемент:

    Main Menu:

    1. Make New List.

    2. Add Element.

    3. Print List.

    4. Delete Element.

    5. Save List.

    6. Erase List.

    7. Open File.

    8. Find Element.

    9. Sort List.

    0. Exit.

    Your choice: 8

    Input number, you want to find: 2

    The first element that we fined out:

    1234

    Ви вводите те що хотіли знайти і - знаходите в рядку ХХХХХ. Головне меню/Сортування:

    Main Menu:

    1. Make New List.

    2. Add Element.

    3. Print List.

    4. Delete Element.

    5. Save List.

    6. Erase List.

    7. Open File.

    8. Find Element.

    9. Sort List.

    0. Exit.

    Your choice: 9

    Sub Menu:

    1. Sort list by increase.

    2. Sort list by decrease.

    Your choice:

    Ту ми можемо сортувати за зростанням або зменшенням (адже у людини завжди має бути вибір!). Після сортування Головне меню/Вихід! Всі програма завершилася успішно! А оскільки ці тести ніхто не читає, то можна сказати що комп'ютери в нашому інституті зроблені з дуба.

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status