Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C] Задача со структурами про автобазу


Автор: Alenka 24.9.2006, 18:04
Вот такую вот программку на чистом Си, очень надо написать

 Сведения об автомобиле состоят из его марки, номера и фамилии владельца. Найти фамилии владельцев и номера автомобилей данной марки. Результаты вывести в табличной форме. Сведения вводятся вручную, в программе.

Выручьте меня пожалуйста.
Буду очень очень благодарна smile

Автор: darkart 24.9.2006, 20:28
Код

#include<stdio.h>
#include<string.h>
#include<conio.h>
#define MAX_LENGTH 255 //максимальная длина строки
#define MAX_AUTOS 100 //максимальное кол-во авто
struct SAuto//структура с описанием авто
{
    char Mark[MAX_LENGTH+1];//марка
    int Number;//номер
    char Surname[MAX_LENGTH+1];//фамилия
};
void InputData(SAuto* Auto)
//ф-ция ввода информции по авто
{
    printf("Please enter a mark:\n");
    scanf("%s",&Auto->Mark);    
    printf("Please enter a number:\n");
    scanf("%d",&Auto->Number);
    printf("Please enter a surname:\n");
    scanf("%s",&Auto->Surname);
    
}
void PrintData(SAuto* Auto)
//ф-ция печати результата
{
    printf("%-15d",Auto->Number);
    printf("%s\n",Auto->Surname);
}
bool MarksEqual(SAuto* Auto,char* strMark)
//ф-ция проверки марок на равенство
{
    return !(strcmp(Auto->Mark,strMark));
}
int main()
{
    char strMark[MAX_LENGTH+1];//марка для теста
    SAuto AutoArr[MAX_AUTOS];//массив из 100 структур
    int AutoCount;//кол-во исп. структур в массиве
    printf("Please enter a number of auto:\n");
    scanf("%d",&AutoCount);//вводим кол-во авто
    for(int i=0;i<AutoCount;i++)
        InputData(&AutoArr[i]);//для каждого авто вводим данные
    printf("Please enter a mark for test:\n");
    scanf("%s",&strMark);//вводим марку для сравнения
    printf("Results:\n");
    //вывод результатов
    printf("%-15s%s","Number","Surname\n");
    for(i=0;i<AutoCount;i++)
        if(MarksEqual(&AutoArr[i],strMark))//если марки совпадают
        {
            PrintData(&AutoArr[i]);//печать информации
            printf("\n");
        }
    getch();//ждем ввода
    return 0;
}

Автор: Kuvaldis 24.9.2006, 20:52
Alenka, 
Воть
Код

//******************************************************************************
#include <stdio.h>
#include <conio.h>
#include <string.h>
//******************************************************************************
#define N 30
//******************************************************************************
struct car
{
   char sort[10];
   int  number;
   char owner[10];
} list[N];
//******************************************************************************
int main()
{
   int  i = 0, j;
   int   match = 0;
   char temp[10];
   int  len;

   while (1)
   {
      clrscr();
      puts("Input car's sort");
      fflush(stdin);
      fgets(list[i].sort, 9, stdin);
      if ((len = strlen(list[i].sort)) == 1)
         break;
      list[i].sort[len - 1] = '\0';
      puts("Input car's number");
      scanf("%d", &list[i].number);
      puts("Input car's owner");
      fflush(stdin);
      fgets(list[i].owner, 9, stdin);
      len = strlen(list[i].owner);
      list[i].owner[len - 1] = '\0';
      i++;
   }

   while (1)
   {
      clrscr();
      puts("Input car's sort to find");
      fgets(temp, 9, stdin);
      if (strlen(temp) == 1)
         break;
      len = strlen(temp);
      temp[len - 1] = '\0';
      puts("--------------------");
      printf("%-10s%-10s\n", "owner", "number");
      puts("--------------------");

      for (j = 0; j < i; j++)
      {
         if (!strcmp(list[j].sort, temp))
         {
            printf("%-10s%-10d\n", list[j].owner, list[j].number);
            match++;
         }
      }
      if (!match)
         puts("No match");
      getch();   
   }

   return 0;
}
//******************************************************************************


Добавлено @ 20:54 
Елки, давно не обновлял, а тут уже и решили smile 

darkart, 
Цитата

 программку на чистом Си

и твоя ссылка. 
Цитата

void InputData(SAuto& Auto)

Надеюсь, что это не критично smile 

Автор: darkart 24.9.2006, 21:18
Kuvaldis, 
голова сегодня что-то туго соображает
P.S. Исправился

Автор: Alenka 25.9.2006, 05:17
Спасибочки ОГРОМНОЕ  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)