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

Проверьте прогу на ошибки - C++

Восстановить пароль Регистрация
 
L0t0S
Сообщений: n/a
01.06.2011, 04:01     Проверьте прогу на ошибки #1
Задание
Создать файл <<tranz>>, который содержит параметры для 15 типов транзисторов, которые имеются на складе. Параметры каждого транзистора являются: название (КТ315Г, КТ814В, КТ302, КТ853А, КТ361А), мощность, максимальный рабочий ток, количество. Данные должны вводиться с клавиатуры. Создать процедуру для возможности просмотра пользователем созданного файла данных. Вывести на экран параметры транзисторов в порядке возрастания рабочего тока.
Работа нужно на утро
оч оч оч срочно над((
п.с.буду оч признательна за помощь!!!



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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <iomanip>
#define STOP "*"
using namespace std;
const int n=2;
struct tranz
{
    char nazv_tranz[20];
    int moshnost;
    int max_tok;
    int kol_tranz;
};  
int input(tranz*);
void output(tranz*,int);
int min(tranz*,int);
void sort(tranz**,int);
 
 
 
 
int _tmain(int argc, _TCHAR* argv[])
{tranz a[n], *p[n];
    int i,c,m;
    c=input(a);
    cout <<"\n c= " <<c<<"\n";
    output (a,c);
    for(i=0;i<=c;i++)
        *(p+i)=&a[i];
    sort(p,c);
    cout<<endl;
    cout<<setw(15)<<setiosflags(ios::left)<<"nazv_tranz"<<setw(15)<<setiosflags(ios::left)<<"rik"
        <<setw(15)<<setiosflags(ios::left)<<"max_tok"<<setw(15)<<setiosflags(ios::left)
        <<"nazv_tranz"<<endl;
    for(i=0;i<=c;i++)
    cout<<setw(15)<<setiosflags(ios::left)<<(*(p+i))->nazv_tranz<<setw(15)
    <<setiosflags(ios::left)<<(*(p+i))->moshnost<<setw(15)
    <<setiosflags(ios::left)<<(*(p+i))->max_tok<<setw(15)
    <<setiosflags(ios::left)<<(*(p+i))->kol_tranz<<endl;
    m=min(a,c);
    cout<<"min moshnost \n";
    cout<<setw(15)<<setiosflags(ios::left)<<(a+m)->nazv_tranz<<setw(15)
        <<setiosflags(ios::left)<<(a+m)->moshnost<<setw(15)<<
        setiosflags(ios::left)<<(a+m)->max_tok<<setw(15)<<
        setiosflags(ios::left)<<(a+m)->kol_tranz<<endl;
    _getch();
 
    return 0;
}
int input(tranz *a)
{ int i=0;
  do {
  cout<<"\n Vvedite nazv_tranz \n";
  cin >>(a+i) -> nazv_tranz;
  cout<<"\n Vvedite moshnost \n";
  cin >>(a+i) -> moshnost;
  cout <<"\n Vvedite max_tok \n";
  cin >> (a+i) -> max_tok;
  cout <<"\n tranz \n";
  cin >>(a+i) ->tranz;
  i++;
  } 
  while((strcmp((a+i-1)->nazv_tranz,STOP))!=0&&i-1<n);
  return i-1;
}
void output(tranz *a,int c)
{int i;
 
for(i=0;i<=n;i++)
{
    cout<<setw(10)<<setiosflags(ios::left)<<
        (a+i)->nazv_tranz<<setw(10)<<setiosflags(ios::left)<<
        (a+i)->moshnost<<setw(10)<<setiosflags(ios::left)<<
        (a+i)->max_tok<<setw(10)<<setiosflags(ios::left)<<(a+i)->tranz<<endl;
 
}
}
void sort(tranz **p,int c)
{
    int i,k=1;
    tranz *q=NULL;
    while (k)
    {
        k=0;
        for(i=0;i<=c-1;i++)
            if(strcmp((*(p+i))->nazv_tranz,(*(p+i+1))->nazv_tranz)>0)
            {
                q=*(p+i);
                *(p+i)=*(p+i+1);
                *(p+i+1)=q;
                k=1;
            }
    }
}
int min(tranz *a,int c)
{
    int i,q=0;
    for (i=1;i<=c;i++)
        if(((a+q)->moshnost)>((a+i)->moshnost))
            q=i;
    return q;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2011, 04:01     Проверьте прогу на ошибки
Посмотрите здесь:

C++ консольное приложение ,проверьте ошибки
C++ Проверьте прогу
Массивы не понятно.Проверьте ошибки! C++
проверьте на ошибки C++
Проверьте код на ошибки C++
Проверьте ошибки пожалуйста в коде C++
C++ проверьте на ошибки код
Проверьте решение на ошибки и недочеты C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Aneron
 Аватар для Aneron
157 / 156 / 12
Регистрация: 20.04.2010
Сообщений: 570
01.06.2011, 08:39     Проверьте прогу на ошибки #2
C++
1
2
3
4
5
6
7
struct tranz
{
        char nazv_tranz[20];
        int moshnost;
        int max_tok;
        int kol_tranz;
};
cin >>(a+i) ->tranz;
в структуре tranz нет данных с именем tranz.

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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <iomanip>
 
#define STOP "*"
using namespace std;
const int n=2;
struct tranz
{
        char nazv_tranz[20];
        int moshnost;
        int max_tok;
        int kol_tranz;
}; 
 
int input(tranz*);
void output(tranz*,int);
int min(tranz*,int);
void sort(tranz**,int);
 
int _tmain(int argc, _TCHAR* argv[])
{
    tranz a[n], *p[n];
    int i,c,m;
    c=input(a);
    cout <<"\n c= " <<c<<"\n";
    output (a,c);
    for(i=0;i<=c;i++)
        *(p+i)=&a[i];
    sort(p,c);
    cout<<endl;
    cout<<setw(15)<<setiosflags(ios::left)<<"nazv_tranz"<<setw(15)<<setiosflags(ios::left)<<"rik"
        <<setw(15)<<setiosflags(ios::left)<<"max_tok"<<setw(15)<<setiosflags(ios::left)
        <<"nazv_tranz"<<endl;
    for(i=0;i<=c;i++)
        cout<<setw(15)<<setiosflags(ios::left)<<(*(p+i))->nazv_tranz<<setw(15)
        <<setiosflags(ios::left)<<(*(p+i))->moshnost<<setw(15)
        <<setiosflags(ios::left)<<(*(p+i))->max_tok<<setw(15)
        <<setiosflags(ios::left)<<(*(p+i))->kol_tranz<<endl;
    m=min(a,c);
    cout<<"min moshnost \n";
    cout<<setw(15)<<setiosflags(ios::left)<<(a+m)->nazv_tranz<<setw(15)
        <<setiosflags(ios::left)<<(a+m)->moshnost<<setw(15)<<
        setiosflags(ios::left)<<(a+m)->max_tok<<setw(15)<<
        setiosflags(ios::left)<<(a+m)->kol_tranz<<endl;
    _getch();
    return 0;
}
int input(tranz *a)
{ 
    int i=0;
    do {
        cout<<"\n Vvedite nazv_tranz \n";
        cin >>(a+i)->nazv_tranz;
        cout<<"\n Vvedite moshnost \n";
        cin >>(a+i)->moshnost;
        cout <<"\n Vvedite max_tok \n";
        cin >> (a+i) -> max_tok;
        cout <<"\n tranz \n";
        i++;
  } 
  while((strcmp((a+i-1)->nazv_tranz,STOP))!=0&&i-1<n);
  return i-1;
}
void output(tranz *a,int c)
{
    int i;
 
    for(i=0;i<=n;i++)
    {
        cout<<setw(10)<<setiosflags(ios::left)<<
            (a+i)->nazv_tranz<<setw(10)<<setiosflags(ios::left)<<
            (a+i)->moshnost<<setw(10)<<setiosflags(ios::left)<<
            (a+i)->max_tok<<setw(10)<<setiosflags(ios::left)<<endl;  
    }
}
void sort(tranz **p,int c)
{
        int i,k=1;
        tranz *q=NULL;
        while (k)
        {
                k=0;
                for(i=0;i<=c-1;i++)
                        if(strcmp((*(p+i))->nazv_tranz,(*(p+i+1))->nazv_tranz)>0)
                        {
                                q=*(p+i);
                                *(p+i)=*(p+i+1);
                                *(p+i+1)=q;
                                k=1;
                        }
        }
}
int min(tranz *a,int c)
{
    int i,q=0;
    for (i=1;i<=c;i++)
        if(((a+q)->moshnost)>((a+i)->moshnost))
            q=i;
    return q;
}
сия версия у меня заработала. не проверял на корректность работы
Yandex
Объявления
01.06.2011, 08:39     Проверьте прогу на ошибки
Ответ Создать тему
Опции темы

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