Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++]Работа с switch..case..запись результатов в т 
:(
    Опции темы
EVSpip
Дата 13.11.2007, 23:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 12.11.2007

Репутация: нет
Всего: нет



Что ж передо мной стоит задача номер 2а выполнить код так чтобы результат вычислений был еще записан в txt файл.Описание ошибок которые мне надо править под кодом.
Код
#include<iostream>
#include<cmath>
using namespace std;
void main()
{
    char key;   
    cout<<"viberite neobxodimoe deystvie \n";
    cout<<" nagmite 1 dla resheniya kvadratnogo uravneniya \n";
    cout<<" nagmite 2 dla resheniya sistemy x=at-dsint\n";
    cout<<"                                 y=a-dcost\n"; 
    cout<<" nagmite 3 dla vixoda \n";
    cin>>key;
    int exit=0;
   do
        switch (key)
        {
            case '1':
                float a,b,c,d;
                double x1,x2;
                char key;
                do
                {
                cout<<"vvedite a=";
                cin>>a;
                cout<<"vvedite b=";
                cin>>b;
                cout<<"vvedite c=";
                cin>>c;
                    d=b*b-4*a*c;
                    if(a==0 && b==0 && c==0)
                    {
                    cout<<"x=luboe 4islo  \n";
                    }
                    else if(a==0&&b!=0&&c!=0)
                        {
                        x1=-c/b;
                            cout<<"x= "<<x1 << "\n";
                        }
                    else if (a!=0&&b==0&&c!=0)
                        if(c<0&&a>0||c>0&&a<0)
                        {
                            x1=sqrt(-c/a);
                            x2=-sqrt(-c/a);
                            cout<<"x1="<<x1 << "\n";
                            cout<<"x2="<<x2 << "\n";
                        }
                        else    
                            {
                                cout<<"net resheniya,povtorite vvod \n";
                                continue;
                            }
                                                              
                    else    if(c==0)
                            {
                              x1=-b/a;
                                cout<<"x1=0 \n"<<"x2= "<<x1 <<"\n";
                            }
                    if(c!=0 && a!=0 && b!=0)
                    {
                        if(d<0)
                        {
                            cout<<"d="<<d<<"\n";
                            cout<<"d=otricatelen"<<"\n";
                            cout<<"net resheniya,povtorite vvod \n";
                                                     continue;
                        }
                        else if(d==0)
                        {
                            cout<<"d="<<d<<"\n";
                            x1=-b/(2*a);
                            cout<<"x= "<<x1<<"\n" ;
                        }
                 else    if(d>0)
                        {
                            cout<<"d="<<d<<"\n";
                            x1=(-b+sqrt(d))/(2*a);
                            x2=(-b-sqrt(d))/(2*a);
                            cout<<"x1="<<x1<<"\n";
                            cout<<"x2="<<x2<<"\n";
                            }                                                
                                        }
                cout<<"vixod?[y/n] \n";
                cin>>key;
                } 
                while (key!='y');
               
                break;
        
            case '2':
                { char kv;
                    int t0[10],t1[10];
                    double x[10],y[10];
                    int a,d,n,i,j;
                    FILE *fp;
                    do
                    { 
                        fp=fopen("rez.txt.","w");
                          if (!fp)
                          {
                              printf("Error\n");
                          }
                          else
                          {
                              printf("Idet zapis'\n");
                              cout<<"\n"<<"Reshenie systemi:\n"<<"\n"
                                  <<"x=a*t0-d*sint0\n"<<"y=a-d*cost1\n"
                                  <<"\n"
                                  <<"\n"

                                <<"vvedite a=\n";
                                       cin>>a; 
                                cout<<"vvedite d=\n";
                                       cin>>d;
                                cout <<"vvedite n=\n";
                                       cin>>n; 
                                cout<<"vvedite n zna4eniy t0:";
                                    for (int i=0;i<n;++i)

                                    {
                                        cin>>t0[i];
                                    }
                                         
                                    cout<<"vvedite n zna4eniy t1:";
                                    for (int j=0;j<n;++j)
                                        
                                        int t0[10];
                                        {
                                            cin>>t1[j];
                                        }
                                        {for (int i=0;i<n;++i)
                                         {
                                             x[i]=((a*t0[i])-(d*sin(t0[i])));
                                            cout<<"x["<<i<<"]="<<x[i]<<"\n";
                                            fprintf(fp,"x%i=%f\n",i,x[i]);
                                        }}
                                    
                                        {for (int j=0;j<n;++j)
                                        {   
                                           y[j]=(a-(d*cos(t1[j])));
                                           cout<<"y["<<j<<"]="<<y[j]<<"\n";
                                           fprintf(fp,"y%i=%f\n",j,y[j]);
                                        }}
                                        fclose(fp);
                                        if (fclose(fp)!=EOF)
                                        {
                                            printf("Error");
                                        }
                    }
                          cout<<"prodolgit'?[y/n]\n";
                          cin>>kv;
                    }
                    while(kv=='y');
                break;
                }
                     
                
                
            case '3':
                cout<<"vixod";
                return;
            default:
                cout<<"4itaem menu vnimatel'no";
                
                return;
                
        }
}

Однако есть следующий ошибки
Если выбран блок меню 1 то после правильного выполнения уравнения должно выкидывать на меню,у меня программа вообще закрывается...
При выполнении 2го пункта читает нужное количество X а Y тока первое
В файл вообще не записывает,необходимо записывание которое будет не обнулять а дописывать новые значения.
Из пункта 2 вообще не выходит никуда.Нужно обратно на меню.
Пробнул исправить потерял скобку.((
Default должен выводить на меню у меня же просто закрывает

Укажите на места где у меня ошибки и как их можно вылечить)
PM MAIL   Вверх
zkv
Дата 14.11.2007, 00:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 21
Всего: 92



EVSpip, лучший совет - лучше структурируй код. 
И сам лучше понимать начнешь и окружающим легче разбирать станет.
А портянка из 150 строк, из одного свитча ну очень плохо воспринимается, попробуй ограничить себя ~ строк 20 на функцию.
Это конечно не ответ на твой вопрос, но это способ вылечить болезнь а не бороться с симптомами.  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0452 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.