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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
neon902
1 / 1 / 0
Регистрация: 01.07.2010
Сообщений: 62
#1

Составить базу данных о квартирах дома (от 6 до 12). Для каждой квартиры указать номер, жилую площадь, общую площадь, количество жильцов... - C++

01.07.2010, 18:53. Просмотров 1374. Ответов 12
Метки нет (Все метки)

Составить базу данных о квартирах дома (от 6 до 12). Для каждой квартиры указать номер, жилую площадь, общую площадь, количество жильцов, количество детей. Упорядочить квартиры по общей площади или по количеству жильцов или по метражу на одного жильца.
Помогите с прогой.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2010, 18:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Составить базу данных о квартирах дома (от 6 до 12). Для каждой квартиры указать номер, жилую площадь, общую площадь, количество жильцов... (C++):

Дана информация о пяти квартирах. Запись имеет вид: фамилия владельца, площадь, число комнат, этаж. Вывести данные о квартирах - C++
Дана информация о пяти квартирах. Запись имеет вид: фамилия владельца, площадь, число комнат, этаж. Вывести данные о квартирах с площадью...

Ввести номер квартиры дома. Вывести количество жителей этой квартиры - Pascal ABC
Задача . Выбор. Составить программу для решения задачи используя команду позволяющую выбор из списка предоставленных данных. ...

Создать структуру, содержащую название улицы, номер дома, количество жильцов - Visual Basic .NET
Добрый вечер! У меня небольшая проблемка) Если кто нибудь подскажет решение,буду рада! Вот задача: Список содержит число жителей,...

Подсчитать площадь дома, свободную площадь двора и длину забора - Turbo Pascal
12)В углу прямоугольного двора размером 50х30 стоит прямоугольный дом размером 20х10. Подсчитать площадь дома, свободную площадь двора и...

Дана информация о площади каждой комнаты в квартире. Найти общую площадь комнат - Free Pascal
Помогите пожалуйста с задачей. Нужен код на паскале. Очень надо. Вот условие: Вам будет предоставлена информация о площади каждой...

Для каждой тройки данных отрезков вывести на экран площадь треугольника - C#
Даны отрезки а, b, c и d. Для каждой тройки этих отрезков, из которой можно построить треугольник, вывести на экран площадь данного...

12
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
01.07.2010, 18:55 #2
Цитата Сообщение от neon902 Посмотреть сообщение
Составить базу данных о квартирах дома (от 6 до 12). Для каждой квартиры указать номер, жилую площадь, общую площадь, количество жильцов, количество детей. Упорядочить квартиры по общей площади или по количеству жильцов или по метражу на одного жильца.
Помогите с прогой.
Структуры или классы? А если точнее Си или Си++
1
neon902
1 / 1 / 0
Регистрация: 01.07.2010
Сообщений: 62
01.07.2010, 19:36  [ТС] #3
Задание сам не допонимаю, написать нужно на Си. Помогите плиз
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
01.07.2010, 19:41 #4
Структура... Хм. Без файла?
1
neon902
1 / 1 / 0
Регистрация: 01.07.2010
Сообщений: 62
01.07.2010, 19:44  [ТС] #5
С файлом
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
01.07.2010, 19:46 #6
Окей. Следующий вопрос. Что значит квартирах дома (от 6 до 12).

6 минимум, 12 максимум или 6-12 - номера квартир?
1
neon902
1 / 1 / 0
Регистрация: 01.07.2010
Сообщений: 62
01.07.2010, 19:49  [ТС] #7
6 минимум, 12 максимум
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
01.07.2010, 21:16 #8
Предварительный набросок. Дабы не потерять если перейду на ноут

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
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct Flat
{
    int number;
    float larea;
    float farea;
    int peop;
    int child;
};
Flat input()
{
    Flat Temp;
    printf("Enter number of the flat\n");
    scanf("%d", &Temp.number);
    printf("Enter larea of the flat\n");
    scanf("%g", &Temp.larea);
    printf("Enter farea of the flat\n");
    scanf("%g", &Temp.farea);
    printf("Enter num of peoples\n");
    scanf("%d", &Temp.peop);
    printf("Enter num of childs\n");
    scanf("%d", &Temp.child);
    return Temp;
}
void output(Flat Temp)
{
    printf("Number of the flat: ");
    printf("%d\n", Temp.number);
    printf("Larea of the flat: ");
    printf("%g\n", Temp.larea);
    printf("Farea of the flat: ");
    printf("%g\n", Temp.farea);
    printf("Num of peoples in the flat: ");
    printf("%d\n", Temp.peop);
    printf("Num of childs in the flat: ");
    printf("%d\n", Temp.child);
}
int main()
{
    Flat M;
    M=input();
    output(M);
    return 0;
}
Добавлено через 42 минуты
Теперь буду думать о том как сортировку сделать

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
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct Flat
{
    int number;
    float larea;
    float farea;
    int peop;
    int child;
};
Flat input()
{
    Flat Temp;
    printf("Enter number of the flat\n");
    scanf("%d", &Temp.number);
    printf("Enter larea of the flat\n");
    scanf("%g", &Temp.larea);
    printf("Enter farea of the flat\n");
    scanf("%g", &Temp.farea);
    printf("Enter num of peoples\n");
    scanf("%d", &Temp.peop);
    printf("Enter num of childs\n");
    scanf("%d", &Temp.child);
    printf("\n");
    return Temp;
}
void output(Flat Temp)
{
    printf("Number of the flat: ");
    printf("%d\n", Temp.number);
    printf("Larea of the flat: ");
    printf("%g\n", Temp.larea);
    printf("Farea of the flat: ");
    printf("%g\n", Temp.farea);
    printf("Num of peoples in the flat: ");
    printf("%d\n", Temp.peop);
    printf("Num of childs in the flat: ");
    printf("%d\n", Temp.child);
    printf("\n");
}
Flat input_f(FILE*f)
{
    Flat Temp;
    fscanf(f,"%d\n", &Temp.number);
    fscanf(f, "%g\n", &Temp.larea);
    fscanf(f, "%g\n", &Temp.farea);
    fscanf (f, "%d\n", &Temp.peop);
    fscanf (f, "%d\n", &Temp.child);
    return Temp;
}
int fill (FILE*f, Flat M[])
{
    int n;
    f=fopen("D:\\DB.txt","r");
    fscanf (f, "%d\n", &n);
    for (int i=0; i<n; i++)
        M[i]=input_f(f);
    return n;
}
void output_m (Flat M[],FILE*f)
{
    int n;
    fscanf (f, "%d\n", &n);
    for (int i=0;i<n;i++)
        output(M[i]);
}
void put_into_file (FILE*f, Flat t)
{
    fprintf(f, "%d \n", t.number); 
    fprintf(f, "%g \n", t.larea);
    fprintf(f, "%g \n", t.farea);
    fprintf (f, "%d \n", t.peop);
    fprintf (f, "%d \n", t.child);
}
int put_all_into_file (Flat M[], int n)
{
    FILE*f=fopen("D:\\DB.txt", "w");
    if (f==NULL)
    {
        printf ("No file");
        return -1;
    }
    fprintf (f, "%d \n", n);
    for (int i=0;i<n;i++)
        put_into_file (f, M[i]);
    fclose(f);
    return 0;
}
int show()
{
    int k=0;
    char u[10];
    puts ("Choose option 1, for see DB");
    puts ("Choose option 2 for add information in DB");
    puts ("Choose option 0, for exit");
    scanf("%s",u);
    if ((u[0]>='0')&&(u[0]<='9'))
        k=atoi(u);
    return k;
}
int sw (Flat M[], int n, int k)
{
    switch (k)
    {
        case 1: for (int i=0;i<n;i++)output(M[i]);
               break;
        case 2: {
            M[n]=input();
            n++;
            break;
                }
        case 0:
            {
            printf("Finish. Exit from programm\n"); 
            exit(0);
            break;
            }
        default:
            printf ("Fail. Choose other option of menu\n");
    }
    return n;
}
int menu (Flat M[], int n)
{
    int k=show();
    while(1)
    {
        n=sw(M,n,k);
        k=show();
    }
    return n;
}
int main()
{
    Flat M[10];
    int n; int l=0;
    FILE*f=fopen("D:\\DB.txt", "r");
    if(f==0)
    {
        printf ("No file\n");
        return 0;
    }
    n=fill(f,M);
    n=menu(M,n);
    put_all_into_file(M,n);
    return 0;
}
Добавлено через 26 минут
На этом мой творческий потенциал на пока что иссяк=(
1
neon902
1 / 1 / 0
Регистрация: 01.07.2010
Сообщений: 62
01.07.2010, 21:39  [ТС] #9
)) спасибо, облекчил всёже задачю, можешь ещё входной файлик прикрепить или написать, в каком виде там записывать?))
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
01.07.2010, 21:42 #10
Цитата Сообщение от neon902 Посмотреть сообщение
)) спасибо, облекчил всёже задачю, можешь ещё входной файлик прикрепить или написать, в каком виде там записывать?))
Лови. Вводить... Хм. 1-ое число - кол-во элементов массива структур) Ну а далее все просто вводится в столбик значение полей
1
Вложения
Тип файла: txt DB.txt (45 байт, 33 просмотров)
neon902
1 / 1 / 0
Регистрация: 01.07.2010
Сообщений: 62
04.07.2010, 16:32  [ТС] #11
Lavroff, я пытался сделать чтоб он сортировал бд, но что-то не получается, так как это твой код, может ты сможешь понять что я хотел сделать и скажешь где моя ошибка?

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
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct Flat{
int number;
int larea;
int farea;
int peop;
int child;};
int q,w[60],buf;
Flat input(){
Flat Temp;
printf("Enter number of the flat\n");
scanf("%d", &Temp.number);
printf("Enter larea of the flat\n");
scanf("%d", &Temp.larea);
printf("Enter farea of the flat\n");
scanf("%d", &Temp.farea);
printf("Enter num of peoples\n");
scanf("%d", &Temp.peop);
printf("Enter num of childs\n");
scanf("%d", &Temp.child);
printf("\n");
return Temp;}
void output(Flat Temp){
printf("Number of the flat: ");
printf("%d\n", Temp.number);
printf("Larea of the flat: ");
printf("%d\n", Temp.larea);
printf("Farea of the flat: ");
printf("%d\n", Temp.farea);
printf("Num of peoples in the flat: ");
printf("%d\n", Temp.peop);
printf("Num of childs in the flat: ");
printf("%d\n", Temp.child);
printf("\n");}
Flat input_f(FILE*f){
Flat Temp;
fscanf(f,"%d", &q);
for(int i=0;i<q;i++){
fscanf(f,"%d", &w[i]);
fscanf(f,"%d", &w[i+1]);
fscanf(f,"%d", &w[i+2]);
fscanf(f,"%d", &w[i+3]);
fscanf(f,"%d", &w[i+4]);}
q*=5;
for(int j=0;j<q;j+=5){
for(int i=0;i<q;i+=5){
if(w[i+2]>w[i+7]){
buf=w[i+7];
w[i+7]=w[i+2];
w[i+2]=buf;
buf=w[i];
w[i]=w[i+5];
w[i+5]=buf;
buf=w[i+1];
w[i+1]=w[i+6];
w[i+6]=buf;
buf=w[i+3];
w[i+3]=w[i+8];
w[i+8]=buf;
buf=w[i+4];
w[i+4]=w[i+9];
w[i+9]=buf;}}}
for(int k=0;k<q;k++){
Temp.number=w[k];
Temp.larea=w[k+1];
Temp.farea=w[k+2];
Temp.peop=w[k+3];
Temp.child=w[k+4];}
return Temp;}
int fill (FILE*f, Flat M[]){
int n;
f=fopen("18in.txt","r");
fscanf (f, "%d\n", &n);
for (int i=0; i<n; i++)
M[i]=input_f(f);
return n;}
void output_m (Flat M[],FILE*f){
int n;
fscanf (f, "%d\n", &n);
for (int i=0;i<n;i++)
output(M[i]);}
void put_into_file (FILE*f, Flat t){
fprintf(f, "%d \n", t.number);
fprintf(f, "%g \n", t.larea);
fprintf(f, "%g \n", t.farea);
fprintf (f, "%d \n", t.peop);
fprintf (f, "%d \n", t.child);}
int put_all_into_file (Flat M[], int n){
FILE*f=fopen("18in.txt", "w");
if (f==NULL){
printf ("No file");
return -1;}
fprintf (f, "%d \n", n);
for (int i=0;i<n;i++)
put_into_file (f, M[i]);
fclose(f);
return 0;}
int show(){
int k=0;
char u[10];
puts ("Choose option 1, for see BD");
puts ("Choose option 2 for add information in BD");
puts ("Choose option 0, for exit");
scanf("%s",u);
if ((u[0]>='0')&&(u[0]<='9'))
k=atoi(u);
return k;}
int sw (Flat M[], int n, int k){
switch (k){
case 1: for (int i=0;i<n;i++)output(M[i]);
break;
case 2: {
M[n]=input();
n++;
break;}
case 0:{
printf("Finish. Exit from programm\n");
exit(0);
break;}
default:
printf ("Fail. Choose other option of menu\n");}
return n;}
int menu (Flat M[], int n){
int k=show();
while(1){
n=sw(M,n,k);
k=show();}
return n;}
int main(){
Flat M[10];
int n; int l=0;
FILE*f=fopen("18in.txt", "r");
if(f==0){
printf ("No file\n");
return 0;}
n=fill(f,M);
n=menu(M,n);
put_all_into_file(M,n);
return 0;}
Добавлено через 2 минуты
собственно изменения мои с 39 по 65строку
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
04.07.2010, 23:58 #12
neon902, не... что-т сейчас я ничего не понимаю... чуть позже посмотрю как следует
1
easybudda
Модератор
Эксперт CЭксперт С++
9698 / 5648 / 964
Регистрация: 25.07.2009
Сообщений: 10,863
05.07.2010, 18:59 #13
номера квартир на предмет совпадения не проверяет, да и с файлами уж сами как-нибудь
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
/*
*  Составить базу данных о квартирах дома (от 6 до 12). Для каждой квартиры указать номер,
*  жилую площадь, общую площадь, количество жильцов, количество детей. Упорядочить квартиры
*  по общей площади или по количеству жильцов или по метражу на одного жильца.
*/
 
typedef struct APARTMENT {
    int number;
    double square;
    int adults;
    int children;
} apt_t;
 
void fill_apt(apt_t * apt){
    printf("Number: ");
    scanf("%d", &(apt->number));
    printf("Square: ");
    scanf("%lf", &(apt->square));
    printf("Adults: ");
    scanf("%d", &(apt->adults));
    printf("Children: ");
    scanf("%d%*c", &(apt->children));
}
 
void print_apts(const apt_t * apts, size_t cnt){
    printf("\n#   Square  Adults  Children\n----------------------------------------\n");
    while ( cnt-- ){
        printf("%02d  %6.1f  %6d  %8d\n", apts->number, apts->square, apts->adults, apts->children);
        ++apts;
    }
    printf("----------------------------------------\n");
}
 
int by_square(const void * a, const void * b){
    return (int)((*(apt_t*)a).square * 100.0 - (*(apt_t*)b).square * 100.0);
}
 
int by_people(const void * a, const void * b){
    return ((*(apt_t*)a).adults + (*(apt_t*)a).children) - ((*(apt_t*)b).adults + (*(apt_t*)b).children);
}
 
int by_each_square(const void * a, const void * b){
    return (int)(((*(apt_t*)a).square / ((*(apt_t*)a).adults + (*(apt_t*)a).children) * 100.0) -
                 ((*(apt_t*)b).square / ((*(apt_t*)b).adults + (*(apt_t*)b).children) * 100.0));
}
 
#define LO_LIM 6
#define HI_LIM 12
 
int main(void){
    apt_t * apts;
    int cnt, i;
 
    printf("Number of apartments: ");
    scanf("%d%*c", &cnt);
    if ( cnt < LO_LIM || cnt > HI_LIM ){
        fprintf(stderr, "Out of range!\n");
        exit(EXIT_FAILURE);
    }
 
    if ( ( apts = calloc(cnt, sizeof(apt_t)) ) == NULL ){
        fprintf(stderr, "Memory error!\n");
        exit(EXIT_FAILURE);
    }
 
    for ( i = 0; i < cnt; ++i ){
        printf("\nData for apartment #%d\n", i + 1);
        fill_apt(apts + i);
    }
 
    while ( 1 ){
        printf("\nChoice one:\n1 - sort by square\n2 - sort by people\n3 - sort by s / p\n0 - exit\n> ");
        scanf("%d", &i);
        switch ( i ){
        case 1:
            qsort(apts, cnt, sizeof(apt_t), by_square);
            print_apts(apts, cnt);
            break;
        case 2:
            qsort(apts, cnt, sizeof(apt_t), by_people);
            print_apts(apts, cnt);
            break;
        case 3:
            qsort(apts, cnt, sizeof(apt_t), by_each_square);
            print_apts(apts, cnt);
            break;
        case 0:
            printf("Good bye!\n");
            free(apts);
            exit(EXIT_SUCCESS);
        default:
            printf("Unknown action.\n");
            break;
        }
    }
}
1
05.07.2010, 18:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.07.2010, 18:59
Привет! Вот еще темы с ответами:

Найти площадь, общую для обоих прямоугольников - PascalABC.NET
1. Два прямоугольника заданы координатами несмежных вершин, их стороны параллельны осям координат. Найти площадь, общую для обоих...

Составить программу, которая описывает массив записей жильцов дома - Pascal
Составить программу, которая описывает массив записей жильцов дома, отображая в нем следующую информацию о каждом: номер квартиры,фамилия,...

Определить номер подъезда и этажа по номеру квартиры девятиэтажного дома - Turbo Pascal
Определить номер подъезда и этажа за номером квартиры девяти-этажного дома, учитывая, что на каждом этаже 4 квартиры, а нумерация квартир...

Определить номер этажа квартиры девятиэтажного дома по указанному ее номеру N - Pascal ABC
Определить номер этажа квартиры девятиэтажного дома по указанному ее номеру N. Считать, что на каждом этаже каждого подьезда находится M...


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

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

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