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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
AngryGolod
1 / 1 / 1
Регистрация: 26.01.2014
Сообщений: 8
#1

Структура "Школьник" - C++

27.01.2014, 13:57. Просмотров 670. Ответов 5
Метки нет (Все метки)

Здравствуйте, сегодня в 5 вечера будет перезачёт =) нужно принести контрольную описывающую программу, впрочем её пока что нет, как и программы, искал по форуму похожие, нашёл парочку, но там немного другие операторы используются, которые мы даже ещё не проходили.
Собственно описание задачи
Кликните здесь для просмотра всего текста
"Используя функции, решить указанную в варианте задачу. Значения для поиска, должны передаваться в функцию как параметры и должны быть заданы вводом с клавиатуры."
вариант 6.
Структура "Школьник":
- фамилия, имя, отчество;
- класс;
- номер телефона;
- оценки по предметам (математика, физика, русский язык, литература).
Вывести все элементы, у которых есть 2 хотя бы по одному предмету. Определить отличников по указанному предмету в каждом классе. Осуществить поиск школьника по указанной фамилии.

теперь перейдём к выполнению, сам с помощью лекций в тетрадке и интернета наклепал структуру в которую можно забить информацию, но не знаю что написать, что бы можно было осуществить поиск из этой структуры по каждому критерию, то есть исходя из задания, нужно дописать программку так, что бы после ввода информации о выбранном кол-ве школьниках, появлялась надпись "выберите действие:
A-найти всех у кого есть 2 по предмету;
B (и приписать сюда значение предмета например rus)- выдать всех школьников у кого есть 5 по данному предмету;
C (и приписать сюда фамилию школьника)- выдать всю информацию о школьниках у которых есть такая фамилия"
часть программы которую я смог реализовать и которая не работает с недопоиском по фамилии, брал из темы где нужно было сделать поиск по номеру телефона, решил для эксперемента искать не по фамилии, а по номеру, заработало, но после вывода найденной информации, программа почему-то сразу закрывается...
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
#include <iostream.h>
#include <string>
#include <windows.h>
using namespace std;
struct schoolboy
{char fam[30];
char name[30];
char name2[30];
short mat;
short phy;
short rus;
short lit;
long phone;
char group;
}st1,st2;
int main ()
{
    cout << "enter number of schoolboys: ";
    int rcount = 0;
    cin >> rcount;
    schoolboy st[10];
    schoolboy *strct = new schoolboy[rcount];
for (int i=0; i<rcount; i++)
{
    cout<<"firstname ";
    cin>>strct[i].name;
    cout<<"lastname ";
    cin>>strct[i].fam;
    cout<<"middlename ";
    cin>>strct[i].name2;
    cout<<"mat score ";
    cin>>strct[i].mat;
    cout<<"phy score ";
    cin>>strct[i].phy;
    cout<<"rus score ";
    cin>>strct[i].rus;
    cout<<"lit score ";
    cin>>strct[i].lit;
    cout<<"phone ";
    cin>>strct[i].phone;
    cout<<"class ";
    cin>>strct[i].group;
}
//ниже недопоиск, по идее по фамилиям, но у меня не получилось его запустить, так как он ругался на строчку 50, что то про то что не может сравнивать значения char и int, хотя я указывал char и char, я решил чисто из интереса попробовать поиск не по фамилиям, а по номеру телефона, заработало, но после вывода найденной информации сразу закрывается
cout << "enter fam for search: ";
    int phone=0;
    cin >> phone;
 
    int find = 0;
    for(char i=0; i<rcount; i++)
    {
        if(strct[i].phone == phone) 
        {
            cout<< strct[i].group << ' ' << cout << strct[i].fam << ' ' << strct[i].name << ' ' << strct[i].name2 << '.' << strct[i].mat << '.' << strct[i].phy << '.' << strct[i].rus  << '.' << strct[i].lit << endl;
            find = 1;
        }
    }
    if(!find) cout << "not found!" << endl;
    delete [] strct;
    return 0;
    
}
буду рад помощи более опытных людей разбирающихся в C++, а именно прошу, что бы дописали программу до финальной стадии, ну или на крайний случай подсказали как делать, а то уже через 2.5 часа в универ выходить, а я ещё даже титульный лист не начинал

Добавлено через 26 минут
немного покумекав смог таки завести поиск по фамилиям, опять же сразу после вывода информации окно закрывается...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
cout << "enter fam for search: ";
    char fam1[30] ;
    cin >> fam1;
 
    int find = 0;
    for(int i=0; i<1; i++)
    {
        if(strct[i].fam == fam1) 
        {
            cout<< strct[i].group << ' ' << cout << strct[i].fam << ' ' << strct[i].name << ' ' << strct[i].name2 << '.' << strct[i].mat << '.' << strct[i].phy << '.' << strct[i].rus  << '.' << strct[i].lit << endl;
            find = 1;
        }
    }
    if(!find) cout << "not found!" << endl;
    delete [] strct;
    return 0;
    
}
Добавлено через 5 минут
поправка, удалось запустить программу, поиск даже при вводе фамилии пишет not found
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.01.2014, 13:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Структура "Школьник" (C++):

Структура "Школьник" В С++ - C++
Структура «Школьник»: фамилия, имя, отчество; класс; номер телефона; оценки по предметам (математика, физика, русский язык, литература)....

Структура «Преподаватель» с полями "ФИО", "стаж", "категория", "нагрузка" - C++
Функция - расчёт зарплаты по нагрузке и оплате часа для определенной категории. Категория Оплата часа Вторая 150 Первая 200 ...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;, &quot;жарко&quot;, &quot;холодно&quot;, &quot;очень холодно&quot;. Я так...

Структура: error C2079: "A::myElem" использует неопределенный struct "A::B" - C++
class A { public: struct B; private: B myElem; }; struct A::B {

Структура ORDER с полями "номер счета плательщика", "номер счета получателя" и "сумма платежа" - C++
написать структуру ORDER. с полями 1.номер счета плательщика 2.счета получателя 3.сумма платежа

Структура записи "Фирма", "Судебное дело" - C++
Помогите пожалуйста в чом ошибка Нужно Определить, в каком году чаще всего возбуждали уголовное дело против определенной фирмы.. ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
lukalexrus
7 / 6 / 1
Регистрация: 12.01.2014
Сообщений: 32
27.01.2014, 14:11 #2
C++
1
for(char i=0; i<rcount; i++)
а вот char там зачем?
MrGluck
Модератор
Эксперт CЭксперт С++
7210 / 4376 / 638
Регистрация: 29.11.2010
Сообщений: 11,887
27.01.2014, 14:13 #3
Цитата Сообщение от AngryGolod Посмотреть сообщение
if(strct[i].fam == fam1)
либо там в оригинале использовался std::string, либо ошибка.
Сравнение char* производится через функцию strcmp
AngryGolod
1 / 1 / 1
Регистрация: 26.01.2014
Сообщений: 8
27.01.2014, 14:16  [ТС] #4
Цитата Сообщение от lukalexrus Посмотреть сообщение
C++
1
for(char i=0; i<rcount; i++)
а вот char там зачем?
сейчас уже нету, ниже же прекрепил обновлённый поисковик по фамилиям, сейчас тоже опять переделал немного
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
cout << "enter fam for search: ";
    char fame[30] ;
    cin >> fame;
    int find = 0;
    for(int i=0; i<rcount; i++)
    {
    if(strct[i].fam == fame) 
        {
            cout<<"class" strct[i].group;
            cout<<"lastname" strct[i].fam; 
            cout<<"name" strct[i].name; 
            cout<<"middlename" strct[i].name2; 
            cout<<"mat score" strct[i].mat; 
            cout<<"phy score" strct[i].phy; 
            cout<<"rus score" strct[i].rus;  
            cout<<"lit score" strct[i].lit;
        
            find = 1;
        }
    }
    if(!find) cout << "not found!";    
}
да и волнует больше не поисковик по фамилиям, а остальная программа в целом
lukalexrus
7 / 6 / 1
Регистрация: 12.01.2014
Сообщений: 32
27.01.2014, 14:28 #5
AngryGolod, а что с самой программой не так, вроде все работает(ну в структуру добавляется я имею ввиду), про сравнение char вам сказали что используется функция strcmp.
AngryGolod
1 / 1 / 1
Регистрация: 26.01.2014
Сообщений: 8
27.01.2014, 14:43  [ТС] #6
Цитата Сообщение от lukalexrus Посмотреть сообщение
AngryGolod, а что с самой программой не так, вроде все работает(ну в структуру добавляется я имею ввиду), про сравнение char вам сказали что используется функция strcmp.
ну я же писал что нужно после ввода данных о школьниках сделать разветвление
A-найти всех у кого есть 2 по предмету;
B (и приписать сюда значение предмета например rus)- выдать всех школьников у кого есть 5 по данному предмету;
C (и приписать сюда фамилию школьника)- выдать всю информацию о школьниках у которых есть такая
фамилия"
а у меня есть только поиск по фамилиям, всё время выдающий not found
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2014, 14:43
Привет! Вот еще темы с ответами:

Структура "Автомобиль". Контейнер "Рынок б/у автомобилей" - C++
Как реализовать такую структуру? 1. Найти иномарки стоимостью до 300тыс. руб. Предусмотреть в программе меню, позволяющее...

Структура, доступная из всех файлов проекта ("глобальная" структура) - C++
Есть четыре структуры (body, gun, enemy, st), описанные в main.cpp. К main.cpp подключен хедер save.h, в котором имеется функция void...

В чем разница между "Порядок выполнения программ на языке C" и "Структура программы на языке C" - C++
в конспектах у себя не нашел, хоть и записывал все, что объяснял преподаватель. вот, собственно, сам вопрос: Структура программы на...

Структура: Вывести тех студентов, кто сдал оба экзамена либо на "4" либо на "5" - C++
Условие задачи: Дана ведомость студентов: Фамилия студента, оценка_1, оценка_2. Вывести тех студентов, кто сдал оба экзамена либо на...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
27.01.2014, 14:43
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru