Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
FRINGE
3 / 3 / 0
Регистрация: 18.12.2012
Сообщений: 49
#1

Работа с базой данных web - C++

08.07.2015, 12:03. Просмотров 385. Ответов 10
Метки нет (Все метки)

Здравствуйте, уважаемые пользователи форума.
Очень нужна ваша помощь.
Требуется реализовать программу, работа которой по идее очень проста.
есть две таблицы (например 2 excel файла или БД; рисунок во вложении).
В программе мы вводим два параметра. например, 0,1 и x2. программа должна найти по таблице значение 9 (на пересечении). Потом по второй таблице найти значение 9 и выдать в качестве результата 0,2 и y1.
Данный пример очень условен, но суть такая.
Помогите пожалуйста как это можно сделать? В какую сторону копать?
По сути с человеческой точки зрения вообще легкотня, а как программу заставить - не пойму

P.S. а также хотелось бы узнать как это можно реализовать на сайте. Максимально просто. 2 окошка для ввода цифр. Одна кнопка. Два окошка для вывода.
пожалуййста
Миниатюры
Работа с базой данных web  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Leshak
259 / 235 / 40
Регистрация: 10.12.2011
Сообщений: 513
08.07.2015, 12:09     Работа с базой данных web #2
А наличие БД, или excel файлов обязательно?

Можно сделать и проще, можно реализовать с помощью двумерного массива(к примеру).

Теория.
FRINGE
3 / 3 / 0
Регистрация: 18.12.2012
Сообщений: 49
08.07.2015, 12:13  [ТС]     Работа с базой данных web #3
Желательно, да. Потому что вообще таблица достаточно большая будет. 70х20 примерно ))
Leshak
259 / 235 / 40
Регистрация: 10.12.2011
Сообщений: 513
08.07.2015, 12:41     Работа с базой данных web #4
Касаемо веба. Вам для начала необходим веб-сервер. Далее вам необходимо разобраться как он устроен(настроить его), и главное куда помещать созданные вами скрипты ( в данном случае программа написанная на С\С++ ),а уже потом разбираться как с ними работать.

Пс. для учебных целей , если Вы пользователь Windows вполне покатит WAMP сервер(если же Вы пользователь Linux то можно и LAMP). Прост в установке, и настройке.

Заранее говорю что пример взят из другого места, и он носит сугубо ознакомительный характер
(мне просто лень это строчить)

Пример:
В данном html файле мы организовываем ввод параметров(значений).
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "[url="http://www.w3.org/TR/html4/loose.dtd%22>"]http://www.w3.org/TR...ml4/loose.dtd">[/url]
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Титул</title>
</head>
<body>
<form method = "post" action = "/cgi-bin/hello.cgi">
<p>Enter your name</p>
<input type = "text" name = "name">
<input type = "submit" name = "button"/>
</form>
</body>
</html>
И передаем их скомпилированному С++ файлу(который находится в папке /cgi-bin).
Содержимое файла С++:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <iostream>
#include <string>
#include <cstdlib>
 
using namespace std;
 
int main()
{
char query[1024];
int len, startNumberLocation, endNumberLocation;
string data;
char strnum[20];
if(getenv("CONTENT_LENGTH"))
{
 
len = atoi(getenv("CONTENT_LENGTH"));
 
cin.read(query, len); // считываем полученный запрос
 
data = query; // заносим его в переменную data
 
startNumberLocation = data.find("number")+6; // выделяем полученное имя
 
endNumberLocation = data.find("&button");
}
 
// формируем вывод
cout << "Content-Type: text/html\n\n";
cout << "<?xml version = \"1.0\"?>"
<< "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" "
<< "\"[url="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\%22>%22;"]http://www.w3.org/TR...html11.dtd\">";[/url]
cout << "<html xmlns = \"[url="http://www.w3.org/1999/xhtml\%22>"]http://www.w3.org/19.../1999/xhtml\">"[/url]
<< "<head><title>Welcome message</title></head>"
<< "<body>"
<< "<h1>Greetings!</h1>"
<< "<p>Welcome " << (data.substr(startNumberLocation, endNumberLocation-startNumberLocation)) <<"</p>"
<< "</body></html>";
return 0;
}
Далее стартует скрипт, и собственно его вывод в браузер.

Псс. Касаемо обычных файлов или Excel файла, советую использовать поиск по форуму. Достаточно много тем, с большим количеством кода.
FRINGE
3 / 3 / 0
Регистрация: 18.12.2012
Сообщений: 49
08.07.2015, 21:52  [ТС]     Работа с базой данных web #5
спасибо большое
наверное с вебом пока рановато.
понять бы, как это реализовать хотя бы просто в windows forms application
Kastaneda
Форумчанин
Эксперт С++
4514 / 2856 / 228
Регистрация: 12.12.2009
Сообщений: 7,251
Записей в блоге: 1
Завершенные тесты: 1
08.07.2015, 22:17     Работа с базой данных web #6
Я тут по долгу фрилансерской службы столкнулся с вебом на С++ под Windows. Заказчик использует ATL (запускается под IIS). После веб-фреймворков на Java вся эта кухня выглядит совершенно первобытно, но это в разы удобней простого CGI. Советую погуглить, если веб интересен.

Добавлено через 5 минут
Попробую в двух словах показать в чем основной плюс.

