Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.75
uto
6 / 6 / 0
Регистрация: 07.05.2009
Сообщений: 94
#1

Функции и файлы (Павловская Т.А.) Вариант 18 - C++

08.05.2009, 16:34. Просмотров 3168. Ответов 21
Метки нет (Все метки)

Здравствуйте, куча лаб и все ндо сделать до понедельника-вторника...
Помогите, чем сможете, оч прошу, обещаю учиться лучше и помогать потом буду))
А щас прошу мне помочь =(

Для хранения данных о ноутбуках описать структуру вида, описанного ниже

C++
1
2
3
4
5
6
7
8
9
10
struct NOTEBOOK {
    struct  disp_res {   // разрешающая способность дисплея
              int x;         // по горизонтали
                     int y;         // по вертикали
                     };
           int f;                   // частота регенерации
           float d;                // размер диагонали дисплея
           int price;              // цена
           char model[21];     // наименование
}
Написать функцию, которая читает данные о ноутбуках из файла note.txt
Acer Note Light 2699 5.6 02.0x11.8x08.3 100 40 10.4 1024x0768 60 0.774
ASW ND5123T 3489 7.2 02.3x11.8x10.1 133 32 12.1 1024x0768 70 1.300
ARMNote TS80CD 3699 7.2 02.0x11.5x08.8 133 64 11.3 1024x0768 75 1.300
AST Ascentia P50 4499 7.5 02.3x11.3x09.0 133 40 11.3 0800x0600 70 0.774
BSI NP8657D 2605 8.0 02.3x11.8x09.3 133 40 11.3 1024x0768 60 0.810
BSI NP5265A 3765 8.2 02.5x12.0x09.0 150 32 12.1 1024x0768 70 1.300
Dell Xpi P100SD 3459 6.0 02.3x11.0x08.8 100 40 10.3 1024x0768 60 0.773
Digital HiNote 4799 4.0 01.3x11.0x08.8 120 40 10.4 0800x0600 56 1.000
Gateway Solo S5 4499 5.6 02.0x11.9x08.8 133 40 11.3 1024x0768 60 0.686
Hertz Z-Optima NB 3995 8.0 02.3x11.9x09.0 150 40 11.2 1024x0768 75 1.000
HP OmniBook 5500 6120 7.1 02.0x11.5x09.0 133 64 11.4 1024x0768 75 1.300
IBM ThinkPad 560 3749 4.1 01.3x11.8x08.8 120 40 12.1 1024x0768 85 0.774
NEC Vers 4080H 4780 6.6 02.3x11.8x09.5 120 48 10.4 0800x0600 70 0.776
Polywell Poly 500 3300 7.9 02.3x11.9x09.0 120 40 10.4 1024x0768 72 1.000
Samsung SENS 810 3667 8.7 02.3x11.5x09.5 100 32 11.4 1024x0768 75 0.773
Twinhead Slimnote 2965 7.4 02.0x11.5x08.0 075 64 10.4 1024x0768 70 0.772
p.s. Текст блокноте надо выровнять в начале по пробелам, после названия ноутбука, а дальше всё нормально.
в структуру приведенного вида. Написать функцию, которая записывает содержимое структуры в конец бинарного файла. Структура бинарного файла: первые два байта - целое число записей в файле; далее записи в формате структуры в NOTEBOOK.

Написать программу в которой на основе разработанных функций осуществляется запись в двоичный файл данных только о тех ноутбуках, тактовая частота которых больше 120МГц, отсортированных в порядке уменьшения веса.

1:20 - наименование модели;
21:24 - цена в долларах (целое число);
26:28 - масса ноутбука в кг (число с десятичной точкой из четырех символов);
30:43 - габаритные размеры ноутбука в дюймах (ВЫСОТАхДЛИНАхШИРИНА) - три числа с десятичной точкой (4 символа, включая точку, разделенные 'x');
44:47 - частота процессора в МГц (целое число из трез символов);
49:50 - максимальный объем ОЗУ в мегабайтах (целое число из двух символов);
52:55 - размер диагонали дисплея в дюймах (число с десятичной точкой из четырех символов, включая точку);
57 - размер видеопамяти в мегабайтах - целое число из одного символа;
59:67 - разрешающая способность дисплея в пикселах (два целых числа, разделенные 'x');
69:70 - частота регенерации дисплея в Гц (целое число из двух символов);
72:76 - объем HDD в гигабайтах (число с десятичнойточкой из пяти символов).
Все неописанные позиции заполнены пробелами.
Вот все, что смог написать =/
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <vcl.h>
#pragma hdrstop
#include <conio.h>
#include <iostream.h>
#include <string.h>
 
//---------------------------------------------------------------------------
 
#pragma argsused
int main(int argc, char* argv[])
{
    struct NOTEBOOK {
        struct  disp_res {
                int x;
                int y;
                };
        int f;
        float d;
        int price;
        char model[21];
    }
 
    FILE *fin;
    if ((fin = fopen("note.txt", "r")) == NULL) {
        puts("Error of opening of an entrance file\n"); return 1; }
    FILE *fout;
    if ((fout = fopen("note.bin", "wb")) == NULL) {
        puts("Error of opening of a target file\n"); return 1; }
 
    while (!feof(fin)) {
    fgets(,,fin)
    fscanf(fin, "",,)
     printf("\n",,,)
    fwrite();
    }
    fclose(fout);
    prinf("The binary file is written down\n");
 
    getch();
    return 0;
}
Добавлено через 2 минуты 43 секунды
Уважаемые модераторы, прошу удалить одну из моих идентичных тем. Из-за интернета, одна оказалось лишней, заранее спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2009, 16:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функции и файлы (Павловская Т.А.) Вариант 18 (C++):

Структуры Вариант 18 Павловская Т. А. - C++
Ребята, срочно нужна помощь, осталось 4 лабы, и их надо решить до понедельника... Я как бы хочу сам изучить всё, но время поджимает,...

Вычислить и вывести на экран в виде таблицы значения функции F на интервале (Павловская) - C++
Помогите решить

Выбрать вариант не имеющий ошибки и к каждому написать почему этот вариант правильный/неправильный - C++
Прошу помогите, я плохо понимаю c++, да и простите если не в той теме, в общем, дали задание: Выбрать вариант не имеющий ошибки и к...

Как бы вы написали кусок программы, Вариант 1 или Вариант 2? - C++
Как бы вы написали кусок программы Вариант 1 или Вариант 2 ? Вариант 1. double Value0 = value0 / 100; switch (i){ case 1: ...

Какой вариант оформления функции лучше? - C++
Допустим, есть функция, которая что-то делает и, возвращает булево значение, в зависимости от того, получилось это сделать или нет. ...

Лабораторная работа по С++ Павловская - C++
Если не видно кому Помогите пожайлуста с работой...Нужно написать код(вроде цикл) чтобы для каждого Х показывало значение Y R-...

21
kazak
3048 / 2369 / 160
Регистрация: 11.03.2009
Сообщений: 5,436
Завершенные тесты: 1
13.05.2009, 11:33 #16
Я в Borland в основном работаю, единственный вариант который у меня в нем прокатывает это в программе пишешь system("chcp 1251");, а при запуске правой кнопкой мыши на заголовке окна(или <Alt>+<пробел>), в контекстном меню - Свойства - Вкладка Шрифт - выбираешь Lucida Console. В VC еще можно так setlocale(LC_ALL, "rus");
0
uto
6 / 6 / 0
Регистрация: 07.05.2009
Сообщений: 94
14.05.2009, 15:44  [ТС] #17
Ого, не пойму, это вся лаба полностью чтоли?)))
0
kazak
3048 / 2369 / 160
Регистрация: 11.03.2009
Сообщений: 5,436
Завершенные тесты: 1
15.05.2009, 01:22 #18
Почти, я только сортировку не делал.
1
uto
6 / 6 / 0
Регистрация: 07.05.2009
Сообщений: 94
15.05.2009, 12:01  [ТС] #19
При запуске твоей проги пишет...

Текущая кодовая страница: 1251
Файл не возможно открыть
Для продолжения нажмите любую клавишу . . .
оО, здесь норм отобразил кодировку... хм... у меня кароч каряво с иерогилфами все три строки =/
А теперь вижу что и файл не может открыть, в чем причина то? =/
0
kazak
3048 / 2369 / 160
Регистрация: 11.03.2009
Сообщений: 5,436
Завершенные тесты: 1
15.05.2009, 12:10 #20
Разбей проверку файлов на две части
C++
1
2
3
4
5
6
7
8
9
10
11
12
if (!fileIn.is_open())
{
   cout << "Input file error" << endl; // чтоб точно прочитать смог:)
   system("pause");
   exit(1);
   }
if (!fileOut.is_open())
{
   cout << "Output file error" << endl;
   system("pause");
   exit(1);
}
, а там смотри какого файла не хватает и проверь есть ли такой в папке с программой, файлы должны называться notebook.txt и book.bin, если ты по своему назвал файлы, не забудь поменять их в программе вот здесь
fileIn.open("notebook.txt");
fileOut.open("book.bin", ios::binary);// добавь этот ios обязательно для fileOut, в программе я его пропустил
1
MrAndrey_ka
78 / 78 / 2
Регистрация: 13.05.2009
Сообщений: 537
Записей в блоге: 1
15.05.2009, 12:19 #21
Шустрые
0
uto
6 / 6 / 0
Регистрация: 07.05.2009
Сообщений: 94
19.05.2009, 03:44  [ТС] #22
Весь прикол в том, что файл note.txt не правильно переписал, забыл 1 столбец, поэтому твоя программа входила в цикл и выдавала только первый ноутбук, вообщем вот исправленный note.txt

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Acer Note Light     2699 5.6 02.0x11.8x08.3 100 40 10.4 1 1024x0768 60 0.774
ASW ND5123T         3489 7.2 02.3x11.8x10.1 133 32 12.1 2 1024x0768 70 1.300
ARMNote TS80CD      3699 7.2 02.0x11.5x08.8 133 64 11.3 1 1024x0768 75 1.300
AST Ascentia P50    4499 7.5 02.3x11.3x09.0 133 40 11.3 1 0800x0600 70 0.774
BSI NP8657D         2605 8.0 02.3x11.8x09.3 133 40 11.3 1 1024x0768 60 0.810
BSI NP5265A         3765 8.2 02.5x12.0x09.0 150 32 12.1 2 1024x0768 70 1.300
Dell Xpi P100SD     3459 6.0 02.3x11.0x08.8 100 40 10.3 1 1024x0768 60 0.773
Digital HiNote      4799 4.0 01.3x11.0x08.8 120 40 10.4 1 0800x0600 56 1.000
Gateway Solo S5     4499 5.6 02.0x11.9x08.8 133 40 11.3 2 1024x0768 60 0.686
Hertz Z-Optima NB   3995 8.0 02.3x11.9x09.0 150 40 11.2 2 1024x0768 75 1.000
HP OmniBook 5500    6120 7.1 02.0x11.5x09.0 133 64 11.4 1 1024x0768 75 1.300
IBM ThinkPad 560    3749 4.1 01.3x11.8x08.8 120 40 12.1 2 1024x0768 85 0.774
NEC Vers 4080H      4780 6.6 02.3x11.8x09.5 120 48 10.4 1 0800x0600 70 0.776
Polywell Poly 500   3300 7.9 02.3x11.9x09.0 120 40 10.4 1 1024x0768 72 1.000
Samsung SENS 810    3667 8.7 02.3x11.5x09.5 100 32 11.4 2 1024x0768 75 0.773
Twinhead Slimnote   2965 7.4 02.0x11.5x08.0 075 64 10.4 1 1024x0768 70 0.772
0
19.05.2009, 03:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.05.2009, 03:44
Привет! Вот еще темы с ответами:

где взять ответы из учебника Т.А.Павловская C/C++ - C++
Скажите пожалуйста где взять ответы из учебника Т.А.Павловская C/C++ или помогите решить 1 задачу к части 1. У меня есть свое решение,...

Правильно ли я написал программу? Из книжки Павловская Щупак - C++
Задание во вложении, вот не могу разобраться, помогите, правильно ли написана программа? #include &lt;iostream&gt; #include &lt;iomanip&gt; ...

в классе создаётся объект оператором new, как его удалить после использования в основной программе? delete в вызывающей функции не вариант! - C++
Собсно //Это типа служебного класса. (Внимание! В оригинальном коде он вложен в класс xx, но я этого не стал делать, дабы не...

Зачем нужные поразрядные операции. Книга Павловская, Щупак - C++
Решаю задачу из учебника Павловская, Щупак. С++. Программироание на языке высокого уровня. Структурное программирование. Практикум. Часть...


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

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

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