DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Лабораторна робота №3: Інтегровані структури даних, запису

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних наук та інформаційних технологій
Факультет:
Комп’ютерні науки
Кафедра:
Кафедра інформаційних систем та мереж

Інформація про роботу

Рік:
2008
Тип роботи:
Лабораторна робота
Предмет:
Програмування
Група:
КН
Коротко про документ

Про що ця робота

У роботі досліджено інтегровані структури даних та роботу із записами мовою програмування C. Розроблено програму для введення, збереження та сортування даних про текстові редактори.

У роботі розглядаються

  • Структури даних
  • Записи
  • Модульне програмування
  • Сортування масивів
  • Файловий ввід-вивід
  • Мова програмування C

Зміст і розділи

  1. Мета роботи
  2. Постановка завдання
  3. Індивідуальні завдання
  4. Текст програми
  5. Результати виконання програми
  6. Висновки
Для кого:Студенти технічних спеціальностей вищих навчальних закладів
Викладачі:Не вказано

Ключові поняття

структура данихзаписмодульне програмуваннямасивсортуванняфайлконсольне введеннямова C

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний університет «Львівська Політехніка» Кафедра Інформаційних систем та мереж Лабораторна робота №3 на тему Інтегровані структури даних, запису. Мета роботи: придбання і закріплення навиків у роботі із записами, в інтеграції даних, в модульному програмуванні. Постановка завдання Для заданої прикладної області розробити опис об'єктів цієї області. Розробити процедури, що реалізують базові операції над цими об'єктами, зокрема: -текстове введення-виведення (консольний і файловий); -присвоювання; -задання константних значень; -порівняння (не менше 2-х типів). Підготувати файл початкових даних, що містять не менше 10 значень конкретних об'єктів. Використовуючи процедури і описи модуля типу даних, розробити програму, що забезпечує введення початкових даних з першого файлу даних в пам'ять і зберігання їх в масиві, сортування масиву по алфавітному і по числовому параметру. Варіанти індивідуальних завдань Для кожної області перераховані параметри об'єкту. Серед параметрів обов'язково є ключове алфавітне поле (наприклад, прізвище), яке ідентифікує об'єкт, у кожного об'єкту є також одне або декілька числових полів, по яким вірогідні звернення до об'єкту. Набір характеристик може бути розширений і ускладнений по розсуду виконавця. Індивідуальні завдання: 8 Текстові редактори найменування, фірма-виготівник, кількість вікон, кількість шрифтів, вартість   Текст програми: #include <conio.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #define n 5 struct TST { char name[20]; char firm[20]; int nwind; int nfont; int price; }; from_file(TST *St); from_keyb(TST *St); to_scr(TST *St); to_file(TST *St); sort(TST *St, int k); void main() { TST St[n]; char c; clrscr(); printf("Виберiть дiю:\n"); printf("[1] Ввести данi з клавiатури.\n"); printf("[2] Зчитати данi з файлу.\n"); z:c=getch(); switch (c) { case '1': {clrscr(); from_keyb(St); break; } case '2': { from_file(St); break; } default: goto z; } clrscr(); printf("Виберiть дiю:\n"); printf("[1] Сортувати за назвою.\n"); printf("[2] Сортувати за фiрма-виготiвником\n"); printf("[3] Сортувати за кiлькiстю вiкон\n"); printf("[4] Сортувати за кiлькiстю шрифтiв\n"); printf("[5] Сортувати за вартiстю\n"); printf("[6] Не сортувати.\n"); z1:c=getch(); switch (c) { case '1': {sort(St,1); break; } case '2': {sort(St,2); break; } case '3': {sort(St,3); break; } case '4': {sort(St,4); break; } case '5': {sort(St,5); break; } case '6': break; default: goto z1; } clrscr(); printf("Виберiть дiю:\n"); printf("[1] Ввести данi на екран.\n"); printf("[2] Зчитати данi в файл.\n"); printf("[3] На екран i в файл.\n"); zz:c=getch(); switch (c) { case '1': {clrscr(); printf("Введенi/Зчитанi данi:\n"); printf("--------------------------------------------------------------------------------"); to_scr(St); break;} case '2': {clrscr(); printf("\Данi записано в файл.\n"); to_file(St); break;} case '3': {clrscr(); printf("\nВведенi/Зчитанi данi:\n"); to_scr(St); to_file(St); break;} default: goto zz; } getch(); } // ========= FUNCTIONS ============ int from_file(TST *st) { FILE *f; int i=0; TST p; f=fopen("C:\\DATA.BIN","rb"); while(fread(&p,sizeof(p),1,f),(!feof(f))) {st[i]=p; i++;} fclose(f); printf("Данi зчитано.\n"); return 0; } from_keyb(TST *St) {int i; TST p; printf("Введiть iнформацiю про текстові редактори:\n"); for(i=0; i<n; i++) {fflush(stdin); printf("\n№ %d:\n---------------\n",i+1); printf("Назва: "); gets(St[i].name); printf("Фiрма-виготiвник: "); gets(St[i].firm); printf("Кiлькiсть вiкон: "); scanf("%d",&St[i].nwind); printf("Кiлькiсть шрифтiв: "); scanf("%d",&St[i].nfont); printf("Вартiсть: "); scanf("%d",&St[i].price); } return 0; } to_file(TST *St) {FILE *f; int i; TST p; f=fopen("C:\\DATA.BIN","wb"); for (i=0; i<n; i++) { p=St[i]; fwrite(&p,sizeof(p),1,f); } return 0; } to_scr(TST *St) {int i; printf("№ Назва Фiрма-вигот. К-сть вiкон К-сть. шрифтiв Вартiсть\n"); printf("--------------------------------------------------------------------------------"); for (i=0; i<n; i++) { printf("%-3d %-18s %-15s %-12d %-15d %-d\n",i+1,St[i].name,St[i].firm,St[i].nwind,St[i].nfont,St[i].price); } printf("--------------------------------------------------------------------------------"); return 0; } sort(TST *St, int k) {int i,j; TST p; for (j=0; j<n; j++) for (i=0; i<n-1; i++) { switch(k) { case 1: {if(strcmp(St[i].name,St[i+1].name)>0) goto true; else goto false; } case 2: {if(strcmp(St[i].firm,St[i+1].firm)>0) goto true; else goto false; } case 3: {if(St[i].nwind>St[i+1].nwind) goto true; else goto false; } case 4: {if(St[i].nfont>St[i+1].nfont) goto true; else goto false;} case 5: {if(St[i].price>St[i+1].price) goto true; else goto false;} } true: { p=St[i]; St[i]=St[i+1]; St[i+1]=p; } false: // go to continue } return 0; } Результати виконання програми:    Висновки: При виконанні даної роботи я закріпив навики в роботі із записами, в інтеграції даних та в модульному програмуванні.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!