Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программисты для вас - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ программа на С, необходимо графически отобразить сумму ряда http://www.cyberforum.ru/cpp-beginners/thread61428.html
программа нужна сегодня, если завтра утром не сдам, то выпрут из универа... нужно отобразить графически сумму ряда функции и обязательно должна быть возможность задавать различные точности в момент...
C++ Ввести строку, вывести слова по алфавиту. Выручайте хлопцы, надо написать программу - Ввести строку, вывести слова по алфавиту.:help: http://www.cyberforum.ru/cpp-beginners/thread61417.html
Простая графика C++
Кто может напишите с помощью каких функций в C++ можно начертить линию (из заданной точки экрана в заданную) или простейшие геометрические фигуры(круг, квадрат и т.п.)
C++ Не знаю как написать прогу на С++? Напишите поиз
Написать функцию, которая получает в качестве параметра строку и определяет, является ли содержимое строки правильным восьмеричным числом. В случае положительного результата функция переводит это...
C++ Перегрузка операторов http://www.cyberforum.ru/cpp-beginners/thread61355.html
помогите разобраться с перегрузкой... в TcomboBox выбирается год... 1 и 2... их нужно сравнить.. выполнив при этом перегрузку оператора... как это осуществить? Добавлено через 58 минут вот...
C++ Работа со стэком. Здраствуйте! В лицее задали такую вот задачу: написать программу реализации стэка. И поставили следующие условиня: 1. Программа должна быть написана на Borland C 3.1 2. Программа должна быть DOS... подробнее

Показать сообщение отдельно
sergeu90
27 / 28 / 3
Регистрация: 17.10.2009
Сообщений: 739
05.11.2009, 19:06  [ТС]
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define STR_LEN 255
#define MAX_PRODUCTS 100
 
typedef struct {
        int day;
        int month;
        int year;
} Date_t;
 
typedef struct {
        int cat_id; /* номер по каталогу */
        char name[STR_LEN]; /* наименование */
        double weight; /* масса */
        double price; /* цена */
        Date_t date; /* дата выпуска */
} Product_t;
 
/* сравнение дат выпуска по возрастанию */
int cmpByDateAsc ( const void *first, const void *second ) {
        Date_t a = (*(Product_t *)first).date;
        Date_t b = (*(Product_t *)second).date;
        if ( a.year == b.year ) {
                if ( a.month == b.month ){
                        return (a.day - b.day);
                }
                else {
                        return (a.month - b.month);
                }
        }
        else {
                return (a.year - b.year);
        }
}
 
/* сравнение дат выпуска по убыванию */
int cmpByDateDesc ( const void *first, const void *second ) {
        return cmpByDateAsc(second, first);
}
 
/* вывод содержимого структуры Product_t */
void prnProduct(Product_t p){
        printf("Catalog id:\t\t%d\n", p.cat_id);
        printf("Name:\t\t\t%s\n", p.name);
        printf("Weight:\t\t\t%.3f\n", p.weight);
        printf("Price:\t\t\t%.2f\n", p.price);
        printf("Manufactured date:\t%02d.%02d.%4d\n", p.date.day, p.date.month, p.date.year);
}
 
/* ввод значений структуры Product_t с незатейливой проверкой данных */
Product_t getProduct(void){
        Product_t p;
        char *correct = "yes";
        char buf[STR_LEN];
        int good_date = 0;
        do {
                printf("Catalog id: ");
                fgets(buf, STR_LEN, stdin);
                p.cat_id = atoi(buf);
                printf("Name: ");
                fgets(buf, STR_LEN, stdin); /* на случай, если название из двух+ слов */
                buf[strlen(buf) - 1] = '\0'; /* удалить \n */
                strcpy(p.name, buf);
                printf("Weight: ");
                fgets(buf, STR_LEN, stdin);
                p.weight = atof(buf);
                printf("Price: ");
                fgets(buf, STR_LEN, stdin);
                p.price = atof(buf);
                do {
                        printf("Date (dd.mm.yyyy): ");
                        fgets(buf, STR_LEN, stdin);
                        if ( sscanf(buf, "%d.%d.%d", &p.date.day, &p.date.month, &p.date.year) == 3 )
                                good_date = ( p.date.day >= 1 && p.date.day <= 31 && p.date.month >= 1 &&
                                                        p.date.month <= 12 && p.date.year >= 1970 && p.date.year <= 2029 );
                        else
                                good_date = 0;
                } while ( !good_date );
                printf("\nConfirm values:\n");
                prnProduct(p);
                printf("It is correct? (yes/no): ");
                fgets(buf, STR_LEN, stdin);
                buf[strlen(buf) - 1] = 0;
        } while ( strcmp(buf, correct) );
        return p;
}
                
int main ( void ) {
        Product_t products[MAX_PRODUCTS];
        int i, count;
        char buf[STR_LEN];
        
        count = 0;
        while ( count < MAX_PRODUCTS ) {
                printf("\nProducts left: %d\nEnter a new one:\n", MAX_PRODUCTS - count);
                products[count] = getProduct();
                count++;
                printf("Continue? (yes/no): ");
                fgets(buf, STR_LEN, stdin);
                if ( strcmp(buf, "yes\n") != 0 )
                        break;
        }
        
        if ( !count ){
                printf("No products entered!\n");
                exit(1);
        }
        
        printf("Unsorted:\n");
        printf(" #\tCat_id\tWeight\tPrice\tName\tManufactured date\n");
        for ( i = 0; i < count; i++ )
                printf("%3d\t%6d\t%6.3f\t%3.2f\t%s\t%02d.%02d.%4d\n", i, products[i].cat_id, products[i].weight, 
                        products[i].price, products[i].name, products[i].date.day, products[i].date.month, products[i].date.year);
        
        qsort(products, count, sizeof(Product_t), cmpByDateAsc);
        printf("By date ascendant:\n");
        printf(" #\tCat_id\tWeight\tPrice\tName\tManufactured date\n");
        for ( i = 0; i < count; i++ )
                printf("%3d\t%6d\t%6.3f\t%3.2f\t%s\t%02d.%02d.%4d\n", i, products[i].cat_id, products[i].weight, 
                        products[i].price, products[i].name, products[i].date.day, products[i].date.month, products[i].date.year);
        
        qsort(products, count, sizeof(Product_t), cmpByDateDesc);
        printf("By date descendant:\n");
        printf(" #\tCat_id\tWeight\tPrice\tName\tManufactured date\n");
        for ( i = 0; i < count; i++ )
                printf("%3d\t%6d\t%6.3f\t%3.2f\t%s\t%02d.%02d.%4d\n", i, products[i].cat_id, products[i].weight, 
                        products[i].price, products[i].name, products[i].date.day, products[i].date.month, products[i].date.year);
        
        return 0;
}
Добавлено через 57 секунд
тут используются файлы а мы их не проходили еще помогите сделать хотябы через структуру только полегче код без всяких заворотов и проверок пожалуйста
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru