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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2010, 12:21   #1
DarkSwan
Пользователь
 
Регистрация: 11.10.2010
Сообщений: 20
По умолчанию С++ Структуры данных

Здравствуйте. После нескольких вечеров втыкания в основы с++ родился код. Задача - из файла Base.txt выводить группу, ФИО студента, оценки по 4 экзаменам и 5 зачетам. В том виде, как оно сейчас есть, программа работает. Но есть загвоздка - нужно до чтения из файла воткнуть структуру данных, а как это сделать, до меня что-то никак не доходит

Код:
#include "stdafx.h"
#include "iostream.h"
#include "fstream.h"
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"

int j,i=0,k,l,s=0,ekz[20][4];
char gr[20][5],surname[20][64],name[20][16],z[20][5];
float sum=0;	//сумма всех оценок

void main(void)
{
Nach:printf("Vvedite nomer punkta:\n");
	printf("1. Pokazat' spisok vseh studentov\n");
	printf("2. Pokazat' dolzhnikov\n");
	printf("3. Pokazat' otlichnikov\n");
	printf("4. Pokazat' srednii ball studentov\n");
	printf("5. Vyhod\n\n");
	j=getch();	//читаем ASCII-код нажатой клавиши

	ifstream input_file("Base.txt");
	
	for (s=0;s<20;s++)	
	{
		input_file>>gr[s]>>surname[s]>>name[s]>>ekz[s][0]>>ekz[s][1]>>ekz[s][2]>>ekz[s][3]>>z[s][0]>>z[s][1]>>z[s][2]>>z[s][3]>>z[s][4];
	}
	
	switch(j) 
	{
	case 49:	//нажали 1
		printf("===========================Spisok studentov===========================\n"); //все студенты
		for (s=0;s<20;s++)		
		{
			cout<< gr[s]<<" <"<<surname[s]<<" "<<name[s]<<"> "<<ekz[s][0]<<" "<<ekz[s][1]<<" "<<ekz[s][2]<<" "<<ekz[s][3]<<" "<<z[s][0]<<" "<<z[s][1]<<" "<<z[s][2]<<" "<<z[s][3]<<" "<<z[s][4]<<endl;		
		}

	printf("\n\n");
	goto Nach;

	case 50:	//нажали 2
		printf("===========================Spisok dolzhnikov==========================\n"); //должники
		for (s=0;s<20;s++)
		{
			for (k=0;k<5;k++)
			{
				if (ekz[s][k]==2||z[s][k]=='n') {printf("%s <%s %s> ",gr[s],surname[s],name[s]);	//если хоть что-то не сдано, вывод гр, ФИО
					for (k=0;k<5;k++)
					{
						if (ekz[s][k]==2) printf("ekz.%d",k+1);	//отмечаем несданные экзамены
						if (z[s][k]=='n') printf("z.%d ",k+1);	//и незачеты
					}
					printf ("\n");
			}}
		}
			printf("\n\n");	
	goto Nach;

	case 51:	//нажали 3
		printf("==========================Spisok otlichnikov==========================\n"); //отличники
		for (s=0;s<20;s++)	//пройдемся по всей БД
		{
			for (k=0;k<4;k++)
			{
				if (ekz[s][k]==2||ekz[s][k]==3||z[s][k]=='n') 
				{
					l=1;k=4;	//l-переменная для выявления НЕотличников; проходим по всем экзаменам/зачетам
					//если есть хотя бы один неудовлетворительный экзамен или незакрытый зачет, то сразу проверяем следующего
				}
				else l=0;
			}
		if (l==0) printf("%s %s %s\n",gr[s],surname[s],name[s]);	//если есть отличник - выводим его
		}
	printf("\n\n");	
	goto Nach;

	case 52:	//нажали 4
		printf("==============================Srednii ball============================\n"); //средний балл
		for (s=0;s<20;s++,sum=0)
		{
			for (k=0;k<4;k++) 
			{
				sum+=ekz[s][k];	//считаем сумму оценок
			}
		printf("%s <%s %s> %.2f\n",gr[s],surname[s], name[s], sum/4);
		}
	printf("\n\n");	
	goto Nach;

	case 53:	//нажали 5
		input_file.close ();
		printf("====================Dlya vyhoda nazhmite CTRL+BREAK===================\n"); //выход
	}
	getch();
}
Base.txt:
Цитата:
VT Ivanov I.O. 4 5 5 4 z z z z z
VT Klimov P.V. 3 4 4 2 n n z z n
VT Bykova A.L. 5 5 5 5 z z z z z
VT Svetov K.P. 3 4 5 4 n z z z z
MO Guseva N.I. 4 4 3 2 z n n z z
MO Trudov V.C. 5 4 5 4 z z z n z
MO Kirova L.E. 3 2 3 3 n n n n n
MO Serova A.D. 4 3 5 5 z z z z z
MI Kravec U.N. 4 4 2 3 z n n z n
MI Gresch A.A. 5 5 4 4 z z n z z
MI Hlebov E.V. 4 3 4 3 z z z n n
MI Zykova M.C. 5 5 5 4 z n z z z
BU Careva V.I. 5 4 4 4 z z z z z
BU Vasina U.V. 4 4 4 4 z z z z z
BU Kostin K.K. 4 3 4 5 n z n z z
BU Petrin R.R. 4 5 4 4 z z z z z
CC Bragin Y.M. 3 3 2 2 n n n z n
CC Firsov G.M. 4 3 3 4 n z n z z
CC Aksina L.I. 4 4 4 4 z z z z z
CC Arovoi I.A. 3 3 3 2 n z z n z
DarkSwan вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Структуры данных в С++ ArniLand Общие вопросы C/C++ 2 14.07.2010 18:34
Организация структуры данных tae1980 Microsoft Office Excel 5 20.04.2010 21:14