zoukankan      html  css  js  c++  java
  • 编程题

    编程题(请使用C语言或者C++完成以下题目):

    * 继续完成作业一的编程题。 * 优化架构,一般要求每个函数长度不超过15行。 * 优化规范,尤其是命名规范。 * 制作一个编译脚本,运行该脚本可以编译你的代码,可选的脚本语言,python(2.7),windows批处理,powershell,shell。 示例脚本: ``` gcc 1.cpp -o lang.exe ``` * 进行单元测试,即测试每一个函数,并制作一个测试脚本,运行该脚本可以进行测试,并显示测试结果。 示例脚本: ``` gcc 1.cpp test.cpp -o test.exe test ```
    • 在作业一编程题的基础上添加以下功能:
      通过命令行读取一个文件,然后运行这个文件。如我的程序叫lang,lang 1.txt代表我要运行1.txt这个文本中的代码。
      假设我的1.txt内容如下:
        整数 钱包 等于 零
        钱包 增加 四
        钱包 减少 三
        看看 钱包
    

    输入lang 1.txt后,命令行输出

    • 汉字->数字
    int change(char num[])
    {
    	int h=0;
    	if(strcmp("一",num)==0)
    	h=1;
    	if(strcmp("二",num)==0)
    	h=2;
    	if(strcmp("三",num)==0)
    	h=3;
    	if(strcmp("四",num)==0)
    	h=4;
    	if(strcmp("五",num)==0)
    	h=5;
    	if(strcmp("六",num)==0)
    	h=6;
    	if(strcmp("七",num)==0)
    	h=7;
    	if(strcmp("八",num)==0)
    	h=8;
    	if(strcmp("九",num)==0)
    	h=9;
    	if(strcmp("十",num)==0)
    	h=10;
    	return h;
     } 
    
    • 数字->汉字
    void out(int shu)
     {
     	switch(shu)
    	{
     	case 0:	printf("零");break;
     	case 1: printf("一");break;
    	case 2:	printf("二");break;
    	case 3:	printf("三");break;
    	case 4:	printf("四");break;
    	case 5:	printf("五");break;
    	case 6:	printf("六");break;
    	case 7:	printf("七"); break;
    	case 8:	printf("八"); break;
    	case 9:	printf("九"); break;
    	case 10: printf("十"); break;
    	}
     }
    

    测试1:

    测试2(汉字到数字):

    测试3(数字到汉字):

    添加新功能:



    完整代码:

    //判断两位数的 输入0-10;和小于等于100; 
    #include <stdio.h>
    #include <string.h>
    int change(char num[]);
    void out(int shu);
    int main()
    {
    	char place[100];
    	printf("请输入地址:
    ");
    	scanf("%s",&place);
    	freopen(place,"r",stdin); 
    	int n,v=0,i=1;
    	char a[50],b[50],c[50],d[50];
    	printf("输入的汉字数字在零-十之间:
    ");
    	scanf("%s %s %s %s",&a,&b,&c,&d);
    	if(strcmp("整数",a)==0)
    	{
    		if(strcmp("等于",c)==0)
    		{
    			n=change(d);
    			while(1)
    			{
    			scanf("%s",&a);
    			 if(strcmp("看看",a)==0)
            	break;
            	scanf("%s %s",&b,&c);
    			if(strcmp("增加",b)==0)
    			{
    				
    				n+=change(c);//加 
    			}
    			if(strcmp("减少",b)==0)
    			n-=change(c);	//减 
    			if(strcmp("增加",b)!=0&&strcmp("减少",b)!=0)
    			{
    				printf("输入的增加或减少错误,请重输
    "); 
    			}
    	}
    	scanf("%s",&b);
    	if(strcmp("看看", a)==0)
    	{
    		if(n<=10)//和<=10 
    		out(n);
    		if(n>10&&n<20)//10-20
    		{
    			printf("十");
    			out(n%10); 
    		}
    		if(n>=20&&n<100)//20-99 
    		{
    			int q=0;
    			if(n%10==0)//整十 
    			{
    				out(n/10);
    				printf("十");
    			}
    			else
    			{
    				out(n/10);
    				printf("十"); 
    				out(n%10);
    			}
    		}
    		if(n==100)
    		printf("一百"); 
    		if(n>100)
    		{
    		printf("超出运算范围"); 
    		}	
    	}
    	}
    	else
    	printf("ERROR");
    	}
    	else
    	printf("ERROR");
    	return 0;
    }
    int change(char num[])
    {
    	int h=0;
    	if(strcmp("一",num)==0)
    	h=1;
    	if(strcmp("二",num)==0)
    	h=2;
    	if(strcmp("三",num)==0)
    	h=3;
    	if(strcmp("四",num)==0)
    	h=4;
    	if(strcmp("五",num)==0)
    	h=5;
    	if(strcmp("六",num)==0)
    	h=6;
    	if(strcmp("七",num)==0)
    	h=7;
    	if(strcmp("八",num)==0)
    	h=8;
    	if(strcmp("九",num)==0)
    	h=9;
    	if(strcmp("十",num)==0)
    	h=10;
    	return h;
     } 
     void out(int shu)
     {
     	switch(shu)
    	{
     	case 0:	printf("零");break;
     	case 1: printf("一");break;
    	case 2:	printf("二");break;
    	case 3:	printf("三");break;
    	case 4:	printf("四");break;
    	case 5:	printf("五");break;
    	case 6:	printf("六");break;
    	case 7:	printf("七"); break;
    	case 8:	printf("八"); break;
    	case 9:	printf("九"); break;
    	case 10: printf("十"); break;
    	}
     }
    

    上次是把零到一百的都列出来,这次将它分为几部分,<10,10-20,20-99和100。

  • 相关阅读:
    大二第二学期周学习进度总结(十三)
    java课程之团队开发冲刺阶段2.5
    java课程之团队开发冲刺阶段2.4
    java课程课后作业190530之用户体验评价
    java课程课后作业190530之找水王
    java课程之团队开发冲刺阶段2.3
    python运算学习之Numpy ------ 认识数组、数组的创建
    安装 jdk
    公司想辞退的你六种表现,你get到了么?
    性能测试基础知识系统学习之相关术语
  • 原文地址:https://www.cnblogs.com/clt1120/p/12264144.html
Copyright © 2011-2022 走看看