zoukankan      html  css  js  c++  java
  • 面向对象程序设计寒假作业2

    这个作业属于哪个课程 面向对象程序设计2020
    这个作业要求在哪里 面向对象程序设计寒假作业2
    这个作业的目标 1.继续完成编程题。2.新建一个github仓库,并把作业推送到该仓库。3.发布博客。
    作业正文 1.实践题 2.编程题
    其他参考文献 正文中将会出现

    1.实践题


    根据GitHub的初学指南我完成了在网站上建立一个新的仓库,并且下载了git和github desktop,参考的网站有安装git和[傻瓜都会用的Github Desktop](https://www.jianshu.com/p/06a960d991aa"傻瓜都会用的Github Desktop")


    自己研究了一下并且参考了https://oop.jihuayu.site/works/work1ex.html#提issues这个网址
    1.先点黄色部分,将会出现一个文件夹,将要传输的文件放入这个文件夹。
    2.再点红色部分,这个步骤是参考上面附上的网站,不知道是什么原理。
    3.最后就是点击白色部分,它会变成push,点击后再打开你的github主页,就可以看到已经被推送上去的文件了。

    脚本简单地说就是一条条的文字命令,这些文字命令是可以看到的(如可以用记事本打开查看、编辑),脚本程序在执行时,是由系统的一个解释器,将其一条条的翻译成机器可识别的指令,并按程序顺序执行。因为脚本在执行时多了一道翻译的过程,所以它比二进制程序执行效率要稍低一些。
    通过脚本编写学习明白的脚本编写的最初过程。还了解了bat批处理脚本的语法


    但是搞了很久还是搞不出来编译脚本和测试脚本,我太菜了......
    虽然没有搞出来脚本,但是了解到了gcc中-c和-o参数

    2.编程题

    参考了其他同学的作业,这次加入了判断输入对错的一步

    scanf("%s %s %s %s",a,b,c,d);
        if(strcmp(a,"整数")){
    		printf("输入错误。");
    		return 0; 
    	}
        scanf("%s %s %s",x1,x2,x3);
        if(strcmp(b,x1)){
    		printf("输入错误。");
    		return 0; 
    	}
        scanf("%s %s %s",y1,y2,y3);
        if(strcmp(x1,y1)){
    		printf("输入错误。");
    		return 0; 
    	}
        scanf("%s %s",e,f);
        if(strcmp(y1,f)){
    		printf("输入错误。");
    		return 0; 
    	}
    

    这次还规范命名,我查阅了一些资料,感觉这篇C语言编程规范—命名规则总结得不错,
    举个例子:驼峰命令法printEmployeePaychecks();print_employee_paychecks();它第一个单词的第一个字母小写,后面的单词首字母大写,看起来像一个骆驼。
    匈牙利命名法m_lpszStr;标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。
    帕斯卡(pascal)命名法DisplayInfo();string UserName;与驼峰命名法类似但它是首字母大写。
    我的代码命名如下

    int chineseTransformNumber(char a[]); //中文转化为数字
        void print_numberTransformChinese(int a);//将数字转化为中文并输出
        int sum(int a,int b,int c,char d[],char e[]);//将转化过的数字进行加减法运算
    

    这次改了一些小地方,总算编译出来了,哈哈哈
    下面是每一个自己编写的函数的代码,本来想用for来实现简化代码的效果,但是又遇到了[Warning] deprecated conversion from string constant to 'char*' [-Wwrite-string]的问题,所以还是用了比较笨的办法来实现这个代码。

    void print_numberTransformChinese(int a)
    {
        
        if(a==0)printf("零"); 
        else if(a==1)printf("一");
        else if(a==2)printf("二");
        else if(a==3)printf("三");
        else if(a==4)printf("四");
        else if(a==5)printf("五");
        else if(a==6)printf("六");
        else if(a==7)printf("七");
        else if(a==8)printf("八");
        else if(a==9)printf("九");
        else printf("十");
         
    }
    
    int sum(int a,int b,int c,char d[],char e[])
    {
        int s;
        if(strcmp(d,"增加")==0)s=a+b;
        else s=a-b;
        if(strcmp(e,"增加")==0)s=s+c;
        else s=s-c;
        return s;
    }
    
    int chineseTransformNumber(char a[])
    {
        
        if(strcmp(a,"一")==0)return 1;
        else if(strcmp(a,"二")==0)return 2;
        else if(strcmp(a,"三")==0)return 3;
        else if(strcmp(a,"四")==0)return 4;
        else if(strcmp(a,"五")==0)return 5;
        else if(strcmp(a,"六")==0)return 6;
        else if(strcmp(a,"七")==0)return 7;
        else if(strcmp(a,"八")==0)return 8;
        else if(strcmp(a,"九")==0)return 9;
        else if(strcmp(a,"十")==0)return 10;
        else return 0;
       
    }
    

    以下是主函数,上次忘记把变量定义成字符数组,仅仅以字符的形式定义,然后一直编译不出来,幸好这次发现了,哈哈

    #include<stdio.h>
    #include<string.h>
    int main()
    {
        int chineseTransformNumber(char a[]); 
        void print_numberTransformChinese(int a);
        int sum(int a,int b,int c,char d[],char e[]);
        char a[5],b[5],c[5],d[5],x1[5],x2[5],x3[5],y1[5],y2[5],y3[5],e[5],f[5];
        int z1,z2,z3,i;
        scanf("%s %s %s %s",a,b,c,d);
        if(strcmp(a,"整数")){
    		printf("输入错误。");
    		return 0; 
    	}
        scanf("%s %s %s",x1,x2,x3);
        if(strcmp(b,x1)){
    		printf("输入错误。");
    		return 0; 
    	}
        scanf("%s %s %s",y1,y2,y3);
        if(strcmp(x1,y1)){
    		printf("输入错误。");
    		return 0; 
    	}
        scanf("%s %s",e,f);
        if(strcmp(y1,f)){
    		printf("输入错误。");
    		return 0; 
    	}
    	
        z1=chineseTransformNumber(d);
        z2=chineseTransformNumber(x3);
        z3=chineseTransformNumber(y3);
        i=sum(z1,z2,z3,x2,y2);
        print_numberTransformChinese(i);                                               
        return 0;
     } 
    

    参考同学们的作业,知道编程题所要添加的功能需要通过freopen()函数的使用来完成,可惜还是没有使用成功添加的内容......
    最终只能完成到这样了


    我将会在之后继续钻研.gitignore和脚本的!!!

  • 相关阅读:
    nmon监控Linux服务器系统资源
    日志处理(二) 日志组件logback的介绍及配置使用方法(转)
    PreparedStatement是如何大幅度提高性能的
    【声援团视频合集!!!保存转发进行扩散!!】
    换主题
    Octave 常用命令
    【DSP】TMS320F28335的GPIO
    Oauth2 初步
    arm汇编几个经典例题
    JavaScript关键字之super()
  • 原文地址:https://www.cnblogs.com/ponynice/p/12243957.html
Copyright © 2011-2022 走看看