• ↓
  • ↑
  • ⇑
 
11:44 

Повествование ведётся по очереди от лица Робера и Николы

целую тебя через сотни вёрст
Над Олларией повисла ярко-желтая луна, и город застыл, как выходец, из которого выпили душу. Но выпила душу и жизнь из него не луна, а тот, чьи волосы и одежды были цвета луны. Тот, кого Иноходец считал другом, тот, в чье отчуждение прежде невозможно было поверить. Сперва сюзерен стал другом, а потом друг стал сюзереном.
Первый маршал Великой Талигойи самым бесстыдным образом напивался, не разбирая, что перед ним: "слезы" или "кровь". Все вокруг утонуло в крови и слезах, и больше всех был в этом виноват он сам. Не за это ли Леворукий, Создатель или любимые Альдо истинные боги отобрали у него любовь? Когда его перестали волновать кровь и слезы девочки с золотыми глазами?
Страшно представить, что Альдо сделал с ней, если она решила бежать в такой спешке...
Размышления Робера прервал осторожный стук в дверь. Как бы ни хотелось послать все к закатным кошкам, надо подниматься и открывать, - заперся ведь изнутри, сонный дурак. Пол не поплыл под ногами, несмотря на... Сколько же бутылок он вылакал?! Схватившись за голову от вида комнаты, Робер навалился на дверь и чуть не снес генерала Карваля.

- Монсеньор, Вам плохо? - испугался маленький южанин.
- Все хорошо, - пробормотал Иноходец, но все-таки оперся на предложенную руку.
- Простите, монсеньор, - отчего-то смутился Никола, - если Вы заняты...
Остаться в такую ночь одному? Когда все равно не уснуть, а кошки на душе воют до хрипоты?
- Останьтесь, - коротко бросил Эпинэ и плюхнулся на кресло. Послышался звон матильдиного алатского хрусталя. На рубашке верного вассала расплылось темное пятно, - Никола, - вцепился Робер в его руку мертвой хваткой, - Вас ранили? Ряженые кэнналийцы?
- это не кровь, это вино, - пальцы маленького генерала застыли в сантиметре от пальцев маршала.

Тот, за кого Никола Карваль, не задумываясь, отдал бы жизнь, сидел, вцепившись в его руку, и смотрел на винное пятно на рубашке, как на выходца. И Леворукий с ней, с рубашкой, пальцы будущего короля Свободной Эпинэ разжимать не хотелось и все тут.
Глупо было бежать сюда посреди ночи. Монсеньор мог спать, а ему так нужен сон. Да и что бы он сказал, спроси кареглазый герцог, зачем генерал к нему заявился?
Робер о чем-то вспомнил, вздохнул и устало лег на стол. В такие минуты Никола еле сдерживал желание погладить олицетворявшего кэртианскую скорбь и совесть всего Талига господина по голове.
- Может, Вам придечь? - неуверенно предложил Карваль, сам испугавшись своих слов.
- Ляжешь тут, - вдруг разозлился на кого-то Эпинэ и стал еще походить на живое воплощение образов благородства, - присядьте, Никола, ночь обещает быть долгой.

Верный вассал осторожно опустился на кресло напротив. И этот человек сегодня устроил такую выволочку Дикону, что тот едва ли не в слезах побежал жаловаться Альдо! Конечно, перед Олларами формально виновен Карваль, поднявший восстание, после которого все дружно перешли на сторону гоганского золота, но Иноходец скорее бы позволил казнить себя, чем своего генерала. Судя по взгляду, Карваль имеет такие же намерения. Посмотри так на него Мэллит полгода назад, не было бы ни восстания, ни Доры, только Чёрная Алати, поля и то, чему нет названия.
Робер тряхнул головой. Дурное вино, дурная луна и выжидающая тишина гнали искать спасения в мыслях, достойных его величества Дивина. Раздражённо сжались кулаки, бакранские козлы сосчитали до 16, но ничего никуда не делось.
- Никола, - прорычал Эпинэ, и Карваль чуть не подпрыгнул, - Вам не стоит здесь находиться в такой час.

15:36 

Каталог товаров, методы класса

целую тебя через сотни вёрст
#include "StdAfx.h"
#include "stdafx.h"
#include "Katalog.h"
#include
#include "Buy.h"
#include "Sale.h"
#include
#include
using namespace std;
Katalog::Katalog(void)
{
}
// новый элемент
Katalog* Katalog::newt(Katalog* firstk, int i, char* st, char* cod, char* gab, char* nom) {
Katalog *cur;
cur=firstk;
Katalog *cur1=new Katalog;
if(firstk==NULL)
{
firstk=cur1;
cur1->mas=i;
cur1->name=new char[strlen(st)+1];
strcpy(cur1->name,st);
cur1->cod=new char[strlen(cod)+1];
strcpy(cur1->cod,cod);
cur1->gab=new char[strlen(gab)+1];
strcpy(cur1->gab,gab);
cur1->nomer=new char[strlen(nom)+1];
strcpy(cur1->nomer,nom);
cur1->next=NULL;
}

else
{while (cur->next!=NULL) cur=cur->next;
cur->next=cur1;
cur1->next=NULL;
cur1->mas=i;
cur1->name=new char[strlen(st)+1];
strcpy(cur1->name,st);
cur1->cod=new char[strlen(cod)+1];
strcpy(cur1->cod,cod);
cur1->gab=new char[strlen(gab)+1];
strcpy(cur1->gab,gab);
cur1->nomer=new char[strlen(nom)+1];
strcpy(cur1->nomer,nom);
cur1->next=NULL;
}
return firstk;
}
Katalog* Katalog::nov(Katalog* firstk) {
int i;
char* name=new char[255];
char* cod=new char[255];
char* nom=new char [255];
char* gab=new char[255];
cout << "Введите массу\n";
cin >> i;
cout << "Введите имя\n";
cin >> name;
cout << "Введите код\n";
cin >> cod;
cout << "Введите номенклатурный номер\n";
cin >> nom;
cout << "Введите габариты\n";
cin >> gab;
firstk=newt(firstk, i, name, cod, gab, nom);
return firstk;
}
// деструктор
Katalog::~Katalog(void)
{
}
// вывод
bool Katalog::vivod (Katalog* firstk) {
if (firstk!=NULL) {
Katalog* p=new Katalog;
p = firstk;
cout << "Имя Масса Код Габариты Номер\n";
while (p) {
cout << p->name << " " << p->mas << " " << p->cod << " " << p->gab << " " << p->nomer << endl;
p = p->next;
} }else {
cout << "Список пуст\n";
return false;}
return true;
}
// пустота
bool Katalog::pust(Katalog* firstk) {
return (firstk!=0);
}
// масса возрастает
Katalog* Katalog::masv (Katalog* firstk) {
Katalog* t=new Katalog; t=0;
Katalog* s=new Katalog; s=firstk;
Katalog* n=new Katalog; n=0;
Katalog* p=new Katalog; p=0;
int kol=1;
for (t=firstk; t->next!=0; t=t->next)
kol++;
for (int j=0; jnext) {if (s->mas>s->next->mas) {
bool f=false;
if (s!=firstk) {
n=firstk;
for (n=firstk; n->next!=s; n=n->next){
;
};
n->next=s->next;}
else f=true;
t=s;
p=t->next;
t->next=s->next->next;
s=p;
s->next=t;
if (f) firstk=s;
}
else {
if (s->next->next) s=s->next;}
}}}
return firstk;
}
Katalog* Katalog::masu (Katalog* firstk) {
Katalog* t=new Katalog; t=0;
Katalog* s=new Katalog; s=firstk;
Katalog* n=new Katalog; n=0;
Katalog* p=new Katalog; p=0;
int kol=1;
for (t=firstk; t->next!=0; t=t->next)
kol++;
for (int j=0; jnext)if (s->masnext->mas) {
bool f=false;
if (s!=firstk) {
n=firstk;
for (n=firstk; n->next!=s; n=n->next){
;
};
n->next=s->next;}
else f=true;
t=s;
p=t->next;
t->next=s->next->next;
s=p;
s->next=t;
if (f) firstk=s;
}
else {
if (s->next->next) s=s->next;}
}}
return firstk;
}
// удаление
Katalog* Katalog::delet (Katalog* firstk, char* c) {
Katalog* cur=new Katalog; Katalog* d=new Katalog;
d=firstk;
cur=firstk;
bool pus=false;
do {
for (int i=0; icod); i++)
if (cur->cod[i]==c[i]) pus=true;
else pus=false;
if (pus==true) break;
d=cur;
cur=cur->next;
} while (cur!=NULL);
if (pus==false) cout << "Элемент не существует\n";
else {Katalog* p=new Katalog; p=0;
if (cur==firstk) {if (cur->next!=0) firstk=firstk->next; else firstk=NULL; delete cur;} else
{

p=cur->next;
d->next=p;
cur=0;
delete cur;
}
}
return (firstk);
}
// редактирование
Katalog* Katalog::reg(Katalog* firstk, char* cod) {
Katalog* r=new Katalog;
for (r=firstk; r->next!=0; r=r->next) {
bool pus=false;
for (int i=0; icod); i++)
if (r->cod[i]==cod[i]) pus=true;
else pus=false;
if (pus==true) break;
}
cout << "Редактировать массу?\n";
bool red;
cin >> red;
if (red) {
cout << "Введите новую массу\n";
cin >> r->mas;}
cout << "Редактировать имя?\n";
cin >> red;
if (red) {
cout << "Введите новое имя\n";
cin >> r->name;}
cout << "Редактировать код?\n";
cin >> red;
if (red) {
cout << "Введите новый код\n";
cin >> r->cod;}
firstk=dobs(firstk, r->mas, r->name, r, r->cod, r->gab, r->nomer);
firstk=delet(firstk, r->cod);
return firstk;
}
Katalog* Katalog::dobs (Katalog* firstk, int i, char* st, Katalog* r, char* cod, char* g, char* n)
{Katalog *cur;
cur=r;
Katalog *cur1=new Katalog;
Katalog* p=cur->next;
cur->next=cur1;
cur1->next=p;
cur1->mas=i;
cur1->name=new char[strlen(st)+1];
strcpy(cur1->name,st);
cur1->cod=new char[strlen(cod)+1];
strcpy(cur1->cod,cod);
cur1->gab=new char[strlen(g)+1];
strcpy(cur1->gab,g);
cur1->nomer=new char[strlen(n)+1];
strcpy(cur1->nomer,n);
return (firstk);
}
// из файла
Katalog* Katalog::ffile(Katalog* firstk) {
ifstream somefile;
somefile.open("katalog.csv");
if (somefile==NULL) {
cout << "Ошибка! Проверьте файл\n";
return 0; }
char* s=new char[255];
int i=0;
char* name=new char[strlen(s)];
char* cod=new char[strlen(s)];
char* nom=new char [strlen(s)];
char* gab=new char[strlen(s)];
int buk=0;
bool fin=false;
while (!(fin)) {
somefile>>s;
if (s[0]!=0) {
i=0;
int buk=0;
while (s[buk]!=';') {
name[buk]=s[buk];
buk++;
}
name[buk]=0;
buk++; int pb=buk;
char* ii=new char[255];
while (s[buk]!=';') {
ii[buk-pb]=s[buk];
buk++;
}
ii[buk-pb]=0;
for (int a=0; anext) {
char* s=new char[255];
strcpy(s, p->name);
s[strlen(p->name)]=';';
int a=p->mas; int i=strlen(p->name)+1; int* str=new int[255]; int n=0;
while (a>0) {
str[n]=a%10;
a=a/10;
n++;
}
str[n]=0;
for (n; n>0; n--) {
s[i]=str[n-1]+'0';
i++;
}
s[i]=';'; i++;
for (n=strlen(p->cod); n>0; n--) {
s[i]=p->cod[strlen(p->cod)-n];
i++;
}
s[i]=';'; i++;
for (n=strlen(p->gab); n>0; n--) {
s[i]=p->gab[strlen(p->gab)-n];
i++;
}
s[i]=';'; i++;
for (n=strlen(p->nomer); n>0; n--) {
s[i]=p->nomer[strlen(p->nomer)-n];
i++;
}
s[i]=0;
//cout << s << endl;
out<<s<

Мой код на c++

главная