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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2011, 20:54   #1
alex22527
Пользователь
 
Регистрация: 07.10.2010
Сообщений: 24
По умолчанию с++

тема:структуры

составить программу назначения степендии студентам по результатам сессии,используя следующие правила:
а.Если все оценки 5,назначается повышенная стипендия
б.Если все оценки 4 и 5,назначается обычная стипендия
с.Если есть оценки 3,стипендия не назначается
alex22527 вне форума Ответить с цитированием
Старый 12.04.2011, 21:14   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Это всё условие? Что-то маловато информации о том как должны быть записаны оценки.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 12.04.2011, 22:03   #3
Gillian Foster
 
Аватар для Gillian Foster
 
Регистрация: 12.04.2011
Сообщений: 7
По умолчанию

можно реализовать следующим образом:
1. циклом перебрать всех студентов где все элементы массива note[] равны 5 - это повышенная, если не равны 3 то начислить обычную иначе не начислять.

struct sessia
{
char name[30]; //30 студентов
int note[20];// 20 оценок
}
Gillian Foster вне форума Ответить с цитированием
Старый 13.04.2011, 07:26   #4
alex22527
Пользователь
 
Регистрация: 07.10.2010
Сообщений: 24
По умолчанию

Alex11223 это вся информация,Gillian Foster я что то похожее делал,но она не работает(
alex22527 вне форума Ответить с цитированием
Старый 13.04.2011, 08:55   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну так показали бы код, мы же не можем извлечь его из вашей памяти по айпишнику с помощью телепатии.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 13.04.2011, 12:51   #6
Hendrix
Новичок
Джуниор
 
Регистрация: 17.02.2011
Сообщений: 1
По умолчанию

Вот похожая программа:
Написать программу учета сдачи зачетов при помощи битовых полей. Структура содержит поля: фамилия, группа, зачеты (битовое поле). Предусмотреть вывод списков сдавших все зачеты и должников по группам.
Код:

Код:
#include <iostream>
#include <Windows.h>
using namespace std;
struct STUDENT
{
	char name[50];
	int group;
	unsigned int math:1;
	unsigned int biol:1;
	unsigned int chem:1;
};
void Print(STUDENT *info,int size,int i)
{
	cout<<"\n --------------------\n";
	cout<<" Имя: "<<info[i].name<<"\n";
	cout<<" Группа: "<<info[i].group<<"\n";
	if(info[i].math==1)
		cout<<" Математика: Зачет\n";
	else
		cout<<" Математика: Незачет\n";
	if(info[i].biol==1)
		cout<<" Биология: Зачет\n";
	else
		cout<<" Биология: Незачет\n";
	if(info[i].chem==1)
		cout<<" Химия: Зачет\n";
	else
		cout<<" Химия: Незачет\n";
}
void PrintGroup(STUDENT *info, int size,char ind)
{
	if(ind=='1')
	{
		for(int i=0;i<size;i++)
		{
			Print(info,size,i);
		}
	}
	else if(ind=='2')
	{
		char gr;
		cout<<" Номер группы: ";
		cin>>gr;
		while((gr!='1')&&(gr!='2'))
		{
			cout<<" Неверное значение.\n";
			cin>>gr;
		}
		if(gr=='1')
		{
			cout<<"\n Группа 1:\n\n";
			for(int i=0;i<size;i++)
			{
				if(info[i].group==1)
				{
					Print(info,size,i);
				}
			}
		}
		else if(gr=='2')
		{
			cout<<"\n Группа 2:\n\n";
			for(int i=0;i<size;i++)
			{
				if(info[i].group==2)
				{
					Print(info,size,i);
				}
			}
		}
	}
}
void TestPlus(STUDENT *info,int size,int gr)
{
	if(gr==1)
	{
		for(int i=0;i<size;i++)
		{
			if(info[i].group==1)
			{
				if((info[i].math==1)&&(info[i].biol==1)&&(info[i].chem==1))
				{
					Print(info,size,i);
				}
			}
		}
	}
	else if(gr==2)
	{
		for(int i=0;i<size;i++)
		{
			if(info[i].group==2)
			{
				if((info[i].math==1)&&(info[i].biol==1)&&(info[i].chem==1))
				{
					Print(info,size,i);
				}
			}
		}
	}
}
void TestMinus(STUDENT *info,int size,int gr)
{
	if(gr==1)
	{
		for(int i=0;i<size;i++)
		{
			if(info[i].group==1)
			{
				if((info[i].math!=1)||(info[i].biol!=1)||(info[i].chem!=1))
				{
					Print(info,size,i);
				}
			}
		}
	}
	else if(gr==2)
	{
		for(int i=0;i<size;i++)
		{
			if(info[i].group==2)
			{
				if((info[i].math!=1)||(info[i].biol!=1)||(info[i].chem!=1))
				{
					Print(info,size,i);
				}
			}
		}
	}
}
void main()
{
	setlocale(LC_ALL, "");
	SetConsoleCP(1251);
	SetConsoleOutputCP(1251);
	const int S=10;
	char end;
	STUDENT info[S]={{"Кузнецов",2,1,1,1},{"Смирнов",1,1,0,1},{"Иванов",2,0,0,0},
	{"Попов",1,1,1,1},{"Соколов",2,0,0,1},{"Лебедев",1,1,1,1},{"Козлов",2,0,0,0},
	{"Новиков",1,0,0,0},{"Морозов",2,0,1,1},{"Петров",1,1,0,1}};
	do
	{
		system("cls");
		cout<<"\n Меню:\n";
		cout<<" 1 - Вывести список на экран.\n";
		cout<<" 2 - Список сдавших все зачеты.\n";
		cout<<" 3 - Список должников.\n";
		cout<<" >";
		int menu;
		cin>>menu;
		while((menu!=1)&&(menu!=2)&&(menu!=3))
		{
			cout<<" Неверное значение.\n";
			cin>>menu;
		}
		if(menu==1)
		{
			char choice;
			cout<<"\n Вывести список: 1 - всех студентов, 2 - группы: ";
			cin>>choice;
			while((choice!='1')&&(choice!='2'))
			{
				cout<<" Неверное значение.\n";
				cin>>choice;
			}
			PrintGroup(info,S,choice);
		}
		else if(menu==2)
		{
			int gr;
			cout<<" Сдавшие зачеты: 1 - Первая группа, 2 - Вторая группа: ";
			cin>>gr;
			while((gr!=1)&&(gr!=2))
			{
				cout<<" Неверное значение.\n";
				cin>>gr;
			}
			TestPlus(info,S,gr);
		}
		else if(menu==3)
		{
			int gr;
			cout<<" Должники: 1 - Первая группа, 2 - Вторая группа: ";
			cin>>gr;
			while((gr!=1)&&(gr!=2))
			{
				cout<<" Неверное значение.\n";
				cin>>gr;
			}
			TestMinus(info,S,gr);
		}
		cout<<"\n Вернуться в меню: 1 - Да, 2 - Нет: ";
		cin>>end;
	}
	while(end=='1');
}
Hendrix вне форума Ответить с цитированием
Ответ


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