У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент


Інститут економіки та менеджменту “Галицька Академія”

 

КУРСОВА РОБОТА

з дисципліни ОСНОВИ ПРОГРАМУВАННЯ ТА АЛГОРИТМІЧНІ МОВИ

Тема: Сформувати файл “А”, що містить інформацію про номери телефонів такого зразка: порядковий номер запису, прізвище власника, його ініціали, номер телефону, адреса. Вивести на екран прізвище та ініціали тих, які проживають по вул. Шевченка і їхній номер телефону містить цифру “3”. При вимозі користувача записати таблицю із цією інформацією у файл “В”. Забезпечити можливість поповнення файлу “А” з клавіатури, а також вилучення обраних по порядковому номеру записів. Після модифікації файлу “А” таблиця, яка виводиться на екран і файл “В” повинні оновлюватись автоматично. Забезпечити можливість відновлення попередньої версії модифікованого файлу.

Зміст

Вступ

Важливим етапом в розвитку програмування стало створення і широке розповсюдження мови С++. Ця мова, зберігши засоби, стала загальновизнаним стандартом для написання системних і прикладних програм мови С (процедурно-орієнтована мова), ввела в практику програмування можливості нового технологічного підходу до розробки програмного забезпечення, що одержало назву "об'єктно-орієнтоване програмування". Упровадження в практику програмування об'єктно-орієнтованої парадигми дає розвиток нових областей інформатики, значне підвищення рівня технологічності створюваних програмних засобів, скорочення витрат на розробку і впровадження програм, їх повторне використання, залучення в процес розширення інтелектуальних можливостей ЕОМ. Об'єктний підхід інформаційного моделювання наочних областей все більш успішно застосовується як основа для структуризації їх інформаційних віддзеркалень і, зокрема, баз знань.

С++ - це мова програмування загального призначення, добре відома своєю ефективністю, економічністю. Вказані переваги С++ забезпечують хорошу якість розробки майже будь-якого виду програмного продукту. Використання С++ як інструментальної мови дозволяє одержувати швидкі і компактні програми. У багатьох випадках програми, написані на С++, порівнянні за швидкістю з програмами, написаними на мові асемблера.

Перерахуємо деякі істотні особливості мови С++:

С++ забезпечує повний набір операторів структурного програмування;

С++ пропонує незвичайно великий набір операцій. Багато операцій С++ відповідають машинним командам і тому допускають пряму трансляцію в машинний код. Різноманітність операцій дозволяє вибирати їх різні набори для мінімізації результуючого коду;

С++ підтримує покажчики на змінні і функції. Покажчик на об'єкт програми відповідає машинній адресі цього об'єкту. За допомогою розумного використання покажчиків можна створювати ефективно виконувані програми, оскільки покажчики дозволяють посилатися на об'єкти тим же самим шляхом, як це робить ЕОМ. С++ підтримує арифметику покажчиків, і тим самим дозволяє здійснювати безпосередній доступ і маніпуляції з адресами пам'яті.

Проте, слід зазначити, що переваги мови С++ стають очевидними при реалізації великих програмних проектів.

1 Основні поняття мови С++

1.1Функція Main

Кожна програма написана на мові С++ повинна містити функцію main.

Тіло функції main, береться у фігурні дужки { }.

Загальна структура функції main така:

main()

{

/* Код, реалізуючий main */

}

1.2 Коментарі

Текст на С++, укладений в дужки /* і */, компілятором ігнорується. Коментарі служать двом цілям: документувати код і полегшити відладку. Якщо програма працює не так, як треба, то іноді виявляється корисним закоментувати частину коду (тобто винести її в коментар), наново скомпілювати програму і виконати її. Якщо після цього програма почне працювати правильно, то значить, закоментований код містить помилку і повинен бути виправлений.

1.3 Директиви Include

У більшість програм на С++ підставляються один або декілька

файлів, в основному в самий початок коду головної функції main.

Поява директив

#include <файл_1>

#include "файл_2"

...

#include <файл_n>

призводить до того, що препроцесор підставляє на місце цих директив тексти файлів файл_1, файл_2 ..., файл_n відповідно.

