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

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

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

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

04.12.2011, 13:03. Просмотров 446. Ответов 9
Метки нет (Все метки)

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

Робота с строками в С++ - C++
Есть строка символов, і ее нузно развернуть, от код, подскажите, потому что выдает ошибку char*str1; cout<<"\nvvedit 1\n"; ...

Робота со строками в с++ 3.1 - C++
Помогите разрешить такую задачу, пожалуйста: Определить длину строки, которую нужно ввести с клавиатуры. Определить длину строки за...

Робота с файлами и строками - C++
Написать программу, которая считывает текст из файла и выводит в другой файл и на экран только те предложения, которые не содержат ком...

Робота из символьными строками - C++
За індивідуальним завданням створити функцію для обробки символьних рядків. За зразок брати бібліотечні функції обробки рядків мови C, але...

Робота со строками. Удалить символы в строке - C++
Удалите в строке все символы "!". Помогите с кодом

Робота со строками. (заменить сокращения на полный текст) - C++
как решить задачу ; Задан русскоязычный текст,в котором есть сокращения (т.к , др. , и.т.п.).Нужно заменить эти сокращения на полный...

9
Lyubanya
0 / 0 / 0
Регистрация: 04.10.2011
Сообщений: 26
07.12.2011, 20:33  [ТС] #2
Народ ну пожалуйста...хоть какие то варианти...(((
0
ex-student
3 / 3 / 0
Регистрация: 12.12.2010
Сообщений: 22
07.12.2011, 21:25 #3
смотрите как работать со структурами. в принципе ничего сложного.
а в чем вопрос?
0
Lyubanya
0 / 0 / 0
Регистрация: 04.10.2011
Сообщений: 26
07.12.2011, 21:29  [ТС] #4
Просто это розраха, пробовала делать ... множество ошибок выбивает ... пожалуйста, если не трудно помогите (((
0
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;
}
1
Lyubanya
0 / 0 / 0
Регистрация: 04.10.2011
Сообщений: 26
07.12.2011, 21:51  [ТС] #6
Хм...ну спасибо огромное...учту...)
0
ex-student
3 / 3 / 0
Регистрация: 12.12.2010
Сообщений: 22
07.12.2011, 21:57 #7
пожалуйста. удачи
0
Lyubanya
0 / 0 / 0
Регистрация: 04.10.2011
Сообщений: 26
07.12.2011, 23:15  [ТС] #8
спасибо...
Но если чтота придет в голову еще бросайте
0
ex-student
3 / 3 / 0
Регистрация: 12.12.2010
Сообщений: 22
08.12.2011, 17:56 #9
разбирайтесь, спрашивайте, попробую помочь
0
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());
}}
0
09.12.2011, 22:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2011, 22:56
Привет! Вот еще темы с ответами:

Робота на 5 - C++
Пропоную зробити найкращу презентацію

Робота со списками - C++
Даны 2 списка, содержащих фамилии студентов 2-х групп. Перевести L студентов с 1-й группы в другую. Число пересчете-К.

робота с текстом - C++
3 задан текст.определить,содержит ли он цифры?

робота с графикой - C++
Робота с графикой. что надо написать что бы можно было нарисовать рисунок пример солнышко


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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