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
134
135
136
137
138
139
| struct Notebook
{
char firma[ 20 ];
int kolvo[ 20 ];
char model_nout[ 20 ];
int razmer;
int hard;
int cena;
} ;
int main( )
{
Notebook D[ 20 ];
int n = 0, i = 0, max = 0, k = 0, d_max = -1, v, razm, c = 0, maxi = 0, m = 0, m1 = 0;
char s[ 20 ], firm[ 20 ];
FILE * f;
printf( "Nagmite 1 dlya samostoyatel'nogog vvoda dannih.\n-Nagmite 2 dlya vvoda dannih iz file.\n" );
scanf( "%d", & v );
switch ( v )
{
case 1:
printf( "Vvedite kolichestvo firm (<=20): " );
scanf( "%d", & n );
for ( i = 0; i < n; i++ )
{
printf( " Vvedite nazvanie firmy: " );
scanf( "%s", D[ i ].firma );
printf( "\nVvedite kol-vo noutbukov(<=20):\n" );
scanf( "%d", & m1 );
printf( "\n Vvedite dannie o noutbykax:" );
for ( k = m; k < m + m1; k++ )
{
printf( "\n Notebook № %d:", k + 1 );
printf( " \n Vvedite model nouta: " );
scanf( "%s", D[ k ].model_nout );
printf( " \nVvedite diaginal ekrana: " );
scanf( "%d", & D[ k ].razmer );
printf( " \nVvedite razmer jeskogo diska (v GB): " );
scanf( "%d", & D[ k ].hard );
printf( " \nVvedite ceny: " );
scanf( "%d", & D[ k ].cena );
m = +m1;
}
}
break;
case 2:
do
{
printf( "\nVvedite nazvanie file dlya schitivaniya informacii:" );
scanf( "%s", s );
f = fopen( s, "r" );
if ( f == 0 )
{
printf( "\nTAKOGO FILE NET!" );
}
}
while ( f == 0 );
while ( !feof( f ) )
{
fscanf( f, "%s", D[ i ].firma );
printf( "\nNazvanie firmy: %s", D[ i ].firma );
fscanf( f, "%s", & D[ i ].model_nout );
printf( "\nModel nouta: %s", D[ i ].model_nout );
fscanf( f, "%d", & D[ i ].razmer );
printf( "\nDiagonal ekrana: %d", D[ i ].razmer );
fscanf( f, "%d", & D[ i ].hard );
printf( "\nRazmer jeskogo diska (v GB): %d\n", D[ i ].hard );
fscanf( f, "%d", & D[ i ].cena );
printf( "\nCena nouta (v GB): %d\n", D[ i ].cena );
i++ ;
n++ ;
}
fclose( f );
break;
}
printf( "\nVvedite nuznuy vam firmy: " );
scanf( "%s", & firm );
for ( i = 0; i < n; i++ )
{
if ( stricmp( D[ i ].firma, firm ) == 0 )
{
printf( "Model%16s\n Razmer diag%9d\n Razmer jeskogo diska(v GB)%11d\n Cenah%5d\n", D[ i ].model_nout, D[ i ].razmer, D[ i ].hard, D[ i ].cena );
printf( "\n-_-_-_-_-_-_-_-_-_-_-_-_-\n" );
k++ ;
}
}
if ( k == 0 )
{
printf( "\nTakoi firmy net" );
}
printf( "\nVvedite nyzniy vam razmer ekrana:\n" );
scanf( "%d", razm );
for ( i = 0; i < n; i++ )
{
if ( D[ i ].razmer == razm )
{
if ( D[ i ].cena > max )
{
max = D[ i ].cena;
maxi = i;
c++ ;
}
}
}
if ( k == 0 )
{
printf( "\nNevernyi razmer diag" );
}
else
{
printf( "Model%16s\n Razmer diag%9d\n Razmer jeskogo diska(v GB)%11d\n Cenah%5d\n", D[ maxi ].model_nout, D[ maxi ].razmer, D[ maxi ].hard, D[ maxi ].cena );
}
printf( "\nVvedite nazvanie file dlya vivoda: " );
scanf( "%s", s );
f = fopen( s, "w" );
for ( i = 0; i < n; i++ )
{
if ( k == 0 )
{
printf( "\nTakoi firmy net" );
}
else if ( !stricmp( D[ i ].firma, firm ) )
{
fprintf( f, "Model%16s\n Razmer diag%9d\n Razmer jeskogo diska(v GB)%11d\n Cenah%5d\n", D[ i ].model_nout, D[ i ].razmer, D[ i ].hard, D[ i ].cena );
}
}
if ( c == 0 )
{
fprintf( f, "\nNevernyi razmer diag" );
}
else
{
fprintf( f, "Model%16s\n Razmer diag%9d\n Razmer jeskogo diska(v GB)%11d\n Cenah%5d\n", D[ maxi ].model_nout, D[ maxi ].razmer, D[ maxi ].hard, D[ maxi ].cena );
}
fclose( f );
getch( );
return 0;
} |