#include "C:\USER\lab6\lab6.cpp"
#include <stdlib.h>
void main ()
{
library lib;
char ch;
l1: clrscr();
printf("\n\n\n\n\t\tHOME LIBRARY\n\n");
printf("\n\n\n\n\t\tVuberete nugnoe deystvie:\n\n");
printf("\t\t\t1.Add book\n");
printf("\t\t\t2.Show book\n");
printf("\t\t\t3.Search book\n");
printf("\t\t\t4.Delete book\n");
printf("\t\t\t5.Sort book\n");
printf("\t\t\t6.Exit");
ch=getch();
switch(ch){
case '1': lib.add();goto l1;
case '2': lib.show();goto l1;
case '3': lib.find();goto l1;
case '4': lib.del();goto l1;
case '5': lib.sort();goto l1;
case '6': exit(1);
default : goto l1;
}
}
Классы в С
Собстенно не могу одолеть сортировку и удаление все остальное приважу:
MAIN.CPP
Код:
LAB6.CPP
Код:
#include <io.h>
#include <string.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <fstream.h>
class library {
public:
char a[20];
int y;
void add();
void del();
void find();
void sort();
void show();
};
void library :: add() {
clrscr();
char ch;
ofstream file("c:\\user\\lab6\\bi.txt",ios::app);
l1: printf("\n\nEnter Author:");
cin>>a;
printf("\n\nEnter Year:");
cin>>y;
file<<a<<" "<<y<<endl;;
printf("\n\nBook ADDED");
printf("\n\nMore?(y/n))");
ch=getch();
switch(ch) {
case 'y':goto l1;
default :break;
}
file.close();
}
void library :: show() {
clrscr();
printf("\n\n\tLIST LIBRARY\n\n");
ifstream file1("c:\\user\\lab6\\BI.TXT");
while (!file1.eof()){
file1>>a>>y;
cout<<"\t Author:"<<a<<"\t\t Year:"<<y<<endl;}
getch();
file1.close();
}
void library :: find() {
char b[20];
clrscr();
cout<<"\n\n\n\t\t\tWhat Authors to find?"; cin>>b;
ifstream file("c:\\user\\lab6\\bi.txt");
while(!file.eof())
{
file>>a>>y;
if(!strcmpi(a,b)){
cout<<"\n\t"<<a<<"\t"<<y<<endl;}
}
getch();
}
void library :: del() {
[COLOR=RED]????????????????????[/COLOR]
}
void library :: sort(){
[COLOR=RED]????????????????????[/COLOR]
}
#include <string.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <fstream.h>
class library {
public:
char a[20];
int y;
void add();
void del();
void find();
void sort();
void show();
};
void library :: add() {
clrscr();
char ch;
ofstream file("c:\\user\\lab6\\bi.txt",ios::app);
l1: printf("\n\nEnter Author:");
cin>>a;
printf("\n\nEnter Year:");
cin>>y;
file<<a<<" "<<y<<endl;;
printf("\n\nBook ADDED");
printf("\n\nMore?(y/n))");
ch=getch();
switch(ch) {
case 'y':goto l1;
default :break;
}
file.close();
}
void library :: show() {
clrscr();
printf("\n\n\tLIST LIBRARY\n\n");
ifstream file1("c:\\user\\lab6\\BI.TXT");
while (!file1.eof()){
file1>>a>>y;
cout<<"\t Author:"<<a<<"\t\t Year:"<<y<<endl;}
getch();
file1.close();
}
void library :: find() {
char b[20];
clrscr();
cout<<"\n\n\n\t\t\tWhat Authors to find?"; cin>>b;
ifstream file("c:\\user\\lab6\\bi.txt");
while(!file.eof())
{
file>>a>>y;
if(!strcmpi(a,b)){
cout<<"\n\t"<<a<<"\t"<<y<<endl;}
}
getch();
}
void library :: del() {
[COLOR=RED]????????????????????[/COLOR]
}
void library :: sort(){
[COLOR=RED]????????????????????[/COLOR]
}
Пажалуста очень прошу помагите.
2. С использованием goto в коде надо бороться.
3. А в чём, собсно говоря, проблема. Вариантов написание Del() много, но если выдерживать стиль, то это будет выглядеть так: удаляем n-ую строку путём смещения всего файла (начиная с n-й строки) на длину этой строки к началу. А можно загружать в память всю базу, а после изменения записывать обратно. А для Sort() можно поискать алгоритмы сортировки в инете.
Одним словом - Думай! :)
Код:
#include "C:\USER\lab6\lab6.cpp"
#include <stdlib.h>
void main ()
{
library lib;
char ch;
bool flag=true;
while(flag)
{
clrscr();
printf("\n\n\n\n\t\tHOME LIBRARY\n\n");
printf("\n\n\n\n\t\tVuberete nugnoe deystvie:\n\n");
printf("\t\t\t1.Add book\n");
printf("\t\t\t2.Show book\n");
printf("\t\t\t3.Search book\n");
printf("\t\t\t4.Delete book\n");
printf("\t\t\t5.Sort book\n");
printf("\t\t\t6.Exit");
ch=getch();
switch(ch){
case '1': lib.add();break;
case '2': lib.show();break;
case '3': lib.find();break;
case '4': lib.del();break;
case '5': lib.sort();break;
case '6': flag = false;
}
}
exit(1);
}
#include <stdlib.h>
void main ()
{
library lib;
char ch;
bool flag=true;
while(flag)
{
clrscr();
printf("\n\n\n\n\t\tHOME LIBRARY\n\n");
printf("\n\n\n\n\t\tVuberete nugnoe deystvie:\n\n");
printf("\t\t\t1.Add book\n");
printf("\t\t\t2.Show book\n");
printf("\t\t\t3.Search book\n");
printf("\t\t\t4.Delete book\n");
printf("\t\t\t5.Sort book\n");
printf("\t\t\t6.Exit");
ch=getch();
switch(ch){
case '1': lib.add();break;
case '2': lib.show();break;
case '3': lib.find();break;
case '4': lib.del();break;
case '5': lib.sort();break;
case '6': flag = false;
}
}
exit(1);
}
Компилятор: Borland C++ v.3.1 DOS , я щитаю иво тяжело назвать полноценным С++
Цитата:
Originally posted by fir
Функцию удаления уже сделал! нуждаюсь очень срочно в сортировке!!!!
Компилятор: Borland C++ v.3.1 DOS , я щитаю иво тяжело назвать полноценным С++
Функцию удаления уже сделал! нуждаюсь очень срочно в сортировке!!!!
Компилятор: Borland C++ v.3.1 DOS , я щитаю иво тяжело назвать полноценным С++
Вот тебе пример сортировки массива строк:
Код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int sort_function( const void *a, const void *b);
char list[5][4] = { "cat", "car", "cab", "cap", "can" };
int main(void)
{
int x;
qsort((void *)list, 5, sizeof(list[0]), sort_function);
for (x = 0; x < 5; x++)
printf("%s\n", list[x]);
return 0;
}
int sort_function( const void *a, const void *b)
{
return( strcmp((char *)a,(char *)b) );
}
#include <stdlib.h>
#include <string.h>
int sort_function( const void *a, const void *b);
char list[5][4] = { "cat", "car", "cab", "cap", "can" };
int main(void)
{
int x;
qsort((void *)list, 5, sizeof(list[0]), sort_function);
for (x = 0; x < 5; x++)
printf("%s\n", list[x]);
return 0;
}
int sort_function( const void *a, const void *b)
{
return( strcmp((char *)a,(char *)b) );
}
мне бы поподробней ...