| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1615 人关注过本帖
标题:这个程序如何用VS2012编写?
只看楼主 加入收藏
shenggeyanwu
Rank: 2
等 级:论坛游民
帖 子:26
专家分:11
注 册:2017-1-25
结帖率:83.33%
收藏
已结贴  问题点数:10 回复次数:3 
这个程序如何用VS2012编写?
    编写一个程序,显示一个菜单,为您提供加法、减法、乘法或除法的选项。获得您
的选择后,该程序请求两个数,然后执行您选择的操作。该程序应该只接受它所提供的菜单
选项。它应该使用float类型的数,并且如果用户未能输入数字应允许其重新输入。在除法
的情况中,如果用户输入O作为第二个数,该程序应该提示用户输入一个新的值。一个典
型的程序运行应该如下所示?
Enter the operation of your choice:
a. add       s. subtract
m. multiply   d. divide
q. quic
a
Enter first number: 22.4
Enter second number: one
one is not an number.
Please enter a number, such as 2.5. -1.78E8, or 3. 1
22.4 + 1 = 23.4
Enter the operation of your choice:
a. add        s. subtract
m. multiply   d. divide
q. quit
d
Enter first number: 18.4
Enter second number: O
Enter a number other than 0: 0.2
18.4 / 0.2 = 92
Enter the operation of your choice:
a. add        s. subtract
m. multiply   d. divide
q. quit
q
Bye.
(注:加粗的字符和数字表示用户输入。)


[此贴子已经被作者于2017-4-12 22:24编辑过]

搜索更多相关主题的帖子: operation number choice Enter 
2017-04-12 22:04
shenggeyanwu
Rank: 2
等 级:论坛游民
帖 子:26
专家分:11
注 册:2017-1-25
收藏
得分:0 
回复 楼主 shenggeyanwu
求大神帮下忙!
2017-04-15 18:41
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:7 
这题不是简单到近乎无聊的地步吗?

后面的自己写吧,就是这样。

switch( ch )
{
    case '+':
            scanf("%lf%lf", &a, &b );
            printf( "%lf + %lf = %lf",a, b, a + b );
            break;
}

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-04-15 19:00
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
差不多就这样了。
也许有BUG,也许没有,懒得调。

程序代码:
#include <stdio.h>

void
Menu( void );
char
Option( void );
void
GetNumber(  float *f, char ch );


int
main( void )
{
    float first, second;
    char ch;

    while( Menu(), 'q' != ( ch = Option() ) ) 
    {
        if( 'a' == ch || 's' == ch || 'm' == ch || 'd' == ch )
        {
            GetNumber( &first, ch );
            GetNumber( &second, ch );
        }
        switch( ch )
        {
            case 'a':
                printf( "%f + %f = %f\n", first, second, first + second );
                break;
            case 's':
                printf( "%f - %f = %f\n", first, second, first - second );
                break;
            case 'm':
                printf( "%f * %f = %f\n", first, second, first * second );
                break;
            case 'd':
                printf( "%f / %f = %f\n", first, second, first / second );
                break;
            default:
                break;
        }
    }
    printf( "Bye!\n" );
    return 0;
}


void
Menu( void )
{
    printf( "Enter the operation of your choice:\n"
         "a. add\ts. subtract\n"
         "m. multiply\td. divide\n"
         "q. quic\n" );
}

char
Option( void )
{
    char ch;

    ch = getchar();
    while( '\n' != getchar() )
        ;
    return ch;
}

void
GetNumber( float *f, char ch )
{
    static int Sign;
    char c;


    if( !( Sign % 2 ) )
    {
        printf( "Enter first number:" );
        ++Sign;
    }
    else
    {
        printf( "Enter second number:" );
        ++Sign;
    }

Zero:
    while( 1 != scanf( "%f", f ) )
    {
        while( '\n' != ( c = getchar() ) )
            printf( "%c", c );
        printf( " is not an number.\n" );
        printf( "Please enter a number, such as 2.5. -1.78E8, or 3. 1\n" );
        
    }
    getchar();
    if( 'd' == ch && !(Sign % 2) && 0.000001 > *f && -0.000001 < *f )
    {
        printf( "Enter a number other than 0:" );
        goto Zero;
    }
}



[此贴子已经被作者于2017-4-17 00:09编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-04-16 23:54
快速回复:这个程序如何用VS2012编写?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018006 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved