Сравнить коммиты

...

7 Коммитов

Автор SHA1 Сообщение Дата
BaranovEK 990a0e33f7 code: 3 var
11 месяцев назад
BaranovEK 612ef2cde1 code: errors of easy init
11 месяцев назад
BaranovEK 389a764382 code: easy init
11 месяцев назад
BaranovEK cad06fe58d code: main parametr
11 месяцев назад
BaranovEK 3710755ae3 code: add curl
11 месяцев назад
BaranovEK 8f5d8d90d6 code: input_data prompt parametr
11 месяцев назад
BaranovEK d25a052b48 code: stream
11 месяцев назад

1
.gitignore поставляемый

@ -1,4 +1,5 @@
/bin /bin
/obj /obj
/lab03.layout /lab03.layout
/curl

@ -31,7 +31,12 @@
<Compiler> <Compiler>
<Add option="-Wall" /> <Add option="-Wall" />
<Add option="-fexceptions" /> <Add option="-fexceptions" />
<Add directory="curl/include" />
</Compiler> </Compiler>
<Linker>
<Add library="libcurl.dll.a" />
<Add directory="curl/lib" />
</Linker>
<Unit filename="histogram.cpp" /> <Unit filename="histogram.cpp" />
<Unit filename="histogram.h" /> <Unit filename="histogram.h" />
<Unit filename="histogram_internal.h" /> <Unit filename="histogram_internal.h" />

@ -7,9 +7,12 @@
1716797551 c:\users\lenov\desktop\lab03\histogram.h 1716797551 c:\users\lenov\desktop\lab03\histogram.h
<vector> <vector>
1717268069 source:c:\users\lenov\desktop\lab03\main.cpp 1717528384 source:c:\users\lenov\desktop\lab03\main.cpp
<iostream> <iostream>
<vector> <vector>
<sstream>
<string>
<curl/curl.h>
"histogram.h" "histogram.h"
"text.h" "text.h"
"svg.h" "svg.h"
@ -22,12 +25,65 @@
"text.h" "text.h"
<vector> <vector>
1716819918 c:\users\lenov\desktop\lab03\svg.h 1717516760 c:\users\lenov\desktop\lab03\svg.h
<vector> <vector>
1716819750 source:c:\users\lenov\desktop\lab03\svg.cpp 1717516760 source:c:\users\lenov\desktop\lab03\svg.cpp
<iostream> <iostream>
<vector> <vector>
<string> <string>
"svg.h" "svg.h"
1717401831 c:\users\lenov\desktop\lab03\curl\include\curl\curl.h
"curlver.h"
"system.h"
<stdio.h>
<limits.h>
<sys/param.h>
<sys/types.h>
<time.h>
<winsock2.h>
<ws2tcpip.h>
<sys/select.h>
<sys/socket.h>
<sys/time.h>
"easy.h"
"multi.h"
"urlapi.h"
"options.h"
"header.h"
"websockets.h"
"mprintf.h"
"typecheck-gcc.h"
1717401831 c:\users\lenov\desktop\lab03\curl\include\curl\curlver.h
1717401834 c:\users\lenov\desktop\lab03\curl\include\curl\system.h
<ConditionalMacros.h>
<inttypes.h>
<inttypes.h>
<sys/types.h>
<sys/socket.h>
<sys/poll.h>
1717401832 c:\users\lenov\desktop\lab03\curl\include\curl\easy.h
1717401833 c:\users\lenov\desktop\lab03\curl\include\curl\multi.h
"curl.h"
1717401834 c:\users\lenov\desktop\lab03\curl\include\curl\urlapi.h
"curl.h"
1717401833 c:\users\lenov\desktop\lab03\curl\include\curl\options.h
1717401832 c:\users\lenov\desktop\lab03\curl\include\curl\header.h
1717401835 c:\users\lenov\desktop\lab03\curl\include\curl\websockets.h
1717401832 c:\users\lenov\desktop\lab03\curl\include\curl\mprintf.h
<stdarg.h>
<stdio.h>
"curl.h"
1717401834 c:\users\lenov\desktop\lab03\curl\include\curl\typecheck-gcc.h

@ -1,38 +1,84 @@
#include <iostream> #include <iostream>
#include <vector> #include <vector>
#include <sstream>
#include <string>
#include <curl/curl.h>
#include "histogram.h" #include "histogram.h"
#include "text.h" #include "text.h"
#include "svg.h" #include "svg.h"
using namespace std; using namespace std;
struct Input { struct Input
{
vector<double> numbers; vector<double> numbers;
size_t bin_count{}; size_t bin_count{};
}; };
Input
input_data() {
size_t number_count; Input input_data(istream& stream, bool prompt) {
Input in;
size_t number_count;
if (prompt) {
cerr << "Enter number count: "; cerr << "Enter number count: ";
cin >> number_count; }
Input in; stream >> number_count;
in.numbers.resize(number_count); in.numbers.resize(number_count);
cerr << "Enter numbers: "; for (size_t i = 0; i < number_count; i++) {
for (size_t i = 0; i < number_count; i++) { if (prompt) {
cin >> in.numbers[i]; cerr << "Enter number " << i+1 << ": ";
} }
stream >> in.numbers[i];
}
if (prompt) {
cerr << "Enter bin count: "; cerr << "Enter bin count: ";
cin>> in.bin_count; }
stream >> in.bin_count;
return in;
}
return in; size_t
write_data(void* items, size_t item_size, size_t item_count, void* ctx) {
size_t data_size = item_size * item_count;
stringstream* buffer = reinterpret_cast<stringstream*>(ctx);
(*buffer).write(reinterpret_cast<const char*>(items), data_size);
return data_size;
} }
int Input
main() { download(const string& address) {
auto in = input_data(); stringstream buffer;
auto bins = make_histogram(in.numbers, in.bin_count); CURL *curl = curl_easy_init();
show_histogram_svg(bins); if(curl) {
CURLcode res;
curl_easy_setopt(curl, CURLOPT_URL, address.c_str());
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &buffer);
res = curl_easy_perform(curl);
int speed;
curl_easy_getinfo(curl,CURLINFO_SPEED_DOWNLOAD_T, & speed);
cerr << "The average download speed: " << speed << " bytes/second" << endl ;
return 0; if (res!=CURLE_OK){
cerr << curl_easy_strerror(res);
exit(1);
}
curl_easy_cleanup(curl);
}
return input_data(buffer, false);
}
int main(int argc, char* argv[])
{
Input input;
if (argc > 1) {
input = download(argv[1]);
} else {
input = input_data(cin, true);
}
const auto bins = make_histogram(input.numbers, input.bin_count);
show_histogram_svg(bins);
return 0;
} }

Загрузка…
Отмена
Сохранить