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

Проверьте пожалуйста код - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Решение систем линейных уравнений с использованием метода квадратного корня http://www.cyberforum.ru/cpp-beginners/thread899779.html
Доброго времени суток! Вообщем завтра последний день сдачи домашней работы по вычмату, нужна программа:решение систем линейных уравнений с помощью метода квадратного корня. Помогите пожалуйста, а то в инете не смог найти полностью рабочую программу.
C++ Можно ли из предоставленных отрезков а, в, с построить треугольник доброго времени суток,кому не сложно,напишите пожалуйста код к этому заданию Можно из предоставленных отрезков а, в, с построить треугольник. Если да, то указать какой - равносторонний, равнобедренный, прямоугольный. Решение нужно в с++ и паскаль,если кому не сложно. http://www.cyberforum.ru/cpp-beginners/thread899776.html
C++ генерация строк
подскажите плиз как сгенерировать строки????????? void karta(){ char kart={'2','3','4','5','6','7','8','9','10','V','D','K','T'}; srand(time(NULL)); for(int i=0;i<13;i++) cout<<kart<<' '; cout<<'\n'; for(int i=0;i<13;i++){
C++ Написать программу проверки знания иностранного языка на языке С++
Помогите пожалуйста, очень нужно до завтра. Написать программу проверки знания иностранного языка. Программа должна предложить перевести заданное количество иностранных слов (не менее 5). Оценка выставляется по правилу: 95%-100% правильных ответов – "отлично", от 80% до 94% - "хорошо", 60%-80% - "удовлетворительно", до 60% - "плохо". Ход проверки сохранить в файле протокола. Кроме того, ...
C++ В программе организовать функцию для подсчета среднего арифметического ненулевых элементов массива http://www.cyberforum.ru/cpp-beginners/thread899762.html
Помогите плз вообще не понимаю( 1. Сформировать динамический массив Х размера MxN из случайных целых чисел. В программе организовать функцию для подсчета среднего арифметического ненулевых элементов массива Х, который пренадлежат диапазону .
C++ Сумма всех целых чисел от целых чисел от A до B включительно Даны два целых числа A и B (A <B) Знай сумму всех целых чисел от целых чисел от A до B включительно. подробнее

Показать сообщение отдельно
sword7i
3 / 3 / 0
Регистрация: 25.09.2012
Сообщений: 92
12.06.2013, 18:47     Проверьте пожалуйста код
Проверьте пожалуйста решение поставленного задания. Я думаю там есть ошибки и недочеты.
Вот мой код:
header.h
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
35
36
37
38
39
40
41
42
43
//файл header.h
 
#ifndef HEADER_H
 
#define HEADER_H
#include <iostream>
#include <fstream>
#include <iomanip>
#include <conio.h>
using namespace std;
 
#ifdef UNICODE
#define TCHAR wchar_t
#define TEXT(p) L##p
#define cin wcin
#define cout wcout
#else
#define TCHAR char
#define TEXT(p) p
#endif //UNICODE
 
#define STR 20
#define N 5
struct ZAP
{
    TCHAR symb;
    TCHAR str[STR];
    int A[N];
};
const int lenZAP=sizeof(ZAP);
 
bool isSymb (TCHAR s);
TCHAR* symbPstr (TCHAR* str,int& len);
int kolPstr (TCHAR* str);
 
TCHAR byteRemove (TCHAR symb,int* A,int len);
 
fstream& readOne (fstream& p, ZAP& zap, int n);
void writeOne (fstream& p, ZAP zap, int n);
void printOne (ZAP zap);
bool task (fstream& p);
 
#endif //HEADER_H


fun.cpp
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
//файл fun.cpp
#include "header.h"
 
bool isSymb (TCHAR s)
{
    TCHAR* p;
    p=TEXT("*#!+/&?><=-{}[|]");
    for (;*p;p++)
        if (s==*p)
            return true;
    return false;
}
 
TCHAR* symbPstr (TCHAR* str,int& len)
{
    len=0;
    for (;isSymb(*str)==0 && *str;str++);
    if (*str==0)
        return 0;
    TCHAR* p=str;
    for (;isSymb(*str);str++,len++);
    return p;
}
 
int kolPstr (TCHAR* str)
{
    int kol=0,len=0;
    for (;str=symbPstr(str,len);str+=len,kol++);
    return kol;
}
 
TCHAR byteRemove (TCHAR symb,int* A)
{
    TCHAR OLDsymb=symb;
    int maska=1;
    for (int i=0;i<N;i++)
    {
        if (A[i]%2==0)
            symb=symb^(maska<<A[i]);
        else
            symb=symb|(maska<<A[i]);
    }
    int sum=0;
    for (int i=0;i<8;i++)
        sum+=(symb>>i)&maska;
    return sum>4 ? symb : OLDsymb;
}
 
void writeOne (fstream& p, ZAP zap, int n)  
{   
    p.clear();
    if (n)  
        p.seekg((n-1)*lenZAP,ios::beg);
    p.write((char*)&zap,lenZAP);
    if (!p)
    {
        cout<<TEXT("Ошибка записи!");
        _getch();
        exit(0);
    }
}
 
fstream& readOne (fstream& p, ZAP& zap, int n)
{
    p.clear();
    if (n)
        p.seekg((n-1)*lenZAP,ios::beg);
    p.read((char*)&zap,lenZAP);
    if (!p && !p.eof())
    {
        cout<<TEXT("Ошибка чтения!");
        _getch();
        exit(0);
    }
    return p;
}
 
void printOne(ZAP zap)
{
    cout<<setw(2)<<zap.symb
        <<setw(STR)<<zap.str;
    for (int i=0;i<N;i++)
        cout<<setw(2)<<zap.A[i];
}
 
bool task (fstream& p)
{
    p.clear();
    p.seekg(0,ios::beg);
    ZAP zap;
    int flag=0;
    for (int i=1;readOne(p,zap,i);i++)
    {
        if (kolPstr(zap.str)>2)
        {
            if (zap.symb!=byteRemove(zap.symb,zap.A))
            {
                zap.symb=byteRemove(zap.symb,zap.A);
                writeOne(p,zap,i);
                flag=1;
                printOne(zap);
            }
        }
    }
    return flag;
}


main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//файл main.cpp
#include "header.h"
 
void main (void)
{
    setlocale(LC_ALL,"Russian");
    fstream p("file.bin",ios::app);
    if (p)
    {
        p.close();
        p.open("file.bin",ios::out|ios::in|ios::ate|ios::binary);
    }
    int res=task(p);
    if (res)
        cout<<TEXT("Файл изменен!");
    else
        cout<<TEXT("Файл неизменен!");
    _getch();
    p.close();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru