Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1] 2 3  Все   Вниз
  Печать  
Автор Тема: [C++] Помогите, ПОЖАЛУЙСТА, решить задачу!!!  (Прочитано 63908 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
LELECHKA
Участник

by
Offline Offline
Пол: Женский

« : 28-04-2010 17:48 » 

Написать программу учета продажи мебели .
Каждая запись содержит:
•   Покупатель.
•   Адрес покупателя
•   Наименование мебели
•   Модель мебели
•   Дата оформления договора
•   Дата исполнения договора

Программа должна обеспечивать выбор с помощью меню и выполнение  следующих функций:
─ Ввод информации
─ Удаление информации об исполненных договорах  за все даты, предшествующие заданной.
─ Просмотр информации в базе.
─ Вывод информации о неисполненных договорах. Информация упорядочена по дате оформления договора.
─ Вывод информации о  неисполненных договорах на определенную дату, по запросу. Информация отсортирована по наименованию мебели  и по покупателю.
 Внимание! Говорит и показывает...
Записан

Все можно познать, только не самого себя. (Стендаль)

Мудр не тот, кто знает много, а тот, чьи знания полезны. (Эсхил)

Победа над страхом придает нам силы. (Виктор Гюго)
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 28-04-2010 18:24 » 

Где?
Где?
Где?
Короче... Что не получается?
Чуть-чуть длиннее... Никто за тебя делать не будет, только направят на путь истинный.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #2 : 29-04-2010 05:09 » 

LELECHKA, а можно сразу адрес куда решение отправить? А то тебе ещё напрягаться.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
LELECHKA
Участник

by
Offline Offline
Пол: Женский

« Ответ #3 : 29-04-2010 17:11 » 

Вот, что я пока сделала:
Я не понимаю как сделать 2 пункта:
─ Вывод информации о неисполненных договорах. Информация упорядочена по дате оформления договора.
─ Вывод информации о  неисполненных договорах на определенную дату, по запросу. Информация отсортирована по наименованию мебели  и по покупателю.


Код:
#include <fstream.h>
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <iostream.h>
#include <math.h>
#include <iomanip.h>
#define MAX 100

struct Furniture
{
char Buyer [30];
char Addres_Buyer[30];
char Furniture_Name[30];
int Furniture_Model;
int Date_Registration;
int Date_Execution;
};// furniture;

int enterChoice();

void newFile (fstream&);
void viewFile (fstream&);
void deleteFile (fstream&);
void runFile  (fstream&);
void outputFile  (fstream&);

void main()
{
fstream My_base ("f:\\base.dat",ios::in | ios::out);
if (!My_base)
{
cerr<<"The file can't be opened!"<<endl;
return; //exit(1);
}

int choice;
while ((choice=enterChoice())!=5)
{
switch (choice)
{
case 1: newFile (My_base);
break;
case 2: viewFile  (My_base);
break;
case 3: deleteFile (My_base);
break;
case 4: runFile (My_base);
break;
case 5: outputFile (My_base);
break;
default:
cerr<<"Incorrect choice"<<endl;
break;
}

My_base.clear();
}
}

int enterChoice()
{
cout<<endl<<"Your choise:"<<endl
<<"1-newFile"<<endl
<<"2-viewFile"<<endl
<<"3-deleteFile"<<endl
<<"4-runFile"<<endl
<<"5-outputFile"<<endl
<<"6-the end of the work"<<endl<<"?";

int menuChoice;
cin>>menuChoice;
return menuChoice;
}

void newFile (ofstream &writeFromFile)
{
Furniture Furnitures[MAX];
int i;

ofstream NewFile("f:\\base.dat", ios::out);
if (!NewFile)
{
cerr<<"The file can't be opened!"<<endl;
return ;//exit(1);
}
cout<<"Buyer, Addres_Buyer,Furniture_Name,Furniture_Model,Date_Registration,Date_execution"<<endl
<<"Input FFF for the end"<<endl<<"?";

while (
cin>>
"Buyer">>Furnitures[i].Buyer>>
"Addres_Buyer">>Furnitures[i].Addres_Buyer>>
"Furniture_Name">>Furnitures[i].Furniture_Name>>
"Furniture_Model">>Furnitures[i].Furniture_Model>>
"Date_Registration">>Furnitures[i].Date_Registration>>
"Date_Execution">>Furnitures[i].Date_Execution
)
{
NewFile<<"Buyer"
<<Furnitures[i].Buyer<<' '<<"Addres_Buyer"
<<Furnitures[i].Addres_Buyer<<' '<<"Furniture_Name"
<<Furnitures[i].Furniture_Name<<' '<<"Furniture_Model"
<<Furnitures[i].Furniture_Model<<' '<<"Date_Registration"
<<Furnitures[i].Date_Registration<<' '<<"Date_Execution"
<<Furnitures[i].Date_Execution<<endl;
cout<<"?";
}

getch();
}

void viewFile (ifstream &readFromFile)
{
ifstream ViewFile ("f:\\furniture.txt", ios::out);
if (!ViewFile)
{
cerr<<"The file cannot be opened"<<endl;
return ;//exit(1);
}


//????
ViewFile<<setiosflags(ios::left)<<setw(6)<<"Buyer"
<<setw(16)<< "Addres_Buyer"<<setw(11)<<"Furniture_Name"
<<setiosflags(ios::right)<<setw(10)<<"Furniture_Model"
<<setw(10)<<"Date_Registration"<<setw(11)<<"Date_Execution"
<<endl;


readFromFile.seekg(0);

Furniture furnitur;
readFromFile.read((char*)&furnitur, sizeof(furnitur));
while (!readFromFile.eof())
{
if (furnitur.Buyer!=0)
outputLine(ViewFile, furnitur);
readFromFile.read((char*)&furnitur, sizeof(furnitur));
}
}

« Последнее редактирование: 29-04-2010 18:04 от Алексей1153++ » Записан

Все можно познать, только не самого себя. (Стендаль)

Мудр не тот, кто знает много, а тот, чьи знания полезны. (Эсхил)

Победа над страхом придает нам силы. (Виктор Гюго)
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #4 : 29-04-2010 17:19 » 

LELECHKA, cout<<"взрыв мозга"<< Отлично <<"Сорри, не удержался."
Записан

LELECHKA
Участник

by
Offline Offline
Пол: Женский

« Ответ #5 : 29-04-2010 17:33 » 

Я девушка и учусь к тому же  не на программиста!!!
У меня от этих задач уже голова пухнет!!!
Записан

Все можно познать, только не самого себя. (Стендаль)

Мудр не тот, кто знает много, а тот, чьи знания полезны. (Эсхил)

Победа над страхом придает нам силы. (Виктор Гюго)
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #6 : 29-04-2010 17:35 » 

LELECHKA, да никто не ругается же, только форматирование нечитабельное
Записан

Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 29-04-2010 17:36 » 

LELECHKA, Погоди, милая, дай почитать твои труды. "Моск кипит"
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
LELECHKA
Участник

by
Offline Offline
Пол: Женский

« Ответ #8 : 29-04-2010 17:39 » 

Вам смешно, а мне нет!
Плакать хочется
Записан

Все можно познать, только не самого себя. (Стендаль)

Мудр не тот, кто знает много, а тот, чьи знания полезны. (Эсхил)

Победа над страхом придает нам силы. (Виктор Гюго)
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 29-04-2010 17:39 » 

LELECHKA, А ты можешь показать, как ты сортируешь?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
LELECHKA
Участник

by
Offline Offline
Пол: Женский

« Ответ #10 : 29-04-2010 17:41 » 

Вот в том то и дело, что никак не сортирую
я не понимаю как это сделать!
Записан

Все можно познать, только не самого себя. (Стендаль)

Мудр не тот, кто знает много, а тот, чьи знания полезны. (Эсхил)

Победа над страхом придает нам силы. (Виктор Гюго)
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #11 : 29-04-2010 17:44 » 

LELECHKA, нам не смешно, поверь... Я переворматировал. Щас попробуй скомпилить - у меня подозрение, что это не скомпилируется
Записан

Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #12 : 29-04-2010 17:44 » 

Отсортируй пожалуйста по возрастанию

03.12.2009
01.01.2009
02.03.2010

И расскажи как ты это сделала. Только расскажи.
Берем первую дату, сравниваем с.... и так далее.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #13 : 29-04-2010 17:47 » 

Лёш, мог бы и причисать заодно. Там кстати с фигурными скобками всё в порядке? А то так получается вложеная ф-я.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #14 : 29-04-2010 17:55 » 

Джон, вот пытаюсь )

LELECHKA,
исправление №1      return; //exit(1);

дальше (как Джон уже сказал) у тебя вложенная функция, но как разделить, это неочевидно, вот я сделал так, посмотри свой код вверху снова
Записан

LELECHKA
Участник

by
Offline Offline
Пол: Женский

« Ответ #15 : 29-04-2010 17:56 » new

Может вы думаете, что я совсем глупая
я понимаю, как сортировать, я не знаю как это записать!

Записан

Все можно познать, только не самого себя. (Стендаль)

Мудр не тот, кто знает много, а тот, чьи знания полезны. (Эсхил)

Победа над страхом придает нам силы. (Виктор Гюго)
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #16 : 29-04-2010 17:58 » 

вот тут что имеется в виду ? Это не скомпилируется - у ViewFile нет оператора <<
Код:
	ViewFile<<setiosflags(ios::left)<<setw(6)<<"Buyer"
<<setw(16)<< "Addres_Buyer"<<setw(11)<<"Furniture_Name"
<<setiosflags(ios::right)<<setw(10)<<"Furniture_Model"
<<setw(10)<<"Date_Registration"<<setw(11)<<"Date_Execution"
<<endl;

Записан

LELECHKA
Участник

by
Offline Offline
Пол: Женский

« Ответ #17 : 29-04-2010 18:04 » 

просматривает содержимое файла
Записан

Все можно познать, только не самого себя. (Стендаль)

Мудр не тот, кто знает много, а тот, чьи знания полезны. (Эсхил)

Победа над страхом придает нам силы. (Виктор Гюго)
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #18 : 29-04-2010 18:04 » 

LELECHKA,

struct Furniture
{
...
} furniture; - так делать не надо. Потом переменную объявим.



------------------
Furniture furnitur;

if (Furniture.Buyer!=0)

регистр в C++ имеет значение - переменная у тебя начинаеться с маленькой буквы. А с большой - это у тебя класс

---------
нет определения функции outputLine

----------
я снова код в верхнем посте подправил - дальше твой ход Улыбаюсь
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #19 : 29-04-2010 18:06 » 

просматривает содержимое файла

ещё учитывай, что я не знаю, что такое ifstream  (не шучу!)
Записан

Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #20 : 29-04-2010 18:12 » 

Может вы думаете, что я совсем глупая
я понимаю, как сортировать, я не знаю как это записать!


Не т, мы так не думаем, но если ты напишешь словами, то напишешь и код.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #21 : 29-04-2010 18:16 » 

LELECHKA, давай в чат https://forum.shelek.ru/channels/index.php
а код будем писать в этой теме
Записан

LELECHKA
Участник

by
Offline Offline
Пол: Женский

« Ответ #22 : 29-04-2010 18:22 » 

outputLine- должно прописываться как отдельная функция(она входит в меню: void outputLine..., которая выводит строку с информацией о покупателе,
я ее еще не прописывала
уже сил нет и голова не соображает!
ifstream-предназначен для ввода из файла т.е. открывает файл для считывания
Записан

Все можно познать, только не самого себя. (Стендаль)

Мудр не тот, кто знает много, а тот, чьи знания полезны. (Эсхил)

Победа над страхом придает нам силы. (Виктор Гюго)
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #23 : 29-04-2010 18:48 » 

Цитата
(00:43:37) Sla: тут еще поле непаханое
(00:44:22) Алексей1153++: Sla, завтра пахать будет ))
(00:44:25) Sla: LELECHKA, Информация упорядочена по дате оформления договора.
Если это вынести в отделную функцию
(00:44:35) Sla: то все упроститься
(00:45:18) Sla: и все действия в отдельные функции
(00:45:51) Sla: ─ Ввод информации
─ Удаление информации об исполненных договорах за все даты, предшествующие заданной.
─ Просмотр информации в базе.
─ Вывод информации о неисполненных договорах. Информация упорядочена по дате оформления договора.
─ Вывод информации о неисполненных договорах на определенную дату, по запросу. Информация отсортирована по наименованию мебели и по покупателю.
(00:46:14) Sla: это вес функции
(00:46:24) Sla: Можно поставить заглушки
(00:46:48) Sla: в каждой функции написать - Функция такая-то
(00:46:58) Алексей1153++: Sla, она ушла, щас в тему перекину мессаги
(00:47:03) Sla: Это нужно для твоего "интерфеса"
(00:47:18) Sla: Ух!!!
(00:47:26) Sla: яа я тут напрягаюсь
(00:47:43) Sla: Алексей1153++, надо было чат открывать в теме
(00:47:56) Алексей1153++: Sla, так сохраню )
Записан

LELECHKA
Участник

by
Offline Offline
Пол: Женский

« Ответ #24 : 30-04-2010 17:21 » 

Программу надо здать уже в следующую пятницу, у меня паника!
Ничего не получается, мне кажется, что это все полный бред!


Я попробовала кое-что исправить и дописать, посмотрите, пожалуйста!

Код:
#include <fstream.h>
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <iostream.h>
#include <math.h>
#include <iomanip.h>
#define MAX 100
#include <stdlib.h>

struct Furniture
{int Num_Buyer;
 char Addres_Buyer[30];
 char Furniture_Name[30];
 int Furniture_Model;
 int Date_Registration;
 int Date_Execution;
 };

 int enterChoice();

 void newFile (fstream&);
 void addFile (fstream&);
 void viewFile (ostream&);
 void deleteFile (fstream&);
 void runFile  (fstream&);
 void outputFile  (fstream&);
 void outputLine(ostream&, Furniture);


void main()
{
fstream My_base ("f:\\base.dat",ios::in | ios::out);
if (!My_base)  { cerr<<"The file can't be opened!"<<endl;
exit(1);
}
int choice;
while ((choice=enterChoice())!=6)
{ switch (choice)
 { case 1: newFile (My_base);
   break;
   case 2: addFile  (My_base);
   break;
   case 3: viewFile (My_base);
   break;
   case 4: deleteFile (My_base);
   break;
   case 5: runFile (My_base);
   case 6: outputFile (My_base);
   break;
   default:
     cerr<<"Incorrect choice"<<endl;
break;
}

My_base.clear();
}}

int enterChoice()
{  cout<<endl<<"Your choise:"<<endl
  <<"1-newFile"<<endl
  <<"2-addFile"<<endl
  <<"3-viewFile"<<endl
  <<"4-deleteFile"<<endl
  <<"5-runFile"<<endl
  <<"6-outputFile"<<endl
       <<"6-the end of the work"<<endl<<"?";
int menuChoice;
cin>>menuChoice;
return menuChoice;
}


void newFile (ofstream &writeFromFile)
{
ofstream My_base("f:\\base.dat", ios::out);
if (!My_base)  {
         cerr<<"The file can't be opened!"<<endl;
exit(1);
}

Furniture blankFurniture={0," "," ",0,0,0};
for( int i=1; i<=100; i++)
My_base.write((char*)&blankFurniture, sizeof(blankFurniture));
}



void addFile (ofstream &writeFromFile)
{
ofstream My_base("f:\\base.dat", ios::ate);
if (!My_base) {
cerr<<"The file can't be opened!"<<endl;
exit(1);
}
cout<<"Input the number of the buyer"
<<"(from 1 to 100, 0 - the end of input)"<<endl<<"?";
Furniture furniture;
cin>>furniture.Num_Buyer;
while(furniture.Num_Buyer>0 && furniture.Num_Buyer<=100)
{
cout<<"Input Addres_Buyer, Furniture_Name, Furniture_Model, Date_Registration, Date_Execution"
<<endl<<"?";
cin>>furniture.Addres_Buyer>>furniture.Furniture_Name
   >>furniture.Furniture_Model>>furniture.Date_Registration
   >>furniture.Date_Execution;

My_base.seekp((furniture.Num_Buyer-1)*sizeof(furniture));

My_base.write((char*)&furniture, sizeof(furniture));
cout<<"Input the number of the buyer"
<<"(from 1 to 100, 0 - the end of input)"<<endl<<"?";
cin>>furniture.Num_Buyer;
}
}



void viewFile (ostream&, Furniture);
void main()
{   ifstream My_base("f:\\base.dat", ios::in);
if (!My_base)
{
cerr<<"The file cannot be opened"<<endl;
exit(1);
}
cout<<setiosflags(ios::left)<<setw(6)<<"Buyer"
        <<setw(16)<< "Addres_Buyer"<<setw(11)<<"Furniture_Name"
        <<setiosflags(ios::right)<<setw(10)<<"Furniture_Model"
        <<setw(10)<<"Date_Registration"<<setw(11)<<"Date_Execution"
        <<endl;

Furniture furniture;

My_base.read((char*)&furniture, sizeof(furniture));

while (!My_base.eof())
{
if (furniture.Num_Buyer!=0)
   outputLine(cout, furniture);
   My_base.read((char*)&furniture, sizeof(furniture));
}
}


void outputLine(ostream &output, Furniture f)
{
output<<setiosflags(ios::left)<<setw(6)<<f.Num_Buyer
      <<setw(16)<<f.Addres_Buyer<<setw(11)<<f.Furniture_Name
      <<setw(10)<<setprecision(5)
      <<setiosflags(ios::showpoint | ios::right)
      <<f.Furniture_Model<<setw(10)<<f.Date_Registration
      <<setw(10)<<f.Date_Execution<<endl;
}


void deleteFile(fstream &deleteFromFile)
{  int d=0;
int i;
int k=0;
int r=0;
cout<<"Input the date:";
cin>>d;

Furniture furniture;

deleteFromFile.seekg((d-1)*sizeof(furniture));

deleteFromFile.read((char*)&furniture, sizeof(furniture));

if (furniture.Num_Buyer!=0)    {
  Furniture blankFurniture={0," "," ",0,0,0};

deleteFromFile.seekp((d-1)*sizeof(furniture));
deleteFromFile.write((char*)&blankFurniture, sizeof(furniture));
}
for (i=0;i<k;i++) {
if (furniture.Date_Execution<d) {
r=r+1;
}}
if   (r==0)
cout<<" Information was delete"<<endl;
}
« Последнее редактирование: 13-05-2010 18:35 от Sla » Записан

Все можно познать, только не самого себя. (Стендаль)

Мудр не тот, кто знает много, а тот, чьи знания полезны. (Эсхил)

Победа над страхом придает нам силы. (Виктор Гюго)
LELECHKA
Участник

by
Offline Offline
Пол: Женский

« Ответ #25 : 30-04-2010 17:31 » 

Алексей1153++, вы здесь?
Записан

Все можно познать, только не самого себя. (Стендаль)

Мудр не тот, кто знает много, а тот, чьи знания полезны. (Эсхил)

Победа над страхом придает нам силы. (Виктор Гюго)
LELECHKA
Участник

by
Offline Offline
Пол: Женский

« Ответ #26 : 30-04-2010 17:38 » 

Алексей1153++, с сортировкой я так и не разобралась, хоть убейте меня!!! темный лес
Записан

Все можно познать, только не самого себя. (Стендаль)

Мудр не тот, кто знает много, а тот, чьи знания полезны. (Эсхил)

Победа над страхом придает нам силы. (Виктор Гюго)
LELECHKA
Участник

by
Offline Offline
Пол: Женский

« Ответ #27 : 30-04-2010 17:55 » 

Алексей1153++, Программа не компилируется, не понятно, что с этим viewFile?
Записан

Все можно познать, только не самого себя. (Стендаль)

Мудр не тот, кто знает много, а тот, чьи знания полезны. (Эсхил)

Победа над страхом придает нам силы. (Виктор Гюго)
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #28 : 01-05-2010 11:52 » 

Цитата: LELECHKA
Программу надо здать уже в следующую пятницу, у меня паника!
У! Тут были и такие, которые писали "сижу прямо на контрольной" - вот это паника, а у тебя ещё вагон времени на решение задачи, которую можно написать за 1 час.

