Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 05.09.2012
Сообщений: 88

Дан файл,содержащий информацию о поступлении платежей по квартплате в текущий год

05.09.2012, 18:33. Показов 2132. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан файл,содержащий информацию о поступлении платежей по квартплате в текущий год.Структура записи файла:
-номер лицевого счета
-фамилия
-номер квартиры
-номер месяца
-сумма платежа
Написать программу выдающую:
-список номеров квартир с фамилиями жильцов ,от которых поступили платежи за указанный месяц.
-суммарное значение поступивших с начала года платежей по заданному номеру лицевого счета или номеру квартиры.
Вложения
Тип файла: txt KURSOVIK.txt (2.0 Кб, 44 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.09.2012, 18:33
Ответы с готовыми решениями:

Дан файл, содержащий различные даты. Каждая дата – это число, месяц и год. Найти год с наименьшим номером.
Дан файл, содержащий различные даты. Каждая дата – это число, месяц и год. Найти год с наименьшим номером.

Дан файл, содержащий различные даты. Каждая дата — это число, месяц и год. Найти год с наименьшим номером
Уважаемые, программисты, очень прошу помощи по данным заданиям. Нужно сделать кто какие сможет. Буду очень благодарен. Предпочитаемый язык...

Дан файл, содержащий информацию о сотрудниках
Решить задачу с использованием класса Queue: Дан файл, содержащий информацию о сотрудниках фирмы: фамилия, имя, отчество, пол, возраст,...

12
0 / 0 / 0
Регистрация: 05.09.2012
Сообщений: 88
05.09.2012, 18:46  [ТС]
Пожалуйста исправьте недочеты
0
 Аватар для alexey31415
60 / 60 / 7
Регистрация: 16.05.2010
Сообщений: 632
05.09.2012, 19:08
а если платежей за месяц несколько,то всё равно опять пишем номер счёта,квартиры и фамилию?
0
 Аватар для David Sylva
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
05.09.2012, 19:21
что означает месяц в структуре? Количество месяцев за которое оплачено или последней месяц за который оплачено? И у тебя в текстовом файле странная строчка цитирую \nxт пациентов, поступивших в заданный день".Это что вообще такое?
0
0 / 0 / 0
Регистрация: 05.09.2012
Сообщений: 88
05.09.2012, 20:04  [ТС]
там опечатка: "нет жильцов, поступивших в заданный день"
месяц за который оплачено, если платежей за месяц несколько,то опять пишем номер счёта,квартиры и фамилию

Добавлено через 14 минут
нет жильцов, заплативших за этот месяц
0
 Аватар для David Sylva
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
05.09.2012, 20:08
Тебе именно надо исправить твой вариант? Я попробовал его запустить, там много ошибок и стиль написания не совсем современный. Может лучше заново?
0
 Аватар для alexey31415
60 / 60 / 7
Регистрация: 16.05.2010
Сообщений: 632
05.09.2012, 20:12
разве не разумнее написать номер квартиры,фамилию,номер счёта и потом все платежи для этого абонента
можно даже для каждого абонента свой файл сделать
0
 Аватар для David Sylva
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
05.09.2012, 20:20
alexey31415 очень разумное предложение. Можно в файле сделать 12 цифр по количеству месяцев и если допустим стоит число 0, значит за этот месяц не оплачено.

Добавлено через 2 минуты
Например такой файл, у всех не оплачено за декабрь
1 Широков 35 11 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 11000 0
2 Кокорин 36 12 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 11000 0
3 Акинфееф 37 1 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 11000 0
4 Быстров 38 2 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 11000 0
5 Сычёв 39 3 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 11000 0
0
 Аватар для alexey31415
60 / 60 / 7
Регистрация: 16.05.2010
Сообщений: 632
05.09.2012, 20:30
именно,так можно,кстати,задолженность считать,если вам это понадобится в будущем
а чтобы открывать файл с данными абонента,можно создать файл с названиями тех самых файлов с данными абонента и тогда можно легко определять сколько абонентов,в каких файлах хранится информация
0
0 / 0 / 0
Регистрация: 05.09.2012
Сообщений: 88
05.09.2012, 20:36  [ТС]
можно и другой вариант, не обязательно мой переделывать. Просто обязательно нужно с меню это все сделать
0
 Аватар для David Sylva
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
05.09.2012, 21:34
Черновой вариант

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
#include <fstream> 
#include <string>
#include <iostream> 
using namespace std; 
 
struct STRUCT 
{ 
    int number;  
    string name; 
    int flat_number;  
    int summa[12];
}; 
 
int main() 
{   
    setlocale(0, "rus");
    unsigned int i, j;
    STRUCT str[5];
    ifstream infile; 
    infile.open("Text.txt");  
    int var, n, x, m; 
    int sum = 0; 
    int count = 0;
 
    while(!infile.eof()) 
    {   
        for ( i = 0; i < 5; i++)
        infile >> str[i].number >> str[i].name >> str[i].flat_number >> str[i].summa[0] 
        >> str[i].summa[1] >> str[i].summa[2] >> str[i].summa[3] >> str[i].summa[4] >>  
            str[i].summa[5] >> str[i].summa[6] >> str[i].summa[7] >> str[i].summa[8] >> str[i].summa[9] >> 
            str[i].summa[10] >> str[i].summa[11]; 
    } 
 
    
    cout << "1) Показать полный список жильцов " << endl; 
    cout << "2) Узнать сумму жильца за весь год (ввод номера квартиры) " << endl; 
    cout << "3) Узнать сумму жильца за весь год (ввод личного номера) " << endl; 
    cout << "4) Узнать фамилии и квартиры жильцов неоплативших за конкретный месяц " << endl; 
    cout << "5) Выход из меню " << endl; 
    cout << endl << endl; 
    cout << "Введите ваш вариант ( 1-5) " << endl; 
    cin >> var; 
 
    switch(var)  
    {
        case 1: 
            for ( i = 0; i < 5; i++) 
            { 
                cout << str[i].name << " "<< str[i].number << " "<< str[i].flat_number << endl; 
                
                for ( j = 0; j < 12; j++) 
                    cout << "Номер Месяца " << j + 1 << "  " << str[i].summa[j] << endl; 
            } 
            break;  
 
        case 2:  
            cout << "Введите номер искомой квартиры " << endl; 
            cin >> n; 
 
            for ( i = 0; i < 5; i++) 
            { 
                if(str[i].flat_number == n)  
                { 
                    x = i;
                    for ( j = 0; j < 12; j++) 
                        sum += str[i].summa[j];  
                }
            } 
            cout << "Сумма за год жильца " << str[x].name << " равна " << sum << endl;  
            break;
 
    case 3:  
        cout << "Введите личный номер жильца " << endl; 
        cin >> n; 
 
        for ( i = 0; i < 5; i++) 
        { 
            if(str[i].number == n) 
            { 
                x = i; 
                for ( j = 0; j < 12; j++) 
                    sum += str[x].summa[j]; 
            } 
        } 
        cout << "Сумма жильца  " << str[x].name << " равна " << sum << endl; 
        break; 
 
    case 4: 
        cout << "Введите номер месяца " << endl; 
        cin >> m; 
 
        for ( i = 0; i < 5; i++) 
            if(str[i].summa[m] == 0)  
            { 
                cout <<"Жильцом " << str[i].name << " за данный месяц не оплачено " << endl;
                  count++;   
            } 
            if( count == 0) 
                cout << "Всеми жильцами данный месяц оплачен " << endl; 
            break; 
    case 5: 
        cout << "До свидания " << endl; 
        exit(1); 
    default: 
        cout << "Вами введено не правильное число " << endl; 
 
} 
 
}
Посмотри что не так, что переделать. Номера квартир с 35 по 39, вот файл

1 Широков 35 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 11000 0
2 Кокорин 36 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 11000 0
3 Акинфееф 37 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 11000 0
4 Быстров 38 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 11000 0
5 Сычёв 39 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 11000 0
0
0 / 0 / 0
Регистрация: 05.09.2012
Сообщений: 88
06.09.2012, 17:46  [ТС]
спасибо, что то для себя взять смогу
0
0 / 0 / 0
Регистрация: 05.09.2012
Сообщений: 88
09.09.2012, 15:52  [ТС]
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
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
 
#define  DL_FIO 25
#define  DL_LC  10
#define  DL_KV 3
#define  DL_MS 2
#define  DL_PL 5
 
struct man
{  char  nom [DL_LC];
   char fio [DL_FIO];
   char  kvar [DL_KV];
   char  mon [DL_MS];
   char sum [DL_PL+2];
};
 
void plat(FILE *f);
void sumzn(FILE *f);
 
 
 
int main()
{
    FILE *f;
    char n;
    clrscr();
    f= fopen("kv.txt", "r");
    if (f==NULL)
    {  puts ("Файл  kv.txt не найден");
         getch();
       return 1;
    }
    do
    {  puts ("\n========================================================");
       puts ("Выберите номер пункта меню:");
       puts ("1 - вывод списка номеров квартир с фамилими жильцов, от которых поступили платежи за указанный месц");
       puts ("2 - суммарное значение поступивших с начала года платежей по заданному номеру лицевого счета или номеру квартиры");
       puts ("3 - выход");
       puts ("------------------------------------------------------");
       n = getche();
       switch(n)
       {
          case '1': plat(f); break;
          case '2': sumzn(f);break;
          case '3': break;
          default: puts("\nНужно вводить номер пункта от 1 до 3");
       }
       if (n!='3')
       {  puts("\nДл продолжени нажмите любую клавишу");
          getch();
       }
    }
    while (n != '3');
    fclose(f);
    return 0;
}
void plat (FILE *f)
{
    char mon[DL_MS];
    int n=0;
    struct man tz;
 
    puts ("\nВведите месц");
    gets  (mon);
    rewind(f);
    while (fgets((char *)&tz,sizeof(struct man),f)!= NULL)
        if (strncmp(tz.mon,mon, DL_MS-1) == 0 )
        {  if (n==0)
           { puts("№   Фамили И.О.  Квартира№");
             puts("----------------------------");
           }
           tz.kvar[DL_MS-1]='\0';
           printf ("%d. %s\n", ++n, tz.fio);
 
        }
    if (n==0)  puts ("\nнет жильцов, заплативших за указанный месц");
}
 
void sumzn(FILE *f)
{ char nom[DL_LC];
  int s=0,n,x;
  unsigned int i,j;
  struct man tz[3];
  puts("\nvvedite nomer");
  gets(nom);
  rewind(f);
  while(fgets((char *)&tz,sizeof(struct man),f)!=NULL)
  { for(i=0; i<3;i++)
  { if(tz[i].nom==nom)
  { x=i;
  for(j=0;j<1;j++)
  s+=tz[x].sum[j];    }
  }
  }
  printf("\nplat=%d",s);
 
 
}
где ошибка? можете подсказать?
0022001231 Valiev I.I                 49 11 3000
0022001232 Sidorov A.D.             51 10 3400
0022013451 Ivanov P.A.              12 12 4800
 
[size="1"][color="grey"][I]Добавлено через 23 минуты[/I][/color][/size]
void sumzn(FILE *f)
{ char nom[DL_LC];
  int s=0,n,x;
  unsigned int i,j;
  struct man tz;
  puts("\nvvedite nomer");
  gets(nom);
  rewind(f);
  while(fgets((char *)&tz,sizeof(struct man),f)!=NULL)
  { for(i=0; i<5;i++)
  {
 
  s+=tz.sum[i]-'0';    }
 
   tz.sum[6]='\0'; }
  printf("\nplat=%d",s);
 
 
}
в функции где ошибка?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.09.2012, 15:52
Помогаю со студенческими работами здесь

Дан строковый файл, содержащий даты в формате «день/месяц/год»
Дан строковый файл, содержащий даты в формате «день/месяц/год», причем под день и месяц отводится по две позиции, а под год — четыре...

Дан файл , содержащий различные даты. Каждая дата – это число, месяц и год
Здравствуйте,я тот несчастный студент,который учился в школе где не было программирования.Поэтому нуждаюсь в вашей помощи.Теорию удалось...

Дан файл f, содержащий различные даты Каждая дата - это число, месяц и год
Здравствуйте, нужна помощь с языком PascalABC: Дан файл f, содержащий различные даты. Каждая дата - это число, месяц и год. Найти: ...

Дан файл, содержащий различные даты. Каждая дата - это число, месяц и год. Найти
Дан файл, содержащий различные даты. Каждая дата - это число, месяц и год. Найти: а) Год с наименьшим номером. б) Все весенние даты. ...

Дан файл DateFile, содержащий различные даты. Каждая дата-это число,месяц и год
Найти : а) дату с наименьшим номером года; б) все весенние даты; в) самую позднюю дату; Программа почти написана.Не получается...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru