面向对象程序设计寒假作业1

这个作业属于哪个课程 面向对象程序设计2020
这个作业要求在哪里 面向对象程序设计寒假作业1
这个作业的目标 1.安装C++开发环境(见附录)。2.完成问答题、实践题及编程题。3.发布博客。
作业正文 1.问答题 2.实践题 3.编程题
其他参考文献 正文中将会出现

(一)问答题:

回答以下问题:

1、如果你不了解C++请回答以下问题:你认为C语言有什么缺陷(你觉得哪里用的不顺手)。

答:有些数组或数字太大会溢出,就需要各种切换类型的操作,这让我感觉有点晕,会记不住。对于现在的我还没有完全地掌握C语言。
还有一些运算符的优先级比较难以记忆,运用时仍需要翻阅书本查询。

2、查阅相关资料,简述一下C语言/C++的编译过程。

(二)实践题:

自己动手,完成以下任务:

1、查看自己的C++编译器版本。

百度+群里讨论,终于勉勉强强把第一小题给完成了。刚开始还不是很懂得这个题目的意思,虽然一句很简单的话,但对我这样的菜鸟感觉文字都不能联系到一起了。好在结果还是好的,出来的页面是这个亚子
借鉴的链接是这个https://blog.csdn.net/faithzzf/article/details/52328353(虽然查阅了很多资料,但比较看得懂的是这一个)
一直不知道cl到底是什么意思,因为在层层目录中根本找不到cl,后来百度百科救我于苦海之中。附上链接https://baike.baidu.com/item/CL/7319305?fr=aladdin

后来还想试试查询dv c++的版本,奈何一直成功不了,还通过命令行直接打开了dv c++,我是通过层层目录来找到它的


如果输入devcpp.exe就会直接打开那个软件,有疑问的是,在后面的步骤中输入cl我不清楚查询的是vs的版本还是dv c++的版本

2、使用命令行编译一份C语言/C++代码。


每次弄到这就进行不下去了,实在不知道什么原因呀

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

这道题涉及了加减法,先从简单的入手,就是编写一个计算的函数。

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 number(char a)
{
	int b;
	if(strcmp(a,"一")==0)b=1;
	else if(strcmp(a,"二")==0)b=2;
	else if(strcmp(a,"三")==0)b=3;
	else if(strcmp(a,"四")==0)b=4;
	else if(strcmp(a,"五")==0)b=5;
	else if(strcmp(a,"六")==0)b=6;
	else if(strcmp(a,"七")==0)b=7;
	else if(strcmp(a,"八")==0)b=8;
	else if(strcmp(a,"九")==0)b=9;
	else if(strcmp(a,"十")==0)b=10;
	else b=0;
	return b; 
}

但每次将某个字符赋值给一个自己设置的变量总是会出错,以前就经常出现这个问题,奈何太菜鸡,一直不知道是什么原因,如下图


于是我将它改成直接输出,这样又省得再编写一个将数字转换为汉字的函数输出

void print(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("十");
	 
}

主函数这这样的,我设置的变量比较多

#include<stdio.h>
#include<string.h>
int main()
{
	int number(char a); 
	void print(int a);
	int sum(int a,int b,int c,char d,char e);
	char a,b,c,d,x1,x2,x3,y1,y2,y3,e,f;
	int z1,z2,z3,i;
	scanf("%s %s %s %s",a,b,c,d);
	scanf("%s %s %s",x1,x2,x3);
	scanf("%s %s %s",y1,y2,y3);
	scanf("%s %s",e,f);
	z1=number(d);
	z2=number(x3);
	z3=number(y3);
	i=sum(z1,z2,z3,x2,y2);
	print(i);                                               
	return 0;
 } 

这是我对这题的大致思路,对于那个gbk编码我实在不知道怎么搞了。
以上代码也因为出现了一些问题运行不了

posted @ 2020-01-26 22:04  尼古拉斯宝莉  阅读(219)  评论(4编辑  收藏  举报