Заниматься сортировкой тебе ещё рано. По той простой причине, что программа даже не соберётся. Есть одно простое правило: на всякую открывающую скобку должна быть закрывающая скобка. Чтобы не запутаться, программисты обычно их пишут сразу обе, а потом между ними пишут то, что хотят.

Например, если ты пишешь обращение к массиву, ты это делает в 2 этапа:
1) В начале пишешь обе скобки:
Код:
a[]
2) Потом внутри них то, что нужно, например:
Код:
a[i * n + j]

Если ты пишешь вызов функции, то тоже в 2 этапа:
1) Сначала саму функцию со скобками, и сразу же точку с запятой, чтобы не забыть:
Код:
f();
2) Потом добавляешь нужные параметры:
Код:
f(x, y, z, v, w, r, s, t, p, q);

Если ты пишешь любую управляющую конструкцию с фигурными скобками, ты их пишешь сразу, причём выравниваешь в столбик, чтобы одна скобка была под другой - так хорошо видно, какая скобка какой соответствует.
1) Сначала конструкция, например:
Код:
while()
{
}
2) И только потом содержание; если в содержании есть другая конструкция, то с ней поступать точно также, но всё, что находится внутри скобок и занимает много строк, лучше делать с отступом, чтобы не видеть, какой код внутри, а какой снаружи:
Код:
while(choice != 6)
{
   switch(choice)
   {
   }
}
3) Если ты пишешь другие конструкции, в которых в начале и конце что-то должно быть, то пишешь конец сразу:
Код:
while(choice != 6)
{
   switch(choice)
   {
      case 1:
         break;
      default:
         break;
   }
}
4) Так у тебя получается правильный каркас кода, который всегда можно собрать и проверить, что он написан правильно, и только потом пытаться в него что-то добавлять, не портя уже написанное.
Код:
choice = 0;
while(choice != 6)
{
   choice = enterChoice();
   switch(choice)
   {
      case 1:
         newFile();
         break;
      default:
         break;
   }
}
И т.д.

Наконец, если ты работаешь с ресурсами, то, написав строчку, которая забирает ресурс, сразу пиши строчку, которая его освобождает, а всю полезную работу - между этими действиями.

Например, работа с файлом.
1) Если написано открытие файла - появляется myFile, то нужно сразу написать и закрытие.
Код:
ofstream myFile("test.dat", ios::out);
myFile.close();
2) Учитывая, что при открытии файла может быть ошибка, нужно сделать так, чтобы всё, что работает с файлом (включая его закрытие), работало лишь тогда, когда он успешно открыт:
Код:
ofstream myFile("test.dat", ios::out);
if(myFile)
{
   // Сюда писать код работы с файлом.
   myFile.close();
}
И только теперь вместо комментария писать код.

Например, работа с памятью. Если выделять память, то тут же её и освобождать:
Код:
Furniture *myRecord = new Furniture();
// Сюда писать код работы с записью.
delete myRecord;
И только потом вместо комментария писать код работы с записью.


Если ты будешь следовать этим простым правилам, то сразу избавишься от кучи ошибок и увидишь свет в конце тоннеля. И не используй exit и return в середине функций. Потому что они завершают работу функции, и ты сама запутаешься разбираться, всё ли правильно отработало внутри функции или нет. Начинающим программистам использование таких вещей крайне не рекомендуется. Без return, конечно, не обойтись, если пишут функцию, но делай так, чтобы return внутри функции был один и находился в самой последней строке функции перед закрывающей скобкой.

Пока что проверь свой код: везде ли для открывающих скобок стоят закрывающие. Чтобы это было удобнее делать - выровняй скобки и сделай отступы, как я выше показал. Результаты выложи сюда.
« Последнее редактирование: 01-05-2010 11:58 от Dimka » Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
LELECHKA
Участник

by
Offline Offline
Пол: Женский

« Ответ #29 : 01-05-2010 17:16 » 

Dimka, СПАСИБО, просто очень сложно разбираться одной, когда не дают материала и ничего не объясняют!
Записан

Все можно познать, только не самого себя. (Стендаль)

Мудр не тот, кто знает много, а тот, чьи знания полезны. (Эсхил)

Победа над страхом придает нам силы. (Виктор Гюго)
Страниц: [1] 2 3  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines