Реферат по предмету "Программирование"


Программа учёта и выборки информации о странах

Программа учёта и выборки информации о странах

Пояснительная записка к курсовой работе по дисциплине
“Основы алгоритмизации и программирования”

Выполнил : студент гр. 96-ВВ3 Бубнов А.В.

Пензенский 
государственный технический университет, Кафедра   “Вычислительная Техника”

Пенза 1997
Введение

С момента появления первых образцов персональных  компьютеров прошло не так уж и много
времени,но сейчас без них  уже  немыслимо огромное количество областей
человеческой деятельности - экономика , управление , наука , инженерное дело ,
издательское дело , образование , культура и т.д.

Интерес к персональным компьютерам постоянно
растет,а  круг их пользователей
непрерывно  расширяется.В  число  пользователей
ПЭВМ вовлекаются как новички в компьютерном деле,так  и 
специалисты по другим классам ЭВМ.   


Язык С++ - универсальный язык общего назначения,
область приложений которого - программирование систем в самом широком смысле.
Кроме этого, С++ успешно используется как во 
многих  приложениях, так и в
мощных операционных системах. Реализация С++ 
осуществлена для машин в диапазоне от самых простых персональных
компьютеров  до  самых мощных суперкомпьютеров и для  всех операционных систем.
1 Постановка задачи

Задача курсовой работы 
состоит в разработке на языке программирования С++ программы учёта и
выборки информации о странах , которая должна осуществлять следующие функции:

1) Ввод информации;

2) Запись информации в файл;

3) Вывод информации на экран;

4) Выборка информации по заданному признаку
(комбинации признаков);

5) Сбор статистики по заданному признаку (2-3) и
построение результатов статистики в виде линейной диаграммы.

Имена файлов задаются в диалоге с пользователем.

Работа программы должна быть организована с
использованием меню.

Программу разработать на языке С++ v.3.1.
2 Метод решения задачи

Анализируя постановку задачи становится ясно , что для
её решения необходимо применить метод многофункционального программирования -
этот метод основан на разбиении программы на отдельные функциональные модули ,
которые вызываются из основной программы в процессе её работы.

В основе разработки такой программы лежит низходящее
программирование - т.е. сначала разрабатывается основная программа - в данном случае
программа ввода текста на экран , обработки функциональных клавиш и меню , с
помощью выбора пунктов которого будет в дальнейшем организовываться её работа.
При выборе того или иного пункта меню или нажатии функциональной клавиши будет
вызываться одна или несколько подпрограмм , но на начальном этапе разработки
программы методом нисходящего программирования вместо этих подпрограмм
ставяться "заглушки" - пустые подпрограммы , которые в процессе
разработки будут заменяться программами , выполняющими определённую функцию.
3 Описание логического представления данных

Входными данными в программе являются:

Файл базы данных , который записан на диске в файле
country.dat.

Данные , которые в процессе работы программы можно
добавить , удалить или отредактировать.

Выходными данными в программе являются:

Данные после сортировки;

Результат поиска по заданной маске;

График;

Файл базы данных , который записывается  на диск в файл country.dat при завершении
работы программы.

Данные об абоненте хранятся в массиве структур типа
country:

 Структура
country:




Поле





Тип





Название







name





 строка 50 символов типа char





Название







capt





строка 10 символов типа
char





Столица







population





double





Население







money





строка 20 символов типа
char





Денежная единица







square





double





Площадь







sp





int





Номер по населению







ss





int





Номер по площади







sn





int





Номер по названию






Глобальные переменные программы:




Поле





Тип





Название







cdt





массив переменных типа
country на 301 элемент





Массив данных о странах







cnum





int





Количество стран







Sort





char





тип сортировки






6 Спецификация на функциональные модули

6.1 Функция cmp




Строка вызова:





if (strcmp(cdt[n].name,mxc)







Назначение:





Осуществляет сравнение
строки с маской







Функции:





Просматривает
последовательно заданную строку , и если в ней найдена маска , то возвращается
1 , если нет - 0.







Логические


переменные:





*a (char) - указатель на
строку


*b (char) - указатель на
маску для поиска







Внутренние


переменные:





k (int) - результат
сравнения


n (int) - счётчик







Вызывает функции:





нет







Вызывается из:





index , find






6.2 Функция output




Строка вызова:





output(sv,sk)







Назначение:





Осуществляет вывод на экран
списка cтран







Функции:





Очистка экрана , вывод 10
элементов , если элемент выбран , выделение цветом , вывод данных о cтране на
экран.







Логические


переменные:





sv,sk (int) - координаты
первого элемента на экране







Внутренние


переменные:





n (int) - счётчик


m (int) - временная
переменная


nd (int) - порядковый номер
данной страны







Вызывает функции:





нет







Вызывается из:





scroll






6.3 Функция menu




Строка вызова:





st=menu(30,5,"
Сортировка:        "


                     " по
Населенности    "


                     " по Площади         "


                     " по Названию        "


                     " Поиск по
маске     "


                     " Построение
графика "


                     " Выход из
программы "


                     "x0");


st=menu(54,10," по
Населенности    "


                           " по
Площади         "


                           "x0");


st=menu(30,5,"
Добавить в список  "


                     " Удалить из
списка  "


                     " Редактировать      "


                     " Выход из
программы "


                     "x0");







Назначение:





Осуществляет обработку меню







Функции:





Вывод меню на экран , опрос
клавиатуры , при нажатии клавиш управления курсором (вверх , вниз)
перемещение цветового курсора по пунктам меню , выбор определённого пункта
меню при нажатии клавиши с номером пункта меню , при нажатии клавиши Enter
возвращается номер выбранного пункта меню , при нажатии клавиши Esc
возвращается -1.







Логические


переменные:





*capt (char) - указатель на
текст меню


x,y - координаты вывода
меню на экран







Внутренние


переменные:





n,m (int) - Счетчики


num (int) - Количество
пунктов


k (int) - Выбранный пункт


*pt (char) - Временный
указатель на символ


c (char) - Считанный с клавиатуры
символ







Вызывает функции:





нет







Вызывается из:





scroll






6.4 Функция sinput




Строка вызова:





SInput(cdt[ed].name,45,35,6);


SInput(cdt[ed].capt,30,35,8);


SInput(cdt[ed].money,20,35,10);







Назначение:





Осуществляет ввод строки.







Функции:





Вывод пустой строки ,
установка координат , вывод строки запроса, считывание строки посимвольно с
клавиатуры , выход , если нажата клавиша Enter или Esc , если нажата Esc то
строка не записывается.







Логические


переменные:





*s (char) - указатель на
строку


lng (int) - максимальная
длина


x,y - координаты ввода







Внутренние


переменные:





rs[100] (char) - Временная
строка


n (int) - Счетчик


c (char) - Введённый с
клавиатуры символ







Вызывает функции:





нет







Вызывается из:





edit






6.5 Функция dinput




Строка вызова:





cdt[ed].population=DInput(35,12);


cdt[ed].square=DInput(35,14);







Назначение:





Осуществляет ввод числа.







Функции:





Вывод пустой строки ,
установка координат , вывод строки запроса, считывание строки посимвольно с
клавиатуры , получение введённого числа , 
выход , если нажата клавиша Enter или Esc , если нажата Esc то число
не записывается.







Логические


переменные:





*s (char) - указатель на
строку


lng (int) - максимальная
длина


x,y - координаты ввода







Внутренние


переменные:





s[100] (char) - Временная
строка


* сtpe (char) - указатель
на сторку


rs (double) - Результат


n (int) - Счетчик


c (char) - Введённый с
клавиатуры символ







Вызывает функции:





нет







Вызывается из:





edit






6.6 Функция graph




Строка вызова:





graph(st);







Назначение:





Осуществляет построения
графика по населённости и по полщади стран.







Функции:





Определение масштаба ,
построение осей координат , вывод графика на экран , ожидание нажатия
пользователем клавиши.







Логические


переменные:





str (int) - номер страны








Внутренние


переменные:





drv,mode (int) - для инициализации
графики


mx (int) - Масштаб по х


x (int) - х


n (int) - Счетчик


py (int) - Прошлое значение
Y для первой линии


ppy (int) - Прошлое
значение Y для второй линии







Вызывает функции:





Нет







Вызывается из:





Scroll






6.7 Функция index




Строка вызова:





index()







Назначение:





Осуществляет индексирование
массива - назначение номеров элементов по алфавиту для каждого поля записи.







Функции:





Cтирание старых индексов ,
индексация по площади , индексация по населению , индексация по названию.







Логические


переменные:





нет







Внутренние


переменные:





n,m (int) - счётчики


mx (double) - значение
наименьшего элемента


mxc (char) - значение
наибольшего названия


nm (int) - номер очередного
элемента







Вызывает функции:





cmp







Вызывается из:





scroll






6.8 Функция edit




Строка вызова:





edit(300);


edit(cnum-1);


edit(n);







Назначение:





Осуществляет редактирование
элемента массива.







Функции:





Ввод данных , вывод одного
из полей структуры , опрос клавиатуры , выбор действия - редактирование поля
или выход (клавиша Esc).







Логические


переменные:





ed (int) - номер элемента
массива







Внутренние


переменные:





n (int) - счётчик


en (int) - номер пункта
меню


c (char) - Введённый с
клавиатуры символ







Вызывает функции:





sinput , dinput







Вызывается из:





scroll






6.9 Функция find




Строка вызова:





sv=find(sk+sv-1)+1 







Назначение:





Осуществляет поиск элемента
в заданной строке по заданной маске.







Функции:





Поиск элемента  , Возврат результатов , в зависимости от
метода сортировки.







Логические


переменные:





lst (int) - индекс







Внутренние


переменные:





mss (int) -     


msn (int) -      | наименьший найденный элемент по
индеку


msp (int) -     /


n (int) - счётчик







Вызывает функции:





cmp







Вызывается из:





scroll






6.10 Функция scroll




Строка вызова:





scroll ()







Назначение:





Осуществляет обработку
списка.







Функции:





Вывод списка на экран ,
ввод символа с клавиатуры, обработка символа , в воодветствии с нажатой
клавишей вызов меню , выбор пункта меню , выполнение действия , выход.







Логические


переменные:





нет







Внутренние


переменные:





st (int) - номер выбранного
пункта меню


n (int) - счётчик


c (char) - Введённый с
клавиатуры символ


sv , sk (int) - положение
курсора







Вызывает функции:





output , menu , edit , index , find.







Вызывается из:





main






6.11 Функция load




Строка вызова:





load()







Назначение:





Осуществляет загрузку базы
данных из файла.







Функции:





Открытие файла с именем
country.dat , чтение количества строк в массиве , чтение данных в массив
,  закрытие файла.







Логические


переменные:





нет







Внутренние


переменные:





*f (file) - указатель на
файл







Вызывает функции:





нет







Вызывается из:





main






6.12 Функция save




Строка вызова:





save()







Назначение:





Осуществляет запись базы
данных в файл.







Функции:





Открытие файла
country.dat  , запись количества
элементов , запись данных в файл , закрытие файла.







Логические


переменные:





нет







Внутренние


переменные:





*f (file) - указатель на
файл








Вызывает функции:





нет







Вызывается из:





main






6.13 Основная программа - main




Назначение:





Осуществляет установку
начальных значений , чтение базы данных из файла , обработку , запись базы
данных в файл.







Функции:





Установка начальных
значений переменных , вызов функции чтения данных из файла , вызов функции
обработки , вызов функции записи в файл ,установка параметров , выход из
программы.







Вызывает функции:





load , save , scroll .





7 Технические требования для использования

Для запуска данной программы необходимо наличие  персонального компьютера IBM PC/XT c
операционной системой MS-DOS.

Необходимый объем оперативной памяти -640 Кбайт.

Дла запуска программы необходимо сделать текущем
каталог с программой phone.exe и вызвать её на выполнение.

Программа работает в текстовом режиме 80х25 символов ,
построение графика осуществляется в графическом режиме 640х480 точек 16 цветов.

Файл базы данных программы country.dat будет
записываться и считываться из текущего каталога текущего диска.

Управление программой осуществляется с клавиатуры.
8 Руководство пользователя

После своей загрузки программа осуществляет оформление
экрана  , вывод на экран список абанентов
, содержащийся в файле базы данных , по которым можно передвигать цветовой
курсор.

При нажатии клавиши Enter на одном из элементов списка
, то на экран будет вызванно меню:

                      





1)  Добавить в список







2)  Удалить из списка







3)  Редактировать







4)  Выход из программы






 

Это меню изменения списка стран , при выборе пунктов
которого пользователь может: добавить новый элемент в список , удалить элемент
из списка , отредактировать уже существующий элемент списка.

При нажатии пользователем клавиши Esc появляется меню:

 




1)  Сортировка:







2)  по Населенности







3)  по Площади







4)  по Названию







5)  Поиск по маске







6)  Построение графика







7)  Выход из программы






При нажатии на клавиши управления курсором (вверх ,
вниз) можно управлять курсором , если нажать клавишу Enter или клавишу с
номером пункта меню , то произойдёт то или иное действие в соответствии с
выбранным пунктом.

Отсортированная последовательность выводится на экран
в виде списка стран. При выборе пункта "Поиск по маске" программа
запрашивает данные для поиска страны: Название,Столица,Денежная единица,Население(тс.чл.),
Площадь(тс.кв.км).

После поиска , если такой абонент имеется в списке ,
данные о найденном абоненте выводятся на экран.

При выборе пункта "Выход из программы"
программа завершает свою работу.
9 Тестирование программы

 Для полной проверки
работоспособности программы необходимо её протестировать.

 План
тестирования программы учёта и выборки информации о странах состоит в
следующем:

1) Загрузка программы

2) Ввод данных о странах

3) Удаление страны из списка

4) Редактирование данных о стране

5) Сортировка по полям

6) Поиск по маске

7) Построение графика

8) Выход из программы

 Далее в пункте
"Результаты работы программы" приводится распечатка тестирования
программы по пунктам плана тестирования и результатов тестирования.
10 Результаты работы программы

1) Загрузка программы

2) Ввод данных о странах

                             1)  Добавить в список

                             2)  Удалить из списка

                             3)  Редактировать

                             4)  Выход из программы

              
Название:                                               
Россия

              
Столица:                                                
Москва

              
Денежная единица:                                         Рубль

               Население(тс.чл.):                                185000.000000

              
Площадь(тс.кв.км):                                 54435.000000

Великобритания                             Лондон

                           Фунт    56678.0 тыс.чел.     4667.0 тыс.кв.км

                                    
Германия                            
Берлин

                          Марка    42467.0 тыс.чел.     5567.0 тыс.кв.км

                                      
Россия                            
Москва

                          Рубль   185000.0 тыс.чел.    54435.0 тыс.кв.км

                                         
США                         
Вашингтон

                         Доллар    50000.0 тыс.чел.    34568.0 тыс.кв.км

 

3) Удаление страны из списка

Великобритания                             Лондон

                           Фунт    56678.0 тыс.чел.     4667.0 тыс.кв.км

                                      
Россия                            
Москва

                          Рубль   185000.0 тыс.чел.    54435.0 тыс.кв.км

                                         
США                         
Вашингтон

                         Доллар    50000.0 тыс.чел.    34568.0 тыс.кв.км

4) Редактирование данных о стране

              
Название:                                                   США

              
Столица:                                             
Вашингтон

              
Денежная единица:                                        Доллар

              
Население(тс.чл.):                                 60000.000000

              
Площадь(тс.кв.км):                                 34568.000000

Великобритания                             Лондон

                           Фунт    56678.0 тыс.чел.     4667.0 тыс.кв.км

                                       Россия                             Москва

                          Рубль   185000.0 тыс.чел.    54435.0 тыс.кв.км

                                         
США                         
Вашингтон

                         Доллар    60000.0 тыс.чел.    34568.0 тыс.кв.км

 

5) Сортировка по полям

по населённости:

Великобритания                             Лондон

                           Фунт    56678.0 тыс.чел.     4667.0 тыс.кв.км

                                      
Россия                            
Москва

                          Рубль   185000.0 тыс.чел.    54435.0 тыс.кв.км

                                         
США                         
Вашингтон

                         Доллар    60000.0 тыс.чел.    34568.0 тыс.кв.км

по площади:

Россия                             Москва

                          Рубль   185000.0 тыс.чел.    54435.0 тыс.кв.км

                                         
США                         
Вашингтон

                         Доллар    60000.0 тыс.чел.    34568.0 тыс.кв.км

                              
Великобритания                             Лондон

                           Фунт    56678.0 тыс.чел.     4667.0 тыс.кв.км

по названию:

Великобритания                             Лондон

                           Фунт    56678.0 тыс.чел.     4667.0 тыс.кв.км

                                      
Россия                            
Москва

                          Рубль   185000.0 тыс.чел.    54435.0 тыс.кв.км

                                         
США                          Вашингтон

                         Доллар    60000.0 тыс.чел.    34568.0 тыс.кв.км

6) Поиск по маске

              
Название:          Россия

              
Столица:

              
Денежная единица:

              
Население(тс.чл.):                   
                 0.000000

              
Площадь(тс.кв.км):                                     0.000000

Россия                             Москва

                          Рубль   185000.0 тыс.чел.    54435.0 тыс.кв.км

 

7) Построение графика

по населённости:



по площади:


Заключение

В данной курсовой работе решена задача разработки
программы учёта и выборки информации о странах.

По заданию к данной курсовой работе был разработан
алгоритм , по которому на алгоритмическом языке С++ была разработанна программа
, анализ результатов которой показал , что поставленная задача успешно
решается.
Список литературы

1.Бьярн Страуструп. Язык программирования С++.в двух
частях.  Пер. с англ.
Киев:"ДиаСофт",1993.-296 с.,ил.

2.Корриган Джон Компьютерная графика: Секреты и
решения: Пер с англ. -М.:Энтроп, 1995. - 352 с., ил.

Для подготовки данной работы были использованы
материалы с сайта http://kurslab.chat.ru/


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.