Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 30.11.2021
Сообщений: 6
1

Организовать поиск

25.06.2022, 23:52. Показов 463. Ответов 0

Author24 — интернет-сервис помощи студентам
Нужно реализовать универсальный запрос(есть файл в котором хранятся строки (информация о жилых домах, год постройки,улица, площадь и тд)(внутри строк поля разделены пробелами)), есть форма с чекбоксами и текст боксами,человек выбирает сначала с помощью чекбокса по каким полям будет осуществляться поиск, затем вводит в текстбоксы то, что хочет найти, есть реализация этого на языке Си, но пытаясь переделать это под winform столкнулся с кучей проблем, несовместимостью char и string, и еще многими, вот код на языке Си, и попытка реализации в виндовс форм
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
107
108
void zapros() {
    do {
        int house_year,number_h,etazh,flag=0, cnt_kvart_bellow, cnt_village_upper, n,a[8] = {0},f2=0;
        char st[40];
        float sqr;
        puts("*Выберите по какому полю будет выполнен запрос*");
        printf("*по названию улицы*\n*по номеру дома*\n*по году постройки*\n*по площади*\n*по количеству этажей*\n*по количеству квартир*\n*по количеству жильцов*\n");
        puts("вы хотите по названию улицы? 1 - да, 0 - нет");
        do{n = scaner();}while(n<0||n>1);
        if (n){
            printf("Введите название улицы:");
            while(getchar() != '\n');
            gets(st);
 
            a[0] = 1;
        }
        puts("вы хотите по номеру дома? 1 - да, 0 - нет");
        do{n = scaner();}while(n<0||n>1);
        if (n){
            printf("Введите минимальный номер дома:");
            do {
                number_h = scaner();
                while (getchar() != '\n');
            }while(number_h < 1||number_h > 500);
            a[1] = 1;
        }
        puts("вы хотите по году постройки? 1 - да, 0 - нет");
        do{n = scaner();}while(n<0||n>1);
        if (n){
            printf("Введите год постройки дома:");
            do {
                house_year = scaner();
                while (getchar() != '\n');
            }while(house_year<1||house_year>2022);
            a[2] = 1;
 
        }
        puts("вы хотите по площади? 1 - да, 0 - нет");
        do{n = scaner();}while(n<0||n>1);
        if (n){
            printf("Введите минимальную площадь\n");
            do{
                sqr = scaner();
                while (getchar() != '\n');
            }while(sqr<1||sqr>99999);
            a[3] = 1;
        }
        puts("вы хотите по кол-ву этажей? 1 - да, 0 - нет");
        do{n = scaner();}while(n<0||n>1);
        if(n){
            printf("Введите минимальное кол-во этажей\n");
            do{
                etazh = scaner();
                while (getchar() != '\n');
            }while(etazh<1||etazh>55);
            a[4] = 1;
 
        }
        puts("вы хотите по кол-ву квартир? 1 - да, 0 - нет");
        do{n = scaner();}while(n<0||n>1);
        if(n){
            printf("Введите максимальное кол-во квартир:");
            do {
                cnt_kvart_bellow = scaner();
                while (getchar() != '\n');
            }while(cnt_kvart_bellow < 1 || cnt_kvart_bellow > 99999);
            a[5] = 1;
        }
        puts("вы хотите по кол-ву жителей? 1 - да, 0 - нет");
        do{n = scaner();}while(n<0||n>1);
        if(n){
            printf("Введите минимальное кол-во жильцов:");
            do {
                cnt_village_upper = scaner();
                while (getchar() != '\n');
            }while(cnt_village_upper<1||cnt_village_upper>99999);
            a[6]=1;
        }
        for (int i = 0; i < 30; i++){
            flag=0;
            if (a[0] == 1 && strstr(list[i].street, st) == 0)
                flag = 1;
            if (a[1] == 1 && list[i].numb < number_h)
                flag = 1;
            if (a[2] == 1 && list[i].year != house_year)
                flag = 1;
            if (a[3] == 1 && list[i].square < sqr)
                flag = 1;
            if (a[4] == 1 && list[i].floor < etazh)
                flag = 1;
            if (a[5] == 1 && list[i].cnt_kvart < cnt_kvart_bellow)
                flag = 1;
            if (a[6] == 1 && list[i].cnt_village < cnt_village_upper)
                flag = 1;
            if (flag == 0) {
                f2 = 1;
                printf("*Улица - № Дома - Год - Площадь - кол-во этажей - кол-во кв. - кол-во жильцов\n");
                printf("*%4s *%4d *%4d *%7.2f *%4d *%4d *%4d\n", list[i].street,list[i].numb, list[i].year, list[i].square, list[i].floor, list[i].cnt_kvart, list[i].cnt_village);
            }
        }
        if (f2 == 0)
            puts("Такихх строк нет");
 
 
        printf("Продолжить? n - нет, любая клавиша - да\n");
    }while(getchar()!='n');
 
}



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
FILE* data;
    FILE* r;
    FILE* temp;
    int a[7] = { 0 }, flag, f2 = 0;
    char str[20], street_temp[20];
    /*wchar_t street[1000];
 
    array<wchar_t>^ street = street_tb->Text->ToCharArray();
 
    wcscpy(street, static_cast<wchar_t*>(p.ToPointer()));
    Marshal::FreeHGlobal(p);*/
    //String^ street_tb;
     
    int housenumb, houseyear, housesquare, housefloor, housecnt_kvart, housecnt_village;
    data = fopen("prac.txt", "r");
 
    if (checkBox1->Checked == true) {
        String^ street = street_tb->Text;
        StreamWriter^ myStream = gcnew StreamWriter("tmp.txt");
        myStream->WriteLine(street);
        myStream->Close();
         
 
        a[0] = 1;
        //(char)street_tb[20];
    }
     
    if (checkBox2->Checked == true) {
        //int house_numb = Convert::ToInt32(house_number_tb->Text);
        a[1] = 1;
    }
    if (checkBox3->Checked == true) {
        //int year = Convert::ToInt32(year_tb->Text);
        a[2] = 1;
    }
    if (checkBox4->Checked == true) {
        //int square = Convert::ToInt32(square_tb->Text);
        a[3] = 1;
    }
    if (checkBox5->Checked == true) {
        //int cnt_floor = Convert::ToInt32(cnt_floor_tb->Text);
        a[4] = 1;
    }
    if (checkBox6->Checked == true) {
        //int cnt_kvart = Convert::ToInt32(cnt_kvart_tb->Text);
        a[5] = 1;
    }
    if (checkBox6->Checked == true) {
        //int cnt_village = Convert::ToInt32(cnt_village_tb->Text);
        a[6] = 1;
    }
    String^ street = street_tb->Text;
    //(char)street[20];
    int house_numb = Convert::ToInt32(house_number_tb->Text);
    int year = Convert::ToInt32(year_tb->Text);
    int square = Convert::ToInt32(square_tb->Text);
    int cnt_floor = Convert::ToInt32(cnt_floor_tb->Text);
    int cnt_kvart = Convert::ToInt32(cnt_kvart_tb->Text);
    int cnt_village = Convert::ToInt32(cnt_village_tb->Text);
    temp = fopen("tmp.txt", "r");
    fscanf(temp, "%s", &street_temp);
    while (fscanf(data, "%s %d %d %f %d %d %d\n", &str, &housenumb, &houseyear, &housesquare, &housefloor, housecnt_kvart, housecnt_village) != EOF) {
        flag = 0;
        if (a[0] == 1 && strcmp(str,street_temp) != 0)
            flag = 1;
        if (a[1] == 1 && housenumb != house_numb)
            flag = 1;
        if (a[2] == 1 && houseyear != year)
            flag = 1;
        if (a[3] == 1 && housesquare != square)
            flag = 1;
        if (a[4] == 1 && housefloor != cnt_floor)
            flag = 1;
        if (a[5] == 1 && housecnt_kvart < cnt_kvart)
            flag = 1;
        if (a[6] == 1 && housecnt_village < cnt_village)
            flag = 1;
        if (flag == 0) {
            f2 = 1;
            fprintf(r, "%s %d %d %f %d %d %d\n", str, housenumb, houseyear, housesquare, housefloor, housecnt_kvart, housecnt_village);
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.06.2022, 23:52
Ответы с готовыми решениями:

Организовать поиск в структуре
Задача на тему : Структуры. Список сведений о животных в зоопарке. Каждая строка списка содержит...

Организовать поиск чисел в файле
Возник вопрос по поиску страны по численности населения. С поиском символов в строке проблем нет, а...

Организовать поиск по слову из консоли
Товарищи, приветствую! В общем, дело в том, что мне нужно организовать поиск только по женскому...

Не могу организовать поиск в структуре
Люди помогите с програмой. Условие: для заданого варинта структуры написать следующее функции: -...

В массиве организовать поиск введенного значения
Ребят помогите пожалуйста с кодом его нужно составить В массиве организовать поиск введенного...

0
25.06.2022, 23:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.06.2022, 23:52
Помогаю со студенческими работами здесь

Организовать поиск лексемы в заданной строке
Почему когда я записываю вот так const int n = 700; char s, *st, *st2,str, *st1; int i = 0,...

Как организовать поиск файлов по расширению?
У меня есть директория, в которой файлы с расширением *.txt! И мне надо что бы программа сама их...

Как организовать поиск файла по маске
помогите с организацией поиска файла по маске

Как организовать поиск в двусвязном списке?
Есть класс двусвязный список где каждый элемент имеет большое количество полей (Имя, Фамилия,...

Организовать поиск по файлу с помощью регулярных выражений
Как организовать поиск по файлу с помощью регулярных выражений? Подскажите хорошую статью.

Организовать поиск записей по имени и по номеру телефона
Кто может, помогите пожалуйста! Дана задача: Создать динамический массив, что хранит имя и телефон...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru