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

Робота со строками - C++

Восстановить пароль Регистрация
 
Lyubanya
 Аватар для Lyubanya
0 / 0 / 0
Регистрация: 04.10.2011
Сообщений: 26
04.12.2011, 13:03     Робота со строками #1
Ввести с клавиатуры массив строк символов с данными о клиентах банка: фамилия и проч., № счета, сумма вклада, дата. Отсортировать строки по возрастанию даты. Выделить составные части строк и записать их в соответствующие поля массива структур. Построить в динамической памяти однонаправленный линейный список массива структур, Исключить из списка элементы с нулевыми значениями суммы вклада, после чего переписать список в текстовый файл. Прочитать данные текстового файла и вывести их на экран в форме таблицы. Все действия оформить в виде отдельных функций.
Народ, плиз...очень срочна надо!!!!!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.12.2011, 13:03     Робота со строками
Посмотрите здесь:

Робота с строками в С++ C++
Робота со строками в с++ 3.1 C++
C++ Лабораторная робота!
робота с текстом C++
C++ Робота из символьными строками
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Lyubanya
 Аватар для Lyubanya
0 / 0 / 0
Регистрация: 04.10.2011
Сообщений: 26
07.12.2011, 20:33  [ТС]     Робота со строками #2
Народ ну пожалуйста...хоть какие то варианти...(((
ex-student
3 / 3 / 0
Регистрация: 12.12.2010
Сообщений: 22
07.12.2011, 21:25     Робота со строками #3
смотрите как работать со структурами. в принципе ничего сложного.
а в чем вопрос?
Lyubanya
 Аватар для Lyubanya
0 / 0 / 0
Регистрация: 04.10.2011
Сообщений: 26
07.12.2011, 21:29  [ТС]     Робота со строками #4
Просто это розраха, пробовала делать ... множество ошибок выбивает ... пожалуйста, если не трудно помогите (((
ex-student
3 / 3 / 0
Регистрация: 12.12.2010
Сообщений: 22
07.12.2011, 21:34     Робота со строками #5
вот есть пример подобной программы - все вокруг структур:

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include <stdio.h>
#define fname "f.txt"
 
typedef struct car {
    char model[20];
    char colour[10];
    int km;
    int age;
    int local;
    char country[20];
} CAR;
 
void addToFile (const char *fname)
{
    FILE *fp;
    int n;
    CAR c;
    if ((fp = fopen(fname, "a")) == NULL)
        printf("Error");
    else
    {
        printf("How many cars do you want to add? ");
        scanf("%d", &n);
        for (i = 0; i < n; i++)
        {
            printf("Model: ");
            scanf("%s", &c.model);
            printf("Colour: ");
            scanf("%s", &c.colour);
            printf("Kilometrage: ");
            scanf("%d", &c.km);
            printf("Age: ");
            scanf("%d", &c.age);
            printf("Is this car foreign (1 - yes, 0 - no)? ");
            scanf("%d", &c.local);
            if (c.local == 1)
            {
                printf("Country of origin: ");
                scanf("%s", &c.country);
            }
        }
        fwrite(&c, sizeof(CAR), 1, fp);
        fclose(fp);
    }
}
 
 
void processData(const char *fname)
{
    FILE *fp;
    CAR c;
    if ((fp = fopen(fname, "r")) == NULL)
        printf("Can't open file %s.\n", fname);
    else
    {
        while (!feof(fp))
        {
            fread(&c, sizeof(CAR), 1, fp);
            if (c.age <= 5)
            {
                printf("%s", c.model);
                printf("%s", c.colour);
                printf("%d", c.km);
                printf("%d", c.age);
                if (c.local == 1)
                    printf("%s", c.country);
                printf("\n");
            }
        }
        printf("Data was successfully processed.\n");
        fclose(fp);
    }
}
 
 
 
int main()
{
    int i, n, key=0;
    while (key < 3)
    {
        printf("Choose action with corresponding number:\n"
            "1 - Add data to input file\n"
            "2 - Process input file\n"
            "> ");
        scanf("%d", &key);
        switch (key)
        {
            case 1: addToFile(fname);
            case 2: processData(fname);
        }
    }
 
    return 0;
}
Lyubanya
 Аватар для Lyubanya
0 / 0 / 0
Регистрация: 04.10.2011
Сообщений: 26
07.12.2011, 21:51  [ТС]     Робота со строками #6
Хм...ну спасибо огромное...учту...)
ex-student
3 / 3 / 0
Регистрация: 12.12.2010
Сообщений: 22
07.12.2011, 21:57     Робота со строками #7
пожалуйста. удачи
Lyubanya
 Аватар для Lyubanya
0 / 0 / 0
Регистрация: 04.10.2011
Сообщений: 26
07.12.2011, 23:15  [ТС]     Робота со строками #8
спасибо...
Но если чтота придет в голову еще бросайте
ex-student
3 / 3 / 0
Регистрация: 12.12.2010
Сообщений: 22
08.12.2011, 17:56     Робота со строками #9
разбирайтесь, спрашивайте, попробую помочь
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2011, 22:56     Робота со строками
Еще ссылки по теме:

C++ Робота со строками. (заменить сокращения на полный текст)
C++ Робота с файлами и строками
Оптимизация робота C++

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

Или воспользуйтесь поиском по форуму:
Lyubanya
 Аватар для Lyubanya
0 / 0 / 0
Регистрация: 04.10.2011
Сообщений: 26
09.12.2011, 22:56  [ТС]     Робота со строками #10
вот прога...не могу найти ошибку.... помогите...

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
#include <iostream>
#include <string>
#include "conio.h"
#include <stdlib.h>
#include <fstream>
 
using namespace std;
 
string *strClients;
 
struct SClient
{
string name; //ім"я клієнта
int accID; //номер
float sum; //сума вкладу
string date; //дата
 
SClient *next;
 
SClient()
{
next = NULL;
};
 
 
struct LClients //створення списку
{
SClient *head, *tail;
 
LClients()
{
head = tail = NULL;
};
 
//--------------------------------------
void Append(SClient& cl)
{
SClient *curItem;
 
if (head == NULL)
{
head = new SClient();
*head = cl;
tail = head;
}
else
{
curItem = head;
while (curItem->next != NULL)
curItem = curItem->next;
 
curItem->next = new SClient();
tail = curItem->next;
*tail = cl;
}
};
 
//--------------------------------------
void Output()
{
SClient *curItem;
 
curItem = head;
while (curItem != NULL)
{
cout << curItem->name << '\t' << curItem->accID << '\t' << curItem->sum << '\t' << curItem->date << endl;
 
curItem = curItem->next;
}
};
 
//--------------------------------------
int FindSave(float lsum)
{
int nc = 0;
SClient *curItem;
fstream fs;
 
fs.open ("clients.txt", fstream::in | fstream::out | fstream::app);
if (!fs.is_open()) cout << "Error opening a file!\n";
 
curItem = head;
while (curItem != NULL)
{
if (curItem->data > ldata)
{
nc++;
fs << curItem->name << '\t' << curItem->accID << '\t' << curItem->sum << '\t' << curItem->date << endl;
}
 
curItem = curItem->next;
}
 
fs.close();
 
return nc;
};
 
//--------------------------------------
~LClients()
{
SClient *curItem, *prevItem;
 
curItem = head;
while (curItem != NULL)
{
prevItem = curItem;
curItem = curItem->next;
 
delete prevItem;
}
 
};
 
 
void FileReadOutput(string fn)
{
fstream fs;
string buf;
 
fs.open ("clients.txt", fstream::in | fstream::out);
 
while(!fs.eof())
{
getline(fs, buf);
cout << buf << endl;
}
 
fs.close();
};
 
int main()
{
int NC, i, ii;
 
// Array of strings
cout << "Input number of clients: "; cin >> NC;
 
strClients = new string [NC];
 
cin.ignore();
cout << "Input info about clients (Name, account id, sum, date):\n";
for (i=0; i<NC; i++)
getline(cin, strClients[i]);
 
// Array of structures
SClient *Clients = new SClient[NC];
size_t found, pos;
string buf;
 
for (i=0; i<NC; i++)
{
pos = 0;
 
// name
found = strClients[i].find('\t', pos);
Clients[i].name.assign(strClients[i], pos, found-pos);
 
// account id
pos = found+1;
found = strClients[i].find('\t', pos);
buf.assign(strClients[i], pos, found-pos);
Clients[i].accID = atoi(buf.c_str());
}}
Yandex
Объявления
09.12.2011, 22:56     Робота со строками
Ответ Создать тему
Опции темы

Текущее время: 06:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru