Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Классы в С

14K
18 декабря 2005 года
fir
8 / / 17.12.2005
Описать класс ДОМАШНЯЯ БИБЛИОТЕКА. Представить возможность работы с любым количеством книг, поиск книг за Автором, добавление, удаление книг и сортировка по году.

Собстенно не могу одолеть сортировку и удаление все остальное приважу:

MAIN.CPP
Код:
#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;
      }
}

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]
}


Пажалуста очень прошу помагите.
12K
20 декабря 2005 года
b1er
5 / / 19.07.2005
1. Классы есть в C++, а в C их нет.
2. С использованием goto в коде надо бороться.
3. А в чём, собсно говоря, проблема. Вариантов написание Del() много, но если выдерживать стиль, то это будет выглядеть так: удаляем n-ую строку путём смещения всего файла (начиная с n-й строки) на длину этой строки к началу. А можно загружать в память всю базу, а после изменения записывать обратно. А для Sort() можно поискать алгоритмы сортировки в инете.
Одним словом - Думай! :)
259
20 декабря 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Для сортировки можешь использовать функцию qsort() из библиотеки. Функция main должна выглядеть так:
Код:
#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);
}
14K
20 декабря 2005 года
fir
8 / / 17.12.2005
Функцию удаления уже сделал! нуждаюсь очень срочно в сортировке!!!!
Компилятор: Borland C++ v.3.1 DOS , я щитаю иво тяжело назвать полноценным С++
259
20 декабря 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by fir
Функцию удаления уже сделал! нуждаюсь очень срочно в сортировке!!!!
Компилятор: 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) );
}
14K
20 декабря 2005 года
fir
8 / / 17.12.2005
пасиба конешно но хелп юзать я тоже умею...
мне бы поподробней ...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог