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

Алгоритм - C++

Восстановить пароль Регистрация
 
triadec_96
 Аватар для triadec_96
11 / 11 / 0
Регистрация: 27.12.2012
Сообщений: 433
Завершенные тесты: 1
03.11.2013, 23:29     Алгоритм #1
Целый день пишу программу.Дедлайн:завтра сдавать.Чувствую по моему алгоритму я не успею.
Задание:
Создать файл записей с полями: название улицы, количество зданий на этой улице, год возникновения названия улицы. Подсчитать и вывести на экран количество зданий, которые были построены за годы от n до m.
Программу ещё полностю не написал.Начал писать и в ходе написания делаю тесту на правильность выполнения действий.Остановился на проверке считывания переменных с файла(потока).Думаю,у меня зацикливание.
Во код на всякий:
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
#include <iostream>
#include <fstream>
#include <conio.h>
#include <string>
using namespace std;
void main()
{
    int k[255],y[255],n ,m,i=0,s,j=0;
    string str[255];
    char** ch;
    char* ch1;
    fstream f("Text.txt");
    cout<<"Input the number of strings ";
    cin>>s;
    system("cls");
 
    for(i=0;i<=s;i++)
        getline(cin,str[i]);
    //cin>>ch;
 
 
 
    for(i=0;i<=s;i++)
    {f<<str[i];
    f<<endl;}
    f.close();
    
    ifstream ff("Text.txt");
    system("cls");
    //while(!ff.eof())
    ff>>ch;
    /*if(ch == 32) 
        {ff>>k[i];
    ff>>y[i];
    i++;}}*/
    ff.close();
    for(i=0;i<s;i++)
        for(j=0;j<sizeof(ch[i]);j++)
        {if(ch[i][j]==32) 
        {j++;n=0;
        do
        {ch1[n]=ch[i][j];
        n++;j++;}
            while(ch[i][j+1]>47)
                j--;}
        }
            
for(i=0;i<s;i++)
    cout<<ch1[i]<<" ";
    /*for(i=0;i<3;i++)
        cout<<k[i]<<" "<<y[i]<<endl;*/
    getch();
}
Можете пожалуйста написать алгоритм попроще ,ато голова уже кипит от этого и ничего не успеваю.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2013, 23:29     Алгоритм
Посмотрите здесь:

Волновой алгоритм (алгоритм Ли) C++
с++ алгоритм C++
алгоритм C++
C++ Алгоритм
Помогите алгоритм для char переделать в алгоритм для float C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
03.11.2013, 23:33     Алгоритм #2
triadec_96, я бы мог предложить вам написать программу с использованием qt... как раз работаю с подобными вещами. Там это элементарно обрабатывается
типа так
C++ (Qt)
1
2
3
QFile file(filename);
QString str = file.readAll();
QStringList StreetList = str.split("\n");
Хулиган
 Аватар для Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
03.11.2013, 23:41     Алгоритм #3
Цитата Сообщение от triadec_96 Посмотреть сообщение
fstream f("Text.txt");
нужно установить флаг(чтение\запись)
реализовать структуру с полями по заданию, создать дин массив например vector<Street>, считываете с файла структуру добавляете ее в массив, потом в циклически пройтись по массиву и посчитать нужные здания

Добавлено через 2 минуты
Цитата Сообщение от Folko Посмотреть сообщение
я бы мог предложить вам написать программу с использованием qt

Не по теме:

интересно у человека, который не работает с Qt, она может быть случайно установлена?

Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
03.11.2013, 23:47     Алгоритм #4
Хулиган, вот поэтому я и не предлагаю. Но с другой стороны: если сильно необходимо, то можно написать на qt код и сдать преподу.
И она действительно может быть установлена, на ней можно писать и без использования библиотек qt
Хулиган
 Аватар для Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
04.11.2013, 00:22     Алгоритм #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
#include <iostream>
#include <string>
#include <fstream>
#include <vector>
 
using namespace std;
 
struct Street
{
    string name;
    int number;
    vector<int> years;
};
 
int main()
{
    Street buf;
    int x, a, b, sum = 0;
    vector <Street> collection;
    
    cout << "a - b:";
    cin >> a;
    cin >> b;
 
    fstream out("file.txt", ios::out);
    
    cout << "street: ";
    while(cin >> buf.name)
    {
        cout << "number houses: ";
        cin >> buf.number;
 
        out << buf.name << " " << buf.number << " ";
        for(int i = 0; i<buf.number; ++i)
        {
            cin >> x;
            out << x << " ";
        }
 
        out << endl;
        cout << "street: ";
    }
    out.close();
 
    fstream in("file.txt", ios::in);
 
    while(in >> buf.name)
    {
        in >> buf.number;
 
        buf.years.clear();
 
        for(int i = 0; i<buf.number; ++i)
        {
            in >> x;
            buf.years.push_back(x);
        }
        collection.push_back(buf);
    }
    
    in.close();
 
    /////////////////////////////////////////////
    
 
    for(int i = 0; i<collection.size(); ++i)
    {
        cout << collection[i].name << ":" << endl;
        for(int j = 0; j<collection[i].years.size(); ++j)
            if(collection[i].years[j] >= a && collection[i].years[j] <= b)
            {
                ++sum;
                cout << collection[i].years[j] << " years" << endl;
            }
            cout << endl;
 
    }
    cout << a << " - " << b << " " << sum << " houses";
    system("pause");
 
}
Добавлено через 48 секунд
доработайте\переделайте чтоб вам подходило по заданию
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
04.11.2013, 01:46     Алгоритм #6
С задатком на будущее:
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
#include <iostream>
#include <fstream>
#include <string>
 
class Street
{
  public:
    Street() : name_(), numOfhouses_(), year_()
    {}
    Street(const std::string& name, const int numOfhouses, const int year) :
        name_(name), numOfhouses_(numOfhouses), year_(year) {}
 
    // get-методы
    std::string getName() const {return name_; }
    int getNumOfHouses() const  {return numOfhouses_; }
    int getYear() const         {return year_; }
 
    // set-методы
    void setName(const std::string& name)      {name_ = name; }
    void setNumOfHouses(const int numOfhouses) {numOfhouses_ = numOfhouses; }
    void setYear(const int year)               {year_ = year; }
 
  private:
    std::string name_; // название
    int numOfhouses_;  // количество домов
    int year_;         // год основания
};
 
std::ostream& operator<< (std::ostream& out, const Street& s)
{
    out << s.getName() << '\n'
        << s.getNumOfHouses() << '\n'
        << s.getYear() << '\n';
    return out;
}
 
std::istream& operator>> (std::istream& ist, Street& s)
{
    // временные переменные
    std::string name;
    int numOfHouses, year;
    ist >> name >> numOfHouses >> year;
 
    // устанавливаем свойства
    s.setName(name);
    s.setNumOfHouses(numOfHouses);
    s.setYear(year);
    return ist;
}
 
// <<<<<<<<<<------------------- главная функция --------------------->>>>>>>>>>
int main()
{
    std::ifstream ifs("input.txt");
    if (!ifs) return 1;
    int n, m;
 
    std::cout << "Enter lower bound: ";
    std::cin >> n;
    std::cout << "Enter upper bound: ";
    std::cin >> m;
    if (m < n) return 2;
 
    int counter = 0; // счетчик числа домов, основанных в промежутке [n, m]
    // пока удалось считать объект Street, проверяем условие
    for (Street tmp; ifs >> tmp; )
        if (n <= tmp.getYear() && tmp.getYear() <= m)
            counter += tmp.getNumOfHouses();
 
    std::cout << "Counter: " << counter << std::endl;
}
Хулиган
 Аватар для Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
04.11.2013, 02:07     Алгоритм #7
Цитата Сообщение от MrGluck Посмотреть сообщение
С задатком на будущее:
мб я чтот не понял, но раз указывается количество домов и их года, то запись должна иметь вид:
название_улицы
количество_домов
года_в_соответствии_с_количеством!? или нет?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.11.2013, 02:17     Алгоритм
Еще ссылки по теме:

Алгоритм C++
C++ QR алгоритм
C++ алгоритм бм

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

Или воспользуйтесь поиском по форуму:
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
04.11.2013, 02:17     Алгоритм #8
Хулиган, мне кажется, вы перемудрили. Об этом явно было бы указано в задании
Yandex
Объявления
04.11.2013, 02:17     Алгоритм
Ответ Создать тему
Опции темы

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