zoukankan      html  css  js  c++  java
  • C语言寒假大作战03

    这个作业属于哪个课程 2019级计算机1班 (中南林业科技大学涉外学院)
    这个作业要求在哪里 C语言寒假大作战03作业要求
    这个作业的目标 使用上次作业的菜单框架,并在其基础上增加各年级题目操作函数,熟悉随机数的操作
    作业正文 C语言寒假大作战03
    其他参考文献 翁恺老师C语言猜数游戏随机数rand

    3.1 设计思路和遇到的问题

    心路历程:我之前以为这个会很简单然鹅打脸来的太快,虽然它的操作的确是很简单,但是哈了吧唧的我一直想搞明白到底随机数它到底是个什么玩意儿,看了好多好多资料,历史记录占了一页。最后我在B站上面找到了翁恺老师的“猜数游戏”讲解,老师说,现在还不用太在意这到底是什么,只需要知道怎么做就行了,于是听话的我就照做,最后一下就搞定了。o( ̄▽ ̄)d
    程序设计思路:头文件那里加上stdlib.h和time.h,还有我的自定义函数的开始都加上srand ((unsigned)time(NULL)),直接调用函数rand就成啦!关于整体的思路,就是用循环和if-else判定。一个萝卜一个坑,一个循环一道题,反正就是通过循环把题目打印出来。遇见的难题倒是有一个,三年级的题目那里,因为我用的continue会直接跳出循环,然后最后的打印结果总是少于10.我就把i++放到了printf函数的后面,这样打印出来的就绝对是十道题目啦。

    3.2 程序结果截图




    3.3 程序代码

    #include<stdio.h>
    #include<stdlib.h>
    #include<time.h>
    void help (void)
    {
    	printf ("帮助信息:
    ");
    	printf ("您需要输入命令代号来进行操作,且
    ");
    	printf ("一年级题目为不超过十位的加减法:
    ");
    printf ("二年级题目为不超过百位的乘除法:
    ");
    printf ("三年级题目为不超过百位的加减乘除混合题目.
    ");
    printf ("
    ");
    }
    
    void menu (void)
    {
    printf ("操作列表:
    ");
    printf ("1)一年级    2)二年级    3)三年级
    ");
    printf ("4)帮助      5)退出程序
    ");
    printf ("请输入操作> ");
    }
    
    void execute (void)
    {
    printf ("< 执行操作 :)
    ");
    printf ("
    ");
    }
    
    void error (void)
    {
    printf ("Error!!!
    ");
    printf ("错误操作指令,请重新输入
    ");
    printf ("
    ");
    }
    
    int grade1 ()
    {
    int i, a;
    char op;
    srand((unsigned)time(NULL));
    printf ("现在是一年级题目:
    ");
    printf ("请输入生成个数> ");
    scanf ("%d", &a);
    for (i=1;i<=a;i++)
    {
    	int x, y;
    	
    	x=rand();
    	y=rand();
    	op=rand();
    	while (x>=10)
    	{
    		x=x/10;
    	}
    	while (y>=10)
    	{
    		y=y/10;
    	}
    	if (op>45)
    	{
    		while (op!=45)
    		{
    			op--;
    		}
    	}
    	else
    	{
    		while (op!=43)
    		{
    			op++;
    		}
    	}
    	printf ("%d %c %d = ___
    ", x, op, y);
    }
    printf ("执行完了
    
    ");
    }
    
    int grade2 ()
    {
    int i, a;
    char op;
    srand((unsigned)time(NULL));
    printf ("现在是二年级题目:
    ");
    printf ("请输入生成个数> ");
    scanf ("%d", &a);
    for (i=1;i<=a;i++)
    {
    	int x, y;
    	
    	x=rand();
    	y=rand();
    	op=rand();
    	while (x>=100)
    	{
    		x=x/10;
    	}
    	while (y>=100)
    	{
    		y=y/10;
    	}
    	if (op>47)
    	{
    		while (op!=47)
    		{
    			op--;
    		}
    	}
    	else
    	{
    		while (op!=42)
    		{
    			op++;
    		}
    	}
    	printf ("%d %c %d = ___
    ", x, op, y);
    }
    printf ("执行完了
    
    ");
    }
    
    int grade3 ()
    {
    int i, a;
    srand((unsigned)time(NULL));
    printf ("现在是三年级题目:
    ");
    printf ("请输入生成个数> ");
    scanf ("%d", &a);
    for (i=1;i<=a;)
    {
    	int x, y, z;
    	char op1, op2;
    	x=rand();
    	y=rand();
    	z=rand();
    	op1=rand()%6+42;
    	op2=rand()%6+42;
    	while (x>=100)
    	{
    		x=x/10;
    	}
    	while (y>=100)
    	{
    		y=y/10;
    	}
    	while (z>=100)
    	{
    		z=z/10;
    	}
    	if (op1==44||op1==46||op2==44||op2==46)
    		continue;
    	if (op1==47&&y==0||op2==47&&y==0)
    		continue;
    		else
    			printf ("%d %c %d %c %d = ___
    ", x, op1, y, op2, z);
    			i++;
    }
    printf ("执行完了
    
    ");
    }
    
    int answer (int n)
    {
    switch (n) {
    	case 1: grade1 (); break;
    	case 2: grade2 (); break;
    	case 3: grade3 (); break;
    	case 4: help (); break;
    	case 5: printf ("程序结束,欢迎下次使用,按任意键结束......"); break;
    }
    }
    
    int main (void)
    {
    int n;
    printf ("=======口算生成器=======
    ");
    printf ("欢迎使用口算生成器 :)
    ");
    printf ("
    ");
    help ();
    menu ();
    scanf ("%d", &n);
    execute ();
    while (n!=5)
    {
    	answer (n);
    	menu ();
    	scanf ("%d", &n);
    	execute ();
    	if (n>5||n<1)
    		error ();
    }
    answer (5);
    
    return 0;
    }
    

    3.4 Gitee上传截图与链接


    谭琪雅的gitte链接

  • 相关阅读:
    SQL中的字符串字段根据某字段实现自增
    SQL中的字符串字段实现自增
    ECS Windows服务器IIS FTP登陆提示“530 valid hostname is expected”
    HTML中动态生成内容的事件绑定问题
    JavaScript对JSON数据进行排序和搜索
    IIS站点下多应用程序 C#获取根目录方法
    asp.net中form表单多个按钮submit提交到后台的实例
    C#从一个SqlCommand对象生成可执行的SQL语句
    传递参数
    js创建jsonArray传输至后台及后台解析
  • 原文地址:https://www.cnblogs.com/zi-jin/p/12297580.html
Copyright © 2011-2022 走看看