С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
1 / 1 / 0
Регистрация: 25.11.2017
Сообщений: 22
1

Конструирование программ из нескольких файлов

26.11.2017, 19:02. Показов 1663. Ответов 6

Author24 — интернет-сервис помощи студентам
Конструирование программ из нескольких файлов

Файл L10.H

C++
1
2
3
4
5
6
7
8
9
10
//описание структуры
#define AGR struct agr
#define SAGR sizeof(struct agr)
struct agr
{
 char name[11];
 char tip;
 unsigned sq;
 unsigned ur;
};
Файл L10-1.H

C++
1
2
3
4
//описание функций файла L10-1.CPP
int check_number(int);
void del_item(int);
void show_all(void);
Файл L10-2.H

C++
1
2
3
4
5
6
7
//описание функций файла L10-2.CPP
void print_head(void);
void print_line(void);
void show_row(AGR *);
int get_number(void);
void show_1(AGR *);
int ent_data(AGR *);
Файл L10.CPP

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
#include <stdio.h>
#include <conio.h>
#include "l10.h"
#include "l10-1.h"
#include "l10-2.h"
#define N 100
AGR mmm[N]; // массив-таблица 
int n=0;    // количество элементов в массиве 
 
// главная функция 
int main(void) {
int op;   // операция 
int num;  // номер элемента
char eoj; // признак конца 
 
for (eoj=0; !eoj; ) {
  // вывод меню 
  clrscr();
  printf("1 - Добавить элемент\n");
  printf("2 - Удалить элемент\n");
  printf("3 - Показать элемент по номеру\n");
  printf("4 - Показать все\n");
  printf("0 - Выход\n");
  printf("Вводите >");
  // выбор из меню  
  scanf("%d",&op);
  switch(op) {
  case 0: // выход
          eoj=1;
          break;
  case 1: // добавить 
          if (!ent_data(mmm+n)) n++;
          break;
  case 2: // удалить 
          if (!check_number(num=get_number())) {
            del_item(num);
            n--;
          }
          break;
  case 3: // показать один 
          if (!check_number(num=get_number()))
          show_1(mmm+num-1);
break;
  case 4: // показать все 
          show_all();
          break;
  default:
          printf("Неправильная операция\n");
          break;
  }  // switch 
 if (op) {
   printf("Нажмите любую клавишу\n");
   getch();
  } // if
 } // for 
 return 0;
}  // main
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
Файл L10-1.CPP
 
//  Функции, которые используют глобальные переменные  
#include <stdio.h>
#include <mem.h>
#include "l10.h"
#include "l10-2.h"
extern AGR mmm[];
extern int n;
 
// проверка номера элемента/
int check_number(int a) {
 if (a<1) {
   printf("Минимальный номер : 1\n");
   return -1;
  }
 if (a>n) {
   printf("Максимальный номер : %d\n",n);
   return -1;
 }
 return 0;
}
 
// удаление элемента 
void del_item(int m) {
 int i;
 for (; m<n; m++)
   memcpy(mmm+m-1,mmm+m,SMON);
}
 
// вывод всего массива 
void show_all() {
 int i;
 print_head();
 for (i=0; i<n; i++)
   show_row(mmm+i);
 print_line();
}
Файл L10-2.CPP
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
#include <stdio.h>
#include <string.h>
#include "l10.h"
#include "l10-2.h"
 
//  ввод номера 
int get_number() {
 int b;
 printf("Введите номер>");
 scanf("%d",&b);
 return b;
}
 
// ввод данных
int ent_data(AGR *m) {
 // Ввод данных 
 printf("введите наименование, тип, площадь, урожайность ");
 scanf("%s %c %u %u",m->name,&m->tip,&m->sq,&m->ur);
 if (!strcmp(m->name,"***")) return -1;
return 0;
}
 
// вывод данных 
void show_1(AGR *m) {
 print_line();
 printf("\nнаименование : %s",m->name);
 printf("\nтип       : %c",m->tip);
 printf("\nплощадь      : %u",m->sq);
 printf("\nурожайность  : %u\n",m->ur);
 print_line();
}
 
// вывод строки таблицы 
void show_row(AGR *m) {
 printf("|%-12s|%c  |%-17u|%-20u|\n",m->name,m->tip,m->sq,m->ur);
}
 
// вывод подчеркивания 
void print_line() {
 printf("--------------------------------------------------------\n");
}
 
// вывод заголовка таблицы
void print_head() {
 print_line();
 printf("|сельскохозяйственные культуры                          |\n");
 printf("|-------------------------------------------------------|\n");
 printf("|наименование|тип|посевная площадь(га)|урожайность(ц/га)|\n");
 printf("|------------|---|--------------------|-----------------|\n");
}
помогите сделать хотя бы чтобы она заработала чтобы я смог вписать туда свой вариант
Фирмы - производители СКБД

Фирма Количество. продуктов Годовой объем продажи ($) Часть рынка (%)
Oracle 1 2488000 31.1
IBM 3 2392000 29.9
Microsoft 2 1048000 13.1
Примечание: по данным Gartner Group за 1999г
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.11.2017, 19:02
Ответы с готовыми решениями:

Конструирование программ из нескольких файлов
Здрасте...кто может помочь по конструирование програмы из нескольких файлов... у меня есть...

Конструирование программ со структурой вложенных циклов
В процессе выполнения задания необходимо осуществить нисходящее проектирование алгоритма...

Конструирование программ для циклических вычислительных процессов
необходимо вывести на экран таблицу значений функции Y(x) и ее разложения в ряд S(x) для х...

Конструирование файлов с элементами сложной структуры
Создать файл записей. Программу оформить с помощью текстового меню, включающего: • Создание файла...

6
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
26.11.2017, 21:48 2
Создай проект, добавь это туда.
0
1 / 1 / 0
Регистрация: 25.11.2017
Сообщений: 22
27.11.2017, 18:29  [ТС] 3
Вот именно он не работает!
0
1 / 1 / 0
Регистрация: 25.11.2017
Сообщений: 22
27.11.2017, 18:34  [ТС] 4
Я уже голову ломаю она работает но вод поблема в том что я не могу вписать туда вот это
Фирмы - производители СКБД
нужно кароч это в 4 столба вывело и сортировало но проблема во 2 вписываю место 4 просит всего 3!

Код
Фирма Количество. продуктов	Годовой объем продажи ($)	Часть рынка (%)

Oracle	1	                                2488000	                     31.1
IBM	        3                                   	2392000	                     29.9
Microsoft	2	                                1048000                          13.1

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
#include <iostream>
#include <stdio.h>
#include <string>
#include <conio.h>
#include <iomanip>
 
using namespace std;
 
struct ANT
{
    char name[20];
    char grp[20];
    char sq[30];
    int amount;
} A[10];
 
int main()
{
    setlocale(LC_ALL, "RUS");
    ANT x;
 
    int n, i, j;
 
    system("cls");
    for (n = 0; n<3; n++)
    {
        printf("%d.firma, kol.products, god.prodaja ($), chast rinka (%)  ", n + 1);
        scanf_s("%20s", A[n].name, _countof(A[n].name));
        if (!strcmp(A[n].name, "exit")) break;
        scanf_s("%20s", A[n].grp, sizeof(A[n].grp));
        scanf_s("%30s", A[n].sq, _countof(A[n].sq));
        scanf_s("%u", &A[n].amount, sizeof(A[n].amount));
    }
 
    printf("-------------------------------------------------------------------------------\n");
    printf("|Firms - Proizvo SKBD                                                   |\n");
    printf("|-----------------------------------------------------------------------------|\n");
    printf("|firma|kol.products|god.prodaja ($)|chast rinka (%)                    |\n");
    printf("|-----|-------------|---------------------|-----------------------------------|\n");
    for (i = 0; i < n; i++)
    {
        printf("|%-13s|%-13s|%-15s|%-10u|\n", A[i].name, A[i].grp, A[i].sq, A[i].amount);
        printf("|----------------------------------------------------- |\n");
    }
 
    for (i = 0; i<3; i++)
    {
        for (j = 0; j<3; j++)
        {
            if ((strcmp(A[i].name, A[j].name))>0)
            {
                strcpy_s(x.name, _countof(x.name), A[i].name);
                strcpy_s(A[i].name, _countof(A[i].name), A[j].name);
                strcpy_s(A[j].name, _countof(A[j].name), x.name);
 
 
                x.grp, A[i].grp;
                A[i].grp, A[j].grp;
                A[j].grp, x.grp;
 
                x.sq, A[i].sq;
                A[i].sq, A[j].sq;
                A[j].sq, x.sq;
 
                x.amount = A[i].amount;
                A[i].amount = A[j].amount;
                A[j].amount = x.amount;
 
            }
        }
    }
    printf("-------------------------------------------------------------------------------\n");
    printf("|Firms - Proizvo SKBD                                                   |\n");
    printf("|-----------------------------------------------------------------------------|\n");
    printf("|firma|kol.products|god.prodaja ($)|chast rinka (%)                    |\n");
    printf("|-----|-------------|---------------------|-----------------------------------|\n");
 
 
    for (i = 0; i<n; i++)
 
        printf("|%-13s|%-13s|%-15s|%-10u|\n", A[i].name, A[i].grp, A[i].sq, A[i].amount);
    printf("|------------------------------------------------------|\n");
 
    system("pause");
    return 0;
}
0
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
27.11.2017, 19:30 5
Конкретнее. Текст ошибок где? В чём делаешь?
0
Заклинатель змей
705 / 560 / 219
Регистрация: 30.04.2016
Сообщений: 2,605
27.11.2017, 19:49 6
ExclusiveKRG,
 Комментарий модератора 
атата дублировать. Проблемы по этой задаче обсуждайте тут
0
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
27.11.2017, 20:10 7
В 32-й лишний параметр. А элементов всего 3.
0
27.11.2017, 20:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.11.2017, 20:10
Помогаю со студенческими работами здесь

Проверка на существование нескольких файлов в нескольких папках
есть 5 папок(1,2,3,4,5), в них находятся 5 файлов( в каждой папке по файлу с известными именами)...

Как добавить обработку файлов нескольких определённых типов в код BAT-файла для архивации файлов?
Спасибо большое за полезную информацию! Отличный код. Подскажите как к нему прикрутить обработку...

Ассоциация файлов с программой, открытие нескольких файлов
Я ассоциировал файлы с расширением .scr со своей программой(свойства=&gt;изменить). В свойствах...

Запуск нескольких программ из консоли
Здраствуйте. Работаю с Linux недавно. Такой вопрос: запускаю из терминала Skype (sudo skype). Все...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru