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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.06.2011, 12:52   #1
paul0
Пользователь
 
Регистрация: 21.03.2011
Сообщений: 27
По умолчанию Исправить ошибку в очереди

имеется код программы в котором нужно исправить вид выводимых на экран оценок.не могу понять как это сделать.в целом программа рабочая.помоги пожалуйста очень надо для зачета
вот она:
Код:
#include "stdafx.h"
#include "conio.h"
#include "locale.h"
#include "string.h"
#include <stdio.h>
#include <stdlib.h>
  
struct Student
{
   char name[15]; 
  char group[6]; 
  int ocenki[3]; 
  Student* prev;
};
Student *first(char *S1, char *S2, int nom);
void add (Student **konec, char *S1, char *S2, int nom);
void PrintReis(Student **pv);
void del(Student* first);

int _tmain(int argc, _TCHAR* argv[])
{
	setlocale(LC_ALL,"Russian");
    Student *First=NULL;
	Student *Reis=First;

	char S1[15];
	char S2[6];
	int ocenki[3],j;
	bool flag=false ;
	int num,i=0;


	do{


			printf("\nВведите фамилию: ");
				scanf("%s",&S1);
				printf("Введите группу: ");
				scanf("%s",&S2);
				for (j=0;j<3;j++)
				{
printf ("\nВведите %d оценки(от 2 до 5)... ",j+1);
scanf("%d",&ocenki[j]);
				}
			if(First==NULL)
			{
				First = first(S1,S2,ocenki[3]);
				Reis = First;
			}
			else
			  {
				add(&Reis,S1,S2,ocenki[3]);  
			   }
			printf("Продолжить ввод?(1-да,2-нет): ");
			scanf("%d",&num);
			if(num==2)
			{
				flag=true;
			}
			else
			{
				i++;
			}
	   }
	while(!flag);


        Student *print=First;
		PrintReis(&print);
		getch();
del(First);
 
}

void del(Student* first)
{
	do
	{
Student* pv=NULL;
pv=first;
first=first->prev;
delete pv;
	}
	while(first->prev!=NULL);

}
Student *first(char *S1, char *S2, int nom)
{
	Student *first = new Student;
	first->ocenki[3]=nom;
	strcpy(first->name,S1);
	strcpy(first->group,S2);
	first->prev=NULL;
	return first;
}
 
void add (Student **konec, char *S1, char *S2, int nom)
{   
	Student *pv=new Student;
	pv->ocenki[3]=nom;
	strcpy(pv->name,S1);
	strcpy(pv->group,S2);
	pv->prev=NULL;
	(*konec)->prev=pv;
	*konec=pv;
}


void PrintReis(Student **pv)
{
	int i=1,j;
	
printf(" \n_____________________________________________________________\n"
           "| № |    Фамилия    |       Группа     |     Оценки     |\n"
           " --------------------------------------------------------- \n");
while((*pv))
	{
		printf("|%3d| %13s| %16s| \n",i, (*pv)->name,(*pv)->group);
		
			printf("|%50d|\n",(*pv)->ocenki[0]);
			printf("|%50d|\n",(*pv)->ocenki[1]);
			printf("|%50d|\n",(*pv)->ocenki[2]);

		
		i++;
		(*pv)=(*pv)->prev;
	}

  printf(" ---------------------------------------------------------------\n");
  getch();
}


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 23.06.2011 в 13:33.
paul0 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
исправить ошибку,Паскаль Aidar9119 Помощь студентам 4 05.01.2011 17:55
помогите исправить ошибку. RUSLAN13 Помощь студентам 1 25.12.2008 17:22
Помогите исправить ошибку artem_MG Паскаль, Turbo Pascal, PascalABC.NET 4 27.10.2008 17:42
Исправить ошибку LLIypLLIyH Помощь студентам 5 16.06.2008 16:50