Есть .srf файл (содержит html + специальные теги)
HTML5
1
<div> {{ hello }} </div>
Есть С++ код
C++
1
2
3
4
void onHello()
{
    m_HttpResponse << "Hello, World";
}
onHello - это метод класса. Этот класс специальным образом помечен как обработчик файла .srf, а onHello помечен как метод, который будет дергаться когда в srf файле встретится {{ hello }}. Как не сложно догадаться клиенту вертнется такой html
HTML5
1
<div>Hello, World</div>
Все это дело собирается в dll'ку и разворачивается в 2 клика.
FRINGE
3 / 3 / 0
Регистрация: 18.12.2012
Сообщений: 49
09.07.2015, 12:55  [ТС]     Работа с базой данных web #7
Спасибо.
А все таки если пока что не касаться веба, в простом windows forms aplication на Microsoft Visual Studio как реализовать подобную схему? читал про ODE но он ведь только под Builder?
Или может вообще в какой среде лучше и проще все это сделать?

Добавлено через 43 минуты
Как я понял, вытащить данные из файла Excel в например массив С++ достаточно проблематично (не нашел достаточной информации в интернете). Каким образом тогда можно организовать подобное? (достать из ексель файла, найти нужное число, затем в другой таблице найти это чило и вывести соответствующие данные)
Kastaneda
Форумчанин
Эксперт С++
4514 / 2856 / 228
Регистрация: 12.12.2009
Сообщений: 7,251
Записей в блоге: 1
Завершенные тесты: 1
09.07.2015, 13:13     Работа с базой данных web #8
Цитата Сообщение от FRINGE Посмотреть сообщение
Как я понял, вытащить данные из файла Excel в например массив С++ достаточно проблематично (не нашел достаточной информации в интернете). Каким образом тогда можно организовать подобное? (достать из ексель файла, найти нужное число, затем в другой таблице найти это чило и вывести соответствующие данные)
А обязательно именно Excel? Можно использовать формат CSV - он точно также в Excel отображается в виде таблцы, но по факту это просто текстовый файл (CSV - Comma-separated values).
FRINGE
3 / 3 / 0
Регистрация: 18.12.2012
Сообщений: 49
09.07.2015, 13:35  [ТС]     Работа с базой данных web #9
Да конечно, с удовольствием)) а как с ним работать? где можно почитать?
просто таблица достаточно большая и поэтому нужен способ куда вбить данные чтобы потом их оттуда взять и обработать.

Добавлено через 19 минут
Цитата Сообщение от Kastaneda Посмотреть сообщение
А обязательно именно Excel? Можно использовать формат CSV - он точно также в Excel отображается в виде таблцы, но по факту это просто текстовый файл (CSV - Comma-separated values).
Да конечно, с удовольствием)) а как с ним работать? где можно почитать?
просто таблица достаточно большая и поэтому нужен способ куда вбить данные чтобы потом их оттуда взять и обработать.
Kastaneda
Форумчанин
Эксперт С++
4514 / 2856 / 228
Регистрация: 12.12.2009
Сообщений: 7,251
Записей в блоге: 1
Завершенные тесты: 1
09.07.2015, 13:52     Работа с базой данных web #10
Просто сохрани это
Код
one, two, three
в файл с расширение .csv. Двойным кликом по файлу он откроется в Excel и будет отображен в виде таблице. Но это обычный текстовый файл. на С++ его можно прочитать при помощи std::ifstream. Далее, например, каждую строку можрно split'нуть по запятым и получить вектор записей.
Сам формат предполагает какие-то записи, разделенными запятыми. Каждая запись - ячейка в таблице Excel'я.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.07.2015, 16:44     Работа с базой данных web
Еще ссылки по теме:
C++ Работа с базой данных, содержащей записи со сведениями о студентах
Работа с базой данных фильмов в виде текстового файла C++
Работа с базой C++
C++ Работа из MS VC++ с базой Access 2000
C++ Способ прочитать файл с базой данных

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
FRINGE
3 / 3 / 0
Регистрация: 18.12.2012
Сообщений: 49
10.07.2015, 16:44  [ТС]     Работа с базой данных web #11
Цитата Сообщение от Kastaneda Посмотреть сообщение
Просто сохрани это
Код CodeВыделить код
1
one, two, three
в файл с расширение .csv. Двойным кликом по файлу он откроется в Excel и будет отображен в виде таблице. Но это обычный текстовый файл. на С++ его можно прочитать при помощи std::ifstream. Далее, например, каждую строку можрно split'нуть по запятым и получить вектор записей.
Сам формат предполагает какие-то записи, разделенными запятыми. Каждая запись - ячейка в таблице Excel'я.
спасибо, а где можно почитать как это "сплитнуть" по точке с запятой?
начал разбираться со считыванием данных из файла и запись в массив. пока что без точек с запятых.
C++
1
2
3
4
5
6
7
8
9
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
                 char a[6];
                 fstream fs("pract.txt");
                 for( int i = 0; i < 6; i++ ){
                 fs >> a[i];
                 }
                 fs.close();
                 textBox1->Text=Convert::ToString(a[1]);}
    };
В файл записал через пробел 1 2 3 4 5 6
Но в текст бокс почему то выводит -90 всегда. что бы я ни написал в файл, все равно -90. Не могу понять почему?
P.S. взял второй элемент массива просто для проверки.
Yandex
Объявления
10.07.2015, 16:44     Работа с базой данных web
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru