Разработка программы для хранения и вывода списка сотрудников и их зарплаты

Запись в файл и чтение в С++. Общее понятие о структуре. Многомерные и двумерные массивы. Логика работы программы. Схема алгоритма функции Main. Определение суммарного заработка, сотрудника с наибольшей зарплатой. Создание новой базы, листинг программы.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 07.10.2012
Размер файла 275,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Курсовая работа

по курсу «Основы алгоритмизации и программирования»

на тему: «Разработка программы для хранения и вывода списка сотрудников и их зарплаты»

Введение

Написать программу, в которой необходимо создать структуру, элементами которой являются фамилия сотрудника и его зарплата. Объявить массив данных о сотрудниках типа структуры и ввести значения его элементов. Определить суммарный заработок сотрудников и сотрудника, у которого максимальная зарплата. Предусмотреть меню. Результаты работы программы записать в файл.

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

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

Курсовая работа состоит из программы, созданной на языке программирования Microsoft Visual C++ консольное приложение (Win 32 Console Application).

1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ

1.1 Работа с файлами

Запись в файл и чтение в c++ почти ничем не отличаются от стандартного ввода и вывода. Вместо cin и cout надо будет указать "файл", из которого вы читаете.

Для работы программы надо подключить header-файл fstream:

#include <fstream>

Для того чтобы открыть файл:

ofstream out;

out.("file.type");

if (out==NULL) return 0; // если не смогли открыть файл

Теперь для записи вывода в файл достаточно писать вместо cout идентификатор out

out<<"this string was wrote to file by c++;)"<<endl;

Дополнительные функции:

· is_open() - проверят, открыт ли файл. Если открыт возвращает 1 иначе 0 (true or false)

· skeek(kuda) - перемещает позицию с которой мы будем писать.

· tellp() - выдает позицию, в которой мы находимся

· close() - закрывает файл

Чтение из файла почти ничем не отличается. Вместо ofstream пишем ifstream и для ввода используем оператор >>

ifstream somefile;

somefile.("file.txt");

string s;

somefile>>s;

Дополнительные функции:

· is_open() - проверят, открыт ли файл. Если открыт возвращает 1 иначе 0 (true or false)

· eof() - возвращает true если дошли до конца файла

· seekg(kuda) - перемещает позицию с которой мы считаем в заданное место.

· tellg() - выдает позицию, в которой мы находимся

· close() - закрывает файл

Запись и чтение из файла:

Для этого вам надо создать экземпляр класса fstream:

fstream file;

file.open(file,"параметры через |");

и можно будет и читать и писать в файл. Немного подробнее про параметры:

· ios::in - открыть файл для чтения

· ios::out - открыть для записи с начала файл

· ios::app - открыть для дозаписи в конец файла

· ios::ate - установить указатель (где мы щас находимся в файле) в конец файла

· ios::thrunc - очистить файл если он существует

· ios::binary - открыть файл в бинарном формате (типа exe,dll,o и т.д, не думаю, что вам в ближайшем будущем понадобится)

Для вывода file<<chto_vivesti и для чтения file>>

1.2 Структуры

Структура это совокупность переменных, объединенных под одним именем. С помощью структур удобно размещать в смежных полях связанные между собой элементы информации. Объявление структур создает шаблон, который можно использовать для создания ее объектов, то есть экземпляров этой структуры. Переменные, из которых состоит структура, называются членами. Члены структуры еще называют элементами или полями.

Как правило, члены структуры связаны друг с другом. Например, элемент списка рассылки, состоящий из имении адреса, логично представить в виде структуры. В объявлении структуры используется ключевое слово struct. Оно сообщает компьютеру, что объявляется (декларируется) структура.

struct addr

{

char name[30];

char street[40];

char city[20];

char state[3];

unsigned long int zip;

};

Объявление структуры завершается точкой с запятой. Это потому, что объявление структуры является оператором. Кроме того, тег структуры addr идентифицирует эту конкретную структуру данных и является спецификатором ее типа.

В данном случае на самом деле никакая переменная не создается. Всего лишь определяется вид данных. Когда Вы объявляете структуру, то определяете агрегатный тип, а не переменную. И пока Вы не объявите переменную этого типа, то существовать она не будет. Чтобы объявить переменную типа addr, то есть физический объект, необходимо написать следующее:

struct addr addr_info;

В этом операторе объявлена переменная типа addr, которая называется addr_info. Таким образом, addr описывает вид структуры (ее тип), а addr_info является экземпляром (объектом) этой структуры. Когда объявляется переменная-структура, компилятор автоматически выделяет количество памяти, достаточное для того, чтобы разместить все ее члены.

1.3 Массивы

В C++ можно определить массив любого типа.

int mas[3];

Описан массив из 3 целых чисел. Нумерация в массивах начинается с 0-го элемента. Поэтому массив mas содежит: mas[0], mas[1], mas[2]

Массив можно инициализировать при описании. В этом случае нет необходимости указывать его размер.

int mas[]={23, 25, 81};

Далее создан массив mas из 3-х элементов:

mas[0]= 23, mas[1]= 25, mas[2]= 81.

Кроме стандартного доступа к элементам массива C++ обеспечивает еще один. В C++ имя массива представляет собой не только имя, которое вы используете в своих программах, но и является адресом, по которому в памяти находится первый элемент массива. Поэтому к элементам массива можно обращаться следующими способами:

int m[6] = {4, 3 , 1, 4, 7, 8 };

m[3] или (m + 3)[0] Обращение к 4-му элементу массива.

Возможны и другие варианты:

(m + 0)[3]; (m + 2)[1]; (m - 2)[5]

Наиболее полезно использовать такой подход к массивам, содержащим символьные строки.

1.4 Многомерные массивы

Многомерные массивы - это массивы с более чем одним индексом.

Чаще всего используются двумерные массивы.

При описании многомерного массива необходимо указать C++, что массив имеет более чем одно измерение.

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

Второй способ инициализации при описании массива

int а[3][2]={ {4,1}, {5, 7}, {2, 9} };

Обращение к элементу массива производится через индексы. cout<< а[0][0];

При передаче массива в функцию всегда происходит передача его адреса. Т.о. в C++ все массивы передаются по адресу.

Принимающая функция получает не весь массив, а только адрес первого элемента массива.

1.5 Указатели

Указатели - это переменные, которые содержат адрес адреса данных. В С++ указатели могут быть на любой тип данных.

Если необходимо, можно описать массив указателей.

int*ip[ 10 ];

массив указателей на целые значения из 10 элементов.

С указателем можно производить некоторые арифметические операции. Например, при работе с массивами.

2. ОПИСАНИЕ ПРОГРАММЫ

2.1 Описание разработанной структуры

struct sotr

{

char F[20];

double Z;

}Data[100];

Структура sotr содержит 2 элемента: char F[20] для хранения фамилии сотрудника. double Z для хранения размера зарплаты.

Для программы создаётся массив структур Data[100];

2.2 Логика работы программы

При запуске программы вызывается функция neworg() заполнения массива структур:

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

Функция нахождения суммарной зарплаты sum();

Функция нахождения сотрудника с максимальной зарплатой smax();

Функция сохранения результата работы программы save();

2.3 Схема алгоритма функции MAIN()

3. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЮ

3.1 Начало работы

Для начала работы с базой сотрудников, необходимо её создать, поэтому после запуска программа предложит ввести количество сотрудников (Рис. 1), данные о которых после этого необходимо будет заполнить (Рис. 2).

Рис. 1

Рис. 2

После заполнения базы, программа выведет меню, в котором предложит действия, которые можно выбрать, введя его порядковый номер (Рис. 3).

Рис. 3

3.2 Определение суммарного заработка

Для того чтобы определить суммарный заработок введите «1».

Программа выведет на экран сумму зарплат всех сотрудников занесённых в базу (Рис. 4).

Рис. 4

3.3 Определение сотрудника с наибольшей зарплатой

Для того чтобы программа нашла самого оплачиваемого сотрудника введите «2». Программа сравнит зарплаты всех сотрудников и выведет на экран фамилию самого оплачиваемого (Рис. 5).

Рис. 5

3.4 Сохранение работы

Перед тем как выйти из программы или создать новую базу рекомендуется сохранить работу программы, для этого введите «3». Программа сохранит данные в файле SaveOrg.txt (Прил. 2)

3.5 Создание новой базы

Если база была введена неверно или необходимо создать новую базу введите «4». Программа удалит настоящую базу и создаст новую. Вам необходимо будет ввести количество сотрудников в новой базе (Рис. 1). А затем заполнить данные (Рис. 2).

3.6 Выход

Для выхода из программы введите «5». Все не сохранённые данные будут удалены.

ЗАКЛЮЧЕНИЕ

Запуск программы показал, что её использование довольно удобно, меню интуитивно понятно. Программа правильно считает суммарную зарплату и вычисляет сотрудника с максимальной зарплатой. Результат работы сохраняется в файл.

ЛИТЕРАТУРА

1. А.И. Касаткин. Профессиональное программирование на языке C: От TurboC к BorlandC++. - Мн.: Выш. шк., 1992.

2. Б.В. Керниган,Д.М. Ричи. ЯЗЫК С. - М.: Софт, 1995.

3. Б. Страуструпп. Язык программирования C++. - М.: Софт, 1999.

4. В.А. Скляров. Программное и лингвистическое обеспечение персональных ЭВМ. Справочное пособие в 2-х т. - Мн.: Выш. Шк., 1992.

5. Н. Культин. C/C++ в задачах и примерах. - СПб.: БХВ-Петербург, 2001.

6. У. Сэвитч. C++ в примерах. - М.:Эком, 1997.

7. Х.М. Дейтл, П.Дж. Дейтл. Как программировать на C. -М.: ЗАО “Издательство БИНОМ”, 2000.

ПРИЛОЖЕНИЕ 1

Листинг программы

#include <iostream.h>

#include <windows.h>

#include <fstream.h>

struct sotr

{

char F[20];

double Z;

}Data[100];

int n,max=0;

double zsum=0;

void neworg()

{

cout<<"Kolichestvo sotrudnikov > ";

cin>>n;

for(int i=0;i<n;i++)

{

cout<<i+1<<" Vvedite familiu > ";

cin>>Data[i].F;

cout<<i+1<<" Vvedite zarplatu > ";

cin>>Data[i].Z;

}

}

void smax()

{

max=0;

for(int i=0;i<n;i++)

if(Data[max].Z<Data[i].Z)max=i;

cout<<"Maximalnaia zarplata y :"<<endl;

cout<<Data[max].F<<endl;

}

void sum()

{

zsum=0;

for(int i=0;i<n;i++)

zsum=zsum+Data[i].Z;

cout<<"Obshaja zarplta = "<<zsum<<endl;

}

void save()

{

ofstream save("SaveOrg.txt");

for(int i=0;i<n;i++)

save<<Data[i].F<<""<<Data[i].Z<<endl;

save<<" Obshaja zarplta ="<<zsum<<endl;

save<<"Maximalnaia zarplata u :"<<endl;

save<<Data[max].F<<endl;

}

void main()

{

int k;

neworg();

while(true)

{

cout <<"opredelit' summarnii zarabotok "<<"1"<<endl;

cout <<"opredelit' sotrudnika s max zarplatoi "<<"2"<<endl;

cout <<"sohranit' rezultat "<<"3"<<endl;

cout <<"Novii spisok "<<"4"<<endl;

cout <<"Vijti iz programmi "<<"5"<<endl;

cout <<"> ";

cin>>k;

switch (k)

{

case 1: sum(); break;

case 2:smax();break;

case 3:save();break;

case 4:neworg(); break;

default: exit(1);

}

}

}

ПРИЛОЖЕНИЕ 2

массив программа алгоритм структура

Распечатки результатов из файла

Ivanov54000

Ptrov30000

Sidorov70000

Fedorov10000

Obshaja zarplta =164000

Maximalnaia zarplata u:

Sidorov

Размещено на Allbest.ru


Подобные документы

  • Переменные типа integer, real, их функции. Общее понятие о массиве, файлы для Pascal. Информационный и информанизационный набор списка. Реализация и тестирование программы. Выбор базы данных, внесение имени, меню. Блок-схема алгоритма, листинг программы.

    курсовая работа [306,0 K], добавлен 04.02.2013

  • Программа для расчета полинома. Описание и схема алгоритма, распределение памяти под код программы, под данные и стек. Схема хранения операций ввода-вывода и их подключение. Изменения стека во время прогона программы. Листинг программы с комментариями.

    курсовая работа [59,0 K], добавлен 02.12.2009

  • Разработка функциональной и принципиальной схемы. Выбор управляющего контроллера. Описание МК PIC16F626, МК AVR, МК 51. Выбор элементной базы. Разработка управляющей программы. Описание алгоритма работы программы. Схема устройства, листинг программы.

    курсовая работа [492,9 K], добавлен 28.12.2012

  • Структура записей входного массива. Описание основных типов данных. Алгоритм программы: присвоение начальных значений переменных, чтение списка из файла, вывод данных на экран, выполнение обработки данных, сохранение списка в файл. Листинг программы.

    курсовая работа [325,2 K], добавлен 28.12.2012

  • Анализ задания и разработка алгоритма. Основные принципы создания программы. Схема взаимодействия процессов Process 1 и Process 4, в режиме задачи и в режиме ядра. Листинг программы и ее тестирование. Результат работы и выполнения программы в консоли.

    контрольная работа [395,9 K], добавлен 18.09.2010

  • Особенности разработки программы и выбор методов решения задачи. Составление алгоритма, распределение регистров программы и формирование файлов. Описание процедуры очистки памяти, сложения, вычитания, умножения. Тестирование и листинг программы.

    лабораторная работа [51,2 K], добавлен 14.05.2011

  • Разработка и тестирование программы на языке Pascal для поиска, вывода на экран и сохранения в файл списка книг с фамилиями авторов в алфавитном порядке, изданных после 2012 года. Разработка алгоритма и его описание. Инструкции по эксплуатации приложения.

    курсовая работа [903,0 K], добавлен 13.06.2013

  • Разработка программы-интерпретатора, способной получать на входе текстовый файл (в формате ASCII или ANSI) с текстом программы и на выходе выводить на экран результаты вычислений, определяемых программистом. Выбор лексем, интерфейс и листинг программы.

    курсовая работа [132,0 K], добавлен 12.03.2013

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

    курсовая работа [198,1 K], добавлен 20.11.2012

  • Работа с файлами на языке Pascal. Типы файлов: типизированные, текстовые, нетипизированные. Сущность процедуры и функции. Использование процедуры Read и Write для операций чтения и записи в типизированном файле. Листинг программы и экранные формы.

    лабораторная работа [38,4 K], добавлен 13.02.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.