Исходный код.
Разработка базы данных для учёта музыкальных альбомов на языке программирования Си
If (Album.Year> 2015 || Album. Year< 1950){. VoidOutPut_Mass (int n){ // ??? ??? ?? ??? Printf («Viberitepravilnoeznachenie: «); Printf («7. Sortirovatmassivpopoliu. «); Case 3: Read_From_File (albums, n); break; Case 2: Write_To_File (albums, n); break; Printf («Po kakomypolisortirovat: «); Printf («3. Chteniemassivaizfaila; «); Printf («Vveditekolichestvopesen: «); Printf («6… Читать ещё >
Исходный код. Разработка базы данных для учёта музыкальных альбомов на языке программирования Си (реферат, курсовая, диплом, контрольная)
#include.
#include.
#include.
#include.
#include.
structMusic_Album {.
charGroup_Name[100];
charAlbum_Title[100];
intSong_Amount;
longint Year;
charCompany_Name[50];
};
Music_Albumalbums[100];
Music_AlbumMake_Record (Music_Album Album){.
printf («Vveditenazvaniegruppi: «);
scanf («%s», &Album.Group_Name);
printf («Vveditenazvaniealboma: «);
scanf («%s», &Album.Album_Title);
bool flag (0);
m1:
printf («Vveditekolichestvopesen: «);
scanf («%d» ,&Album.Song_Amount);
if (Album.Song_Amount<=0){.
printf («Error: Incorrect input! «);
goto m1;
}.
m2:
printf («Vvedite god vipuska: «);
scanf («%d» ,&Album.Year);
if (Album.Year> 2015 || Album. Year< 1950){.
printf («Error: Incorrect input! «);
goto m2;
}.
printf («Vveditenazvaniestudii: «);
scanf («%s», &Album.Company_Name);
printf (««);
return Album;
};
voidShow_Record (Music_Album Album){.
printf («%s «, Album. Group_Name);
printf («%s «, Album. Album_Title);
printf («%d «, Album. Song_Amount);
printf («%d «, Album. Year);
printf («%s «, Album. Company_Name);
};
voidWrite_To_File (Music_Album albums[100], int n){.
FILE * pFile;
pFile = fopen («output.txt», «wb»);
for (inti = 0; i< n ;i++).
fwrite (&albums[i], sizeof (Music_Album), 1, pFile);
fclose (pFile);
};
voidRead_From_File (Music_Album albums[100], int n){.
FILE *FH = NULL;
FH = fopen («output.txt», «rb»);
for (inti = 0; i< 100; i++){.
fread (&albums[i], sizeof (Music_Album), 1, FH);
};
fclose (FH);
};
voidEdit_Record (){.
printf («Kakujuzapismeniat: «);
int k;
scanf («%d» ,&k);
albums[k] = Make_Record (albums[k]);
};
voidFind_Record (int n){.
printf («Po kakomypoliiskat: «);
printf («1. Group_Name «);
printf («2. Album_Title «);
printf («3. Company_Name «);
int k;
scanf («%d» ,&k);
char temp[50];
intindeks (0);
if (k == 1 || k == 2 || k == 3){.
printf («Vvedite pole: «);
scanf («%s» ,&temp);
};
if (k == 1){.
for (inti = 0; i< n; i++){.
if (strcmp (albums[i]. Album_Title, temp) == 0).
indeks = i+1;
}.
};
if (k == 2){.
for (inti = 0; i< n; i++){.
if (strcmp (albums[i]. Group_Name, temp) == 0).
indeks = i+1;
}.
};
if (k == 3){.
for (inti = 0; i< n; i++){.
if (strcmp (albums[i]. Company_Name, temp) == 0).
indeks = i+1;
}.
};
if (indeks ≠ 0) {.
printf («Zapis #%d «, indeks);
}.
else.
printf («Takojzapisi net «);
};
voidOutPut_Mass (int n){ // ??? ??? ?? ???
for (inti = 0; i< n; i++){.
Show_Record (albums[i]);
}.
};
intShow_menu (){ // ??? ??? ?? ??? ??? ??? ??? ???
inti;
printf («Viberitedejstvije: «);
printf («1. Dobavitzapis; «);
printf («2. Zapis v fail; «);
printf («3. Chteniemassivaizfaila; «);
printf («4. Redaktirovatzapis v massive; «);
printf («5. Naitizapis; «);
printf («6. Vivestimassivnaekran; «);
printf («7. Sortirovatmassivpopoliu. «);
printf («0. Zakonchitrabotu. «);
m2:
scanf («%d» ,&i);
if (!(i>=0 &&i<=7)){.
printf («Error: Incorrect input! «);
goto m2;
};
while (!(i>= 0 &&i<= 7)){ // ??? ?? ??? ??? ???
printf («Viberitepravilnoeznachenie: «);
scanf («%d» ,&i);
};
printf (««);
returni;
};
void Bubble (int (*compFunc)(int), int n) {.
for (inti = 1; i< n; i++) {.
for (int j = n-1; j >= i; j—) {.
if (compFunc (j)) {.
Music_Album temp = albums[j];
albums[j] = albums[j-1];
albums[j-1] = temp;
}.
}.
}.
}.
intcompName (int j) {.
returnstrcmp (albums[j]. Group_Name, albums[j-1]. Group_Name) < 0;
}.
intcompTitle (int j) {.
returnstrcmp (albums[j]. Album_Title, albums[j-1].Album_Title) < 0;
}.
intcompAmount (int j) {.
return albums[j]. Song_Amount< albums[j-1]. Song_Amount;
}.
intcompYear (int j) {.
return albums[j]. Year < albums[j-1]. Year;
}.
intcompCompanyName (int j) {.
returnstrcmp (albums[j]. Company_Name, albums[j-1]. Company_Name) < 0;
}.
voidSortBy (int n){ // ??? ?? ??? ???
printf («Po kakomypolisortirovat: «);
printf («1. Group_Name «);
printf («2. Album_Title «);
printf («3. Song_Amount «);
printf («4. Year «);
printf («5. Company_Name «);
int k;
scanf («%d» ,&k);
if (k == 1) {.
Bubble (&compName, n);
};
if (k == 2) {.
Bubble (&compTitle, n);
};
if (k == 3) {.
Bubble (&compAmount, n);
};
if (k == 4) {.
Bubble (&compYear, n);
};
if (k == 5) {.
Bubble (&compCompanyName, n);
};
};
int main (){.
int procedure;
int n (0);
do{.
procedure = Show_menu ();
switch (procedure){.
case 1: albums[n] = Make_Record (albums[n]); n++; break;
case 2: Write_To_File (albums, n); break;
case 3: Read_From_File (albums, n); break;
case 4: Edit_Record (); break;
case 5: Find_Record (n); break;
case 6: OutPut_Mass (n); break;
case 7: SortBy (n); break;
};
} while (procedure ≠ 0);
getch ();
return 0;
}.