|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
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); }
Тишка
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Битовые поля 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 |