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

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

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

Cтруктура: расчет количества библиотек на 1000 жителей. - C++

01.02.2013, 00:49. Просмотров 486. Ответов 4
Метки нет (Все метки)

Составить программу, в которой описывается структура из полей: Город, Количество жителей, Количество библиотек. Организовать ввод структурных переменных, вывод каждой структуры на экран и расчет количества библиотек на 1000 жителей.
Кол-во библиотек на 1000 жителей = Количество библиотек / Количество жителей / 1000.


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 <iostream>
#include <cstring>
#include <windows.h>
#include <stdio.h>
#include <clocale>
 
 
using namespace std;
 
struct library{
    char city[20];
    int people;
    int klib;
    library *next;
};
 
void wwod(library *tek){
 
    cout<<"Введите город: ";
    gets(tek->city);
    cout<<"Введите количество жителей: ";
    cin>>tek->people;
    cout<<"Введите количество библиотек: ";
    cin>>tek->klib;
    cout<<endl;
 
}
 
 
void wywod(library tek){
    cout<<"Город"; for(int i = 0; i<strlen(tek.city); i++) cout<<tek.city[i]; cout<<endl;
    cout<<"количество жителей: "<<tek.people<<endl;
    cout<<"Количество библиотек: "<<tek.klib<<endl;
}
 
void kolvo ( library tek)
{
  int s1,s2;
  s1=a.klib/a.people/1000;
  cout <<"\nГород: ";
  for (int i = 0; i<strlen(a.city); i++) cout<<a.city[i]; cout<<endl;
  cout <<"Количество бибилиотек на 1000 жителей: "<<s1;
  s2=b.klib/b.people/1000;
  cout <<"\nГород: ";
  for (int i = 0; i<strlen(b.city); i++) cout<<b.city[i]; cout<<endl;
  cout <<"Количество бибилиотек на 1000 жителей: "<<s2;
}
 
 
 
int main()
{   setlocale(LC_ALL, "Russian");
    library *nach, *kon, *tek, *old, *new_n;
    char yn='Да';
    nach=0;
    kon=0;
    do
    {
    new_n=new library;
    wwod(new_n);
    new_n->next=0;
    if (nach)
    {
        kon->next=new_n;
        kon=new_n;
    }
    else
    {
        nach=new_n;
        kon=new_n;
    }
    cout <<"\nБудете добавлять новые данные ? (Да/Нет)";
    cin >> yn;
    }
     while ((yn!='Да')||(yn!='да'));
 
 
 tek=nach;
 while (tek)
 {
    cout<<"Город: "<<tek->city;
    cout<<"количество жителей: "<<tek->people;
    cout<<"Количество библиотек: "<<tek->klib;
    old=tek;
   tek=tek->next;
   delete old;
 
 }
 
 kolvo(new_n);
wywod(new_n);
 
 
    return 0;
}
Я что-то пыталась сделать, но слишком много всего получилось. Задача то простая, но из-за ввода неопределенного количества структур я путаюсь.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.02.2013, 00:49     Cтруктура: расчет количества библиотек на 1000 жителей.
Посмотрите здесь:

Расчет количества уровней в бинарном дерева - C++
Доброго всем времени суток, есть бинарное дерево с функциями добавления, удаления и печати, нужно еще создать функцию Depth которая будет...

Расчет суммы или количества элементов массива, удовлетворяющих некоторому условию - C++
Дан массив целых чисел. Найти: а) сумму нечетных элементов; б) сумму элементов, кратных заданному числу; в) сумму элементов массива,...

Структуры: создать список жителей города - C++
нужно создать список жителей города, работа со структурой. struct sp { char fami; // фамилия ...

На какой стороне улицы проживает больше жителей? - C++
известно число жителей проживающих в каждом доме. Нумерация домов проведена подряд. Дома с нечётными номерами расположены на одной стороне...

Упорядочить последовательность методом простого выбора по фамилиям жителей. - C++
Разработать объект-вектор. В файле хранятся сведения о жителях некоторой улицы: фамилия, адрес, год рождения. Все сведения записываются...

Определить на какой стороне улицы проживает больше жителей - C++
2. Известно число жителей, проживающих в каждом доме улицы. Нумерация домов проведена подряд. Дома с нечетными номерами расположены на...

Определить, с какой стороны улицы живет наибольшее количество жителей? - C++
Известно количество жителей каждого дома.Нумерация домов идет подряд.С одной стороны улицы четные дома, с другой нечетные.С какой стороны...

Написать програму, ведущую подсчет городских жителей, через структуру. - C++
Составить программу, в которой описывается структура из полей: Город, Количество жителей Количество родившихся в прошлом году, Количество...

Создать консольное приложение для учета прописанных в доме жителей - C++
Создать консольное приложение для учета прописанных в доме жителей. С консоли должны считываться команды: “init n” – где n – целое...

Выведите информацию о городах, где количество жителей больше пятидесяти тысяч - C++
Здравствуйте, не могу понять как правильно написать программу которая работает с файлами. Вот мой пример программы: #include &quot;stdafx.h&quot; ...

Увеличить численность каждого города на 5% (количество жителей-всегда целое число). - C++
В типизированном файле записаны названия городов и их численность.Увеличить численность каждого города на 5% (количество жителей-всегда...

Функции вычисления количества дней заданного месяца и количества месяцев между двумя датами - C++
Область first - положительное целое число , год; second - положительное целое число от 1 до 12 - номер месяца. Реализовать методы daysCount...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Модератор
Эксперт CЭксперт С++
7151 / 4317 / 629
Регистрация: 29.11.2010
Сообщений: 11,733
01.02.2013, 01:37     Cтруктура: расчет количества библиотек на 1000 жителей. #2
Путаетесь вы с самоадресацией, советую создать отдельно программу, в которой будет след. структура:
C++
1
2
3
4
5
struct A
{
    int a;
    A *next;
};
дальше организовать ввод, вывод и потом уже возвращаться к своей проге. И можно будет все дело загнать в контейнер STL или массив.
Vourhey
Почетный модератор
6477 / 2252 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
01.02.2013, 02:26     Cтруктура: расчет количества библиотек на 1000 жителей. #3
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
#include <iostream>
#include <algorithm>
#include <iterator>
 
struct CityInfo
{
    char Name[20];
    int PeopleCount;
    int LibrariesCount;
};
 
std::ostream& operator<<(std::ostream &out, const CityInfo &city)
{
    out<<"City name: "<<city.Name<<", number of people: "<<city.PeopleCount<<", libraries count: "<<city.LibrariesCount;
    return out<<". Libraries count - 1000: " << city.LibrariesCount/(city.PeopleCount/1000) << std::endl;
}
 
void InputCityData(CityInfo &city)
{
    std::cin.ignore();
    std::cout<<"Name: ", std::cin.getline(city.Name, 20);
    std::cout<<"People count: ", std::cin>>city.PeopleCount;
    std::cout<<"Libraries: ", std::cin>>city.LibrariesCount;
}
 
int main()
{
    int count;
    CityInfo *Cities;
    std::cout<<"Cities count: ", std::cin>>count;
    Cities = new CityInfo[count];
    std::for_each(Cities, Cities+count, InputCityData);
    std::copy(Cities, Cities+count, std::ostream_iterator<CityInfo>(std::cout));
    delete[] Cities;
}
Nastya555
0 / 0 / 1
Регистрация: 18.09.2011
Сообщений: 31
04.02.2013, 22:58  [ТС]     Cтруктура: расчет количества библиотек на 1000 жителей. #4
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
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <windows.h>
 
using namespace std;
 
struct library
    {char city[25];
        int people;
        int libraryCount;
    };
library mass[2];
int j=0;
 
int input ()
{SetConsoleCP(1251);
SetConsoleOutputCP(1251);
    cout<<"Введите город: ";
    fgets(mass[j].city, 25, stdin);
    cout<<"\n Введите количество жителей: ";
    cin>>mass[j].people;
    cout<<"\n Введите количество библиотек: ";
    cin>>mass[j].libraryCount;
    cout<<"\n";
    cin.clear();
    cin.sync();
return 0;}
 
int output (int kolvo[2])
{
int i;
for (i=0; i<=j; i++)
    {cout<<"Город: "<<mass[i].city<<"\n";
    cout<<"Жители: "<<mass[i].people<<"\n";
    cout<<"Количество бибилотек: "<<mass[i].libraryCount<<"\n";
    cout<<"Количество бибилотек на 1000 жителей: "<<kolvo[i]<<"\n";
    }
return 0;
}
int kol ()
{int i;
int kolvo[2];
    for(i=0; i<=1; i++)
    kolvo[i]=mass[i].libraryCount/(mass[i].people/1000);
    output(kolvo);
return 0;}
 
int main ()
{setlocale (LC_ALL, "Russian");
cout<<"Введите структуры.\n";
int p=0;
while (p==0)
{
    cin.clear();
    cin.sync();
input();
 
cout<<"Хотите ввести еще структуру? 0 - да или 1 - нет?";
cin>>p;
j++;
}
 
kol();
getch();
return 0;}
Не могу понять, почему после того как прекращаешь вводить данные, программа закрывается с ошибкой.
abit
260 / 259 / 33
Регистрация: 03.02.2013
Сообщений: 709
05.02.2013, 04:35     Cтруктура: расчет количества библиотек на 1000 жителей. #5
Цитата Сообщение от Nastya555 Посмотреть сообщение
Не могу понять, почему после того как прекращаешь вводить данные, программа закрывается с ошибкой.
к сожалению не имею пригодного компилятора, чтобы собрать ваш код, т.к. он написан в нарушение базовых соглашений, но по беглому осмотру сразу видна явная ошибка :

после этой операции
C++
1
2
cin>>p;
j++;
счётчик структур (кстати не стоило для этого заводить глобальные переменные и засорять пространство имён такими малопонятными j) икримируется в не зависимости от результата p, т.е. если ввести что 0, что 1 - прибавиться якобы новая структура... отлично, смотрим дальше

C++
1
kolvo[i]=mass[i].libraryCount/(mass[i].people/1000);
что это?
у этой якобы структуры сразу начнёт что-то считаться... и могу сделать однозначный вывод - падает это тут
C++
1
/(mass[i].people/1000)
из за деления на ноль

на всякий случай впихните туда так
C++
1
kolvo[i]=mass[i].libraryCount/((mass[i].people+1e-8)/1000);
и не создавайте лишнюю структуру
C++
1
if (p==0) j++;
если будет всё равно вылетать - тут уж сорри, у меня нет такого компилятора, который бы это схавал
Yandex
Объявления
05.02.2013, 04:35     Cтруктура: расчет количества библиотек на 1000 жителей.
Ответ Создать тему
Опции темы

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