Програма обліку та вибірки інформації про країни h2>
Пояснювальна записка до курсової роботи з дисципліни
"Основи алгоритмізації і програмування" p>
Виконав: студент гр. 96-ВВ3 Бубнов А.В. p>
Пензенський
державний технічний університет, Кафедра "Обчислювальна техніка" p>
Пенза 1997 p>
Вступ h2>
З моменту появи перших зразків персональних комп'ютерів пройшло не так вже й багато
часу, але зараз без них вже немислимо величезна кількість областей
людської діяльності - економіка, управління, наука, інженерна справа,
видавнича справа, освіта, культура і т.д. p>
Інтерес до персональних комп'ютерів постійно
росте, а коло їх користувачів
безперервно расшіряется.В число користувачів
ПЕОМ залучаються як новачки в комп'ютерному справі, так і
фахівці з інших класів ЕОМ.
p>
Мова С + + - універсальна мова загального призначення,
область додатків якого - програмування систем в самому широкому сенсі.
Крім цього, С + + успішно використовується як у
багатьох додатках, так і в
потужних операційних системах. Реалізація С + +
здійснена для машин в діапазоні від найпростіших персональних
комп'ютерів до найпотужніших суперкомп'ютерів і для всіх операційних систем. p>
1 Постановка завдання h2>
Завдання курсової роботи
полягає в розробці на мові програмування С + + програми обліку і
вибірки інформації про країни, яка має здійснювати наступні функції: p>
1) Введення інформації; p>
2) Запис інформації у файл; p>
3) Виведення інформації на екран; p>
4) Вибірка інформації по заданому ознакою
(комбінації ознак); p>
5) Збір статистики по заданому ознакою (2-3) та
побудова результатів статистики у вигляді лінійної діаграми. p>
Імена файлів задаються в діалозі з користувачем. p>
Робота програми повинна бути організована з
використанням меню. p>
Програму розробити на мові С + + v.3.1. p>
2 Метод вирішення завдання h2>
Аналізуючи постановку завдання стає зрозуміло, що для
її рішення необхідно застосувати метод багатофункціонального програмування --
цей метод заснований на розбивання програми на окремі функціональні модулі,
які викликаються з основної програми в процесі її роботи. p>
В основі розробки такої програми лежить нізходящее
програмування - тобто спочатку розробляється основна програма - в даному випадку
програма введення тексту на екран, обробки функціональних клавіш і меню, з
допомогою вибору пунктів якого буде надалі організовуватися її робота.
При виборі того чи іншого пункту меню або натискання функціональної клавіші буде
викликатися один або кілька підпрограм, але на початковому етапі розробки
програми методом спадного програмування замість цих підпрограм
що ставить "заглушки" - порожні підпрограми, які в процесі
розробки будуть замінюватися програмами, які виконують певну функцію. p>
3 Опис логічного подання даних h2>
Вхідними даними в програмі є: p>
Файл бази даних, який записаний на диску у файлі
country.dat. p>
Дані, які в процесі роботи програми можна
додати, видалити або відредагувати. p>
Вихідними даними в програмі є: p>
Дані після сортування; p>
Результат пошуку по заданій масці; p>
Графік; p>
Файл бази даних, що записується на диск у файл country.dat при завершенні
роботи програми. p>
Дані про абонента зберігаються в масиві структур типу
country: p>
Структура
country: p>
Поле p>
Тип p>
Назва p>
name p>
рядок 50 символів типу char p>
Назва p>
capt p>
рядок 10 символів типу
char p>
Столиця p>
population p>
double p>
Населення p>
money p>
рядок 20 символів типу
char p>
Грошова одиниця p>
square p>
double p>
Площа p>
sp p>
int p>
Номер за населенням p>
ss p>
int p>
Номер за площею p>
sn p>
int p>
Номер за назвою p>
Глобальні змінні програми: p>
Поле p>
Тип p>
Назва p>
cdt p>
масив змінних типу
country на 301 елемент p>
Масив даних про країни p>
cnum p>
int p>
Кількість країн p>
Sort p>
char p>
тип сортування p>
6 Специфікація на функціональні модулі p>
6.1 Функція cmp p>
Рядок виклику: p>
if (strcmp (cdt [n]. name, mxc) <0) p>
Призначення: p>
Здійснює порівняння
рядки з маскою p>
Функції: p>
Переглядає
послідовно задану рядок, і якщо в ній знайдена маска, то повертається
1, якщо ні - 0. P>
Логіка p>
змінні: p>
* a (char) - покажчик на
рядок p>
* b (char) - покажчик на
маску для пошуку p>
Внутрішні p>
змінні: p>
k (int) - результат
порівняння p>
n (int) - лічильник p>
Викликає функції: p>
немає p>
Викликається з: p>
index, find p>
6.2 Функція output p>
Рядок виклику: p>
output (sv, sk) p>
Призначення: p>
Здійснює виведення на екран
списку Країна p>
Функції: p>
Очищення екрану, висновок 10
елементів, якщо елемент обраний, виділення кольором, виведення даних про Країні на
екран. p>
Логіка p>
змінні: p>
sv, sk (int) - координати
першого елемента на екрані p>
Внутрішні p>
змінні: p>
n (int) - лічильник p>
m (int) - тимчасова
мінлива p>
nd (int) - порядковий номер
даної країни p>
Викликає функції: p>
немає p>
Викликається з: p>
scroll p>
6.3 Функція menu p>
Рядок виклику: p>
st = menu (30,5, "
Сортування: " p>
"по
Населення " p>
"по Майдані" p>
"по Назві" p>
"Пошук за
масці " p>
"Побудова
графіка " p>
"Вихід з
програми " p>
"x0 "); p>
st = menu (54,10, "за
Населення " p>
"по
Площі " p>
"x0 "); p>
st = menu (30,5, "
Додати до списку " p>
"Видалити з
списку " p>
"Редагувати" p>
"Вихід з
програми " p>
"x0 "); p>
Призначення: p>
Здійснює обробку меню p>
Функції: p>
Висновок меню на екран, опитування
клавіатури, при натисканні клавіш управління курсором (вгору, вниз)
переміщення колірного курсору по пунктам меню, вибір певного пункту
меню при натисненні клавіші з номером пункту меню, при натисканні клавіші Enter
повертається номер обраного пункту меню, при натисканні клавіші Esc
повертається -1. p>
Логіка p>
змінні: p>
* capt (char) - покажчик на
текст меню p>
x, y - координати виводу
меню на екран p>
Внутрішні p>
змінні: p>
n, m (int) - Лічильники p>
num (int) - Кількість
пунктів p>
k (int) - Обраний пункт p>
* pt (char) - Тимчасовий
покажчик на символ p>
c (char) - рахуватися з клавіатури
символ p>
Викликає функції: p>
немає p>
Викликається з: p>
scroll p>
6.4 Функція sinput p>
Рядок виклику: p>
SInput (cdt [ed]. name, 45,35,6); p>
SInput (cdt [ed]. capt, 30,35,8); p>
SInput (cdt [ed]. money, 20,35,10); p>
Призначення: p>
Здійснює введення рядка. p>
Функції: p>
Висновок порожнього рядка,
установка координат, висновок рядка запиту, зчитування рядка посимвольний з
клавіатури, вихід, якщо натиснута клавіша Enter або Esc, якщо натиснута Esc то
рядок не записується. p>
Логіка p>
змінні: p>
* s (char) - покажчик на
рядок p>
lng (int) - максимальна
довжина p>
x, y - координати введення p>
Внутрішні p>
змінні: p>
rs [100] (char) - Тимчасова
рядок p>
n (int) - Лічильник p>
c (char) - Введений з
клавіатури символ p>
Викликає функції: p>
немає p>
Викликається з: p>
edit p>
6.5 Функція dinput p>
Рядок виклику: p>
cdt [ed]. population = DInput (35,12); p>
cdt [ed]. square = DInput (35,14); p>
Призначення: p>
Здійснює введення числа. p>
Функції: p>
Висновок порожнього рядка,
установка координат, висновок рядка запиту, зчитування рядка посимвольний з
клавіатури, отримання введеного числа,
вихід, якщо натиснута клавіша Enter або Esc, якщо натиснута Esc то число
не записується. p>
Логіка p>
змінні: p>
* s (char) - покажчик на
рядок p>
lng (int) - максимальна
довжина p>
x, y - координати введення p>
Внутрішні p>
змінні: p>
s [100] (char) - Тимчасова
рядок p>
* сtpe (char) - покажчик
на Сторк p>
rs (double) - Результат p>
n (int) - Лічильник p>
c (char) - Введений з
клавіатури символ p>
Викликає функції: p>
немає p>
Викликається з: p>
edit p>
6.6 Функція graph p>
Рядок виклику: p>
graph (st); p>
Призначення: p>
Здійснює побудови
графіка за кількістю населення і за полщаді країн. p>
Функції: p>
Визначення масштабу,
побудова осей координат, висновок графіка на екран, очікування натискання
користувачем клавіші. p>
Логіка p>
змінні: p>
str (int) - номер країни p>
Внутрішні p>
змінні: p>
drv, mode (int) - для ініціалізації
графіки p>
mx (int) - Масштаб по х p>
x (int) - х p>
n (int) - Лічильник p>
py (int) - Минуле значення
Y для першої лінії p>
ppy (int) - Минуле
значення Y для другої лінії p>
Викликає функції: p>
Ні p>
Викликається з: p>
Scroll p>
6.7 Функція index p>
Рядок виклику: p>
index () p>
Призначення: p>
Здійснює індексування
масиву - призначення номерів елементів за алфавітом для кожного поля запису. p>
Функції: p>
Cтіраніе старих індексів,
індексація за площею, індексація по населенню, індексація по назві. p>
Логіка p>
змінні: p>
немає p>
Внутрішні p>
змінні: p>
n, m (int) - лічильники p>
mx (double) - значення
найменшого елемента p>
mxc (char) - значення
найбільшого назви p>
nm (int) - номер чергового
елемента p>
Викликає функції: p>
cmp p>
Викликається з: p>
scroll p>
6.8 Функція edit p>
Рядок виклику: p>
edit (300); p>
edit (cnum-1); p>
edit (n); p>
Призначення: p>
Здійснює редагування
елемента масиву. p>
Функції: p>
Введення даних, виведення одного
з полів структури, опитування клавіатури, вибір дії - редагування поля
або вихід (клавіша Esc). p>
Логіка p>
змінні: p>
ed (int) - номер елемента
масиву p>
Внутрішні p>
змінні: p>
n (int) - лічильник p>
en (int) - номер пункту
меню p>
c (char) - Введений з
клавіатури символ p>
Викликає функції: p>
sinput, dinput p>
Викликається з: p>
scroll p>
6.9 Функція find p>
Рядок виклику: p>
sv = find (sk + sv-1) +1 p>
Призначення: p>
Здійснює пошук елемента
в заданій рядку по заданій масці. p>
Функції: p>
Пошук елемента, Повернення результатів, в залежності від
методу сортування. p>
Логіка p>
змінні: p>
lst (int) - індекс p>
Внутрішні p>
змінні: p>
mss (int) - p>
msn (int) - | найменший знайдений елемент за
Індеко p>
msp (int) -/ p>
n (int) - лічильник p>
Викликає функції: p>
cmp p>
Викликається з: p>
scroll p>
6.10 Функція scroll p>
Рядок виклику: p>
scroll () p>
Призначення: p>
Здійснює обробку
списку. p>
Функції: p>
Виведення списку на екран,
введення символу з клавіатури, обробка символу, в воодветствіі з натиснутою
клавішею виклик меню, вибір пункту меню, виконання дії, вихід. p>
Логіка p>
змінні: p>
немає p>
Внутрішні p>
змінні: p>
st (int) - номер обраного
пункту меню p>
n (int) - лічильник p>
c (char) - Введений з
клавіатури символ p>
sv, sk (int) - положення
курсору p>
Викликає функції: p>
output, menu, edit, index, find. p>
Викликається з: p>
main p>
6.11 Функція load p>
Рядок виклику: p>
load () p>
Призначення: p>
Здійснює завантаження бази
даних з файлу. p>
Функції: p>
Відкриття файлу з ім'ям
country.dat, читання кількості рядків у масиві, читання даних в масив
, Закриття файлу. P>
Логіка p>
змінні: p>
немає p>
Внутрішні p>
змінні: p>
* f (file) - покажчик на
файл p>
Викликає функції: p>
немає p>
Викликається з: p>
main p>
6.12 Функція save p>
Рядок виклику: p>
save () p>
Призначення: p>
Здійснює запис бази
даних у файл. p>
Функції: p>
Відкриття файлу
country.dat, запис кількості
елементів, запис даних у файл, закриття файлу. p>
Логіка p>
змінні: p>
немає p>
Внутрішні p>
змінні: p>
* f (file) - покажчик на
файл p>
Викликає функції: p>
немає p>
Викликається з: p>
main p>
6.13 Основна програма - main p>
Призначення: p>
Здійснює установку
початкових значень, читання бази даних з файлу, обробку, запис бази
даних у файл. p>
Функції: p>
Установка початкових
значень змінних, виклик функції читання даних з файлу, виклик функції
обробки, виклик функції запису у файл, установка параметрів, вихід з
програми. p>
Викликає функції: p>
load, save, scroll. p>
7 Технічні вимоги для використання h2>
Для запуску даної програми необхідна наявність персонального комп'ютера IBM PC/XT c
операційною системою MS-DOS. p>
Необхідний обсяг оперативної пам'яті -640 Кбайт. p>
Дла запуску програми необхідно зробити поточному
каталог з програмою phone.exe і викликати її на виконання. p>
Програма працює в текстовому режимі 80х25 символів,
побудова графіка здійснюється в графічному режимі 640х480 пікселів 16 кольорів. p>
Файл бази даних програми country.dat буде
записуватися і зчитуються з поточного каталогу поточного диска. p>
Керування програмою здійснюється за допомогою клавіатури. p>
8 Керівництво користувача h2>
Після своєї завантаження програма здійснює оформлення
екрана, виведення на екран список абанентов
, Що міститься у файлі бази даних, за якими можна пересувати колірної
курсор. p>
При натисканні клавіші Enter на одному з елементів списку
, То на екран буде викликати меню: p>
p>
1) Додати до списку p>
2) Видалити зі списку p>
3) Редагувати p>
4) Вихід із програми p>
p>
Це меню зміни списку країн, що при виборі пунктів
якого користувач може: додати новий елемент у списку, видалити елемент
зі списку, відредагувати вже існуючий елемент списку. p>
При натисканні користувачем клавіші Esc з'являється меню: p>
p>
1) Сортування: p>
2) за кількістю населення p>
3) за Площі p>
4) за Назвою p>
5) Пошук за маскою p>
6) Побудова графіка p>
7) Вихід з програми p>
При натисканні на клавіші управління курсором (вгору,
вниз) можна управляти курсором, якщо натиснути клавішу Enter або клавішу з
номером пункту меню, то відбудеться те або інше дію відповідно до
вибраним пунктом. p>
відсортована послідовність виводиться на екран
у вигляді списку країн. При виборі пункту "Пошук за маскою" програма
запрошує дані для пошуку країни: Назва, Столиця, Грошова одиниця, Населення (тс.чл.),
Площа (тс.кв.км). P>
Після пошуку, якщо такий абонент є в списку,
дані про знайдений абонента виводяться на екран. p>
При виборі пункту "Вихід з програми"
програма завершує свою роботу. p>
9 Тестуванняпрограми h2>
Для повної перевірки
працездатності програми необхідно її протестувати. p>
План
тестування програми обліку та вибірки інформації про країни полягає в
наступному: p>
1) Завантаження програми p>
2) Введення даних про країни p>
3) Видалення країни зі списку p>
4) Редагування даних про країну p>
5) Сортування по полях p>
6) Пошук по масці p>
7) Побудова графіка p>
8) Вихід з програми p>
Далі в пункті
"Результати роботи програми" наводиться роздруківка тестування
програми по пунктах плану тестування і результатів тестування. p>
10 Результати роботи програми h2>
1) Завантаження програми p>
2) Введення даних про країни p>
1) Додати до списку p>
2) Видалити зі списку p>
3) Редагувати p>
4) Вихід із програми p>
Назва:
Росія p>
Столиця:
Москва p>
Грошова одиниця: Рубль p>
Населення (тс.чл.): 185000.000000 p>
Площа (тс.кв.км): 54435.000000 p>
Великобританія Лондон p>
Фунт 56678.0 тис.чол. 4667.0 тис.кв.км p>
Німеччина
Берлін p>
Марка 42467.0 тис.чол. 5567.0 тис.кв.км p>
Росія
Москва p>
Рубль 185000.0 тис.чол. 54435.0 тис.кв.км p>
США
Вашингтон p>
Долар 50000.0 тис.чол. 34568.0 тис.кв.км p>
p>
3) Видалення країни зі списку p>
Великобританія Лондон p>
Фунт 56678.0 тис.чол. 4667.0 тис.кв.км p>
Росія
Москва p>
Рубль 185000.0 тис.чол. 54435.0 тис.кв.км p>
США
Вашингтон p>
Долар 50000.0 тис.чол. 34568.0 тис.кв.км p>
4) Редагування даних про країну p>
Назва: США p>
Столиця:
Вашингтон p>
Грошова одиниця: Долар p>
Населення (тс.чл.): 60000.000000 p>
Площа (тс.кв.км): 34568.000000 p>
Великобританія Лондон p>
Фунт 56678.0 тис.чол. 4667.0 тис.кв.км p>
Росія Москва p>
Рубль 185000.0 тис.чол. 54435.0 тис.кв.км p>
США
Вашингтон p>
Долар 60000.0 тис.чол. 34568.0 тис.кв.км p>
p>
5) Сортування по полях p>
за кількістю населення: p>
Великобританія Лондон p>
Фунт 56678.0 тис.чол. 4667.0 тис.кв.км p>
Росія
Москва p>
Рубль 185000.0 тис.чол. 54435.0 тис.кв.км p>
США
Вашингтон p>
Долар 60000.0 тис.чол. 34568.0 тис.кв.км p>
за площею: p>
Росія Москва p>
Рубль 185000.0 тис.чол. 54435.0 тис.кв.км p>
США
Вашингтон p>
Долар 60000.0 тис.чол. 34568.0 тис.кв.км p>
Великобританія Лондон p>
Фунт 56678.0 тис.чол. 4667.0 тис.кв.км p>
за назвою: p>
Великобританія Лондон p>
Фунт 56678.0 тис.чол. 4667.0 тис.кв.км p>
Росія
Москва p>
Рубль 185000.0 тис.чол. 54435.0 тис.кв.км p>
США Вашингтон p>
Долар 60000.0 тис.чол. 34568.0 тис.кв.км p>
6) Пошук по масці p>
Назва: Росія p>
Столиця: p>
Грошова одиниця: p>
Населення (тс.чл.):
0.000000 p>
Площа (тс.кв.км): 0.000000 p>
Росія Москва p>
Рубль 185000.0 тис.чол. 54435.0 тис.кв.км p>
p>
7) Побудова графіка p>
за кількістю населення: p>
p>
за площею: p>
p>
Висновок h2>
У цій роботі вирішена задача розробки
програми обліку та вибірки інформації про країни. p>
За завданням до даної курсової роботи був розроблений
алгоритм, за яким на алгоритмічній мові С + + була розроблена програма
, Аналіз результатів якої показав, що поставлене завдання успішно
вирішується. p>
Список літератури h2>
1.Бьярн Страуструп. Мова програмування С + +. У двох
частинах. Пер. з англ.
Київ: "ДіаСофт", 1993.-296 с., Іл. P>
2.Корріган Джон Комп'ютерна графіка: Секрети і
рішення: Пер з англ. -М.: Ентропія, 1995. - 352 с., Іл. P>
Для підготовки даної роботи були використані
матеріали з сайту http://kurslab.chat.ru/
p>