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

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    137,35 Кб
  • Опубликовано:
    2012-09-28
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

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













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

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

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

Введение

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

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

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

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

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

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

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

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

#include <fstream>

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

ofstream 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;.("file.txt");

string s;>>s;

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

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

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

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

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

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

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

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

fstream 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

{name[30];street[40];city[20];state[3];long int zip;

};

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

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

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

1.3 Массивы

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

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

Массив можно инициализировать при описании. В этом случае нет необходимости указывать его размер.mas[]={23, 25, 81};

Далее создан массив mas из 3-х элементов:[0]= 23, mas[1]= 25, mas[2]= 81.

Кроме стандартного доступа к элементам массива C++ обеспечивает еще один. В C++ имя массива представляет собой не только имя, которое вы используете в своих программах, но и является адресом, по которому в памяти находится первый элемент массива. Поэтому к элементам массива можно обращаться следующими способами:m[6] = {4, 3 , 1, 4, 7, 8 };[3] или (m + 3)[0] Обращение к 4-му элементу массива.

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

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

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

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

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

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

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

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

Второй способ инициализации при описании массиваа[3][2]={ {4,1}, {5, 7}, {2, 9} };

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

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

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


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

Если необходимо, можно описать массив указателей.*ip[ 10 ];

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

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

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)

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

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

.6 Выход

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

ЗАКЛЮЧЕНИЕ

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

ЛИТЕРАТУРА

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

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

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

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

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

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

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

ПРИЛОЖЕНИЕ 1

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

#include <iostream.h>

#include <windows.h>

#include <fstream.h>sotr

{F[20];Z;

}Data[100];n,max=0;zsum=0;neworg()

{<<"Kolichestvo sotrudnikov > ";>>n;(int i=0;i<n;i++)

{<<i+1<<" Vvedite familiu > ";>>Data[i].F;<<i+1<<" Vvedite zarplatu > ";>>Data[i].Z;

}

{=0;(int i=0;i<n;i++)(Data[max].Z<Data[i].Z)max=i;<<"Maximalnaia zarplata y :"<<endl;<<Data[max].F<<endl;

}sum()

{=0;(int i=0;i<n;i++)=zsum+Data[i].Z;<<"Obshaja zarplta = "<<zsum<<endl;

}save()

{save("SaveOrg.txt");(int i=0;i<n;i++)<<Data[i].F<<""<<Data[i].Z<<endl;<<" Obshaja zarplta ="<<zsum<<endl;<<"Maximalnaia zarplata u :"<<endl;<<Data[max].F<<endl;

}main()

{k;();(true)

{<<"opredelit' summarnii zarabotok "<<"1"<<endl;<<"opredelit' sotrudnika s max zarplatoi "<<"2"<<endl;<<"sohranit' rezultat "<<"3"<<endl;<<"Novii spisok "<<"4"<<endl;<<"Vijti iz programmi "<<"5"<<endl;<<"> ";>>k;(k)

{1: sum(); break;2:smax();break;3:save();break;4:neworg(); break;

default: exit(1);

}

}

}

ПРИЛОЖЕНИЕ 2

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

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

Ivanov54000

Ptrov30000

Sidorov70000

Fedorov10000

Obshaja zarplta =164000zarplata u:


Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!