Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

{С++ билдер}Структуры(консольное приложение)

7.4K
16 мая 2007 года
Nook
65 / / 17.01.2007
Написать программу описания группы студентов ввиде структуры .Использовать ввод данных в структуру (заполнение) и вывод данных из структуры и сортировка по алфавиту фамилии студента.


Помогите пожалуйста решить такую задачу.
245
16 мая 2007 года
~ArchimeD~
1.4K / / 24.07.2006
А в чем собственно проблема?


...
struct
{
char FIO[50];
char age;
int group;
...
}stud;

....
{
stud *a;
int num_st; //кол-во студентов
cout<<"Enter number of students";
cin>>num_st;
a=new stud [num_st];
for(i=0;i<num_st;i++)
{
cin>>a->FIO;
cin>>a->age;
cin>>a->group;
...
}
}
....

Насчет сортировки - надо подумать, если нет стандартных билдеровских, то я так думаю рекурсивную функцию надо сварганить, которая сравнивала бы 2 первые буквы, если они одинаковые, вызывала бы сама себя для сравнения вторых букв и т.д., и уже потом возвращала бы значение 1/0 (что "первее", первый или второй параметр) и эту функцию вызывать, немного изменив скажем пузырьковый метод сортировки массива. А вообще бы я посоветовал бы в c++ это все в виде класса оформить, а не структурой.
7.4K
16 мая 2007 года
Nook
65 / / 17.01.2007
Расскрой пожалуйста многоточие.А то я вообще в этом деле новичок.
2.0K
16 мая 2007 года
BroKeR
163 / / 04.05.2006
Код:
#include <iostream>
using namespace std;

const int NUM_STUDENT=5;
struct Students
{
    char f_name[32];
    char l_name[32];
    int age;
    int group;
};

Students st[NUM_STUDENT];

void InitStudent(int i);
void DisplayStudent(int i);
void SortStudent();
int main()
{
    int i;
    for (i=0;i<NUM_STUDENT;i++)InitStudent(i);
    return 0;
}

void InitStudent(int i)
{
    cout<<"Please,enter a first name >";
    cin>>st.f_name;
    cout<<"Please,enter a second name >";
    cin>>st.l_name;
    cout<<"Please,enter age >";
    cin>>st.age;
    cout<<"Please,enter a number of group >";
    cin>>st.group;
}

void DisplayStudent(int i)
{
    cout<<st.f_name<<"    "<<st.l_name<<"   "<<st.age<<"   "<<st.group<<endl;
}

void SortStudent()
{
    Students temp;
    int i,j;
    for (i=0;i<NUM_STUDENT;i++)
    {
        j=i+1;
        if (j>=NUM_STUDENT)break;
        for (;j<NUM_STUDENT;j++)
        {
            if (strcmp(st.f_name,st[j].f_name))
                        {
                           //меняем местами i с j
                        }
        }
    }
}

сортировку надо доделать,вообще здесь помоему прсто strcmp и все,если не ноль то переставляем местами,если ноль оставляем как есть.
245
16 мая 2007 года
~ArchimeD~
1.4K / / 24.07.2006
Цитата: BroKeR
сортировку надо доделать,вообще здесь помоему прсто strcmp и все,если не ноль то переставляем местами,если ноль оставляем как есть.


strcmp только сравнивает строки на полное равенство, здесь не годится.

Цитата:
Расскрой пожалуйста многоточие.А то я вообще в этом деле новичок.


Гм, батенька, времени уже особо нет, обеденный перерыв на работе не резиновый. А спрашивать как написать программу я бы посоветовал имея хоть минимальные знания о программировании. Люди здесь всетаки свое время тратят, а тратить на того, кому программирование до фени, лишь бы просто сдать работу на оценку приличную и забыть, как то немного некатит.

2.0K
16 мая 2007 года
BroKeR
163 / / 04.05.2006
ну так нам это и надо,там же идет лексеграфическое сравнение.
7.4K
16 мая 2007 года
Nook
65 / / 17.01.2007
Спасибо твои замечания я учту.:)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог