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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
magmuffin
0 / 0 / 0
Регистрация: 17.09.2012
Сообщений: 12
#1

Составить программу, определяющую вид регистрационного номера автомобиля - C++

12.03.2013, 10:33. Просмотров 1182. Ответов 14
Метки нет (Все метки)

я не особо соображаю как писать программу, но изо всех сил стараюсь это сделать)

Нужно составить программу, определяющую вид регистрационного номера автомобиля.
Номер может быть обычным, специальным и не соответсвующим правилам.
Обычный номер начинается двумя или тремя цифрами, после которых следуют три больших латинских буквы.
Например: «367ARZ», «82ZBG».
Специальные номера имеют длину до 9 знаков, номер должен заканчиваться хотя бы одной цифрой, остальные символы - большие латинские буквы.
Например: «MEDIA782», «R2», «MARIKA1».
Создать текстовый файл с номерами различного типа (минимум 15).
Имя файла задаётся программе в командной строке.
Программа считывает номера и создаёт новый файл, где в первой строке задано имя исходного файла, каждая следующая строка содержит номер, его тип и пояснение, если данный номер не является обычным.
Если есть какие-то идеи, Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2013, 10:33     Составить программу, определяющую вид регистрационного номера автомобиля
Посмотрите здесь:

Составить программу, определяющую, пересекаются ли данные прямоугольники, C++
C++ Составить программу, определяющую, которая из точек находится ближе к началу координат
Составить программу, определяющую, какой банк выбрать, чтобы выгодно обменять доллары на рубли C++
C++ Составить программу определяющую между какими из пар точек самое большое расстояние
Составить программу, определяющую, которая из точек находится ближе к началу координат C++
составить программу определяющую пару точек расстояние между которыми максимально C++
C++ Составить программу, определяющую количество счастливых билетов на катушке
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CheshireCat
Эксперт С++
2911 / 1239 / 78
Регистрация: 27.05.2008
Сообщений: 3,323
12.03.2013, 10:38     Составить программу, определяющую вид регистрационного номера автомобиля #2
Смотри регулярные выражения. На регулярках задача решается влет. И смотри библиотеку для них - есть и в бусте, и в std (C++11).
magmuffin
0 / 0 / 0
Регистрация: 17.09.2012
Сообщений: 12
12.03.2013, 11:15  [ТС]     Составить программу, определяющую вид регистрационного номера автомобиля #3
можешь указать, где конкретнее посмотреть? спасибо

Добавлено через 25 минут
CheshireCat, скажи пожалуйста, куда конкретнее смотреть, а то я не понял((
спасибо.
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12543 / 7105 / 797
Регистрация: 27.09.2012
Сообщений: 17,528
Записей в блоге: 2
Завершенные тесты: 1
12.03.2013, 11:17     Составить программу, определяющую вид регистрационного номера автомобиля #4
Регулярные выражения:
C++
1
boost::regex
alsav22
5412 / 4808 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
12.03.2013, 11:39     Составить программу, определяющую вид регистрационного номера автомобиля #5
Количество цифр в специальном номере? Минимум одна. Максимум? Может ли он состоять из одних цифр?
magmuffin
0 / 0 / 0
Регистрация: 17.09.2012
Сообщений: 12
12.03.2013, 19:34  [ТС]     Составить программу, определяющую вид регистрационного номера автомобиля #6
alsav22, ну минимум должна быть 1 цифра и одна буква, и максимум до 9 знаков и заглавные буквы должны быть, всё что не подходит, то не подходит
alsav22
5412 / 4808 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.03.2013, 00:07     Составить программу, определяющую вид регистрационного номера автомобиля #7
Такой специальный: M78IA782 ? Такой специальный: 1EIA782 ? Т.е., могут ли цифры-буквы идти вперемешку? Или, если последняя всегда цифра, и цифры-буквы должны быть не вперемешку, то первая всегда будет буква?
magmuffin
0 / 0 / 0
Регистрация: 17.09.2012
Сообщений: 12
13.03.2013, 00:20  [ТС]     Составить программу, определяющую вид регистрационного номера автомобиля #8
alsav22, да такие специальные, обычные номера начинаются с цифр(3 цифры и 3 буквы, например- 888ABC)
alsav22
5412 / 4808 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.03.2013, 00:59     Составить программу, определяющую вид регистрационного номера автомобиля #9
Уточнение вопроса (для специальных): 1) могут ли цифры-буквы идти вперемешку? 2) Первым символом специального может быть и цифра, и буква? (да/нет).
magmuffin
0 / 0 / 0
Регистрация: 17.09.2012
Сообщений: 12
13.03.2013, 14:10  [ТС]     Составить программу, определяющую вид регистрационного номера автомобиля #10
alsav22, 1) могут идти в перемешку, 2) да
alsav22
13.03.2013, 14:28
  #11

Не по теме:

В личку свой e-mail сбросьте. Есть вопросы.

CheshireCat
Эксперт С++
2911 / 1239 / 78
Регистрация: 27.05.2008
Сообщений: 3,323
13.03.2013, 14:53     Составить программу, определяющую вид регистрационного номера автомобиля #12
Цитата Сообщение от magmuffin Посмотреть сообщение
1) могут идти в перемешку, 2) да
Тогда это противоречит постановке задачи в посте #1.

Вот пример с регулярками (на C#, но переделать на C++ можно легко - используй, например, boost)
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
 
namespace TestAutoNum
{
    class Program
    {
        static void Main(string[] args)
        {
            // Обычный номер начинается двумя или тремя цифрами, после которых следуют три больших латинских буквы. 
            Regex re_common = new Regex(@"([0-9]{2}|[0-9]{3})[A-Z]{3}");
 
            // Специальные номера имеют длину до 9 знаков, номер должен заканчиваться хотя бы одной цифрой,
            // остальные символы - большие латинские буквы. 
            Regex re_spec = new Regex(@"(?>[A-{1,8}Z][0-9]{1,8})");
 
            if (re_common.IsMatch("367ARZ"))
                Console.WriteLine("367ARZ is common auto number");
 
            if (re_spec.IsMatch("367ARZ"))
                Console.WriteLine("367ARZ is special auto number");
 
            if (re_common.IsMatch("MEDIA782"))
                Console.WriteLine("MEDIA782 is common auto number");
 
            if (re_spec.IsMatch("MEDIA782"))
                Console.WriteLine("MEDIA782 is special auto number");
 
        }
    }
}
Вывод:
367ARZ is common auto number
MEDIA782 is special auto number
alsav22
5412 / 4808 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.03.2013, 15:01     Составить программу, определяющую вид регистрационного номера автомобиля #13
Цитата Сообщение от CheshireCat Посмотреть сообщение
Тогда это противоречит постановке задачи в посте #1.
Какой строчке в первом посте противоречит? Этой: номер должен заканчиваться хотя бы одной цифрой, остальные символы - большие латинские буквы. ?

Добавлено через 3 минуты
Согласен, что-то есть. Поэтому и уточнял.

Добавлено через 3 минуты
Логика такая: если заканчивается "хотя бы" одной цифрой, то остальные символы - большие латинские буквы (про цифры не говорится). Если не "хотя бы", то получается, что всё равно остальное - "большие латинские буквы".
CheshireCat
Эксперт С++
2911 / 1239 / 78
Регистрация: 27.05.2008
Сообщений: 3,323
13.03.2013, 15:14     Составить программу, определяющую вид регистрационного номера автомобиля #14
Да, вот именно этой строчке.
Если исходить из первоначальной формулировки "номер должен заканчиваться хотя бы одной цифрой, остальные символы - большие латинские буквы" - то получается, что "специальный" номер должен удовлетворять таким требованиям:
1. один или или несколько последних символов - цифры,
2.остальные (т.е. предыдущие) символы - строго большие латинские буквы,
3. длина текста - не более 9 символов.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.03.2013, 15:31     Составить программу, определяющую вид регистрационного номера автомобиля
Еще ссылки по теме:

C++ Составить программу определения для каждого из данных массивов номера минимального элементов
Составить программу для нахождения первого элемента массива меньше десяти и его номера C++
C++ Составить программу для нахождения номера максимального элемента массива
Сведения о тиражах книг представлены в виде таблицы. Составить программу, определяющую книгу, кото C++
Составить программу, определяющую сколько раз встречается заданное число C++

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

Или воспользуйтесь поиском по форуму:
magmuffin
0 / 0 / 0
Регистрация: 17.09.2012
Сообщений: 12
13.03.2013, 15:31  [ТС]     Составить программу, определяющую вид регистрационного номера автомобиля #15
Использую(только начал - знакомлюсь) программу CodeBlocks C/C++ , C# не проходили(((
вообщем программа должна быть такая, что есть отдельно notepad фаил, с 15ю - номерами произвольно.
Они должны загружаться в программу, т.е. надо путь к этому notepad документу проложить путь, и когда программа включается, то корчое он должен показывать, какие номера , так сказать Стандартные т.е. иметь первые 3 цифры и 3 буквы - *123ABC*, всё остальное уже считается как не традиционные номера, и номер должен быть величиной в 9 знаков. , ну и должны быть заглавные буквы и без знаков типа .,:;-+()/\0

Вот сижу сам разбираюсь, получилось что-то такое
Код
#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>

using namespace std;
int main()
{
    ifstream input("carnumber.txt");
    if(not input.is_open())
    {
        cout<<"Faili ei saa avada\n";
        system("PAUSE");
        return 0;
    }
 int lines=0, symbols=0, letters=0, digits=0, words=0;
    while(input.good())
    {
        string line;
        getline(input,line);
        cout<<line<<endl;
        lines++;
        int n = line.length();
        symbols += n;
        for(int j=0;j<n;j++)
        {
}
        char row[500];
        strcpy(row, line.c_str());
        char *p = row;
        while(p=strtok(p," .,:;-+()/\0"))
        {

            cout<<p<<endl;
            words++;
            p= NULL;
        }
    }
    system("PAUSE");
    return 0;
}
но когда запускаю определённый документ carnumber.txt - получается немного не так.
Больше пока ничего не сделал, и не могу разобрать как кодировать, что бы различал номера стандартные от других.
Прошу помощи)
Yandex
Объявления
13.03.2013, 15:31     Составить программу, определяющую вид регистрационного номера автомобиля
Ответ Создать тему
Опции темы

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