Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.02.2015, 18:52   #1
Александр Шатило
Пользователь
 
Регистрация: 18.01.2015
Сообщений: 29
Восклицание Битовые поля, перечисление

Помогите написать программу:

Ученик. Фамилия И.О., класс (цифра+буква) предметы, оценки, средний балл. Выбор по фамилии, выбор по среднему баллу. Класс реализовать с помощью битового поля.
Предметы реализовать через перечисление.

Вот код программы:
# include <iostream>
# define kol 30
# define zap 30

int r;
const int k = 5;
using namespace std;

struct student
{
char name[kol];
int cl;
char sub1[20], sub2[20], sub3[20], sub4[20], sub5[20];
int m[k];
int sr;
};

struct student Stud[zap];

struct student bad;

int sch = 0;

void enter_new()
{
cout << "Ввод информации" << endl;
if (sch <zap)
{
cout << "Запись №";
cout << sch + 1;
cout << endl << "Фамилия " << endl;
cin >> Stud[sch].name;
cout << "Класс " << endl;
cin >> Stud[sch].cl;
cout << "Предметы " << endl;
cin >> Stud[sch].sub1;
cin >> Stud[sch].sub2;
cin >> Stud[sch].sub3;
cin >> Stud[sch].sub4;
cin >> Stud[sch].sub5;
cout << "Оценки " << endl;
for (int j = 1; j<=k; j++)
{
cin >> Stud[sch].m[j];
}
cout << "Средний балл " << endl;
cin >> Stud[sch].sr;
sch++;
}
else
cout << "Введено максимальное кол-во запи-сей";
cout << "Что дальше?" << endl;
cin >> r;
}

void out()
{
int sw, o;
cout << endl << "Введите: " << endl;
cout << "1-вывод одной записи" << endl;
cout << "2-вывод всех записей" << endl; cin >> sw;
if (sw == 1)
{
cout << "Введите номер записи, которую нужно вывести" << endl;
cin >> o; cout << endl;
cout << "Фамилия ";
cout << Stud[o - 1].name << endl;
cout << "Класс ";
cout << Stud[o - 1].cl << endl;
cout << "Предметы ";
cout << Stud[o - 1].sub1 << " ";
cout << Stud[o - 1].sub2 << " ";
cout << Stud[o - 1].sub3 << " ";
cout << Stud[o - 1].sub4 << " ";
cout << Stud[o - 1].sub5 << endl;
cout << "Оценки ";
for (int j = 1; j <= k; j++)
{
cout << Stud[o - 1].m[j] << " ";
}
cout << endl;
cout << "Средний балл ";
cout << Stud[o - 1].sr << endl;
}
if (sw == 2)
{
for (int i = 0; i<sch; i++) {
cout << "Фамилия ";
cout << Stud[i].name << endl;
cout << "Класс ";
cout << Stud[i].cl << endl;
cout << "Предметы ";
cout << Stud[i].sub1 << " ";
cout << Stud[i].sub2 << " ";
cout << Stud[i].sub3 << " ";
cout << Stud[i].sub4 << " ";
cout << Stud[i].sub5 << endl;
cout << "Оценки ";
for (int j = 1; j <= k; j++)
{
cout << Stud[i].m[j] << " ";
}
cout << endl;
cout << "Средний балл ";
cout << Stud[i].sr << endl;
}
}
cout << "Что делать дальше?" << endl;
cin >> r;
}

void vibor1()
{
setlocale(LC_ALL, "Russian");
bool isExists = false;
char name[30];
cout << "Введите фамилию " << endl;
cin >> name;
for (int i = 0; i < zap; i++) {

if (strcmp(Stud[i].name, name) == 0)
{
isExists = true;
cout << "Фамилия " << Stud[i].name << endl;
cout << "Класс " << Stud[i].cl << endl;
cout << "Предметы " << Stud[i].sub1 << " ";
cout << Stud[i].sub2 << " ";
cout << Stud[i].sub3 << " ";
cout << Stud[i].sub4 << " ";
cout << Stud[i].sub5 << endl;
cout << "Оценки ";
for (int j = 1; j <= k; j++)
{
cout << Stud[i].m[j] << " ";
}
cout << endl;
cout << "Средний балл " << Stud[i].sr << endl;
break;
}
}

if (!isExists)
{
cout << "Заданного имени в базе данных нет! " << endl;
}
cout << "Что дальше?" << endl;
cin >> r;
}

void vibor2()
{
setlocale(LC_ALL, "Russian");
bool isExists = false;
double middleMark;
cout << "Введите средний балл: " << endl;
std::cin >> middleMark;
for (int i = 0; i < zap; i++)
{
if (Stud[i].sr == middleMark)
{
isExists = true;
cout << "Фамилия " << Stud[i].name << endl;
cout << "Класс " << Stud[i].cl << endl;
cout << "Предметы " << Stud[i].sub1 << " ";
cout << Stud[i].sub2 << " ";
cout << Stud[i].sub3 << " ";
cout << Stud[i].sub4 << " ";
cout << Stud[i].sub5 << endl;
cout << "Оценки ";
for (int j = 1; j <= k; j++)
{
cout << Stud[i].m[j] << " ";
}
cout << endl;
cout << "Средний балл " << Stud[i].sr << endl;
}
}
if (!isExists) { cout << "Учащихся с заданным средним баллом не найдено! " << endl; }
cout << "Что дальше?" << endl;
cin >> r;
}

int main()
{
setlocale(LC_CTYPE, "Russian");
cout << "Записей пока нет" << endl;
cout << "Введите:" << endl;
cout << "1-для ввода новой записи" << endl;
cout << "2-для вывода записи(ей)" << endl;
cout << "3-для выбора записи(ей)" << endl;
cout << "4-для выбора записи(ей) по среднему баллу" << endl;
cout << "5-для выхода" << endl;
cin >> r;
do
{
switch (r)
{
case 1: enter_new(); break;
case 2: out(); break;
case 3: vibor1(); break;
case 4: vibor2(); break;
}
} while (r != 5);
}
Тишка
Александр Шатило вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Битовые поля C++ Pein95 Помощь студентам 5 14.02.2013 06:44
c++ ,битовые поля shateno_4ka Помощь студентам 0 21.11.2012 23:31
битовые поля NightEagle Общие вопросы C/C++ 15 01.06.2011 17:53
Битовые поля Inna_L Общие вопросы C/C++ 1 14.10.2010 12:14
битовые поля Arcueid1691 Общие вопросы C/C++ 8 03.12.2009 00:37