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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
neon902
1 / 1 / 0
Регистрация: 01.07.2010
Сообщений: 62
01.07.2010, 18:53     Составить базу данных о квартирах дома (от 6 до 12). Для каждой квартиры указать номер, жилую площадь, общую площадь, количество жильцов... #1
Составить базу данных о квартирах дома (от 6 до 12). Для каждой квартиры указать номер, жилую площадь, общую площадь, количество жильцов, количество детей. Упорядочить квартиры по общей площади или по количеству жильцов или по метражу на одного жильца.
Помогите с прогой.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2010, 18:53     Составить базу данных о квартирах дома (от 6 до 12). Для каждой квартиры указать номер, жилую площадь, общую площадь, количество жильцов...
Посмотрите здесь:

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

6 минимум, 12 максимум или 6-12 - номера квартир?
neon902
1 / 1 / 0
Регистрация: 01.07.2010
Сообщений: 62
01.07.2010, 19:49  [ТС]     Составить базу данных о квартирах дома (от 6 до 12). Для каждой квартиры указать номер, жилую площадь, общую площадь, количество жильцов... #7
6 минимум, 12 максимум
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7954 / 4716 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
01.07.2010, 21:16     Составить базу данных о квартирах дома (от 6 до 12). Для каждой квартиры указать номер, жилую площадь, общую площадь, количество жильцов... #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 минут
На этом мой творческий потенциал на пока что иссяк=(
neon902
1 / 1 / 0
Регистрация: 01.07.2010
Сообщений: 62
01.07.2010, 21:39  [ТС]     Составить базу данных о квартирах дома (от 6 до 12). Для каждой квартиры указать номер, жилую площадь, общую площадь, количество жильцов... #9
)) спасибо, облекчил всёже задачю, можешь ещё входной файлик прикрепить или написать, в каком виде там записывать?))
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7954 / 4716 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
01.07.2010, 21:42     Составить базу данных о квартирах дома (от 6 до 12). Для каждой квартиры указать номер, жилую площадь, общую площадь, количество жильцов... #10
Цитата Сообщение от neon902 Посмотреть сообщение
)) спасибо, облекчил всёже задачю, можешь ещё входной файлик прикрепить или написать, в каком виде там записывать?))
Лови. Вводить... Хм. 1-ое число - кол-во элементов массива структур) Ну а далее все просто вводится в столбик значение полей
Вложения
Тип файла: txt DB.txt (45 байт, 33 просмотров)
neon902
1 / 1 / 0
Регистрация: 01.07.2010
Сообщений: 62
04.07.2010, 16:32  [ТС]     Составить базу данных о квартирах дома (от 6 до 12). Для каждой квартиры указать номер, жилую площадь, общую площадь, количество жильцов... #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строку
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7954 / 4716 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
04.07.2010, 23:58     Составить базу данных о квартирах дома (от 6 до 12). Для каждой квартиры указать номер, жилую площадь, общую площадь, количество жильцов... #12
neon902, не... что-т сейчас я ничего не понимаю... чуть позже посмотрю как следует
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.07.2010, 18:59     Составить базу данных о квартирах дома (от 6 до 12). Для каждой квартиры указать номер, жилую площадь, общую площадь, количество жильцов...
Еще ссылки по теме:

Даны отрезки а, в, с и d. Для каждой тройки этих отрезков, из которых можно построить треугольник, напечатать площадь данного треугольника. (Определи C++
C++ Рассчитать стоимость квартиры, если известны площадь, этаж и курс у.е
Найти площадь грани, площадь полной поверхности и объем куба C++
C++ Вычислить площадь многоугольника с использованием функции,которая определяет площадь по координатам его вершин
C++ Найти площадь пересечения, то есть общую часть двух прямоугольников (не могу понять алгоритм решения)

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

Или воспользуйтесь поиском по форуму:
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9383 / 5433 / 916
Регистрация: 25.07.2009
Сообщений: 10,428
05.07.2010, 18:59     Составить базу данных о квартирах дома (от 6 до 12). Для каждой квартиры указать номер, жилую площадь, общую площадь, количество жильцов... #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;
        }
    }
}
Yandex
Объявления
05.07.2010, 18:59     Составить базу данных о квартирах дома (от 6 до 12). Для каждой квартиры указать номер, жилую площадь, общую площадь, количество жильцов...
Ответ Создать тему
Опции темы

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