コード例 #1
0
ファイル: program.cpp プロジェクト: aearturo/UVA
bool processOne()
{
	char currentLine[100];
	totalCities = 0;
	int currentCity = 0;
	int currentDelta;
	int indexMin;
	int minDelta;

	while(true)
	{
		gets(currentLine);
		if(currentLine[0] == '#')
		{
			return false;
		}
		else if(currentLine[0] == 'e')
		{
			break;
		}

		parseCity(currentLine, cities[totalCities++]);

		deltas[currentCity][TOTAL] = 0;

		minDelta = 1000;

		for(int i=0; i<totalCities; i++)
		{
			int currentDelta = delta(cities[currentCity], cities[i]);
			deltas[currentCity][i] = deltas[i][currentCity] = currentDelta;
			deltas[currentCity][TOTAL] += currentDelta;
			deltas[i][TOTAL] += currentDelta;

			if(deltas[i][TOTAL] < minDelta)
			{
				minDelta = deltas[i][TOTAL];
				indexMin = i+1;
			}
		}

		currentCity++;
	}

	printf("%d\n", indexMin);

	return true;
}
コード例 #2
0
ファイル: importer.cpp プロジェクト: Ejik/2ndflprn
void Importer::fillAddress()
{
    parseCity(blankLine);
    parseLocality(blankLine);
    parseStreet(blankLine);
}
コード例 #3
0
ファイル: importer.cpp プロジェクト: Ejik/2ndflprn
void Importer::parse()
{
    QFile file(inputFile);

    if (!file.open(QFile::ReadOnly))
        return;
    QTextStream in(&file);
    in.setCodec("IBM 866");

    numberDoc = 1;
    while (!in.atEnd())
    {
        QString line;
        in.readLine(); // шапка
        in.readLine(); //
        in.readLine();
        in.readLine(); // Код формы по КНД 1151078

        parsePriznak(in.readLine()); // Признак

        parseTitle(in.readLine()); // Строка с датой и номером справки
        in.readLine(); //
        in.readLine(); // п. 1
        parseINNCPP(in.readLine());  // п. 1.1
        parseOrgname(in.readLine()); // п. 1.2
        if (params[QString::number(numberDoc) + "_Orgname"].isEmpty())
                parseOrgname(in.readLine(), 1);
        in.readLine();
        parseOKATOTEL(in.readLine()); // п. 1.3 п. 1.4
        in.readLine(); // п. 2
        parseINN(in.readLine()); // п. 2.1
        in.readLine();
        parseFIOTBN(in.readLine()); // п. 2.2
        parseStatusDrGr(in.readLine()); // п. 2.3 - п. 2.5
        parseCodeDocSeriesNum(in.readLine()); // п. 2.6 - п. 2.7
        in.readLine(); // п. 2.8
        parseIndexRegCode(in.readLine());

        fillAddress();
        line = in.readLine();
        while (!line.contains(WINtoUnicode("Дом")))
        {                        
            if (line.contains(WINtoUnicode("Город")))
                parseCity(line);
            else if (line.contains(WINtoUnicode("Улица")))
                parseStreet(line);
            else if (line.contains(WINtoUnicode("Населенный пункт")))
                parseLocality(line);
            line = in.readLine();
        }
        parseHomeFlat(line);

        in.readLine();
        fillPara29();
        line = in.readLine();
        if (line.left(3) == "2.9")
        {
            parseCoutryCode(line);
            parseAddress(in.readLine());
            in.readLine();
            line = in.readLine();
        }
        parseTax(line); // п. 3
        in.readLine();
        in.readLine();
        in.readLine();
        in.readLine();
        in.readLine();

        line = in.readLine();
        QChar sym(0x2514);

        int incomeTableRowsCount = 1;
        while (line[0] != sym)
        {          
            parseIncomeTable(QString::number(incomeTableRowsCount++), line);
            line = in.readLine();           
        }
        addParametr("incomeTableRowsCount", QString::number(incomeTableRowsCount));

        in.readLine();

        fillPara4();
        line = in.readLine(); // п. 4

        while (line.left(3) != " 5.")
        {
            QString para = line.left(3);
            if (para == "")
            {
            }
            else if (para == "4. ")
            {
            }
            else if (para == "4.1")
            {
                in.readLine();
                line = in.readLine();
                parseTaxDeductions(line);
            }
            else if (para == "4.2")
            {
                parsePara42(line);
            }
            else if ((para == "4.3") || (para == "4.4"))
            {
                parsePara43_44(line);
            }           
            else if (para == "4.5")
            {
                parsePara45(line);
            }
            else if (para == "4.6")
            {
                parsePara46(line);
            }
            line = in.readLine();
        }

        //in.readLine(); // п. 5       
        fillPara5();
        line = in.readLine();
        while (line[0] != sym)
        {
            QString para = line.mid(1, 4);

            if (para == "5.1.")
                parseAmountIncome(line);   // п. 5.1
            else if (para == "5.2.")
                parseTaxableAmountIncome(line); // п. 5.2
            else if (para == "5.3.")
                parseAmountOfTaxCalculated(line); // п. 5.3
            else if (para == "5.4.")
                parseAmountOfTaxWithheld(line); // п. 5.4
            else if (para == "5.5.")
                parsePara55Sum(line);  // п. 5.5
            else if (para == "5.6.")
                parsePara56Sum(line);  // п. 5.6
            else if (para == "5.7.")
                parsePara57Sum(line);  // п. 5.7
            else if (para == "5.8.")
                parsePara58Sum(line);  // п. 5.8
            else if (para == "5.9.")
                parsePara59Sum(line);  // п. 5.9
            else if (para == "5.10")
                parsePara510Sum(line);  // п. 5.10
            line = in.readLine();
        }

        in.readLine();
        in.readLine();
        parseBottom(in.readLine());

        QChar pageBreak(0x0C);
        line = in.readLine();
        while (!in.atEnd() && line != pageBreak)        
            line = in.readLine();

        numberDoc++;
    }
    file.close();

}