鱼C论坛

 找回密码
 立即注册
查看: 2085|回复: 3

[已解决]C语言 编译器是DEV

[复制链接]
匿名鱼油
匿名鱼油  发表于 2022-11-30 10:23:53 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
题目二:摇摆鹅玩具系统
(一)情景描述
有一种摇摆鹅玩具,身上有三个按钮。按下中间按钮会开启或关闭玩具;按下左边按钮会播放故事,默认循环播放三个故事分别为“小猫钓鱼”、“龟兔赛跑”、“乌鸦喝水”;按下右边按钮时摇摆鹅就摇摆着走路循环唱“数鸭歌”。
(二)功能实现要求
实现情景描述中的功能;
(三)代码要求
1.程序有良好的人机交互界面设计;
2.程序整体书写规范,有注释,可读性好;
3.程序中循环需使用不同方式实现
最佳答案
2022-12-1 14:14:14
#include <stdio.h>

int open = 0; /*玩具是否开启*/
const char * stories[3] = {"小猫钓鱼", "龟兔赛跑", "乌鸦喝水"};
/*讲的故事*/

void open_close() { /*开或关*/
        if (open == 0) printf("已打开,欢迎使用!\n");
        else printf("已关闭,再见!\n");
        open = !open;
}

void tell_stories() { /*讲故事*/
        if (!open) {
                puts("错误!您没有打开玩具,请输入1打开!");
                return;
        }
        while (1) {
                for (int i = 0; i < 3; ++i) {
                        printf("正在播放:%s\n", stories[i]);
                        /*询问是否播放下一个故事*/
                        printf("是否播放下一个故事:%s?(1表示继续,0表示结束)", stories[(i + 1) % 3]);
                        int opt;
                        scanf("%d", &opt);
                        if (!opt) return; /*不想听了就退出*/
                }
        }
}

void sing() { /*唱歌*/
        if (!open) {
                puts("错误!您没有打开玩具,请输入1打开!");
                return;
        }
        while (1) {
                printf("正在播放:数鸭歌...\n");
                printf("是否继续播放?(1表示继续,0表示结束)");
                int opt;
                scanf("%d", &opt);
                if (!opt) return; /*不想听了就退出*/
        }
}

int main() {
        printf("欢迎使用摇摆鹅玩具系统!\n");
        while (1) {
                int opt;
                printf("输入1打开或关闭,输入2讲故事,输入3唱歌:");
                scanf("%d", &opt);
                switch (opt) {
                        case 1: open_close(); break;
                        case 2: tell_stories(); break;
                        case 3: sing(); break;
                        default: printf("请输入正确的指令!\n");
                }
        }
}
回复

使用道具 举报

发表于 2022-11-30 11:01:48 | 显示全部楼层
本帖最后由 tommyyu 于 2022-11-30 11:03 编辑

这个题目具体要求编写一个操纵玩具的程序,还是窗口程序,还是输入输出交互程序?如果是窗口程序或是输入输出交互程序,题目中所说播放音乐、来回走动应如何实现?如果是操纵玩具的程序,玩具具体是什么样子?有哪些操纵玩具的方法?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-30 13:51:16 | 显示全部楼层
输入输出就行,不用真的放歌,就是按下哪个按钮发生什么输出出来就好
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-1 14:14:14 | 显示全部楼层    本楼为最佳答案   
#include <stdio.h>

int open = 0; /*玩具是否开启*/
const char * stories[3] = {"小猫钓鱼", "龟兔赛跑", "乌鸦喝水"};
/*讲的故事*/

void open_close() { /*开或关*/
        if (open == 0) printf("已打开,欢迎使用!\n");
        else printf("已关闭,再见!\n");
        open = !open;
}

void tell_stories() { /*讲故事*/
        if (!open) {
                puts("错误!您没有打开玩具,请输入1打开!");
                return;
        }
        while (1) {
                for (int i = 0; i < 3; ++i) {
                        printf("正在播放:%s\n", stories[i]);
                        /*询问是否播放下一个故事*/
                        printf("是否播放下一个故事:%s?(1表示继续,0表示结束)", stories[(i + 1) % 3]);
                        int opt;
                        scanf("%d", &opt);
                        if (!opt) return; /*不想听了就退出*/
                }
        }
}

void sing() { /*唱歌*/
        if (!open) {
                puts("错误!您没有打开玩具,请输入1打开!");
                return;
        }
        while (1) {
                printf("正在播放:数鸭歌...\n");
                printf("是否继续播放?(1表示继续,0表示结束)");
                int opt;
                scanf("%d", &opt);
                if (!opt) return; /*不想听了就退出*/
        }
}

int main() {
        printf("欢迎使用摇摆鹅玩具系统!\n");
        while (1) {
                int opt;
                printf("输入1打开或关闭,输入2讲故事,输入3唱歌:");
                scanf("%d", &opt);
                switch (opt) {
                        case 1: open_close(); break;
                        case 2: tell_stories(); break;
                        case 3: sing(); break;
                        default: printf("请输入正确的指令!\n");
                }
        }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-10 18:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表