Программа "Список коммерческих банков" на языке Си

Формирование на экране меню для выбора функций. Элементы пользовательского интерфейса. Описание внутренних переменных, входных и выходных данных языка программирования Си. Выбор пользователем функции. Создание программы "Список коммерческих банков".

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

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

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

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

СОДЕРЖАНИЕ

Введение

1. Алгоритм решения

2. Описание программы

3. Инструкция пользователю

4. Примеры работы программы

Заключение

Список литературы

Приложение (листинг программы)

ВВЕДЕНИЕ

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

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

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

В языке Си отсутствуют операции, имеющие дело непосредственно с составными объектами, такими как строки символов, множества, списки или с массивами, рассматриваемыми как целое. Здесь, например, нет никакого аналога операциям PL/1, оперирующим с массивами и строками. Язык не предоставляет никаких других возможностей распределения памяти, кроме статического определения и механизма стеков, обеспечиваемого локальными переменными функциями. Сам по себе язык Си не обеспечивает никаких возможностей ввода-вывода. Все эти механизмы высокого уровня должны обеспечиваться явно вызываемыми функциями.

Аналогично, язык Си предлагает только простые, последовательные конструкции управления: проверки, циклы, группирование и подпрограммы, но не мультипрограммирование, параллельные операции, синхронизацию или сопрограммы.

Удержание языка в скромных размерах дает реальные преимущества. Так как Си относительно мал, он не требует много места для своего описания и может быть быстро выучен.

Компилятор с Си может быть простым и компактным. Это обеспечивает высокую степень мобильности языка. Поскольку типы данных и структуры управления, имеющиеся в Си, непосредственно поддерживаются большинством существующих ЭВМ, библиотека, необходимая во время прогона изолированных программ, оказывается очень маленькой. На СМ-4, например, она содержит только программы для 32-битового умножения и деления и для упрятывания и восстановления регистров при входе в функцию. Конечно, каждая реализация обеспечивает исчерпывающую, совместимую библиотеку функций для выполнения операций ввода-вывода, обработки строк и распределения памяти, но так как обращение к ним осуществляется только явно, можно, если необходимо, избежать их вызова; эти функции могут быть компактно написаны на самом Си.

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

Язык Си не является языком со строгими типами данных в смысле Паскаля или Алгола-68. Он сравнительно снисходителен к преобразованию данных, хотя и не будет буйно преобразовывать типы данных подобно языку PL/1. Компилятор не предусматривает никакой проверки индексов массивов, типов аргументов и т.д. во время выполнения программы.

В тех ситуациях, когда желательна строгая проверка типов, используется специальная программа lint. Программа lint не генерирует машинного кода, а делает очень строгую проверку всех тех сторон программы, которые можно проконтролировать во время компиляции и загрузки. Она определяет несоответствие типов, несовместимость аргументов, неиспользованные или очевидным образом неинициализированные переменные, потенциальные трудности переносимости и т.д.

Из за того, что в языке отсутствуют средства ввода/вывода и т.п., при программировании на нем существенную роль играет библиотека стандартных программ, осуществляющих взаимодействие с системой. Во всех системах, совместимых с ОС UNIX, к которым относится и ДЕМОС, существует совместимый набор программ для ввода/вывода, управления памятью, преобразования данных и выполняющих другие функции, использование которых обеспечивает возможность переноса программ на другие ЭВМ.

1. Алгоритм решения

Основная часть программы реализует следующую последовательность действий:

1. Формирует на экране меню для выбора функций.

2. Ожидает выбора той или иной функции пользователем.

3. Выполняет соответствующий функциональный алгоритм.

4. После выполнения п.3 выполняется п.2 до тех пор, пока не будет совершен выход из программы.

Структурная схема алгоритма представлена ниже (рисунок 1).

Рисунок 1.

2. Описание программы

2.1 Элементы пользовательского интерфейса

Кнопки

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

При нажатии на кнопку «Накопительный вклад» в поле ListBox появляется банк, в котором для данного вида вклада наибольший процент в год, для определения этого банка был написан цикл, который ищет максимальное значение массива, созданного для записи числа, определяющего количество процентов для накопительного вклада.

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

При нажатии на кнопку «Депозит» в поле ListBox появляется банк, в котором для данного вида вклада наибольший процент за 3 года, для определения этого банка был написан цикл, который ищет максимальное значение массива, созданного для записи числа, определяющего количество процентов для депозита.

Поле Edit

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

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

2.2 Описание функций

Функция WinMain предназначена для начала работы с WinApi, она имеет следующие параметры:

HINSTANCE hInstance - дескриптор экземпляра приложения. Этот дескриптор содержит адрес начала кода программы в ее адресном пространстве. Дескриптор hInstance чаще всего требуется функциям, работающим с ресурсами программы.

HINSTANCE hPrevInstance - дескриптор предыдущего экземпляра приложения.

LPSTR lpCmdLine - указатель на начало командной строки, введенной при запуске программы.

int nCmdShow - это значение содержит желаемый вид окна (например, свернутый или развернутый)

Функция GetMessage предназначена для «диалога с Windows», она имеет следующие параметры:

LPMSG lpMsg - указатель на структуру сообщения, в которую GetMessage вернет результат.

HWND hWnd - описатель окна, от которого GetMessage примет сообщение (NULL означает, что GetMessage принимает сообщения от всех окон, принадлежащих потоку).

UINT wMsgFilterMin - наименьший идентификатор сообщения, которое примет GetMessage.

UINT wMsgFilterMax - наибольший идентификатор сообщения, которое примет GetMessage (если в значениях параметров wMsgFilterMin и wMsgFilterMax передать 0, функция будет принимать ВСЕ сообщения).

Примечание: в Windows при каждом событии, произошедшем в системе, отсылается «сообщение Windows» («windows message»). Эти сообщения уведомляют программу о событиях в системе, а программа в свою очередь, может на них реагировать. Сообщения может отсылать не только Windows, но и сами приложения. Это является одним из способов организации связи между процессами в системе. Функция GetMessage не отдает управление программе, пока не придет какое-либо сообщение. Если пришедшее сообщение - WM_QUIT, функция GetMessage вернет 0. Тогда цикл прервется, и программа завершит свою работу. При любом другом сообщении функция GetMessage возвращает значение больше нуля, и начинатся выполнение тела цикла. При ошибкеGetMessage возвращает -1.

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

WNDPROC lpfnWndProc - адрес функции обработки сообщений.

HINSTANCE hInstance - уже знакомая переменная, описывающая экземпляр.

LPCTSTR lpszClassName - имя нового класса.

HICON hCursor - описатель курсора мыши.

HBRUSH hbrBackground - цвет рабочей области окна.

Функция CreateWindow предназначена для создания окна Windows, она имеет следующие параметры:

int x - позиция по горизонтали верхнего левого угла окна.

int y - позиция по вертикали.

2.3 Описание внутренних переменных, входных и выходных данных

Для создания списка коммерческих банков была создана структура под названием «Info», в которую включены 6 переменных для хранения названия, адреса, статуса (формы собственности) банка, а также накопительного, сберегательного и депозитного вклада.

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

язык программирование функция интерфейс

Таблица 1.

Название

Тип

Назначение

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

Val

Int

Количество банков

Структура Info

Title

Char

Название банка

Adress

Char

Адрес

Status

Char

Статус(форма собственности)

Vklad1

Char

Накопительный вклад

Vklad2

Char

Сберегательный вклад

Vklad3

Char

Депозит

Функция main

Vklad1

Массив типа int

Количество процентов для накопительного вклада

Vklad2

Массив типа int

Количество процентов для сберегательного вклада

Vklad3

Массив типа int

Количество процентов для депозита

Year

Int

Запись введенного периода времени в переменную

max, max2

Int

Определение максимального процента для выбранного вклада

imax, maxi

Int

Определение банка, в котором максимальный процент для выбранного вклада

3. Инструкция пользователю

При открытии скомпилированного приложения «Spravochnik.exe» на экране появляется окно Windows под названием «Справочник коммерческих банков» (Рисунок 2). Программа ожидает выбора пользователем той или иной функции, предусмотренной данной программой. При нажатии на кнопку «Полный перечень банков» формируется список всех банков. При нажатии на кнопку «Накопительный вклад» появляется банк, в котором для данного вида вклада наибольший процент в год. При нажатии на кнопку «Сберегательный вклад» появляется банк, в котором для данного вида вклада наибольший процент в год. При нажатии на кнопку «Депозит» появляется банк, в котором для данного вида вклада наибольший процент за 3 года. При вводе количества лет, необходимо ввести число (целое или с отделением дробной части с помощью запятой), определяющего нужный Вам промежуток времени, после чего нажать на кнопку «Выбрать», при вводе чего-либо другого (какого-либо слова, буквы, символа) Вы не получите требуемого результата.

Внимание! Для обновления списка коммерческих банков Вам потребуются некоторые знания в программировании на языке Си.

Рисунок 2

4. Примеры работы программы

Полный перечень банков

Накопительный вклад

Вклад на 5 лет

Заключение

В ходе выполнения курсовой работы была создана программа «Список коммерческих банков», которая осуществляет подбор наиболее выгодных условиях для того или иного вида вклада, а также для того или иного промежутка времени.

Список литературы

При создании программы использовалась литература:

1. К. Поляков Программирование на языке Си 2012

2. Джесс Либерти - Освой самостоятельно С++ за 21 день, 2008.

3. Фролов А.В. Фролов Г.В. C++. Самоучитель, 2011.

Приложение (листинг программы)

#include <windows.h>

#include <string.h>

#include <stdio.h>

#include <winuser.h>

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

ATOM RegMyWindowClass(HINSTANCE, LPCTSTR);

HWND hWnd;

HWND hButton1;

HWND hButton2;

HWND hButton3;

HWND hButton4;

HWND hButton5;

HWND hEdit1;

HWND hGroupBox;

HWND hListBox;

HWND hLabel1;

int Vklad1[5];

int Vklad2[5];

int Vklad3[5];

int year = 0;

int max, imax, max2, maxi = 0;

struct Info

{

char* Title;

char* Adress;

char* Status;

char* Vklad1;

char* Vklad2;

char* Vklad3;

char* Otstup;

};

const int val = 5;

Info inf[val];

LPCTSTR lpzClass = TEXT("My Window Class!");

LPCTSTR lpzButton = TEXT("BUTTON");

LPCTSTR lpzListBox = TEXT("LISTBOX");

LPCTSTR lpzLabel = TEXT("STATIC");

LPCTSTR lpzEdit = TEXT("Edit");

#define ID_Vklad1 1000

#define ID_Vklad2 1005

#define ID_Vklad3 1010

#define ID_Per 1020

#define ID_ListBox 1100

#define ID_Edit1 1001

#define ID_Year 3000

int APIENTRY WinMain(HINSTANCE hInstance,

HINSTANCE hPrevInstance,

LPSTR lpCmdLine,

int nCmdShow)

{

if (!RegMyWindowClass(hInstance, lpzClass))

return 1;

RECT screen_rect;

GetWindowRect(GetDesktopWindow(),&screen_rect);

int x = screen_rect.right / 2 - 275;

int y = screen_rect.bottom / 2 - 125;

hWnd = CreateWindow(lpzClass, TEXT("Справочник коммерческих банков"),

WS_OVERLAPPEDWINDOW | WS_VISIBLE|WS_EX_APPWINDOW|LBS_NOTIFY, x, y, 900, 700, NULL, NULL, hInstance, NULL);

hGroupBox = CreateWindow(lpzButton,TEXT("Выберите нужный Вам вклад"),WS_CHILD|WS_VISIBLE|WS_CLIPSIBLINGS|BS_GROUPBOX,10,10,860,100,hWnd,NULL,hInstance,NULL);

hButton1 = CreateWindow(lpzButton, TEXT("Накопительный"),WS_CHILD|BS_PUSHBUTTON|BS_USERBUTTON|WS_VISIBLE, 20,40,130,20,hWnd,(HMENU)ID_Vklad1, hInstance,NULL);

hButton2 = CreateWindow(lpzButton, TEXT("Сберегательный"),WS_CHILD|BS_PUSHBUTTON|BS_USERBUTTON|WS_VISIBLE, 20,70,130,20,hWnd,(HMENU)ID_Vklad2, hInstance,NULL);

hButton3 = CreateWindow(lpzButton, TEXT("Полный перечень банков"),WS_CHILD|BS_PUSHBUTTON|BS_USERBUTTON|WS_VISIBLE, 200,70,200,20,hWnd,(HMENU)ID_Per, hInstance,NULL);

hButton4 = CreateWindow(lpzButton, TEXT("Депозит"),WS_CHILD|BS_PUSHBUTTON|BS_USERBUTTON|WS_VISIBLE, 200,40,200,20,hWnd,(HMENU)ID_Vklad3, hInstance,NULL);

hButton5 = CreateWindow(lpzButton, TEXT("Выбрать"),WS_CHILD|BS_PUSHBUTTON|BS_USERBUTTON|WS_VISIBLE, 640,70,200,20,hWnd,(HMENU)ID_Year, hInstance,NULL);

hLabel1 = CreateWindow(lpzLabel, TEXT("Количество лет, на которое Вы хотите сделать вклад"),WS_VISIBLE|WS_CHILD, 470, 40, 370, 20, hWnd, NULL, hInstance, NULL);

hEdit1 = CreateWindow(lpzEdit, TEXT(""),WS_VISIBLE | WS_CHILD | WS_BORDER| ES_LEFT,470,70,150,20,hWnd,(HMENU)ID_Edit1,hInstance,NULL);

hListBox = CreateWindow(lpzListBox, TEXT("ListBox"),WS_VISIBLE|WS_CHILD|WS_BORDER|WS_VSCROLL|LBS_NOTIFY,10,120,860,540,hWnd,(HMENU)ID_ListBox,hInstance,NULL);

UpdateWindow(hWnd);

MSG msg = {0};

int iGetOk = 0;

while ((iGetOk = GetMessage(&msg, 0, 0, 0 )) > 0)

{

if (iGetOk == -1) return 3;

TranslateMessage(&msg);

DispatchMessage(&msg);

}

return msg.wParam;

}

ATOM RegMyWindowClass(HINSTANCE hInst, LPCTSTR lpzClassName)

{

WNDCLASS wcWindowClass = {0};

wcWindowClass.lpfnWndProc = (WNDPROC)WndProc;

wcWindowClass.style = CS_HREDRAW|CS_VREDRAW;

wcWindowClass.hInstance = hInst;

wcWindowClass.lpszClassName = lpzClassName;

wcWindowClass.hCursor = LoadCursor(NULL, IDC_ARROW);

wcWindowClass.hbrBackground = (HBRUSH)COLOR_APPWORKSPACE;

return RegisterClass(&wcWindowClass);

}

LRESULT CALLBACK WndProc(

HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)

{

switch (message)

{

case WM_CREATE:

inf[0].Title = "Сбербанк России";

inf[0].Adress = "г. Новочеркасск, ул. Комитетская 45";

inf[0].Status = "Открытое акционерное общество";

inf[0].Vklad1 = "5 процентов в год";

inf[0].Vklad2 = "10 процентов в год";

inf[0].Vklad3 = "30 процентов в год";

inf[0].Otstup = "";

Vklad1[0] = 5;

Vklad2[0] = 10;

Vklad3[0] = 30;

inf[1].Title = "Банк ВТБ";

inf[1].Adress = "г. Новочеркасск, ул. Комитетская, д. 56/64";

inf[1].Status = "Открытое акционерное общество";

inf[1].Vklad1 = "6 процентов в год";

inf[1].Vklad2 = "11 процентов в год";

inf[1].Vklad3 = "35 процентов в год";

inf[1].Otstup = "";

Vklad1[1] = 6;

Vklad2[1] = 11;

Vklad3[1] = 35;

inf[2].Title = "Банк Русский Стандарт";

inf[2].Adress = "г. Новочеркасск, ул. Думенко 6";

inf[2].Status = "Закрытое акционерное общество";

inf[2].Vklad1 = "7 процентов в год";

inf[2].Vklad2 = "12 процентов в год";

inf[2].Vklad3 = "38 процентов в год";

inf[2].Otstup = "";

Vklad1[2] = 7;

Vklad2[2] = 12;

Vklad3[2] = 38;

inf[3].Title = "Банк Уралсиб";

inf[3].Adress = "Ростов-на-Дону, ул. Красноармейская 188";

inf[3].Status = "Открытое акционерное общество";

inf[3].Vklad1 = "7 процентов в год";

inf[3].Vklad2 = "13 процентов в год";

inf[3].Vklad3 = "33 процента в год";

inf[3].Otstup = "";

Vklad1[3] = 7;

Vklad2[3] = 13;

Vklad3[3] = 33;

inf[4].Title = "Банк Петрокоммерц";

inf[4].Adress = "г. Новочеркасск, ул. Московская, д. 1/90";

inf[4].Status = "Открытое акционерное общество";

inf[4].Vklad1 = "8 процентов в год";

inf[4].Vklad2 = "14 процентов в год";

inf[4].Vklad3 = "31 процент в год";

inf[4].Otstup = "";

Vklad1[4] = 8;

Vklad2[4] = 14;

Vklad3[4] = 31;

break;

case WM_COMMAND:

if((LOWORD(wParam) == ID_Per)){

SendMessage(hListBox, LB_RESETCONTENT,0,0);

for (int i=0;i<val;i++){

char string[255]={0};

strcpy(string, "Название: ");

strcat(string, inf[i].Title );

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "Адрес: ");

strcat(string, inf[i].Adress);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "Статус (форма собственности): ");

strcat(string, inf[i].Status);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "Накопительный вклад: ");

strcat(string, inf[i].Vklad1);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "Сберегательный вклад: ");

strcat(string, inf[i].Vklad2);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "Депозит (без права возвращения денег в течении трёх лет): ");

strcat(string, inf[i].Vklad3);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "");

strcat(string, inf[i].Otstup);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

}}

if((LOWORD(wParam) == ID_Vklad1)){

SendMessage(hListBox, LB_RESETCONTENT,0,0);

max = Vklad1[0];

for(int i = 0; i < val; i++){

if (Vklad1[i] > max) {

max = Vklad1[i];

imax = i;

}}

char string[255]={0};

strcpy(string, "Название: ");

strcat(string, inf[imax].Title );

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "Адрес: ");

strcat(string, inf[imax].Adress);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "Статус (форма собственности): ");

strcat(string, inf[imax].Status);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "-->Накопительный вклад: ");

strcat(string, inf[imax].Vklad1);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "Сберегательный вклад: ");

strcat(string, inf[imax].Vklad2);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "Депозит (без права возвращения денег в течении трёх лет): ");

strcat(string, inf[imax].Vklad3);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "");

strcat(string, inf[imax].Otstup);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

}

if((LOWORD(wParam) == ID_Vklad2)){

SendMessage(hListBox, LB_RESETCONTENT,0,0);

max = Vklad2[0];

for(int i = 0; i < val; i++){

if (Vklad2[i] > max) {

max = Vklad2[i];

imax = i;

}}

char string[255]={0};

strcpy(string, "Название: ");

strcat(string, inf[imax].Title );

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "Адрес: ");

strcat(string, inf[imax].Adress);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "Статус (форма собственности): ");

strcat(string, inf[imax].Status);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "Накопительный вклад: ");

strcat(string, inf[imax].Vklad1);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "-->Сберегательный вклад: ");

strcat(string, inf[imax].Vklad2);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "Депозит (без права возвращения денег в течении трёх лет): ");

strcat(string, inf[imax].Vklad3);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "");

strcat(string, inf[imax].Otstup);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

}

if((LOWORD(wParam) == ID_Vklad3)){

SendMessage(hListBox, LB_RESETCONTENT,0,0);

max = Vklad3[0];

for(int i = 0; i < val; i++){

if (Vklad3[i] > max) {

max = Vklad3[i];

imax = i;

}}

char string[255]={0};

strcpy(string, "Название: ");

strcat(string, inf[imax].Title );

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "Адрес: ");

strcat(string, inf[imax].Adress);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "Статус (форма собственности): ");

strcat(string, inf[imax].Status);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "Накопительный вклад: ");

strcat(string, inf[imax].Vklad1);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "Сберегательный вклад: ");

strcat(string, inf[imax].Vklad2);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "-->Депозит (без права возвращения денег в течении трёх лет): ");

strcat(string, inf[imax].Vklad3);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "");

strcat(string, inf[imax].Otstup);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

}

if((LOWORD(wParam) == ID_Year)){

char in[255];

GetWindowText(hEdit1, in, GetWindowTextLength(hEdit1)+1);

year = atoi(in);

if(year>2 && year!=0){

SendMessage(hListBox, LB_RESETCONTENT,0,0);

max = Vklad3[0];

for(int i = 0; i < val; i++){

if (Vklad3[i] > max) {

max = Vklad3[i];

imax = i;

}}

char string[255]={0};

strcpy(string, "Название: ");

strcat(string, inf[imax].Title );

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "Адрес: ");

strcat(string, inf[imax].Adress);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "Статус (форма собственности): ");

strcat(string, inf[imax].Status);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "Накопительный вклад: ");

strcat(string, inf[imax].Vklad1);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "Сберегательный вклад: ");

