помогите пожалуйста. нужно прокомментировать код, а писала его не я,даже не знаю,что к чему.всего три задачи.вот первая:
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
| Листинг программы:
#include <iostream>
#include <stdio.h>
#include <windows.h>
#include <conio.h>
using namespace std;
int main()
{
setlocale(LC_ALL,"russian_russia");
int n;
chardd[4];
DWORD dr = GetLogicalDrives( );
DWORD BytesPerSector;
DWORD NumberOfFreeClusters;
DWORD TotalNumberOfClusters;
DWORD SectorPerCluster;
cout<< "Доступныедиски : " <<endl;
for ( inti = 0; i< 26; i++ )
{
n = ( (dr>>i ) & 0x00000001 );
if ( n == 1 )
{
dd[0] = char( 65 + i );
dd[1] = ':';
dd[2] = '\\';
dd[3] = '\0';
GetDiskFreeSpaceA(dd, &BytesPerSector, &NumberOfFreeClusters, &SectorPerCluster, &TotalNumberOfClusters);
cout<< "disk " <<dd<<endl;
switch ( GetDriveType( dd ) )
{
case DRIVE_UNKNOWN:
cout<< " Неизвестный носитель. " <<endl<< " Количество секторов в кластере " <<SectorPerCluster<< ". Длинна кластера " <<SectorPerCluster*BytesPerSector<< ". Объем незанятого пространства диска " << (SectorPerCluster*BytesPerSector/1024)*NumberOfFreeClusters/1024 << " МБ " <<endl;
break;
case DRIVE_NO_ROOT_DIR:
cout<< " Корневой дирректории не существует" <<endl<< " Количество секторов в кластере " <<SectorPerCluster<< ". Длинна кластера " <<SectorPerCluster*BytesPerSector<< ". Объем незанятого пространства диска " << (SectorPerCluster*BytesPerSector/1024)*NumberOfFreeClusters/1024 << " МБ " <<endl;
break;
case DRIVE_REMOVABLE:
cout<< " Сменный диск" <<endl<< " Количество секторов в кластере " <<SectorPerCluster<< ". Длинна кластера " <<SectorPerCluster*BytesPerSector<< ". Объем незанятого пространства диска " << (SectorPerCluster*BytesPerSector/1024)*NumberOfFreeClusters/1024 << " МБ " <<endl;
break;
case DRIVE_FIXED:
cout<< " Жесткий диск" <<endl<< " Количество секторов в кластере " <<SectorPerCluster<< ". Длинна кластера " <<SectorPerCluster*BytesPerSector<< ". Объем незанятого пространства диска " << (SectorPerCluster*BytesPerSector/1024)*NumberOfFreeClusters/1024 << " МБ " <<endl;
break;
case DRIVE_REMOTE:
cout<< " Сетевой диск" <<endl<< " Количество секторов в кластере " <<SectorPerCluster<< ". Длинна кластера " <<SectorPerCluster*BytesPerSector<< ". Объем незанятого пространства диска " << (SectorPerCluster*BytesPerSector/1024)*NumberOfFreeClusters/1024 << " МБ " <<endl;
break;
case DRIVE_CDROM:
cout<< " Компакт диск(CD или DVD)" <<endl<< " Количество секторов в кластере " <<SectorPerCluster<< ". Длинна кластера " <<SectorPerCluster*BytesPerSector<< ". Объем незанятого пространства диска " << (SectorPerCluster*BytesPerSector/1024)*NumberOfFreeClusters/1024 << " МБ " <<endl;
break;
case DRIVE_RAMDISK:
cout<< " RAM-DISK(Эмулированный в ОП диск)" <<endl<< " Количество секторов в кластере " <<SectorPerCluster<< ".Длинна кластера " <<SectorPerCluster*BytesPerSector<< ". Объем незанятого пространства диска " << (SectorPerCluster*BytesPerSector/1024)*NumberOfFreeClusters/1024 << " МБ " <<endl;
break;
default: ;
}
cout<<endl;
}
else
{
cout<< "Заверщениепрограммы " <<endl;
}
} |
|
на всякий случай напишу условие:
Цель:
Изучение архитектуры персональных компьютеров, дисковых накопителей и файловой системы MicroSoftWindows посредством функций APIWin32/
Задание:
Определить логические диски, их типы, длину кластера, число свободных кластеров, общее число кластеров, объём незанятого пространства диска.