// Faça um programa para processar os dados referente aos serviços realizados por uma determinada oficina mecânica de Motos: Ordem de serviço (número da OS, data, valor, serviço realizado, nome do cliente).
Considere que os serviços são codificados da seguinte forma:
1 – revisão;
2 - troca de óleo;
3 - reposição de peças avariadas;
4- recall.
O programa deve ler as informações sobre várias ordens de serviço e determinar, ao final, uma listagem de todos os serviços prestados, em ordem decrescente de valores, e o valor total arrecadado. Em seguida, apresentar uma lista com todos os serviços de "Recall".
Fiz Grande parte mais não estou conseguindo fazer o seguinte:
O programa deve ler as informações sobre várias ordens de serviço e determinar, ao final, uma listagem de todos os serviços prestados, em ordem decrescente de valores, e o valor total arrecadado.
sabe como resolvo isso ?
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
#include <conio.h>
#include <string.h>
#define Max 5
void MenuPrincipal();
void Entrada();
void Saida();
//void Ordenacao();
typedef struct _FichaOS
{
int num, servico;
char data[15];
float valor;
char NomeClient[20];
}FichaOS;
FichaOS OS[Max];
int opcao, op_ord, n;
main()
{
int fim = 0;
int aux;
do
{
MenuPrincipal();
switch (opcao)
{
case 1: Entrada();
break;
case 2: Saida();
break;
case 3: //Ordenacao();
break;
case 5: fim = 1;
break;
default: printf ("Opção Invalida \n");
getch();
}
}while (!(fim));
printf ("Fim do Programa");
getch;
}
void MenuPrincipal()
{
system("cls");
printf (" MENU PRINCIPAL \n");
printf ("\n1 - Entrada de Dados\n");
printf ("\n2 - Saida de Dados\n");
printf ("\n3 - Ordenacao\n");
printf ("\n5 - Sair\n");
printf ("\n Escolha uma das opcoes:");
scanf ("%d",&opcao);
}
void Entrada()
{
int i;
char x;
system("cls");
printf (" ENTRADE DE DADOS \n");
printf ("\n Digite a Quantidade de OS (Maximo 5): \n");
scanf ("%d",&n);
for (i=0;i<n;i++)
{
x = getchar();
printf("Digite Nome do Cliente: \n");
gets(OS.NomeClient);
printf("Digite Numero da OS: \n");
scanf("%d",&OS.num);
printf("Digite Data da OS: \n");
scanf("%s",&OS.data);
printf("Digite o Tipo de Serviço: \n");
scanf("%d",&OS.servico);
printf("Digite o valor da OS: \n");
scanf("%f",&OS.valor);
}
}
void Saida()
{
int i;
system("cls");
printf (" SAIDA DE DADOS \n");
printf ("\n Num.OS Data Clientes Serviço Valor(R$): \n");
for (i=0;i<n;i++)
{
printf ("%6d %18s %20s",OS.num,OS.data,OS.NomeClient);
switch (OS.servico)
{
case 1: printf("%20s","Revisão");
break;
case 2: printf("%20s","Troca de Oleo");
break;
case 3: printf("%20s","Reposição de Peças");
break;
case 4: printf("%20s","Recall");
break;
default: printf ("Opção Invalida \n");
}
printf ("%13 2.f\n", OS.valor);
}
}