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

Структуры - C++

Восстановить пароль Регистрация
 
Apmyp /7
3 / 3 / 0
Регистрация: 14.10.2009
Сообщений: 76
24.05.2010, 22:12     Структуры #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
#include <iostream>
#include <conio>
#include <iomanip>
#include <fstream>
using namespace std;
 
struct TDarbin {char imja[30]; int nomer; double zarplata;};
const int n=3;
 
void iev(TDarbin Darbin)
{
 
cout<<"Imja: ";cin>>Darbin.imja;
cout<<"Nomer: ";cin>>Darbin.nomer;
cout<<"Zarplata: ";cin>>Darbin.zarplata;
 
};
 
void izv(int nr, TDarbin Darbin)
{
int n=0,sum=0;
double vid;
while(n<nr)
{
n++;
cout<<"\n\n"<<n<<". Zapisj:";
cout<<"\nImja: "<<Darbin.imja;
cout<<"\nNomer: "<<Darbin.nomer;
cout<<"\nZarplata: "<<Darbin.zarplata;
getch();
sum+=Darbin.zarplata;
}
 
vid=sum*1.0/nr;
cout<<"\n\nSrednjaja zarplata = "<<vid;
};
 
void main()
{
int i,k,nr; struct TDarbin Darbin;
 
do
{
clrscr();
 
cout << "\n Koli4estvo zapisei " << nr;
cout<<"\n 0 - zakon4itj\n 1 - vvesti\n 2 - vse su6estvuju6iji zapisi\n \nVvesti nomer: ";
cin>>i;
if(i==1) iev(Darbin);
if(i==2)
{
izv(nr, Darbin);
getch();
}
 
}
while(i!=0);
}
Добрый вечер! Вобщем, суть в том, что даётся выбор, что делать, ввести запись(имя, телефон, зарплату) , посмотреть существующую или закончить работу. У меня большие проблемы с этой задачей, не могу поставить защиту, что бы к примеру где нужно вводить цифры, нельзя вводить буквы. Также проблемы с просмотром уже существующих записей и вызов каждой из них по отдельности. Допишите пожалуйсто код до конца, а то сам осилить никак не могу.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.05.2010, 22:12     Структуры
Посмотрите здесь:

Структуры. Работа с файлами, содержащими структуры C++
Исследование структуры FILE или: что вообще можно выудить из этой структуры, указатель на которую мы получаем при открытии файла? C++
Структуры. Вызов данных структуры по указателю. с++ C++
C++ Понятие структуры данных. Элементарные структуры данных. Простые структуры данных
Структуры, массивы структур (как можно присваивать(инициализировать) значения полям структуры) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Sura
 Аватар для Sura
6 / 6 / 0
Регистрация: 23.05.2010
Сообщений: 87
24.05.2010, 23:30     Структуры #2
есть у меня похожая программа
вот, может чем-то поможет:
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
#include<iostream.h>
#include<string.h>
struct RECORD
{
       char FirstName[15];
       char LastName[15];
       int Phone;
       char City[15];       
       };
void zapolnenie(RECORD [],int);
void vivod(RECORD [],int);
main()
{
      int n;
      RECORD sprav[3];
      for(int i=0;i<3;i++)
      {
      cout<<"Dlja zapolnenia vvedite jacheiku! Dlja vihoda vvedite -1 "<<'\n';
      cin>>n;
  if(n>=0){
  zapolnenie(sprav,n); 
  cout<<"Dannye: "<<'\n';
  vivod(sprav,n);
  }
  else break;
}
  system("PAUSE");
  return 0;    
      } ;
void zapolnenie (RECORD a[],int m)
{ 
     
     cout<<"Enter the first name: ";
     cin>>a[m].FirstName;
     cout<<'\n';
     cout<<"Enter the last name: ";
     cin>>a[m].LastName;
     cout<<'\n';
     cout<<"Enter the phone number: ";
     cin>>a[m].Phone;
     cout<<'\n';
     cout<<"Enter the city: ";
     cin>>a[m].City;
     cout<<'\n';
    
}
void vivod(RECORD b[],int k)
{
   
     cout<<"first name:"<<b[k].FirstName<<'\n';
     cout<<"last name:"<<b[k].LastName<<'\n';
     cout<<"phone number:"<<b[k].Phone<<'\n';
     cout<<"city:"<<b[k].City<<'\n';
                    
                     }
Sekt
 Аватар для Sekt
156 / 155 / 10
Регистрация: 29.04.2009
Сообщений: 637
25.05.2010, 09:46     Структуры #3
Цитата Сообщение от Apmyp /7 Посмотреть сообщение
У меня большие проблемы с этой задачей, не могу поставить защиту, что бы к примеру где нужно вводить цифры, нельзя вводить буквы.
Исп проверку на isdigit если вводится цифра то все хорошо если нет выводите сообщение.

Цитата Сообщение от Apmyp /7 Посмотреть сообщение
Также проблемы с просмотром уже существующих записей и вызов каждой из них по отдельност
Исп какую-нибудь вам по-нраву структуру данных.
NNN777
299 / 157 / 19
Регистрация: 27.02.2010
Сообщений: 317
25.05.2010, 10:46     Структуры #4
Тоже есть похожая программка, может, пригодится... Не очень понятно, что значит - просмотр отдельного элемента - по какому полю будет происходить поиск этого отдельного элемента?..
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
#include <iostream>
#include <string.h>
#include <locale.h>
using namespace std;
 
const int size=100;
const int MaxItems=3;   //max количество элементов в таблице
 
struct Item 
{
    char imja[30]; 
    int nomer; 
    double zarplata;
};
 
Item table[MaxItems];   // определение рабочего вектора
 
char *mes[]=
{
    "1. Занести в таблицу\n",
    "2. Просмотреть таблицу\n",
    "3. Завершить работу\n"
};
int mes_count=sizeof(mes)/sizeof(mes[0]);
 
void Insert (void);
void Show (void);
void Quit(void);
void (*Sunc[])()={Quit, Insert, Show};
 
int n=-1;
 
int menu ()
{
    int ans;
    do
    {
        for (int j=0; j<mes_count; j++)
            cout<<mes[j];
        cout<<endl;
        cout<<"Выберете действие: ";
        cin>>ans;
    }
    while (ans<0||ans>mes_count);
    return ans%mes_count;
}
int main()
{   
    setlocale(LC_ALL,"Russian");
    int answer;
    while (answer = menu())
        Sunc[answer]();
    cout << "\n******* Завершение *******" << endl;
}
void Insert()
{
    int k, i=0;
    char buf[size];
    char buf2[size];
    if (n-1==MaxItems)
        cout<<"Таблица заполнена!\n";
    else
    {
        cout<<"Имя: ";
        cin>>table[n+1].imja;
        cout<<"Номер: ";
        cin>>table[n+1].nomer;
        cout<<"Зар.плата: ";
        cin>>table[n+1].zarplata;
        n++;
    }
}
void Show ()
{
    int i=0;
    if (n==-1)
        cout<<"Таблица пуста!\n";
    else
    {
        cout << "\n==================="<< endl;
        cout << "Индекс"<<'\t'<<"Имя" << '\t' << "Номер"<<'\t'<<"Зар.плата"; 
        cout << "\n==================="<< endl;
        for (i=0; i<=n; i++)
        {
            cout<<i<<'\t'<<table[i].imja<<"\t"<<table[i].nomer<<'\t'<<table[i].zarplata;
            cout<<endl;
        }
 
            cout << "\n==================="<< endl;
    }
}
void Quit ()
{
    n=0;
}
Yandex
Объявления
25.05.2010, 10:46     Структуры
Ответ Создать тему
Опции темы

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