Форум программистов, компьютерный форум CyberForum.ru

Меню к программе - C++

Восстановить пароль Регистрация
 
Rom@
22 / 31 / 3
Регистрация: 29.11.2009
Сообщений: 210
02.06.2010, 14:51     Меню к программе #1
кто может помочь сделать меню к програмке(строковый калькулятор) типа
1: ввести выражение
2: запись в файл
3: вивести из файла
4: конец
большая просьба помочь!!!!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <string.h>
#include <math.h>
#include <ctype.h>
#include <assert.h>
#include <conio.h>
#include <stdio.h>
 
int tok;
double tokval;
 
int next() {
    for (;;) {
        int c = getchar();
        if (c == EOF || strchr("+-*/^()\n", c) != NULL) return tok = c;
        if (isspace(c)) continue;
        if (isdigit(c) || c == '.') {
            ungetc(c, stdin);
            scanf(" %lf", &tokval);
            return tok = 'n';
        }
        fprintf(stderr, "Bad character: %c\n", c); 
    }
}
 
void skip(int t) { assert(tok == t); next(); }
 
double expr();
 
 
double numpar() {
    if (tok == 'n') { double x = tokval; skip('n'); return x; }
    skip('('); double x = expr(); skip(')'); return x;
}
 
 
double factor() {
    double x = numpar();
    if (tok == '^') { skip('^'); x = pow(x, factor()); }
    return x;
}
 
 
double term() {
    double x = factor();
    for (;;) {
        if (tok == '*') { skip('*'); x *= factor(); }
        else if (tok == '/') { skip('/'); x /= factor(); }
        else return x;
    }
}
 
 
double expr() {
    double x = term();
    for (;;) {
        if (tok == '+') { skip('+'); x += term(); }
        else if (tok == '-') { skip('-'); x -= term(); }
        else return x;
    }
}
 
int main() {
    next();
    while (tok != EOF) {
        if (tok == '\n') { skip('\n'); continue; }
        printf("%.9g\n", expr());
    }
    getch();
        return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rom@
22 / 31 / 3
Регистрация: 29.11.2009
Сообщений: 210
03.06.2010, 18:24  [ТС]     Меню к программе #2
или хотя б сделать так чтоб результат можно было записать в файл
Aaxenon
Light Knight
 Аватар для Aaxenon
106 / 29 / 3
Регистрация: 03.06.2010
Сообщений: 361
03.06.2010, 18:30     Меню к программе #3
Вопрос о цикличности

почитай эту тему, если не поможет, пиши
Stas96
 Аватар для Stas96
34 / 34 / 3
Регистрация: 31.08.2009
Сообщений: 116
03.06.2010, 18:41     Меню к программе #4
Я ниже привел как можно сделать меню:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
int dp;
cout << "1. " <<endl;
cout << "2." << endl;
cout << "3." <<endl;
cout << "4. "<< endl;
cin >> dp;
switch(dp)
{
case 1:
код
break;
 
case 2:
код
break;
 
case 3:
код
break;
 
case 4:
код
break;
}
Aaxenon
Light Knight
 Аватар для Aaxenon
106 / 29 / 3
Регистрация: 03.06.2010
Сообщений: 361
03.06.2010, 18:43     Меню к программе #5
именно это описано в той теме, с разными возможными ошибками
Rom@
22 / 31 / 3
Регистрация: 29.11.2009
Сообщений: 210
03.06.2010, 18:50  [ТС]     Меню к программе #6
Цитата Сообщение от RoY_Mu$T@nG Посмотреть сообщение
именно это описано в той теме, с разными возможными ошибками
да и я никак точно не могу роздуплить как рабоет етот код
Aaxenon
Light Knight
 Аватар для Aaxenon
106 / 29 / 3
Регистрация: 03.06.2010
Сообщений: 361
03.06.2010, 18:55     Меню к программе #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
int main()
{
 phone numb[75], numbn[75];
 char next;
 char number[15];
 int i, c;
 do
 {
 cout << "1.Add contact, 2.Search contact, 3.Exit" << endl;
 cin >> c;
 switch (c)
 {
 case 1:
     {
 ofstream fileout("file.txt", fstream::in | fstream::out | fstream::app);
 if(!fileout)
 {
 cerr << "Error: opening file" << endl;
 return 1;
 }
 for(i=0;i<1;i++)
 {
 cout << "Enter firstname, lastname, middlename, number" << endl;
 cin >> numb[i];
 fileout << numb[i];
 }
 break;
     }
 case 2:
 cout << "Enter number of the contact:";
 cin >> number;
 ifstream filein("file.txt");
 if(!filein)
 {
  cerr << "Error: opening file";
  return 2;
 }
 i=0;
 while(1)
 {
  filein >> numbn[i];
  if(!strcmp(numbn[i].number, number))
  {
  cout << numbn[i];
  break;
  }
  next=filein.peek();
  if(next==EOF)break;
  i++;
 }
 break;
 }
 }
 while(c !=3);
 return 0;
}
вот кусок моей программы, т.е.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
do
{
cin >> c;
switch(c)
{
case 1:  //с = 1
{
действия; break;
}
case 2: //с = 2
{
действия; break;
}
case 3: //с = 3
{
действия; break;
}
}
while(c !=0) //0 в данном случае exit
Rom@
22 / 31 / 3
Регистрация: 29.11.2009
Сообщений: 210
03.06.2010, 19:36  [ТС]     Меню к программе #8
RoY_Mu$T@nG, а куда надо вставить код а то у меня не получается
Aaxenon
Light Knight
 Аватар для Aaxenon
106 / 29 / 3
Регистрация: 03.06.2010
Сообщений: 361
03.06.2010, 19:40     Меню к программе #9
ну смотри
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
int main()
{
объявление переменных тут и бла бла бла
do
{
cin >> c;
switch(c)
{
case 1:  //с = 1
{
ввод выражения; break;
}
case 2: //с = 2
{
запись в файл; break;
}
case 3: //с = 3
{
вывод из файла; break;
}
}
while(c !=4) //4 в данном случае exit, т.е. конец
return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2010, 23:01     Меню к программе
Еще ссылки по теме:

нужно составить меню к программе C++
C++ Отправка параметров программе из контекстного меню проводника
C++ Меню в программе - бесконечный loop

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Rom@
22 / 31 / 3
Регистрация: 29.11.2009
Сообщений: 210
03.06.2010, 23:01  [ТС]     Меню к программе #10
может у кого-то еще есть програмка строковый калькулятор но не очень сложный и с операциями + - * / ^
заранее спасибо
Yandex
Объявления
03.06.2010, 23:01     Меню к программе
Ответ Создать тему
Опции темы

Текущее время: 02:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru