Форум программистов, компьютерный форум CyberForum.ru

Структуры и файлы. Написал прогу. Вопрос - C++

Восстановить пароль Регистрация
 
Витaлиk
1 / 1 / 0
Регистрация: 25.10.2011
Сообщений: 49
15.11.2011, 23:48     Структуры и файлы. Написал прогу. Вопрос #1
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
// 10.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <conio.h>
#include <Windows.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define size 20
#define rate 3
#define sad 4
#pragma warning(disable : 4996)
#pragma warning(disable : 4244)
 
 
using namespace std;
 
struct medicine
{
    char name[size];
    int kol;
    float cena;
    float ves;
};
 
void input (medicine medic[], FILE* file)
{
    char str [size];
    char g [size];
    float r;
    int r1;
 
    for (int i = 0; i < rate; i++)
    {
        cin.sync();
        system ("cls");
        
        printf ("Заполнение информации по лекарству № %d \nВведите название лекарства\n",i+1);
        cin.getline (str, size);
        strcat_s (str, "\n");
        fputs (str, file);
 
        printf ("Введите кол-во лекарства\n");
        cin >> r1;
        _itoa_s (r1, g, 10);
        strcat_s (g,"\n");
        fputs (g,file);
        cin.sync();
 
        printf ("Введите цену лекарства\n");
        cin >> r;
        _itoa_s (r, g, 10);
        strcat_s (g, "\n");
        fputs (g, file);
        cin.sync();
 
        printf ("Введите вес лекарства\n");
        cin >> r;
        _itoa_s (r, g, 10);
        strcat_s (g, "\n");
        fputs(g, file);
    }
}
 
void output (medicine medic[], FILE* file)
{
    char str[size];
 
    for(int i = 0; i < rate; i++)
    {
        strcpy_s (medic[i].name, fgets (str, size, file));
        medic[i].kol = atoi (fgets (str, size, file));
        medic[i].cena = atof (fgets (str, size, file));
        medic[i].ves = atof (fgets (str, size, file));
    }
    system ("cls");
    cout << "Название "<< " " << "Количество " << " " << "Цена " << "      " << "Вес " <<  endl;
    for (int i = 0; i < rate; i++)
    {
        printf("%s %10d %14.2f %10.2f", medic[i].name, medic[i].kol, medic[i].cena, medic[i].ves);
        cout<<'\n';
    }
}
 
void calculations (medicine medic[])
{
    float sumves = 0, sumkol = 0, ser;
 
    for (int i = 0; i < rate; i++)
    {
        sumves+= medic[i].ves;
        sumkol+= medic[i].kol;
        ser = sumkol / rate;
    }
    printf("\nСумарна вага лiкiв %.2f\nСумарна кiлькiсть лiкiв %.0f\nСередня кiлькiсть лiкiв %.2f\n", sumves, sumkol, ser);
}
 
void menu ()
{
    setlocale (LC_CTYPE,"");
    medicine medic[sad];
    FILE* file;
    
    for( ; ; )
    {
        printf ("Виберiть пункт меню\n1) Введення данних користувачем з їх подальшим виведенням\n2) Вихiд\n");
        
        int v;
        cin>>v;
        
        switch (v)
        {
            case 1:
                system("cls");
                if ((file = fopen ("medicine.txt","w+t"))==NULL)
                {
                    printf("Cannot open output file\n");
                    exit(1) ;
                }
                input(medic, file);
                fclose (file);
                if ((file = fopen ("medicine.txt","r+t"))==NULL)
                {
                    printf("Cannot open output file\n");
                    exit(1);
                }
                output (medic, file);
                fclose (file);
                calculations (medic);
            
                printf("Бажаєте повторний запуск програми? (Y/N)\n");
                char n;
                cin>>n;
                switch (n)
                {
                    case 'Y':
                    case 'y': break;
                    case 'N':
                    case 'n': exit (1);
                }
                break;
            case 2: exit(1); break;
            default: cout << "Ви ввели не вірну літеру\n"; break;
        }
    }
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    menu();
    system("pause");
    return 0;
}
Почему при выводе после Название происходит перенос на новую строку. Еще нужно продемонстрировать паботу функций fwrite() fread(), что у меня вызвало проблему.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.11.2011, 23:48     Структуры и файлы. Написал прогу. Вопрос
Посмотрите здесь:

C++ Написал прогу она не работает!!!!!
C++ народ я написал прогу на С++ а в ней какойто косяк и я не знаю какой!ПОмогите его найти пожалуйста
Написал прогу, не знаю как объяснить правильно!!! C++
C++ Написал прогу, не знаю как объяснить правильно!!!
C++ написал первую прогу в СИ. не запускается.исправьте пож ошибку(и)
Начал писать прогу чтобы текст передвигался по экрану, я что то написал но у меня ошибок куча, подскажите пожалуйстаа :) C++
написал прогу но в чем косяк она не работает C++
C++ Написал прогу по стеку, но при выводе содержимого - выводит только последний добавленный

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 14:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru