Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > массивы


Автор: Зая 19.1.2006, 13:39
ПОМОГИТЕ ДОДЕЛАТЬ ЗАДАЧУ
С использованием функции составить программму
-выполнение которой начиналось бы с графической заставки с обязательной анимацией пейзажа или каких=то изображений
-затем должен появиться текст из 2 любых слов а фамилией человека
после этого:
Сделать меню:
1-ввод фамилий
2-ввод названий предметов
3-генерация оценок с помощью случайных чисел
4-просмотр исодных данных
5-результат выполнения задания
6-выход
Заданы 3 таблицы. 2 линейные таблмцы A,B. и прямоугольная таблица С.В линейной таблице А содержаться фамилии учеников в прямоугольной С их оценки по 10 предметам за 1 полугодие в линейной таблице B названия этих предметов
фамилии учеников и названий предметов строковые данные
Составить программу организующую
-отделить ввод фамилий в таблице А
-отделить ввод предметов в таблицу B
-формирование оценок с помощью датчика случайных чисел по предметам от 2 до 5
-вывод в виде списка исходных данных где столбцы названия предметов строками фамилии учеников а графы содержат оценки учеников по указанному предмету
-дополнительный пункт своего варианта
использлвать динамические массивы
выведите список учеников с предметами и оценками в порядке убывания суммы баллов по всем предметам
помогите.......решить на вижел с++
вот код:
Код




#include "stdafx.h"
#include <conio.h>
#include <windows.h>
#include <time.h>
#define SSIZE 6
#define PCNT 10

typedef char MyString[SSIZE];
using namespace std;

void clrscr(void);
void gotoxy(int , int);
int GetRandom(int);
void coutF(char *, int);
//********************************
void main(){
   int fam=0, pr=0, oc=0;
   srand( (unsigned)time( NULL ) );
   MyString *A, *B=new MyString[PCNT];
   int **C=new int*[PCNT], Asize;
    cout<<"Skoka uchenikov? => ";
   cin>>Asize;
   A=new MyString[Asize];
   for(int i=0;i<PCNT;i++)
      C[i]=new int[Asize];
   //имеем PCNT предметов и Asize учеников. В хорошем смысле слова имеем :)
   char ch='q';
   while(ch!='6'){
      clrscr();
      ch='q';
      cout<<"1. Vvod familiy\n2. Vvod predmetov\n3. Generaciya ocenok\n4. Prosmotr dannyh\n5. Rezultat\n6. BbIXOD";
      while(ch<'1' || ch>'6') ch=getch();

      switch(ch){
         case '1':{
            clrscr();
            for(int i=0;i<Asize;i++){
               cout<<"Familiya uchenika #"<<i+1<<" : ";
               cin>>A[i];
            }
            cout<<"\nVvod familiy okonchen...";
            fam=1;
            getch();
            break;
                }//case'1'
         case '2':{
            clrscr();
            for(int i=0;i<PCNT;i++){
               cout<<"Nazvanie "<<i+1<<"-go predmeta: ";
               cin>>B[i];
            }
            cout<<"\nVvod predmetov okonchen...";
            pr=1;
            getch();
            break;
                }//case'2'
         case '3':{
            clrscr();
            cout<<"Generaciya ocenok nachata...";
            for(int i=0; i<PCNT; i++)
               for(int j=0; j<Asize; j++)
                  C[i][j]=GetRandom(3)+2;
            cout<<"\nGeneraciya ocenok zavershena...";
            oc=1;
            getch();
            break;
                }//case'3'
         case '4':{
            clrscr();
            cout<<"V stadii razrabotki...";
            getch();
            break;
                }//case'4'
         case '5':{
            clrscr();
            if(!fam)cout<<"Ne vveli familii!\n";
            if(!oc)cout<<"Ne sgenerirovali ocenki!\n";
            if(!pr)cout<<"Ne vveli predmety!\n";
            if(fam+oc+pr!=3){
               getch();
               break;
            }
            int *Sum=new int[Asize];
            memset(Sum, 0, sizeof(int)*Asize);
            for(int i=0; i<Asize; i++)
               for(int j=0; j<PCNT; j++)
                  Sum[i]+=C[j][i];
            int max, *index=new int[Asize];
            for(int i=0; i<Asize; i++){
               max=0;
               for(int j=0; j<Asize; j++)
                  if(Sum[j]>Sum[max])max=j;
               index[i]=max;
               Sum[max]=0;
            }
            cout<<"+--------+------+------+------+------+------+------+------+------+------+------+";
            cout<<"|********|";
            for(int i=0;i<PCNT;i++){
                    coutF(B[i], 6);
               cout<<"|";
            }
            cout<<"+--------+------+------+------+------+------+------+------+------+------+------+";
            for(int i=0; i<Asize; i++){
               cout<<"|";
               coutF(A[index[i]], 8);
               cout<<"|";
               for(int j=0; j<PCNT; j++)
                  cout<<"  "<<C[j][index[i]]<<"   |";
            }
            cout<<"+--------+------+------+------+------+------+------+------+------+------+------+";
            delete []Sum;
            delete []index;
            getch();
            break;
                }//case'5'
      }//switch
   }
}
//********************************
void coutF(char *S, int l){
   for(int i=0; i<l; i++){
      if(i+1>strlen(S))cout<<" ";
      else cout<<S[i];
   }
}
void clrscr(void){
   system("cls");
}

void gotoxy(int x, int y){
   HANDLE hConsole=GetStdHandle(STD_OUTPUT_HANDLE);
   COORD coord={x, y};
   SetConsoleCursorPosition(hConsole, coord);
}

int GetRandom(int range){
   return rand()%(range+1);
}


помогите

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)