Якщо ім'я файлу укладено в кутові дужки <...>, то пошук файлу проводиться в спеціальному розділі файлів, що підставляються. На відміну від багатьох інших операторів С++ директива Include не повинна закінчуватися крапкою з комою.

1.4 Макро

За допомогою директиви #define, вслід за якою пишуться ім'я макро і значення макро, виявляється можливим вказати препроцесору, щоб він при будь-якій появі в початковому файлі на С++ даного імені макро замінював це ім'я на відповідні значення макро.

Наприклад, директива

#define pi 3.1415926

зв'язує ідентифікатор pi із значенням 3.1415926. Після значення макро (;) не ставиться.

1. 5 Типи даних

У С++ змінні повинні бути описані, а їх тип специфіковані до того, як ці змінні будуть використані.

При описі змінних застосовується префіксний запис, при якому спочатку вказується тип, а потім - ім'я змінної.

Наприклад:

float weight;

int exam_score;

char ch;

Змінні можна ініціалізувати в місці їх описів.

Приклад:

int height = 71 ;

2 Код програми

#include <conio.h>

#include <conio.h>

#include <stdio.h>

#include <string.h>

struct stAbonent

{

char sPrizv[15];

char cInic1,cInic2;

char sPhone[14];

char sAddr[20];

stAbonent *next;

};

struct stAbonent *first,*rob;

int records;

void addrecord()

{

char string[100];

int i;

char q;

clrscr();

printf("\nПрiзвище: ");

scanf("%s",string);

strncpy(rob->sPrizv,string,14);

printf("Iнiцiали: ");

rob->cInic1=getch();

printf("%c.",rob->cInic1);

rob->cInic2=getch();

printf("%c.\n",rob->cInic2);

printf("Телефон: ");

scanf("%s",string);

strncpy(rob->sPhone,string,13);

printf("Адреса: ");

scanf("%s",string);

strncpy(rob->sAddr,string,19);

rob->next=new stAbonent;

rob=rob->next;

rob->next=NULL;

records++;

}

void deleterecord(void)

{

int del,i=0;

clrscr();

printf("Введiть номер запису для вилучення:");

scanf("%i",&del);

if ((del<1)||(del>records)) return;

if (del==1) {

first=first->next;

} else {

rob=first;

while(rob->next!=NULL)

{

i++;

if (i==(del-1)) {

rob->next=(rob->next)->next;

break;

}

rob=rob->next;

}

}

records--;

return;

}

void showrecords(void)

{

int i=0;

clrscr();

rob=first;

printf("%-4s %-16s %-4s %-15s %-21s\n","N",

"Прiзвище","Iнiц","Телефон","Адреса");

printf("-----------------------------------------------------");

while(rob->next!=NULL)

{

printf("\n%-4i %-16s %c.%c. %-15s %-21s", ++i,

rob->sPrizv,rob->cInic1,rob->cInic2,

rob->sPhone,rob->sAddr);

rob=rob->next;

}

records=i;

printf("\nНатиснiть будь-яку клавiшу для продовження...");

getch();

};

void showmatch(void)

{

int i=0,flag;

char *c;

FILE *out;

if ((out = fopen("B", "w+"))

== NULL)

{

printf("Cannot create file 'B'.\n");

return;

}

rob=first;

printf("%-4s %-16s %-4s %-15s %-21s\n","N","Прiзвище",

"Iнiц","Телефон","Aдреса");

printf("-----------------------------------------------------");

while(rob->next!=NULL)

{

i++;

flag=0;

c=rob->sPhone;

while (*c++)

if (*c=='3')

{

flag=1;

break;

}

if (flag==1) {

if (strcmp(rob->sAddr,"Шевченка")<0) {

flag=0;

}

}

if (flag==1) {

printf("\n%-4i %-16s %c.%c. %-15s %-21s",i,rob->sPrizv,

rob->cInic1, rob->cInic2,rob->sPhone,rob->sAddr);

fprintf(out,"%-3i %-15s %c %c %-14s %-20s\n",++i,

rob->sPrizv,rob->cInic1,rob->cInic2,

rob->sPhone,rob->sAddr);

};

rob=rob->next;

}

fclose(out);

};

int save_to_file(char *filename)

{

FILE *out;

int i=0;

if ((out = fopen(filename, "w+"))

== NULL)

{

printf("Cannot


Сторінки: 1 2