Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C] Задача со структурами про автобазу 
V
    Опции темы
Alenka
Дата 24.9.2006, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 28.8.2006

Репутация: нет
Всего: нет



Вот такую вот программку на чистом Си, очень надо написать

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

Выручьте меня пожалуйста.
Буду очень очень благодарна smile
PM   Вверх
darkart
Дата 24.9.2006, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 379
Регистрация: 9.11.2005

Репутация: 26
Всего: 31



Код

#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;
}


Это сообщение отредактировал(а) darkart - 24.9.2006, 21:17

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  Alenka_structs.rar 47,38 Kb
PM MAIL WWW ICQ Skype GTalk   Вверх
Kuvaldis
Дата 24.9.2006, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


механик-вредитель
***


Профиль
Группа: Участник Клуба
Сообщений: 1189
Регистрация: 16.6.2006
Где: Минск

Репутация: 32
Всего: 61



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 

Это сообщение отредактировал(а) Kuvaldis - 24.9.2006, 20:57


--------------------
Помни - когда ты спишь, враг не дремлет
Спи чаще и дольше, изматывай врага бессоницей
PM MAIL ICQ   Вверх
darkart
Дата 24.9.2006, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 379
Регистрация: 9.11.2005

Репутация: 26
Всего: 31



Kuvaldis, 
голова сегодня что-то туго соображает
P.S. Исправился
PM MAIL WWW ICQ Skype GTalk   Вверх
Alenka
Дата 25.9.2006, 05:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 28.8.2006

Репутация: нет
Всего: нет



Спасибочки ОГРОМНОЕ  smile 
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0445 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.