МИНИСТЕРСТВО ОБРАЗОВАНИЯ РФ
ПЕРМСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Кафедра Информационных технологий и автоматизированных систем
Курсовая работа
по предмету: объектно-ориентированное программирование
Вариант №10
Выполнил: ст.гр АСУз-05-1у
Мартемьянов С.Н.
Пермь 2007г.
Содержание
Содержание
Содержание 2
1.Постановка задачи 3
2.Диаграмма классов 3
3.Описание классов 3
4.Реализация компонентых функций 4
5.Реализация диалогов с пользователем 4
6.Реализация основной программы 5
7.Пример результатов работы программы 5
8.Программная документация 5
9.Список используемой литературы 6
10.Листинг программы 6
1.Постановка задачи
Разработать класс «калькулятор», выполняющий указанные в варианте операции. Программа должна выполнять ввод данных, проверку правильности введенных данных, выдачу сообщений в случае ошибок.
Протокол работы калькулятора записать в файл. Предусмотреть возможность просмотра файла из программы.
Создать калькулятор логарифмов при различном основании, с возможностью сложения, вычитания, умножения, деления, возведения в степень и перехода к другому основанию.
2.Диаграмма классов
3.Описание классов
Класс logarithm
class logarithm
{
float osn; //основание логарифма
float number; //число логарифма
float rez; //результат логарифма
float Calculate(); //функция вычисления логарифма, вызывается при любом изменении его параметров
public:
logarithm(); //конструктор без параметров
logarithm(float OSN, float NUMBER); //конструктор с параметрами
logarithm(const logarithm &op1); //конструктор копирования
void SetOsn(float OSN); //функция установки основания
void SetNumber(float NUMBER); //функция установки числа
float GetRezult(); //функция получения результата
float GetOsn(); //функция получения основания
float GetNumber(); //функция получения числа
void Print(); //вывод на экран логарифма в виде строки с результатом
float operator +(logarithm&); //перегруженные операции над логарифмами
float operator -(logarithm&);
float operator *(logarithm&);
float operator /(logarithm&);
float operator ^(float st); //возведение в степень
};
Класс calc
class calc
{
char* acop; //список допустимых операций
char operation; //знак операции
float rezult; //результат расчета операций над логарфмами
float st; //показатель степени логарифма для оператора 1
public:
logarithm op1; //первый оператор
logarithm op2; //второй оператор
calc(); //конструктор без параметров
calc(logarithm OP1,logarithm OP2,char OPERATION);//конструктор с параметрами
void Calculate(); //процедура расчета операций над логарифмами
void InputLog(int i); //диалог ввода операторов
float GetSt(); //получить показатель степени
float GetRezult(); //получить результат операции
char GetOperation(); //получить знак операции
bool SetOperation(char OPERATION); //установить знак операции
void ChangeOsn(float OSN); //процедура перехода логарифма к другому основанию
void Print(); //вывод на экран операторов и результата операции
};
Класс dialog
class dialog
{
calc c; //переменная типа калькулятор
void WriteLog(int i); //процедура записи в лог-файл
void ReadLog(); //процедура чтения из лог-файла
public:
bool menu(); //процедура вывода меню для диалога с пользователем
};