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

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

Войти
Регистрация
Восстановить пароль
 
Slavos
0 / 0 / 0
Регистрация: 03.02.2014
Сообщений: 16
#1

Можете сделать линейчатую диаграмму,а то не выходит вовсе - C++

17.06.2014, 23:52. Просмотров 178. Ответов 0
Метки нет (Все метки)

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <malloc.h>
#include <clocale>

using namespace std;
using namespace System;
using namespace System::IO;

#define UP 72
#define DOWN 80
#define ESC 27
#define ENTER 13

int menu(int n);
void dobavlenie();
void pechat();
void maxcena();
void mincena();
void zakazi_po_clientam();
void diagramma();

const char M[][55] = {
" Заказы по клиентам ",
" Печатать заказы ",
" Найти самый дешевый заказ ",
" Найти самый дорогой заказ ",
" Диаграмма* ",
" Выход "};
char BlankLine[ ]="Выберите что-нибудь и нажмите ENTER";
int NC;

void main()
{
int i;
int nomer;

Console::ForegroundColor=ConsoleColor::Red;
Console::BackgroundColor=ConsoleColor::Blue;
Console::Clear();
Console::CursorLeft=14;
Console::CursorTop=2;
{
FILE *f;
int n,i;
char fio[20];
char data [11];
char zakaz[20];
long int cena;

setlocale(LC_CTYPE,"Russian");
Console::CursorVisible::set(false);
Console::BufferHeight=Console::WindowHeight;
Console::BufferWidth=Console::WindowWidth;
f=fopen("zakazi.dat","r");
fscanf(f,"%d",&n);
for(i=0;i<n;i++)
{
fscanf(f,"%s%s%s%ld",fio,data,zakaz,&cena);
Console::CursorLeft=4;
Console::CursorTop=2.5+i;
cprintf("%s %s %s %ld",fio,data,zakaz,cena);
}
_getch();
}
do{
Console::ForegroundColor=ConsoleColor::Blue;
Console::BackgroundColor=ConsoleColor::Green;
Console::Clear();
Console::CursorLeft=25;
Console::CursorTop=4;
printf(BlankLine);

Console::ForegroundColor=ConsoleColor::Green;
Console::BackgroundColor=ConsoleColor::Black;
Console::Clear();

for (i=0;i<6;i++)
{
Console::CursorLeft=2;
Console::CursorTop=2+i;
cprintf("%s",M[i]);
}

nomer=menu(6);

Console::ForegroundColor=ConsoleColor::Blue;
Console::BackgroundColor=ConsoleColor::Green;
Console::Clear();
Console::CursorLeft=20;
Console::CursorTop=4;
cprintf("Для продолжения нажмите любую клавишу");

Console::ForegroundColor=ConsoleColor::Green;
Console::BackgroundColor=ConsoleColor::Black;

Console::Clear();
switch(nomer)
{
case 1: zakazi_po_clientam(); break;
case 2: pechat();break;
case 3: mincena();break;
case 4: maxcena();break;
case 5: diagramma();break;
}
} while(nomer!=6);
}


char clients[20][20];
int col_zakazov[20];
long sums[20];
int count;
long int summa;

int find_client(char *s)
{
int i;
for(i=0;i<count;i++)
if(strcmp(s,clients[i])==0)
return i;
return -1;
}

void calculate()
{
int n,i,k;
char fio[20];
char data[11];
char zakaz[20];
long int cena;

FILE *f = fopen("zakazi.dat","r");
fscanf(f,"%d",&n);

count=0;
summa=0;

for (i=0;i<n;i++)
{
fscanf(f,"%s%s%s%ld",fio,data,zakaz,&cena);
summa+=cena;

k = find_client(fio);
if (k==-1)
{
strcpy(clients[count],fio);
col_zakazov[count]=1;
sums[count]=cena;
count++;
}
else
{
col_zakazov[k]++;
sums[k]+=cena;
}
}
fclose(f);
}

void diagramma()
{
int driver=9,mode=2;
int color=9,fill=1;
int i;
char str[20];
double ugol,start,alpha;
int xt,yt;
System::ConsoleColor Color;
calculate();

start=0;

for(i=0;i<count;i++)
{
Color=ConsoleColor::Black; NColor=0;
setfillstyle(fill,color);
bar(330,50+i*10,340,55+i*10);

Console::BackgroundColor=ConsoleColor::White;
settextjustify(LEFT_TEXT,TOP_TEXT);
outtextxy(350,50+i*10,clients[i]);

ugol=360*sums[i]/(double)summa;
Console::BackgroundColor=ConsoleColor::Black;
pieslice(200,250,start,start+ugol,100);

sprintf(str,"%0.1lf%%",100.0*sums[i]/summa);
alpha=start+ugol/2;
xt=200+floor(120*cos(alpha*3.14*2/360)+0.5);
yt=250-floor(120*sin(alpha*3.14*2/360)+0.5);
Console::BackgroundColor=ConsoleColor::Green;
settextjustify(CENTER_TEXT,CENTER_TEXT);
outtextxy(xt,yt,str);

start+=ugol;
color++;
if(color==16)
{
color=9;
fill++;
}
}

_getch();
}

void zakazi_po_clientam()
{
int i;

calculate();

clrscr();
Console::CursorLeft=4;
Console::CursorTop=2;
cprintf(" ФИО Кол-во заказов Общая сумма*");
for(i=0;i<count;i++)
{
Console::CursorLeft=4;
Console::CursorTop=4+i;
cprintf("%s",clients[i]);
Console::CursorLeft=20;
Console::CursorTop=4+i;
cprintf("%5d %20ld",col_zakazov[i],sums[i]);
}
_getch();
}

void pechat()
{
FILE *f;
int n,i;
char fio[20];
char data[11];
char zakaz[20];
long int cena;

Console::Clear();
f=fopen("zakazi.dat","r");
fscanf(f,"%d",&n);
for(i=0;i<n;i++)
{
fscanf(f,"%s%s%s%ld",fio,data,zakaz,&cena);
Console::CursorLeft=4;
Console::CursorTop=2.5+i;
cprintf("%s %s %s %ld",fio,data,zakaz,cena);
}
fclose(f);
getch();
}

void mincena()
{
FILE *f;
int n,i;
char fio[20];
char data[11];
char zakaz[20];
long int cena, min;

char minfio[20];
char mindata[11];
char minzakaz[20];

Console::Clear();
min=1000000;
f=fopen("zakazi.dat","r");
fscanf(f,"%d",&n);
for(i=0;i<n;i++)
{
fscanf(f,"%s%s%s%ld",fio,data,zakaz,&cena);
if (cena<min)
{
strcpy(minfio,fio);
strcpy(mindata,data);
strcpy(minzakaz,zakaz);
min=cena;
}
}
Console::CursorLeft=4;
Console::CursorTop=3;
cprintf("%s %s %s %ld",minfio,mindata,minzakaz,min);
fclose(f);
getch();
}

void maxcena()
{
FILE *f;
int n,i;
char fio[20];
char data[11];
char zakaz[20];
long int cena, max;

char maxfio[20];
char maxdata[11];
char maxzakaz[20];

Console::Clear();
max=0;
f=fopen("zakazi.dat","r");
fscanf(f,"%d",&n);
for(i=0;i<n;i++)
{
fscanf(f,"%s%s%s%ld",fio,data,zakaz,&cena);
if (cena>max)
{
strcpy(maxfio,fio);
strcpy(maxdata,data);
strcpy(maxzakaz,zakaz);
max=cena;
}
}
Console::CursorLeft=4;
Console::CursorTop=3;
cprintf("%s %s %s %ld",maxfio,maxdata,maxzakaz,max);
fclose(f);
_getch();
}

int menu(int n)
{
int y=0;
char c;

do {
Console::CursorLeft=2;
Console::CursorTop=2+y;
Console::ForegroundColor=ConsoleColor::Blue;
Console::BackgroundColor=ConsoleColor::White;
cprintf(M[y]);
c=getch();

Console::CursorLeft=2;
Console::CursorTop=2+y;
Console::ForegroundColor=ConsoleColor::Green;
Console::BackgroundColor=ConsoleColor::Black;
cprintf(M[y]);
switch(c)
{
case DOWN : y++; break;
case UP : y--; break;
case ENTER: return y+1;
}
if(y>n-1)y=0;
if(y<0)y=n-1;

} while (c!=ESC);
exit(0);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2014, 23:52     Можете сделать линейчатую диаграмму,а то не выходит вовсе
Посмотрите здесь:

можете подсказать как сделать часть кода - C++
Можете подсказать как в определенном процессе найти определенный string и изменить его ? Буду очень благодарен за помощь.

Не выходит сделать вычисление - C++
void UTIL_Calculate( const float *v1, const float *v2, float flDist ) { float flMultiplier = flDist / 48.0; float MulScalar =...

Может ли Visual Studio автоматически сделать UML-диаграмму классов по коду? - C++
Здравствуйте! Скажите пожалуйста может ли Visual Studio автоматически сделать диаграмму классов по коду?

Помоги сделать по информатике задачу, что-то у меня ничего не выходит - C++
http://cs402725.userapi.com/v402725339/3f40/qf8x7sAxJhs.jpg

Это обьект, переменная или что? Как то вовсе непонятно - C++
Пожалуста, обьясните подробно что такое rhs!! // Функция Add #include &lt;string&gt; #include &lt;iostream&gt; // для объекта cout using...

здравствуйте, можете объяснить? - C++
Я нашел код в разделе &quot;для профессионалов&quot; - там задачка, которая решается с помощью формулы Зеллера..... #include &lt;iostream&gt; ...

Можете подсказать по поводу задачи? - C++
Расчитать сумму членов бесконечного ряда с заданой пользователем точностью E для заданого поьзователем значения х(-1;1) :...

Можете проверить scanf/printf - C++
Ответ неправильный, но я не понимаю в чем ошибка.. #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;iostream&gt; #include...

Можете скомпилировать и сказать работает ли? - C++
Не хочу качать компилятор для 4-5 заданий, точнее занимали бы они меньше места как, например, Dev-CPP для С. Можете скомпилировать данный...

Можете объяснить эту программу? - C++
Можете объяснить эту программу? пж #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;locale&gt; #define DLSTR 80 void COPY(char...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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