Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> массивы 
:(
    Опции темы
Зая
Дата 19.1.2006, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 19.1.2006

Репутация: нет
Всего: нет



ПОМОГИТЕ ДОДЕЛАТЬ ЗАДАЧУ
С использованием функции составить программму
-выполнение которой начиналось бы с графической заставки с обязательной анимацией пейзажа или каких=то изображений
-затем должен появиться текст из 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);
}


помогите

Это сообщение отредактировал(а) Зая - 19.1.2006, 13:43
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0504 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.