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

операции с текстовыми файлами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Описать функцию Compare http://www.cyberforum.ru/cpp-beginners/thread36143.html
Последняя из 6 задачек (5 осилил, 1 с вашей помощью) Описать функцию Compare(A,B,n), возвразающую 1, если можно преобразовать квадратную матрицу А размером n x n в матрицу B, отражениями относительно главной и побочной диагонали, и 0 в обратном случае. Очень приветствуется код. Заранее спасибо! Добавлено через 17 часов 56 минут 14 секунд Ну пожалуйста :)
C++ Редактирование текстового файла Дано число N и текстовый файл. Удалить из файла абзац с номером N (абзацы выделяются с помощью красной строки (5 пробелов) и нумеруются от 1). Пустые строки между абзацами не учитывать и не удалять. Если абзац с данным номером отсутствует, то оставить файл без изменений. Заранее спасибо!+) http://www.cyberforum.ru/cpp-beginners/thread36142.html
C++ программо на чтение из текстового файла.
Задача программы имеется внешний текстовый файл. Написать программу печати первой из самых коротких строк. Что не так в коде? #include <iostream> #include <fstream> #include <string> #include <vector> #include <algorithm> using namespace std; int main()
Использование функций! C++
Задать значения целочисленным элементам матриц A = {aij}, B = {bij}, где i = 0, 1, 2,..., 5; j = 0, 1, 2, 3 и вычислить элементы массивов X = {xij}, Y = {yij} по формулам: xij=ln a(ij) yij=exp b(ij)
C++ Помогите решить задачу со строками http://www.cyberforum.ru/cpp-beginners/thread36130.html
Даны два числа : N1 и N2, и две строки : S1 и S2.Получить из этих строк новую строку, объединивши N1 первых символов строки S1 и N2 последних символов строки S2. Оч нужно,плизззз помогите=)
C++ Перевод int в символьный массив char Помогите плз реализовать алгоритм перевода целого числа в символьный массив.. К примеру: дано число int a=1234; нужно чтобы в массиве char b было: b=1, b=2, b=3, b=4, итд.. число a - произвольное, но четырехкратное) был бы благодарен за помощь)) подробнее

Показать сообщение отдельно
аkо
0 / 0 / 0
Регистрация: 24.05.2009
Сообщений: 5

операции с текстовыми файлами - C++

26.05.2009, 02:15. Просмотров 752. Ответов 2
Метки (Все метки)

Доброго времени суток!!! Помогите решить задачку, у самой не получается=((

Задача в С++, изначально данные находятся в файле .txt
Сделать прогу с помощью операций с текстовыми файлами.


Написать программу, которая содержит динамическую информацию о нарушении правил дорожного движения. (на один автомобиль база может содержать записи о нескольких нарушениях). Сведения о каждом автомобиле включает в себя:
-номер автомобиля (3-х значный);
-фамилию владельца;
-список нарушений;
-размер штрафа за каждое нарушение из списка.
Программа должна обеспечивать:
1. начальное формирование из файла базы данных об автомобилях в виде бинарного дерева, по номеру автомобиля.
2. при уплате всех штрафов (сумма и номер автомобиля вводиться с консоли пользователем) автомобиль удаляется из базы нарушителей.
3. по запросу в файл выводятся сведения о нарушителях.



Пример файла .txt:
123 Иванов Проезд на красный свет 500 Управление в нетрезвом состоянии 1000
248 Петров Пересечение сплошной полосы 500
362 Сидоров Превышение скорости на 50 км/ч 300

Заранее огромное спасибо!!!

Добавлено через 12 часов 24 минуты 28 секунд
Набросок кода такой, только он не работает=((
#include <iostream.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>

struct narush
{
int nomer;
char familia[10];
char violation[40];
int shtraf;
};
struct gbdd
{
narush info;
gbdd* left;
gbdd* right;
}tr;



gbdd* create_var(narush a)
{
gbdd* newvar;
newvar=new(gbdd);
newvar->info=a;
newvar->left=NULL;
newvar->right=NULL;
return(newvar);
}
gbdd* add_var(gbdd* f, narush a)
{
if (f==NULL) {f=create_var(a);
return(f);}
if (f->info.nomer>a.nomer) {if (f->left==NULL) {f->left=create_var(a);
cout<<"left"<<endl;
}
else f=add_var(f->left,a);}
if (f->info.nomer<a.nomer) {if (f->right==NULL) { f->right=create_var(a);
cout<<"right"<<endl;
}
else f=add_var(f->right,a);}
return (f);
}

gbdd* find(gbdd *a,narush val)
{
if (a==NULL) return(0);
if (val.nomer<a->info.nomer) return(find(a->left,val));
if (val.nomer>a->info.nomer) return(find(a->right,val));
if (val.nomer==a->info.nomer) return(a);

}
void travel(gbdd *a)
{
cout <<a->info.nomer<<endl;
travel(a->left);
travel(a->right);
}

void main()
{
FILE *f;
f=fopen("inp.txt","r");
const int dl=60;
char s[dl];
gbdd *b,*c;
fgets(s,dl,f);
b=new(gbdd);
b->info.nomer=atoi(&s[0]);
strncpy(b->info.familia,s,10);
strncpy(b->info.violation, s, 40);
b->info.shtraf=atoi(&s[20]);

while (fgets(s,dl,f))
{
c->info.nomer=atoi(&s[0]);
strncpy(c->info.familia, s, 10);
strncpy(c->info.violation,s,40);
c->info.shtraf(&s[20]);
b=add_var(b,c->info);
}
travel(b);

}

Добавлено через 10 часов 41 минуту 41 секунду
Помогите, сил моих больше нет!!!!:'(

Добавлено через 3 часа 51 минуту 27 секунд
Возможно, как-то так, но компилятор ругается, на чем свет стоит

#include <iostream.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>

struct node
{
int number;
char soname[10];
char narush[40];
char shtraf;
node *right;
node *left;};

node *crnode(int val)
{
node *newnode;
newnode=new (node);
newnode->number=val;
newnode->left=NULL;
newnode->right=NULL;
return (newnode);
}
node *add_tree(node *a, int val)
{ if (a==NULL) {a=crnode(val); return (a);}
if (val<a->number)
if (a->left==NULL) a->left=crnode(val);
else add_tree(a->left,val);
if (val>a->number)
if (a->right==NULL) a->right=crnode(val);
else add_tree(a->right,val);
return (a);}

node *find_tree(node *a, int val)
{if (a==NULL) return (NULL);
if (a->number==val) return (a);
if (val<a->number) return(find_tree(a->left, val));
if (val>a->number) return(find_tree(a->right, val));
return(NULL);}

void travel(node *a)
{if(a!=NULL)
{cout<<"nomer mashini"<<a->number<<"familia vladel'ca"<<a->soname<<endl;
travel(a->left);
travel(a->right);
}
}

int main()
{
node *a=NULL;

FILE *inp, *out;
if((inp=fopen("inp.txt","r"))==NULL)
{cout<<"Oshibka faila"<<endl; return(1);}
if((out=fopen("out.txt","w+"))==NULL)
{cout<<"Oshibka faila"<<endl; return(1);}
const int dl=75;
char s[dl];
int kol=0;//количество записей в файле

while(fgets(s,dl,inp))
{
node.number=atoi(&s[3]);
strncpy(node.soname,&s[4],10);
node.soname[14]='\0';
strncpy(node.narush, &s[15],40);
node.narush[45]='\0';
strncpy(node.shtraf, &[46], 23);
node.shtraf[69]='\0'
kol++;
a=add_tree(a, &node.number);
}
fclose(inp);

return 0;



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