面向对象程序设计2020第三次作业

面向对象程序设计2020第三次作业

这个作业属于哪个课程 2020面向对象程序设计张栋班
这个作业要求在哪里 寒假作业3
这个作业的目标 修改、完善作业二,拓展功能
作业正文 寒假作业3
其它参考文献

注: 系统是Mac OS


作业要求

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

  • 继续完成作业二的编程题。
  • 优化架构,思考代码的拓展性,比如我需要增加其他功能,如选择,循环语句怎么办。
  • 思考:可以参考现有的编程语言,把这些语言的内容加入。如选择、循环语句、函数、或者扩大数字范围,支持负数等。

仓库地址

  • 编程题完成情况:
    • 单变量
    • 输入输出都支持负数、两位数,即数字范围 -99~99
    • 有错误提示,如把关键字作为变量名称、要查看的变量不存在等。
    • 在输出变量前,可不断进行增加、减少的操作
    • 用“看看”输出变量后,程序结束

支持负数比较简单,于是就先把我的processStringToInt函数作了修改

  • 思路很简单,用一个int变量sign来控制正负,初始化为1
  • 把第一个中文先分离出来,如果是“负”,则把sign置为-1,并把传进来的字符串,去掉前面这个中文,再进行数字部分的处理
  • 如果不是“负”,就不需要去掉前面这个中文
  • 去掉前面这个中文的方法就是从第三个字符开始复制(一个中文在GBK下占两个字节)
if(!strcmp("负",str0))
{
  strncpy(str,number+2,6); str[6] = '\0';
  sign = -1;
}
else
{
  strncpy(str,number,6); str[6] = '\0';
}
//str字符数组用来存数字部分

//函数返回值乘一个sign
return sum * sign;
  • 同时,输出结果的函数也要修改
if (n < 0)  //只需增加这个步骤
{
  printf("负");
  n = -n;
}

支持负数后,要进行其他拓展需要判断各种指令,不知道从何下手.......


然后是脚本的修改

  • 上次是用命令行运行脚本的,又理解错意思

  • 首先shell文件的默认打开方式修改为终端

  • 然后,双击后要能够运行某脚本,需要在终端修改该脚本文件权限

$ chmod +x fileName.sh  //fileName.sh是文件完整名称
  • 编译脚本如下
#!/bin/bash

cd /Users/shenhuan/FZU-OOP-homework/baiHuaWen
gcc main.c excute.c convertToInt.c convertToString.c error.c printResult.c processStringToInt.c
if [ $? == 0 ]
then
    echo "编译成功......"
else
    echo "编译失败......"
fi
  • 双击后如下(忽略warning,虽然终端字符编码改GBK了,还是会有对中文的warning,不过代码运行正常)

  • 测试脚本修改后,双击运行


关于没能完成的功能

  • 如果要拓展功能,指令的情况很多,应该要根据空格把词语分离出来,再判断这个词是什么,然后选择相应的函数,emmm那样的话我的代码估计得改很多

  • 关于扩大数字范围,中文的位数和阿拉伯数字的位数并不对应,这也是最麻烦的点。比如范围到999的话,就会比范围99多出很多种情况,八百八十八,八百八十等等......暂时还是算了

猜你喜欢

转载自www.cnblogs.com/ganguan/p/12303362.html
今日推荐