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

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

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

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

27.01.2014, 13:57. Просмотров 662. Ответов 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++
здравствуйте, надеюсь на вашу помощь #include &lt;iostream&gt; #include &lt;string&gt; #include &quot;stdafx.h&quot; using namespace std; ...

Структура "Работники фирмы", найти проживающих на заданной улице. - C++
Дан массив данных о работниках фирмы: ФИО и адрес (улица, дом, квар- тира). Во второй массив записать только тех из них, которые живут на...

Структура: Определить, имеется ли книга с названием "Информатика". - C++
Сведения о книге - это фамилия автора, название и год издания. Определить, имеется ли книга с названием &quot;Информатика&quot;. Если да, то сообщить...

Структура "Студент", найти студента с максимальными оценками - C++
Вводим список студентов и их оценки.Как вывести студента с максимальным баллом оценок? #include &lt;cmath&gt; #include &lt;iostream&gt; using...

Структура "Штраф". Функция поиска криво работает - C++
Не работает функция poisk(); Переписать в новый файл информацию о штрафах, размер которого и дата вводятся с клавиатуры. ...

Структура "Цветной планшетный сканер", функции и файлы - C++
Здравствуйте:) Пожалуйста, помогите решить задачу Для хранения данных о цветных планшетных сканерах описать структуру вида: struct...

Структура "ФИО": считать из файла, добавить запись - C++
#include &lt;string.h&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;conio.h&gt; #include &lt;io.h&gt; #include &lt;fcntl.h&gt; #include...

Структура "Сканер". Нужны советы профессионалов по программе - C++
Программа ПОЧТИ работает, очень все сырое, код мне кажется мог быть и короче. Прошу Вас, эксперты, указать явные недоработки и как было бы...

Структура "Читатель библиотеки", не получается ввод времени - C++
нужно создать сруктуру, которая содержит номер читательского билетовфамилии авторовназвания книгиздательствагод изданиядата выдачисрок...

Структура "Студент": переделать задачу с использованием указателей - C++
Описать Структуру с именем STUDENT с полями: 1. NAME-фамилия и инициалы; 2.GROUP-номер группы; 3.SES-успеваемость(массив из 5...

Структура "Автобус". Организовать поиск по номеру маршрута - C++
Описать структуру AVTO. которая содержит следующие поля: номер автобуса, номер маршрута, фамилия водителя. Организовать поиск по номеру...

Динамическая структура данных(контейнер) типа "Вектор" - 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Эксперт С++
7158 / 4324 / 630
Регистрация: 29.11.2010
Сообщений: 11,745
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
Yandex
Объявления
27.01.2014, 14:43     Структура "Школьник"
Ответ Создать тему
Опции темы

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