Разработать программу учета покупок ювелирного магазина - C (СИ)

  1. Помогите исправить программу!!!Задание: Разработать программу учета покупок ювелирного магазина. данные о покупках хранить в виде массива структур. Итоговая информация должна выводиться на экран в виде таблицы, отсортированной по стоимости ювелирного изделия.C1 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 #include <iostream> #include <stdio.h>   const int n = 10; int size = 0; typedef struct YuShop{         char name[n];// наименование изделия         double cena;// цена         char prod[n];// продавец         char pokup[n];// покупатель         int data[3];// дата покупки         }SHOP;   SHOP sh[100]; // Оглашение масива структур   void input(int size) {     for(int i = 0; i < size; i++) {         do {             printf("\n№%d Nazvanie tovara: ", i + 1);             scanf("%s", &sh[i].name);         }while(!strcmp(sh[i].name, ""));// выполняется  пока строчка не пуста         printf("\nCena: ");         scanf("%lf", &sh[i].cena);         do {             printf("\nProdavec: ");             scanf("%s", &sh[i].prod);         }while(!strcmp(sh[i].prod, ""));         do {             printf("\nPokupatel: ");             scanf("%s", &sh[i].pokup);         }while(!strcmp(sh[i].pokup, ""));         printf("\nDen\' prodagu: ");         scanf("%d", &sh[i].data[0]);         printf("\nMуsac prodagu: ");         scanf("%d", &sh[i].data[1]);         printf("\nGod prodagu: ");         scanf("%d", &sh[i].data[2]);       } }   void show(int size){     printf("+---------------+--------+---------------+---------------+----------+\n");     printf("+-----Tovar-----+--Cena--+---Prodavec----+---Pokupatel---+---Data---+\n");     printf("+               +        +               +               +          +\n");     for(int i = 0; i < size; i++) {     printf("+%-15s|%-8.2lf|%-15s|%-15s|%-2d.%-2d.%-2d  +\n",             sh[i].name, sh[i].cena, sh[i].prod, sh[i].pokup, sh[i].data[0], sh[i].data[1], sh[i].data[2]);}     printf("+---------------+--------+---------------+---------------+----------+\n");     }   void sortByPrice(int size) { //Сортировка методом выбора     double tmp;     int i, j, pos;     for(i = 0; i < size; ++i)     {         pos = i;         tmp = sh[i].cena;         for(j = i + 1; j < size; ++j)         {             if (sh[j].cena < tmp)             {                pos = j;                tmp = sh[j].cena;             }         }         sh[pos].cena = sh[i].cena;         sh[i].cena = tmp;     }       }     int main (void){ printf("Skolko adresov budet v strukture? "); scanf("%d", &size); input(size); show(size); sortByPrice(size); printf("\n\n Posle sortirovki:\n"); show(size);   getchar (); getchar (); return 0; }Как модифицировать данную программу, чтобы данные могли загружаться и считываться с файла?


textual

Код к задаче: «Разработать программу учета покупок ювелирного магазина - C (СИ)»

void inputFromFile(int size) 
{
     FILE *ff;
     ff=fopen("filename.txt","rt");
     if(ff!=NULL)
     {
        for(int i = 0; i < size; i++) 
        {
           fscanf(ff,"%s", &sh[i].name);
           fscanf(ff,"%lf", &sh[i].cena);
           fscanf(ff,"%s", &sh[i].prod);
           fscanf(ff,"%s", &sh[i].pokup);
           fscanf(ff,"%d", &sh[i].data[0]);
           fscanf(ff,"%d", &sh[i].data[1]);
           fscanf(ff,"%d", &sh[i].data[2]);   
       }
       fclose(ff);
    }
}

СДЕЛАЙТЕ РЕПОСТ

9   голосов, оценка 3.889 из 5



Похожие ответы
  1. Здравствуйте .Помогите пожалуйста написать программу перевода Десятичной СС в другие системы

  1. Не получается разработать алгоритм вычисления значения переменной y по заданной формуле для вводимых значений переменных a, b и с. Алгоритм представить в виде программы для ЭВМ на алгоритмическом языке Си.

  1. Найти строку, содержащую наибольшее количество слов, и вывести ее на экран монитора. Количество строк 5, а максимальное число символов в строке - 80. Массив строк ввести с помощью инициализации Примечания: Данные вводятся с клавиатуры. В программе при обращении к элементу массива нельзя использовать дополнительную переменную для вычисления его адреса. Задачу нужно решить применяя указатель второго ранга. Буду очень признателен за помощь.

  1. C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 #include int f(int n) {     if(n==0)     {     return(o); } else (n==1)&(n=2) {     return 1;     int fib=f(n-1)+f(n-2); } return fin; } int main(); {     int number, fibb, n;     printf(Enter your number, please:);     scanf("%i", number, fibb); int fibb=f(number); printf("fibb: %i", &fibb);     while(0)     {         f(fibb)     } }

  1. Нужно составить программу, которая вычисляет интеграл.. помогите пожалуйста ее составить, я не могу понять как с экспонентой составляется интеграл.

  1. Написать программу шифрования текста, которая читает содержимое из текстового файла input.txt и записывает результат в файл output.txt в соответствии с алгоритмом шифрования на Си Буквы меняются следующим образом: "А"->"01", "Б"->"02", ... "Я"->"33" Желательно с блок-схемой

  1. Разработать программу построения графика функции y=x-1/(3+sin3.6x), интервал: x=[0;0.85] на Си, желательно с блок-схемой

  1. Разработать функцию map, которая позволяет все отрицательные значения заменить на те же положительные значения в массиве целых чисел. Функция map получает в качестве аргументов массив, его размер, указатель на функцию cut. Функция cut применяется ко всем элементам массива внутри функции map. Функция cut получает в качестве аргумента указатель на целое число, и, если это число оказывается отрицательным оно заменяется на тоже положительное число. Протестировать разработанную функцию map.

  1. Составить программу для вычисления значений функции y для различных значений аргумента x, используя три оператора цикла. значение аргумента x рассмотреть в N точках. вывести на печать значения аргумента и функции в столбик, используя возможности оператора printf. xЄ[1.0, 2.0] N=21