Срочно нужна помощь с двумя задачками по С++
От: z1z  
Дата: 29.03.07 18:49
Оценка:
Привет всем...у меня Огромная проблемища....нивкакую не получаются задачки...
помогите пожалуйста разобраться с тем как решать вот эту задачку:
С помощью динамических переменных реализуйте вещественную матрицу размером 200 x 100. Каждому элементу матрицы присвойте случайное значение из заданного диапазона. Отсортируйте элементы в строках и строки по значению первого элемента. Выдайте на экран первую подматрицу размером 20 x 10.

вот...и еще проблема вот с такой задачкой:
Для хранения данных о цветных планшетных сканерах описать структуру вида :
struct scan_info{
char model[25]: // наименование модели
int price: // цена
double x_s1ze: // горизонтальный размер области сканирования
double y_s1ze; // вертикальный размер области сканирования
int optr: // оптическое разрешение
int grey; // число градаций серого
};
Написать функцию, которая динамически выделяет память под массив структур (не меньше шести элементов), заполняет его данными в режиме диалога, и записывает массив в бинарный файл. Структура файла: в первых двух байтах размещается значение типа int, определяющее количество сделанных в файл записей; далее без пропусков размещаются записи о сканерах.
Написать функцию, которая запрашивает данные о сканере в режиме диалога и замещает записи в бинарном файле по заданному номеру. Обязательный параметр — номер замещаемой записи. Функция должна возвращать нулевое значение, если запись прошла успешно, и -1 в противном случае.
Привести пример программы, создающей файл с данными о сканерах (данные вводятся с клавиатуры) из не менее восьми записей и осуществляющий вставку новых данных о сканере.
Все необходимые данные для функций должны передаваться им в качестве параметров. Использование глобальных переменных в функциях не допускается.

я написала кодик....но он не работает ...вот я не знаю как его заработать...и еще мне кажется он не соответствует всем требованиям задачки...а я незнаю как его под них исправить


#include<stdio.h>
#include<conio.h>
#include<cstdio.h>
#include<string.h>
#include<stdlib.h>
#include<iostream.h>
#include<fstream.h>

using namespace std;

struct scan_info{
 char model[25];    //
 int price;         //
 int x_s1ze;        //
 int y_s1ze;        //
 int optr;          //
 int grey;          //
};

void replacement(scan_info *sc_inf[], int del, int for_point, int for_size, ostream &out, int n);

void replacement(scan_info *sc_inf[], int ind, int for_point, int for_size, ostream &out, int n){


  cout<<"VVedite model:"<<endl;
  cin>>sc_inf[ind]->model;
  cout<<"VVedite cenu:"<<endl;
  cin>>sc_inf[ind]->price;
  cout<<"VVedite gorizontalniy razmer oblasti skanirovania:"<<endl;
  cin>>sc_inf[ind]->x_s1ze;
  cout<<"VVedite vertikalniy razmer oblasti skanirovania:"<<endl;
  cin>>sc_inf[ind]->y_s1ze;
  cout<<"VVedite opticheskoe razreshenie:"<<endl;
  cin>>sc_inf[ind]->optr;
  cout<<"VVedite chislo gradaciy serova:"<<endl;
  cin>>sc_inf[ind]->grey;

  out.seekp(for_point);

  out<<sc_inf[ind]->model;
  out<<sc_inf[ind]->price;
  out<<sc_inf[ind]->x_s1ze;
  out<<sc_inf[ind]->y_s1ze;
  out<<sc_inf[ind]->optr;
  out<<sc_inf[ind]->grey;

  for(int i=ind+1; i<n; i++){
     out<<sc_inf[i]->model;
     out<<sc_inf[i]->price;
     out<<sc_inf[i]->x_s1ze;
     out<<sc_inf[i]->y_s1ze;
     out<<sc_inf[i]->optr;
     out<<sc_inf[i]->grey;
    }
};
 void del_ellement(scan_info *sc_inf[], int del, int for_point, ostream &out, int n){

   out.seekp(for_point);
   for(int i=(del+1); i<n; i++){
     out<<sc_inf[i]->model;
     out<<sc_inf[i]->price;
     out<<sc_inf[i]->x_s1ze;
     out<<sc_inf[i]->y_s1ze;
     out<<sc_inf[i]->optr;
     out<<sc_inf[i]->grey;
    }
 }

void main()
{
 scan_info *sc_inf[3];
 int i, j, n=3, del;

 for(i=0; i<n; i++) {
 sc_inf[i]=(scan_info *) malloc(sizeof(scan_info));
 }



  int collector=0; /*Niae?aoaeu*/


 for(i=0; i<n; i++){
  cout<<"VVedite model:"<<endl;
  cin>>sc_inf[i]->model;
  cout<<"VVedite cenu:"<<endl;
  cin>>sc_inf[i]->price;
  cout<<"VVedite gorizontalniy razmer oblasti skanirovania:"<<endl;
  cin>>sc_inf[i]->x_s1ze;
  cout<<"VVedite vertikalniy razmer oblasti skanirovania:"<<endl;
  cin>>sc_inf[i]->y_s1ze;
  cout<<"VVedite opticheskoe razreshenie:"<<endl;
  cin>>sc_inf[i]->optr;
  cout<<"VVedite chislo gradaciy serova:"<<endl;
  cin>>sc_inf[i]->grey;


 }

 ofstream out("C://test/test2.txt", ios::out | ios::binary);
 if(!out){
  cout<<"Not File"<<endl;
  getch();
  return;
 }


 int for_point[3];
 int for_size[3];

 int pr=2;
 out.seekp(pr);

 for(i=0; i<n; i++){
 out<<sc_inf[i]->model;
 out<<sc_inf[i]->price;
 out<<sc_inf[i]->x_s1ze;
 out<<sc_inf[i]->y_s1ze;
 out<<sc_inf[i]->optr;
 out<<sc_inf[i]->grey;

 collector=0;
 int ran=sc_inf[i]->price;
 while(ran!=0){
  ran=ran/10;
  collector++;
 }
 ran=sc_inf[i]->x_s1ze;
 while(ran!=0){
  ran=ran/10;
  collector++;
 }
 ran=sc_inf[i]->y_s1ze;
 while(ran!=0){
  ran=ran/10;
  collector++;
 }
 ran=sc_inf[i]->optr;
 while(ran!=0){
  ran=ran/10;
  collector++;
 }
 ran=sc_inf[i]->grey;
 while(ran!=0){
  ran=ran/10;
  collector++;
 }

 for_point[i]=pr;
 for_size[i] =strlen(sc_inf[i]->model)+collector;
 pr+=strlen(sc_inf[i]->model)+collector;

}


 int zam; int bb=1;
 cout<<"Vvedite ellement na zameni:";
 cin>>zam;
 if(zam>n || zam<0){
  bb=0;
  cout<<"No correct"<<endl;
 }
 zam--;
 if(bb){
  replacement(sc_inf, zam, for_point[zam], for_size[zam], out, n);
 }

 out.close();

getch();

}



всем кто поможет заранее благодарная....
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.