Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 4
1

Структуры, Графика, Консоль, MSVS2010 - убрать лишнее

08.07.2012, 18:16. Показов 519. Ответов 0
Метки нет (Все метки)

Помогите, что здесь не так?
Пытаюсь адаптировать код борланда для MSVS 2010 ... ещё будет здорово , если кто-нибудь подскажет альтернативу window(); textbackground(); textbackground();textcolor(); ..


Код
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#include <string.h>

typedef struct
{
 char fam[25];
 char inits[4];
 char grup[7];
 int marks[5];
} student;

void vvod_personala(student *x,int fl)
{
  int i, j, n;
  FILE  *lab11;
  if(fl==0)
  {
    lab11=fopen("laba11.txt","w");
  }
  else
  {
   lab11=fopen("laba11.txt","a");
  }
  printf("Vvedite kolichestvo dobavlyaemih studentov: ");
  scanf("%d",&n);

  for(i=0;i<n;i++)
  {
    system("cls");
	printf("\n Vvedite familiyu: ");
	scanf("%s",&(x->fam));
	
	printf("\n Vvedite initsiali: ");
	scanf("%s",&(x->inits));
	
	printf("\n Vvedite gruppu: ");
	scanf("%s",&(x->grup));
	printf("\n Vvedite ocenki: ");
	for(j=0;j<5;j++)
	{
		printf("\n %d - ", j+1);
		scanf("%d",&(x->marks[j]));
	}

	fprintf(lab11,"\n %s %s %s %d %d %d %d %d",x->fam, x->inits, x->grup,
		x->marks[0], x->marks[1], x->marks[2], x->marks[3], x->marks[4]);
  }
  fclose(lab11);
  system("cls");

  lab11=fopen("laba11.txt","r");
  i=1;
  while(!feof(lab11))
   {
	fscanf(lab11,"\n %s %s %s %d %d %d %d %d", &(x->fam), &(x->inits), &(x->grup),
		&(x->marks[0]), &(x->marks[1]), &(x->marks[2]), &(x->marks[3]), &(x->marks[4]));
	printf("\n %s %s %s %d %d %d %d %d",x->fam, x->inits, x->grup,
		x->marks[0], x->marks[1], x->marks[2], x->marks[3], x->marks[4]);
	i++;
   }
  fclose(lab11);
  getch();
}

 void izmenenie(student *x)
{
  student lab[10];
  FILE *ff;
  ////window(1,1,80,50);
   system("cls");
  int n=1, nom, k=0, NUMBER, j;

  ff=fopen("laba11.txt","r");
   while(!feof(ff))
   {
	fscanf(ff,"\n %s %s %s %d %d %d %d %d", &(x->fam), &(x->inits), &(x->grup),
		&(x->marks[0]), &(x->marks[1]), &(x->marks[2]), &(x->marks[3]), &(x->marks[4]));
	lab[n-1]=*x;
	printf("\n %d",n);
	printf(") %s %s %s %d %d %d %d %d",x->fam, x->inits, x->grup,
		x->marks[0], x->marks[1], x->marks[2], x->marks[3], x->marks[4]);
	n++;
   }
   n--;
  fclose(ff);

 printf("\n Vvedite nomer izmenyaemoi zapisi: ");
 scanf("%d",&nom);
  nom=nom-1;
   ff=fopen("laba11.txt","w");

   for(k=0;k<n;k++)
   {
	*x=lab[k];
	 if(k==nom)
	{
	 printf("\n Vvedite nomer izmenyaemogo parametra: \n");
	 scanf("%d",&NUMBER);
	if(NUMBER==1)
	{
	 printf("\n Vvedite familiyu: ");
	 scanf("%s",&(x->fam));
	}
	if(NUMBER==2)
	{
	 printf("\n Vvedite initsiali: ");
	 scanf("%s",&(x->inits));
	}
	if(NUMBER==3)
	{
	 printf("\n Vvedite gruppu: ");
	 scanf("%s",&(x->grup));
	}
	if(NUMBER==4)
	{
	 printf("\n Vvedite pervuyu ocenku: ");
	 scanf("%d",&(x->marks[0]));
	}
	if(NUMBER==5)
	{
	 printf("\n Vvedite vtoruyu ocenku: ");
	 scanf("%d",&(x->marks[1]));
	}
	if(NUMBER==6)
	{
	 printf("\n Vvedite teretyu ocenku: ");
	 scanf("%d",&(x->marks[2]));
	}
	if(NUMBER==7)
	{
	 printf("\n Vvedite chetvertuyu ocenku: ");
	 scanf("%d",&(x->marks[3]));
	}
	if(NUMBER==8)
	{
	 printf("\n Vvedite paytuyu ocenku: ");
	 scanf("%d",&(x->marks[4]));
	}
}
     fprintf(ff,"\n %s %s %s %d %d %d %d %d",x->fam, x->inits, x->grup,
		x->marks[0], x->marks[1], x->marks[2], x->marks[3], x->marks[4]);
   }
  fclose(ff);

  system("cls");
  ff=fopen("laba11.txt","r");
    while(!feof(ff))
    {
	fscanf(ff,"\n %s %s %s %d %d %d %d %d", &(x->fam), &(x->inits), &(x->grup),
		&(x->marks[0]), &(x->marks[1]), &(x->marks[2]), &(x->marks[3]), &(x->marks[4]));
	printf("\n %s %s %s %d %d %d %d %d",x->fam, x->inits, x->grup,
		x->marks[0], x->marks[1], x->marks[2], x->marks[3], x->marks[4]);
    }
  fclose(ff);
  getch();
}

void del_zapis(student *x)
 {
  system("cls");
  int flag=0;
  int  i,k,n,m=0;
  student lab[20];
  FILE  *lab11;
  for(;;)
  {
  lab11=fopen("laba11.txt","r");
  n=1;
  while(!feof(lab11))
   {
	fscanf(lab11,"\n %s %s %s %d %d %d %d %d", &(x->fam), &(x->inits), &(x->grup),
		&(x->marks[0]), &(x->marks[1]), &(x->marks[2]), &(x->marks[3]), &(x->marks[4]));
	lab[n-1]=*x;
	printf("\n %d",n);
	printf(") %s %s %s %d %d %d %d %d",x->fam, x->inits, x->grup,
		x->marks[0], x->marks[1], x->marks[2], x->marks[3], x->marks[4]);
    n++;
   }
   n--;
  printf("\n Vvedite nomer udalyaemoi zapisi: ");
 scanf("%d",&k);
  system("cls");
 for(i=k-1;i<n;i++)
 {
   lab[i]=lab[i+1];
   flag=1;
 }
 if(flag==1)
 {
   lab11=fopen("laba11.txt","w");
   n--;
   while(m<n)
   {
    *x=lab[m];
    fprintf(lab11,"\n %s %s %s %d %d %d %d %d",x->fam, x->inits, x->grup,
		x->marks[0], x->marks[1], x->marks[2], x->marks[3], x->marks[4]);
    printf("\n %s %s %s %d %d %d %d %d",x->fam, x->inits, x->grup,
		x->marks[0], x->marks[1], x->marks[2], x->marks[3], x->marks[4]);
    m++;
  }
   fclose(lab11);
   break;
   }
   else{
      printf("Takoi zapisi net. Povtorite popitku.");
      getch();
   }
  }
  getch();
}


void sort_zapisei(student *x)
{
 int i, n=0, fl;
 float sr[30], sr1;
 student lab[30], dop;
 FILE  *lab11;
 lab11=fopen("laba11.txt","r");

   while(!feof(lab11))
   {
    fscanf(lab11,"\n %s %s %s %d %d %d %d %d", &(x->fam), &(x->inits), &(x->grup),
		&(x->marks[0]), &(x->marks[1]), &(x->marks[2]), &(x->marks[3]), &(x->marks[4]));
    lab[n]=*x;
    n++;
   }
     system("cls");
 fclose(lab11);

	lab11 = fopen("laba11.txt","w");
     for(i=0;i<n;i++)
	 {
		sr[i] = (float)(lab[i].marks[0] + lab[i].marks[1] + lab[i].marks[2] + lab[i].marks[3] + lab[i].marks[4]) / 5;
	 }

	do
	{
		fl = 0;
		for(i=0;i<n-1;i++)
		{
			if(sr[i] < sr[i+1])
			{
				dop = lab[i];
				lab[i] = lab[i+1];
				lab[i+1] = dop;
				fl = 1;
				sr1 = sr[i];
				sr[i] = sr[i+1];
				sr[i+1] = sr1;
			}
		}
	}
	while(fl == 1);

	printf("\n Srednie bali: ");
	for(i=0;i<n;i++)
		printf("%d)-%3.1f ", i+1, sr[i]);

      for(i=0;i<n;i++)
	   {
		*x = lab[i];
	    printf("\n %s %s %s %d %d %d %d %d",x->fam, x->inits, x->grup,
		x->marks[0], x->marks[1], x->marks[2], x->marks[3], x->marks[4]);
		fprintf(lab11,"\n %s %s %s %d %d %d %d %d",x->fam, x->inits, x->grup,
		x->marks[0], x->marks[1], x->marks[2], x->marks[3], x->marks[4]);
	   }
  fclose(lab11);

   getch();
}

void poisk(student *x)
{
 int i, n=0, fl;
 int ch[30], j, max;
 student lab[30];
 FILE  *lab11, *odn;
 lab11=fopen("laba11.txt","r");


  for(i=0;i<30;i++)
	ch[i] = 0;
  char sim; 
   while(!feof(lab11))
   {
    fscanf(lab11,"\n %s %s %s %d %d %d %d %d", &(x->fam), &(x->inits), &(x->grup),
		&(x->marks[0]), &(x->marks[1]), &(x->marks[2]), &(x->marks[3]), &(x->marks[4]));
    lab[n]=*x;
    n++;
   }
     system("cls");
 fclose(lab11);

	odn = fopen("odnofamiltsi.txt","w");
	fl = 0;
     for(i=0;i<n;i++)
	 {
		for(j=0;j<n;j++)
		{
			if(i == j)
				j++;
			if(strcmp(lab[i].fam, lab[j].fam) == 0)
			{
				ch[i]++;
				fl = 1;
			}
		}
	 }

	max = -100;
	for(i=0;i<n;i++)
		if(ch[i] > max)
			max = ch[i];
	printf("\nNaibolshee kolichestvo odnofamiltsev = %d ", max+1);

     for(i=0;i<n;i++)
	if(ch[i] == max)
	{
		printf("\n %s %s",lab[i].fam, lab[i].grup);
		fprintf(odn,"\n %s %s",lab[i].fam, lab[i].grup);
	}

     if(fl == 0)
	{
		system("cls");
		printf("\n Odnofamiltsev net.");
	}
  fclose(odn);

   getch();
}

void prosmotr(student *x)
{char sim; 
  FILE *lab11;
  lab11 = fopen("laba11.txt","r");
  printf("\n Tekushii spisok \n");
  while(!feof(lab11))
   {
	fscanf(lab11,"\n %s %s %s %d %d %d %d %d", &(x->fam), &(x->inits), &(x->grup),
		&(x->marks[0]), &(x->marks[1]), &(x->marks[2]), &(x->marks[3]), &(x->marks[4]));
	printf("\n %s %s %s %d %d %d %d %d",x->fam, x->inits, x->grup,
		x->marks[0], x->marks[1], x->marks[2], x->marks[3], x->marks[4]);
   }
  fclose(lab11);
  getch();
}

 void menu(int *m)
{char sim=0; 
  char text[7][30]={
		    "Dobavlenie",
		    "Izmenenie",
		    "Udalenie",
		    "Sortirovka po otsenkam",
		    "Poisk odnofamiltsev",
		    "Tekushii spisok",
		    "Exit"};
 int n,k=7, xm=25,ym=18;
 ////window(1,1,80,50);
 //textbackground(0);
 system("cls");
 n=0;
 while(n<k)
 {
  ////window(xm,ym+n,xm+30,ym+n);
  //textbackground(BLACK);
  
  //textcolor(15);
  system("cls");
  printf("%s",text[n]);
  n++;
 }
 n=0;

while(sim!=13 && sim!=27)
 {
  //textbackground(GREEN); textcolor(15);
  ////window(xm,ym+n,xm+30,ym+n);
  system("cls");
  printf("%s",text[n]);
  sim=getch();
//  textbackground(BLACK); textcolor(15);
  system("cls");
 // //window(xm,ym+n,xm+30,ym+n);
  printf("%s",text[n]);
  kbhit();
 switch(sim)
 {
  case 72: if(n==0) n=k-1; else n--; break;
  case 80: if(n==k-1) n=0; else n++; break;
 }
 *m=n;}
 }


  void main()
  {
   int k,c;char sim; 
   student *y=0;
   system("cls");
  // vvod_personala(y,0);
   menu(&c);
   for(;;)
   {
   if(c==0)  { //window(1,1,80,50);
   system("cls");vvod_personala(y,1);}
   if(c==1)  { //window(1,1,80,50);
	   system("cls");izmenenie(y);}
   if(c==2)  { //window(1,1,80,50);
	   system("cls");del_zapis(y);}
   if(c==3)  { //window(1,1,80,50);
	   system("cls");sort_zapisei(y);}
   if(c==4)  { //window(1,1,80,50);
	   system("cls");poisk(y);}
   if(c==5)  { //window(1,1,80,50);
	   system("cls");prosmotr(y);}
   if(c==6)  { exit(1); break;}
   menu(&c);
   }
   getch();
 }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.07.2012, 18:16
Ответы с готовыми решениями:

Убрать лишнее
Здравствуйте, подскажите можно ли убрать(и как это сделать) то что я на скриншотах выделил красным?...

Убрать лишнее условие
Здравствуйте, программа работает, но нужно убрать лишние условие у меня их два повторяющихся: if(a...

Убрать лишнее из Web
У меня база прикрасно работает в Web, но вот такая вещь как &quot;Previous Next Expand Collapse Search&quot;...

Убрать лишнее из строки
всем привет, есть в поле такая строка .&amp;&amp;&amp;&amp; причем данные в последних скобках всегда разные и...

__________________

Записывайтесь на профессиональные курсы C++ разработчиков
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.07.2012, 18:16

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Как убрать лишнее
Привет.Помогите отрезать лишнее от линка. Несмогла наити ответ. Есть разные линки т.е....

Убрать лишнее место
Всем привет, ребят подскажите как такое организовать? Как сделать что бы расстояние после картинки...

Убрать лишнее из строк
Всем дорбое утречко! Такая задачка - убрать из строки всякое лишнее, по типу скобки, кавычки,...

Убрать лишнее из кода.
Картинка была в ворде, сгруппировала все ее элементы и сохранила как html. Можете из кода убрать...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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