寒假作业1

这个作业属于哪个课程 2020面向对象程序设计张栋班
这个作业要求在哪里 面向对象程序设计寒假作业1
这个作业的目标 1、安装c++开发环境 2、了解C语言与c++ 3、查看c++编译器版本和使用命令行 4、编程
作业正文
其它参考文献 [Markdown基本语法](nickchen博客 ) C/C++程序编译过程详解

一 问答题

1(我并没有很深入的学习c语言,所以结合网上的搜索结果来回答)

1、 C语言的缺点主要表现在数据的封装性上,这一点使得C在数据的安全性上有很大缺陷,这也是C和C++的一大区别。

2、 C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。也就是说,对用C语言的人,要求对程序设计更熟练一些。

3、 C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单,但初学者往往会觉的这种表达式难读,关键原因就是对运算符和运算顺序理解不透不全。当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则显得十分重要。在学习中,对此合理进行分类,找出它们与数学中所学到运算之间的不同点之后,记住这些运算也就不困难了,有些运算符在理解后更会牢记心中,将来用起来得心应手,而有些可暂时放弃不记,等用到时再记不迟。

2

1.预处理(Preprocessing)

预处理用于将所有的#include头文件以及宏定义替换成其真正的内容,预处理之后得到的仍然是文本文件,但文件体积会大很多。

2.编译(Compilation)

这里的编译不是指程序从源文件到二进制程序的全部过程,而是指将经过预处理之后的程序转换成特定汇编代码(assembly code)的过程。

3.汇编(Assemble)

汇编过程将上一步的汇编代码转换成机器码(machine code),这一步产生的文件叫做目标文件,是二进制格式。

4.链接(Linking)

链接过程将多个目标文件以及所需的库文件(.so等)链接成最终的可执行文件(executable file)。

二 实践题

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

在visual studio 2019界面中,选择工具栏->命令行->开发者命令提示,然后输入cl.exe即可查看编辑器版本

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

在命令行中输入代码所在的盘名,再输入所在的文件名,回车即可;

三 编程题

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

中国文化博大精深,从仓颉造字开始,汉字一直流传到了今天。我们在感叹汉字的源远流长时,也不禁感慨,为什么没有一门使用汉字编程的语言?
汉字真的不能编程吗?最近文言文编程火了一把,吾有一數。曰三。名之曰「甲」。这朴实无华的变量定义无疑不是几千年来中华文化的发展中一朵奇葩。
今天小王同学想,文言文能编程那白话文呢?他找到了你,让你帮帮他。
编程要求
编写一个程序,输入满足以下语法要求的一段文字,输出运行后的结果。
变量定义:整数 钱包 等于 零
运算(加法):钱包 增加 四
运算(减法):钱包 减少 四
输出:看看 钱包
(硬刚)

#include<stdio.h>
#include<string.h>

struct Var {
	char Name[20] = {};
	int Value = 0;
};

char* ChnArr[] = { "零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二", "十三", "十四", "十五", "十六", "十七", "十八", "十九", "二十", "二十一", "二十二", "二十三", "二十四", "二十五", "二十六", "二十七", "二十八", "二十九", "三十", "三十一", "三十二", "三十三", "三十四", "三十五", "三十六", "三十七", "三十八", "三十九", "四十", "四十一", "四十二", "四十三", "四十四", "四十五", "四十六", "四十七", "四十八", "四十九", "五十", "五十一", "五十二", "五十三", "五十四", "五十五", "五十六", "五十七", "五十八", "五十九", "六十", "六十一", "六十二", "六十三", "六十四", "六十五", "六十六", "六十七", "六十八", "六十九", "七十", "七十一", "七十二", "七十三", "七十四", "七十五", "七十六", "七十七", "七十八", "七十九", "八十", "八十一", "八十二", "八十三", "八十四", "八十五", "八十六", "八十七", "八十八", "八十九", "九十", "九十一", "九十二", "九十三", "九十四", "九十五", "九十六", "九十七", "九十八", "九十九", "一百", "一百零一", "一百零二", "一百零三", "一百零四", "一百零五", "一百零六", "一百零七", "一百零八", "一百零九", "一百一十", "一百一十一", "一百一十二", "一百一十三", "一百一十四", "一百一十五", "一百一十六", "一百一十七", "一百一十八", "一百一十九", "一百二十", "一百二十一", "一百二十二", "一百二十三", "一百二十四", "一百二十五", "一百二十六", "一百二十七", "一百二十八", "一百二十九", "一百三十", "一百三十一", "一百三十二", "一百三十三", "一百三十四", "一百三十五", "一百三十六", "一百三十七", "一百三十八", "一百三十九", "一百四十", "一百四十一", "一百四十二", "一百四十三", "一百四十四", "一百四十五", "一百四十六", "一百四十七", "一百四十八", "一百四十九", "一百五十", "一百五十一", "一百五十二", "一百五十三", "一百五十四", "一百五十五", "一百五十六", "一百五十七", "一百五十八", "一百五十九", "一百六十", "一百六十一", "一百六十二", "一百六十三", "一百六十四", "一百六十五", "一百六十六", "一百六十七", "一百六十八", "一百六十九", "一百七十", "一百七十一", "一百七十二", "一百七十三", "一百七十四", "一百七十五", "一百七十六", "一百七十七", "一百七十八", "一百七十九", "一百八十", "一百八十一", "一百八十二", "一百八十三", "一百八十四", "一百八十五", "一百八十六", "一百八十七", "一百八十八", "一百八十九", "一百九十", "一百九十一", "一百九十二", "一百九十三", "一百九十四", "一百九十五", "一百九十六", "一百九十七", "一百九十八", "一百九十九", "二百", "二百零一", "二百零二", "二百零三", "二百零四", "二百零五", "二百零六", "二百零七", "二百零八", "二百零九", "二百一十", "二百一十一", "二百一十二", "二百一十三", "二百一十四", "二百一十五", "二百一十六", "二百一十七", "二百一十八", "二百一十九", "二百二十", "二百二十一", "二百二十二", "二百二十三", "二百二十四", "二百二十五", "二百二十六", "二百二十七", "二百二十八", "二百二十九", "二百三十", "二百三十一", "二百三十二", "二百三十三", "二百三十四", "二百三十五", "二百三十六", "二百三十七", "二百三十八", "二百三十九", "二百四十", "二百四十一", "二百四十二", "二百四十三", "二百四十四", "二百四十五", "二百四十六", "二百四十七", "二百四十八", "二百四十九", "二百五十", "二百五十一", "二百五十二", "二百五十三", "二百五十四", "二百五十五", "二百五十六", "二百五十七", "二百五十八", "二百五十九", "二百六十", "二百六十一", "二百六十二", "二百六十三", "二百六十四", "二百六十五", "二百六十六", "二百六十七", "二百六十八", "二百六十九", "二百七十", "二百七十一", "二百七十二", "二百七十三", "二百七十四", "二百七十五", "二百七十六", "二百七十七", "二百七十八", "二百七十九", "二百八十", "二百八十一", "二百八十二", "二百八十三", "二百八十四", "二百八十五", "二百八十六", "二百八十七", "二百八十八", "二百八十九", "二百九十", "二百九十一", "二百九十二", "二百九十三", "二百九十四", "二百九十五", "二百九十六", "二百九十七", "二百九十八", "二百九十九", "三百", "三百零一", "三百零二", "三百零三", "三百零四", "三百零五", "三百零六", "三百零七", "三百零八", "三百零九", "三百一十", "三百一十一", "三百一十二", "三百一十三", "三百一十四", "三百一十五", "三百一十六", "三百一十七", "三百一十八", "三百一十九", "三百二十", "三百二十一", "三百二十二", "三百二十三", "三百二十四", "三百二十五", "三百二十六", "三百二十七", "三百二十八", "三百二十九", "三百三十", "三百三十一", "三百三十二", "三百三十三", "三百三十四", "三百三十五", "三百三十六", "三百三十七", "三百三十八", "三百三十九", "三百四十", "三百四十一", "三百四十二", "三百四十三", "三百四十四", "三百四十五", "三百四十六", "三百四十七", "三百四十八", "三百四十九", "三百五十", "三百五十一", "三百五十二", "三百五十三", "三百五十四", "三百五十五", "三百五十六", "三百五十七", "三百五十八", "三百五十九", "三百六十", "三百六十一", "三百六十二", "三百六十三", "三百六十四", "三百六十五", "三百六十六", "三百六十七", "三百六十八", "三百六十九", "三百七十", "三百七十一", "三百七十二", "三百七十三", "三百七十四", "三百七十五", "三百七十六", "三百七十七", "三百七十八", "三百七十九", "三百八十", "三百八十一", "三百八十二", "三百八十三", "三百八十四", "三百八十五", "三百八十六", "三百八十七", "三百八十八", "三百八十九", "三百九十", "三百九十一", "三百九十二", "三百九十三", "三百九十四", "三百九十五", "三百九十六", "三百九十七", "三百九十八", "三百九十九", "四百", "四百零一", "四百零二", "四百零三", "四百零四", "四百零五", "四百零六", "四百零七", "四百零八", "四百零九", "四百一十", "四百一十一", "四百一十二", "四百一十三", "四百一十四", "四百一十五", "四百一十六", "四百一十七", "四百一十八", "四百一十九", "四百二十", "四百二十一", "四百二十二", "四百二十三", "四百二十四", "四百二十五", "四百二十六", "四百二十七", "四百二十八", "四百二十九", "四百三十", "四百三十一", "四百三十二", "四百三十三", "四百三十四", "四百三十五", "四百三十六", "四百三十七", "四百三十八", "四百三十九", "四百四十", "四百四十一", "四百四十二", "四百四十三", "四百四十四", "四百四十五", "四百四十六", "四百四十七", "四百四十八", "四百四十九", "四百五十", "四百五十一", "四百五十二", "四百五十三", "四百五十四", "四百五十五", "四百五十六", "四百五十七", "四百五十八", "四百五十九", "四百六十", "四百六十一", "四百六十二", "四百六十三", "四百六十四", "四百六十五", "四百六十六", "四百六十七", "四百六十八", "四百六十九", "四百七十", "四百七十一", "四百七十二", "四百七十三", "四百七十四", "四百七十五", "四百七十六", "四百七十七", "四百七十八", "四百七十九", "四百八十", "四百八十一", "四百八十二", "四百八十三", "四百八十四", "四百八十五", "四百八十六", "四百八十七", "四百八十八", "四百八十九", "四百九十", "四百九十一", "四百九十二", "四百九十三", "四百九十四", "四百九十五", "四百九十六", "四百九十七", "四百九十八", "四百九十九", "五百", "五百零一", "五百零二", "五百零三", "五百零四", "五百零五", "五百零六", "五百零七", "五百零八", "五百零九", "五百一十", "五百一十一", "五百一十二", "五百一十三", "五百一十四", "五百一十五", "五百一十六", "五百一十七", "五百一十八", "五百一十九", "五百二十", "五百二十一", "五百二十二", "五百二十三", "五百二十四", "五百二十五", "五百二十六", "五百二十七", "五百二十八", "五百二十九", "五百三十", "五百三十一", "五百三十二", "五百三十三", "五百三十四", "五百三十五", "五百三十六", "五百三十七", "五百三十八", "五百三十九", "五百四十", "五百四十一", "五百四十二", "五百四十三", "五百四十四", "五百四十五", "五百四十六", "五百四十七", "五百四十八", "五百四十九", "五百五十", "五百五十一", "五百五十二", "五百五十三", "五百五十四", "五百五十五", "五百五十六", "五百五十七", "五百五十八", "五百五十九", "五百六十", "五百六十一", "五百六十二", "五百六十三", "五百六十四", "五百六十五", "五百六十六", "五百六十七", "五百六十八", "五百六十九", "五百七十", "五百七十一", "五百七十二", "五百七十三", "五百七十四", "五百七十五", "五百七十六", "五百七十七", "五百七十八", "五百七十九", "五百八十", "五百八十一", "五百八十二", "五百八十三", "五百八十四", "五百八十五", "五百八十六", "五百八十七", "五百八十八", "五百八十九", "五百九十", "五百九十一", "五百九十二", "五百九十三", "五百九十四", "五百九十五", "五百九十六", "五百九十七", "五百九十八", "五百九十九", "六百", "六百零一", "六百零二", "六百零三", "六百零四", "六百零五", "六百零六", "六百零七", "六百零八", "六百零九", "六百一十", "六百一十一", "六百一十二", "六百一十三", "六百一十四", "六百一十五", "六百一十六", "六百一十七", "六百一十八", "六百一十九", "六百二十", "六百二十一", "六百二十二", "六百二十三", "六百二十四", "六百二十五", "六百二十六", "六百二十七", "六百二十八", "六百二十九", "六百三十", "六百三十一", "六百三十二", "六百三十三", "六百三十四", "六百三十五", "六百三十六", "六百三十七", "六百三十八", "六百三十九", "六百四十", "六百四十一", "六百四十二", "六百四十三", "六百四十四", "六百四十五", "六百四十六", "六百四十七", "六百四十八", "六百四十九", "六百五十", "六百五十一", "六百五十二", "六百五十三", "六百五十四", "六百五十五", "六百五十六", "六百五十七", "六百五十八", "六百五十九", "六百六十", "六百六十一", "六百六十二", "六百六十三", "六百六十四", "六百六十五", "六百六十六", "六百六十七", "六百六十八", "六百六十九", "六百七十", "六百七十一", "六百七十二", "六百七十三", "六百七十四", "六百七十五", "六百七十六", "六百七十七", "六百七十八", "六百七十九", "六百八十", "六百八十一", "六百八十二", "六百八十三", "六百八十四", "六百八十五", "六百八十六", "六百八十七", "六百八十八", "六百八十九", "六百九十", "六百九十一", "六百九十二", "六百九十三", "六百九十四", "六百九十五", "六百九十六", "六百九十七", "六百九十八", "六百九十九", "七百", "七百零一", "七百零二", "七百零三", "七百零四", "七百零五", "七百零六", "七百零七", "七百零八", "七百零九", "七百一十", "七百一十一", "七百一十二", "七百一十三", "七百一十四", "七百一十五", "七百一十六", "七百一十七", "七百一十八", "七百一十九", "七百二十", "七百二十一", "七百二十二", "七百二十三", "七百二十四", "七百二十五", "七百二十六", "七百二十七", "七百二十八", "七百二十九", "七百三十", "七百三十一", "七百三十二", "七百三十三", "七百三十四", "七百三十五", "七百三十六", "七百三十七", "七百三十八", "七百三十九", "七百四十", "七百四十一", "七百四十二", "七百四十三", "七百四十四", "七百四十五", "七百四十六", "七百四十七", "七百四十八", "七百四十九", "七百五十", "七百五十一", "七百五十二", "七百五十三", "七百五十四", "七百五十五", "七百五十六", "七百五十七", "七百五十八", "七百五十九", "七百六十", "七百六十一", "七百六十二", "七百六十三", "七百六十四", "七百六十五", "七百六十六", "七百六十七", "七百六十八", "七百六十九", "七百七十", "七百七十一", "七百七十二", "七百七十三", "七百七十四", "七百七十五", "七百七十六", "七百七十七", "七百七十八", "七百七十九", "七百八十", "七百八十一", "七百八十二", "七百八十三", "七百八十四", "七百八十五", "七百八十六", "七百八十七", "七百八十八", "七百八十九", "七百九十", "七百九十一", "七百九十二", "七百九十三", "七百九十四", "七百九十五", "七百九十六", "七百九十七", "七百九十八", "七百九十九", "八百", "八百零一", "八百零二", "八百零三", "八百零四", "八百零五", "八百零六", "八百零七", "八百零八", "八百零九", "八百一十", "八百一十一", "八百一十二", "八百一十三", "八百一十四", "八百一十五", "八百一十六", "八百一十七", "八百一十八", "八百一十九", "八百二十", "八百二十一", "八百二十二", "八百二十三", "八百二十四", "八百二十五", "八百二十六", "八百二十七", "八百二十八", "八百二十九", "八百三十", "八百三十一", "八百三十二", "八百三十三", "八百三十四", "八百三十五", "八百三十六", "八百三十七", "八百三十八", "八百三十九", "八百四十", "八百四十一", "八百四十二", "八百四十三", "八百四十四", "八百四十五", "八百四十六", "八百四十七", "八百四十八", "八百四十九", "八百五十", "八百五十一", "八百五十二", "八百五十三", "八百五十四", "八百五十五", "八百五十六", "八百五十七", "八百五十八", "八百五十九", "八百六十", "八百六十一", "八百六十二", "八百六十三", "八百六十四", "八百六十五", "八百六十六", "八百六十七", "八百六十八", "八百六十九", "八百七十", "八百七十一", "八百七十二", "八百七十三", "八百七十四", "八百七十五", "八百七十六", "八百七十七", "八百七十八", "八百七十九", "八百八十", "八百八十一", "八百八十二", "八百八十三", "八百八十四", "八百八十五", "八百八十六", "八百八十七", "八百八十八", "八百八十九", "八百九十", "八百九十一", "八百九十二", "八百九十三", "八百九十四", "八百九十五", "八百九十六", "八百九十七", "八百九十八", "八百九十九", "九百", "九百零一", "九百零二", "九百零三", "九百零四", "九百零五", "九百零六", "九百零七", "九百零八", "九百零九", "九百一十", "九百一十一", "九百一十二", "九百一十三", "九百一十四", "九百一十五", "九百一十六", "九百一十七", "九百一十八", "九百一十九", "九百二十", "九百二十一", "九百二十二", "九百二十三", "九百二十四", "九百二十五", "九百二十六", "九百二十七", "九百二十八", "九百二十九", "九百三十", "九百三十一", "九百三十二", "九百三十三", "九百三十四", "九百三十五", "九百三十六", "九百三十七", "九百三十八", "九百三十九", "九百四十", "九百四十一", "九百四十二", "九百四十三", "九百四十四", "九百四十五", "九百四十六", "九百四十七", "九百四十八", "九百四十九", "九百五十", "九百五十一", "九百五十二", "九百五十三", "九百五十四", "九百五十五", "九百五十六", "九百五十七", "九百五十八", "九百五十九", "九百六十", "九百六十一", "九百六十二", "九百六十三", "九百六十四", "九百六十五", "九百六十六", "九百六十七", "九百六十八", "九百六十九", "九百七十", "九百七十一", "九百七十二", "九百七十三", "九百七十四", "九百七十五", "九百七十六", "九百七十七", "九百七十八", "九百七十九", "九百八十", "九百八十一", "九百八十二", "九百八十三", "九百八十四", "九百八十五", "九百八十六", "九百八十七", "九百八十八", "九百八十九", "九百九十", "九百九十一", "九百九十二", "九百九十三", "九百九十四", "九百九十五", "九百九十六", "九百九十七", "九百九十八", "九百九十九" };

int ChnToNumber(char str[20])
{
	
	for (int i = 0; i < 1000; i++)
	{
		if (strcmp(str, ChnArr[i]) == 0)
		{
			return i;
		}
	}
	return -1;
}

char* NumberToChn(int num)
{
	if (num < 0)
	{
		num = -num;
	}
	return ChnArr[num];
}


Var Vars[1000] = {};
int VarCount = 0;

int main()
{
	while (1)
	{
		char symbol[20] = {};
		scanf("%s", symbol);
		if (strcmp(symbol, "整数") == 0)
		{
			char name[20] = {}, op[20] = {}, value[20] = {};
			scanf("%s %s %s", name, op, value);
			VarCount++;
			int val = ChnToNumber(value);
			strcpy(Vars[VarCount - 1].Name, name);
			Vars[VarCount - 1].Value = val;
			printf("创建新变量: %s\n", name);
		}
		else if (strcmp(symbol, "看看") == 0)
		{
			char name[20] = {};
			scanf("%s", name);
			for (int i = 0; i < VarCount; i++)
			{
				if (strcmp(name, Vars[i].Name) == 0)
				{
					printf("%s 的值为: %s\n", name, NumberToChn(Vars[i].Value));
					break;
				}
			}
		}
		else
		{
			char op[20] = {}, value[20] = {};
			scanf("%s %s", op, value);
			for (int i = 0; i < VarCount; i++)
			{
				if (strcmp(symbol, Vars[i].Name) == 0)
				{
					if (strcmp(op, "增加") == 0)
					{
						int val = ChnToNumber(value);
						Vars[i].Value += val;
						printf("%s 的值增加了 %s\n", symbol, value);
					}
					else if (strcmp(op, "减少") == 0)
					{

						int val = ChnToNumber(value);
						Vars[i].Value -= val;
						printf("%s 的值减少了 %s\n", symbol, value);
					}
					break;
				}
				if (i == VarCount - 1) printf("错误的输入!请重新输入!\n");
			}
		}
	}
	
}

posted @ 2020-01-27 19:23  取名难啊  阅读(222)  评论(1编辑  收藏  举报