strcat(string, inf[imax].Vklad2);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "-->Депозит (без права возвращения денег в течении трёх лет): ");

strcat(string, inf[imax].Vklad3);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "");

strcat(string, inf[imax].Otstup);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

}

else if(year<3 && year!=0 && year>0){

SendMessage(hListBox, LB_RESETCONTENT,0,0);

max = Vklad2[0];

for(int i = 0; i < val; i++){

if (Vklad2[i] > max) {

max = Vklad2[i];

imax = i;

}}

max2 = Vklad1[0];

for(int i = 0; i < val; i++){

if (Vklad1[i] > max2) {

max2 = Vklad1[i];

maxi = i;

}}

if(max>=max2){

char string[255]={0};

strcpy(string, "Название: ");

strcat(string, inf[imax].Title );

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "Адрес: ");

strcat(string, inf[imax].Adress);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "Статус (форма собственности): ");

strcat(string, inf[imax].Status);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "Накопительный вклад: ");

strcat(string, inf[imax].Vklad1);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "-->Сберегательный вклад: ");

strcat(string, inf[imax].Vklad2);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "Депозит (без права возвращения денег в течении трёх лет): ");

strcat(string, inf[imax].Vklad3);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "");

strcat(string, inf[imax].Otstup);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

}

if(max2>=max){

char string[255]={0};

strcpy(string, "Название: ");

strcat(string, inf[maxi].Title );

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "Адрес: ");

strcat(string, inf[maxi].Adress);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "Статус (форма собственности): ");

strcat(string, inf[maxi].Status);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "-->Накопительный вклад: ");

strcat(string, inf[maxi].Vklad1);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "Сберегательный вклад: ");

strcat(string, inf[maxi].Vklad2);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "Депозит (без права возвращения денег в течении трёх лет): ");

strcat(string, inf[maxi].Vklad3);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

strcpy(string, "");

strcat(string, inf[maxi].Otstup);

SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)string );

}}}

if((LOWORD(wParam) == ID_ListBox))

{

switch (HIWORD(wParam))

{

case LBN_SELCHANGE:

{

}

}

}

break;

default:

return DefWindowProc(hWnd, message, wParam, lParam);

}

return 0;

}

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


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

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

    курсовая работа [29,3 K], добавлен 17.05.2013

  • Характеристика основных разделов программирования, изучаемых в курсе программирования на языке С++. Описание внутренних переменных, входных и выходных данных. Особенности использования компилятора Microsoft Visual Studio 2008. Руководство пользователя.

    курсовая работа [18,8 K], добавлен 14.12.2010

  • Разработка программы тестирования студентов по MS PowerPoint с кодом на языке Delphi. Создание алгоритма для решения функциональных требований задачи. Описание переменных, вспомогательных процедур, входных и выходных данных для реализации программы.

    курсовая работа [1,5 M], добавлен 21.09.2010

  • Создание программы с кодом на языке Delphi, которая ищет в тексте заглавные буквы, выдает сообщение о количестве и замене их на малые буквы. Описание переменных, вспомогательных процедур, входных и выходных данных, необходимых для реализации задачи.

    курсовая работа [540,4 K], добавлен 21.09.2010

  • Разработка программы игры в крестики-нолики. Примеры игровой ситуации на игровом поле. Описание входных и выходных данных, переменных и функций программы. Реализация алгоритма работы программы на языке C++. Текст программы и примеры ее выполнения.

    курсовая работа [352,8 K], добавлен 14.04.2011

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

    курсовая работа [618,8 K], добавлен 16.09.2012

  • Написание программы для работы с клиентами средствами языка Delphi, которая предусматривает ввод, редактирование и удаление информации. Разработка алгоритма решения задачи, описание переменных, вспомогательных процедур, входных и выходных данных.

    курсовая работа [355,7 K], добавлен 21.09.2010

  • Технические характеристики: постановка задачи, описание основных типов входных и выходных данных. Описание алгоритмов основной программы и процедур удаления и исправления данных в таблицах. Выбор языка программирования. Технико-экономические показатели.

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

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

    курсовая работа [265,6 K], добавлен 28.08.2017

  • Характеристика структурированного языка программирования С, его основных структурных компонентов, области памяти, библиотеки. Методы поиска в массивах данных. Описание программы, функции сортировки и меню выбора, последовательного и бинарного поиска.

    курсовая работа [1,7 M], добавлен 19.05.2014

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