Добавил:
Fragga
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:лабы по Осям / OS_LAB3
.CPP#include<stdio.h>
#include<conio.h>
#include<io.h>
#include<iostream.h>
#include<stdlib.h>
#include<string.h>
#include<fcntl.h>
#include<sys\stat.h>
struct z {
int no;
char surname[14];
char name[10];
int mark;
}s[20];
int max=0;
int menu()
{
int x;
clrscr();
puts(" >>>>>>>>>>>>>> DB STUDENT <<<<<<<<<<<<<<");
puts(" 1> Vvod dannyh ");
puts(" 2> Udalenie dannyh ");
puts(" 3> Izmenenie dannyh ");
puts(" 4> Sortirovka dannhyh po stolbcu ");
puts(" 5> Vyvod dannyh na display ");
puts(" 6> Exit ");
printf("\n Choose any number: ");
scanf("%d",&x);
return(x);
}
void read() {
int handle, len;
len=sizeof(z);
z temp;
if ((handle=open("os_lab3.txt",O_RDONLY|O_CREAT|O_BINARY,S_IREAD|S_IWRITE))==-1) {
clrscr();
printf("ERROR, EXIT!!!");
exit(1);
}
max=0;
while (!eof(handle)) {
read( handle, &temp, len);
s[max]=temp;
s[max].no=max+1;
max++;
}
close(handle);
}
void save() {
int handle, len, i;
len=sizeof(z);
z temp;
if((handle=open("os_lab3.txt",O_RDWR|O_CREAT|O_BINARY|O_TRUNC,S_IREAD|S_IWRITE))==-1) {
clrscr();
printf("ERROR, EXIT!!!\n");
exit(1);
}
for (i=1; i<=max; i++) {
temp=s[i-1];
write(handle, &temp, len);
}
close(handle);
}
//------------------------------
void view() {
int i,j;
struct z t;
read();
clrscr();
puts("ЙНННСННННННННННННStudentННННННСНННННННННН»");
puts("є ь і Surname і Name і Mark є");
puts("ЗДДДЕДДДДДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДє");
j=0;
for(i=0;i<max;i++) {
cout << "є" << s[i].no;
gotoxy(5,wherey());
cout << "і" << s[i].surname;
gotoxy(20,wherey());
cout << "і" << s[i].name;
gotoxy(31,wherey());
cout << "і" << s[i].mark;
gotoxy(42,wherey());
cout << "є\n";
j++;
if((j==20)&(j<max)) {
j=0;
puts("ИНННПННННННННННННННПННННННННННПННННННННННј");
printf("\n Press any key to continue");
getch();
clrscr();
puts("ЙНННСНННННННННННStudentННННННСНННННННННН»");
puts("є ь і Surname і Name і Mark є");
puts("ЗДДДЕДДДДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДє");
}
}
puts("ИНННПННННННННННННННПННННННННННПННННННННННј");
printf("\n Press any key to continue");
getch();
}
void sort()
{
read();
z obj;
int i,j,x;
clrscr();
printf("\nVvedite nomer stolbca dlya sortirovki (\"0\" for cancel): ");
cin >> x;
if (!(int)x)
{printf("\nERROR"); getch(); return;}
if (x>max)
{printf("\nERROR"); getch(); return;}
if (x<0)
{printf("\nERROR"); getch(); return;}
if (x==0)
{printf("\nSortirovka otmenena"); getch(); return;}
if (x==1) {
for (i=0;i<(max-1);i++)
for (j=0;j<(max-1);j++)
if ( stricmp ( s[j].surname , s[j+1].surname ) > 0) {
obj=s[j];
s[j]=s[j+1];
s[j+1]=obj;
}
}
else if (x==2) {
for (i=0;i<(max-1);i++)
for (j=0;j<(max-1);j++)
if ( stricmp ( s[j].name , s[j+1].name ) > 0) {
obj=s[j];
s[j]=s[j+1];
s[j+1]=obj;
}
}
else if (x==3) {
for (i=0; i <(max-1); i++)
for (j=0; j<(max-1); j++)
if ( s[j].mark < s[j+1].mark ) {
obj=s[j];
s[j]=s[j+1];
s[j+1]=obj;
}
}
save();
clrscr();
printf(" Sortirovka zavershena. Press any key to continue!");
getch();
clrscr();
}
void new_b()
{
clrscr();
puts("\tVvod novyh dannyh ");
printf("Surname: ");
cin >> s[max].surname;
printf("Name: ");
cin >> s[max].name;
printf("Mark: ");
cin >> s[max].mark;
s[max].no=max;
max++;
save();
}
void del()
{
int x;
int i;
view();
printf("\nVvedite nomer zapisi dlya udaleniya (\"0\" for cancel): ");
cin >> x;
if (!(int)x)
{printf("\nERROR"); getch(); return;}
if (x>max)
{printf("\nERROR"); getch(); return;}
if (x<0)
{printf("\nERROR"); getch(); return;}
if (x==0)
{printf("\nUdalenie otmeneno"); getch(); return;}
for (i=x; i<max; i++)
{
s[i-1]=s[i];
}
max--;
save();
}
void edit()
{
int n_f;
view();
printf("\nVvedite nomer zapisi dlya izmeneniya (\"0\" - for cancel): ");
cin >> n_f;
if(!(int)n_f)
{printf("\nERROR"); getch(); return;}
if (n_f>max)
{printf("\nERROR"); getch(); return;}
if (n_f<0)
{printf("\nERROR"); getch(); return;}
if (n_f==0)
{printf("\nIzmenenie otmeneno"); getch(); return;}
printf("Izmenenie %d zapisi",n_f);
printf("\nSurname: %s",s[n_f-1].surname);
printf("\nNew Surname: ");
cin >> s[n_f-1].surname;
printf("Name: %s",s[n_f-1].name);
printf("\nNew name: ");
cin >> s[n_f-1].name;
printf("Mark: %d",s[n_f-1].mark);
printf("\nNew mark: ");
cin >> s[n_f-1].mark;
save();
}
void main() {
int x;
read();
do {
x=menu();
switch(x) {
case 1: new_b(); break;
case 2: del(); break;
case 3: edit(); break;
case 4: sort();break;
case 5: view();break;
default: break;
}
}
while((x>0)&&(x<6));
clrscr();
}
Соседние файлы в папке лабы по Осям