第一次个人编程作业·寒假
| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzzcxy/SE/ |
|---|---|
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzzcxy/SE/homework/10283 |
| 这个作业的目标 | 制作一个简易的中文语言编译器 |
| 作业正文 | |
| 其他参考文献 |
1.编程题目
汉字是迄今为止持续使用时间最长的文字,也是上古时期各大文字体系中唯一传承至今者,中国历代皆以汉字为主要的官方文字。我们在感叹汉字的源远流长时,也不禁感慨,为什么没有一门使用汉字编程的语言?
小杨同学想到:用汉字来进行编程一定很有趣,来请你帮帮他。
2.编程要求
请编写一个程序,制作一个简易的中文语言编译器,即使用中文语法进行编程,输入为逐行输入,每行为一个语句,一个语句代变一个操作,满足以下语法要求(括号内代变格式类型,具体参考样例):
变量定义:整数 (变量名) 等于 (数字)
运算(加法):(变量名) 增加 (数字)
运算(减法):(变量名) 减少 (数字)
输出:看看 (变量名) or 看看 “(字符串内容)”
附加要求:
选择:如果 (判断语句) 则 (操作语句) 否则 (操作语句)
若否则后没有任何操作使用(无)来进行填充(参考样例2)
3.遇到问题:
问题:[Error] 'for' loop initial declarations are only allowed in C99 or C11 mode

参考:https://blog.csdn.net/qq_38316655/article/details/82830565
问题:如何通过 GitHub Desktop 上传代码到 GitHub 远程仓库(暂时未完成)
参考:http://www.bubuko.com/infodetail-2631368.html
4.记录
行数:64
用时:>4天
首次编译时间:2s+
编译时间: 0.33s
5.代码:
include<stdio.h>
include<string.h>
include<malloc.h>
include<math.h>
int num(char n[])
{
if(strcmp(n,"零") == 0) return 0;
else if(strcmp(n,"一") == 0) return 1;
else if(strcmp(n,"二") == 0) return 2;
else if(strcmp(n,"三") == 0) return 3;
else if(strcmp(n,"四") == 0) return 4;
else if(strcmp(n,"五") == 0) return 5;
else if(strcmp(n,"六") == 0) return 6;
else if(strcmp(n,"七") == 0) return 7;
else if(strcmp(n,"八") == 0) return 8;
else if(strcmp(n,"九") == 0) return 9;
else if(strcmp(n,"十") == 0) return 10;
else return -1;
}
void chinese(int x)
{
switch(x)
{
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;
}
}
int main()
{
char zhengshu[100],name[100],is[100],n[100],c[100],v[100],b[100],l[100],z[100],m[100],k[100],p[100],o[100];
char a[10],oper[10],ruguo[10];
int x,i;
scanf("%s %s %s %s",zhengshu,name,is,n);
getchar();
if(strcmp(zhengshu,"整数") == 0)
{
if(strlen(n) == 2)
{
x = num(n);
if(x != -1)
{
for(i = 0 ; i < 2 ; i++)
{
scanf("%s %s %s\n",a,oper,is);
if(strcmp(oper,"增加") == 0) x += num(is);
if(strcmp(oper,"减少") == 0) x -= num(is);
}
scanf("%s",ruguo);
}
if(strcmp(ruguo,"如果")==0){//cvblmzkpo
scanf("%s %s %s %s %s %s %s %s ",k,p,is,o,b,c,l,m);
if(x > 8){
chinese(x);
printf("%s",c);
} else{
printf("%s",m);
}
}
}
}
}
6.测试

第一次个人编程作业·寒假的更多相关文章
- 第一次UML编程作业
博客班级 https://edu.cnblogs.com/campus/fzzcxy/2018SE2/ 作业要求 https://edu.cnblogs.com/campus/fzzcxy/2018S ...
- 第一次个人编程作业:我的分数我做主 - 软件工程与 UML
博客班级 https://edu.cnblogs.com/campus/fzzcxy/2018SE1 作业要求 https://edu.cnblogs.com/campus/fzzcxy/2018SE ...
- Bean_sprout的第一次编程作业
第一次编程作业 一.PSP表格 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 60 120 · Estim ...
- Stanford coursera Andrew Ng 机器学习课程编程作业(Exercise 2)及总结
Exercise 1:Linear Regression---实现一个线性回归 关于如何实现一个线性回归,请参考:http://www.cnblogs.com/hapjin/p/6079012.htm ...
- 11061160_11061151_Pair Project: Elevator Scheduler软件工程结对编程作业总结
软件工程结对编程作业总结 11061160 顾泽鹏 11061151 庞梦劼 一.关于结对编程 这次的软工任务既不是单打独斗的个人任务,也不是集思广益的团队项目,而是人数为两人的结对编程.两个人合 ...
- 第一次博客作业(初识C++)
Q1:学习<C++语言程序设计>课程之前,你知道什么是编程吗?谈谈上这门课之前你对编程的理解,以及你对自己编程能力的评估. A1:开始课程之前,我认为编程是这样的:用计算机的语言写一份流程 ...
- oo 第一次博客作业
oo 第一次博客作业 早在大一就听说了oo的各种传奇故事,大二下学期终于也开始了我的oo之旅. 基于度量来分析自己的程序结构 第一次作业 类图分析 耦合度分析 可以看出在第一次作业中,我的耦合度非常高 ...
- [BUAA软工]第一次博客作业---阅读《构建之法》
[BUAA软工]第一次博客作业 项目 内容 这个作业属于哪个课程 北航软工 这个作业的要求在哪里 第1次个人作业 我在这个课程的目标是 学习如何以团队的形式开发软件,提升个人软件开发能力 这个作业在哪 ...
- 2018 OO第一次总结(作业1-3)
第一次作业1.程序分析 (1)OO度量 (2)类图: (3)分析与评价: 这次作业由于作业整体设计难度不大,因此按照去年暑假上的OO先导课老师讲的设计方法很容易实现一个还不错的面向对象式程序,类与类之 ...
随机推荐
- 6.python设置代理和添加镜像源介绍
为什么要修改镜像源? 一般使用python安装库,会用到pip install xxx 指令或者conda install xxx指令,因为pip和conda默认国外镜像源,这时会在Python的官方 ...
- 利用ARP欺骗进行MITM(中间人攻击)
ARP欺骗主要骑着信息收集得作用,比如可以利用欺骗获取对方流量,从流量分析你认为重要得信息 0X01 了解ARP Arp协议 ARP(Address Resolution Protocol,地址解析 ...
- jmeter请求参数的两种方式
Jmeter做接口测试,Body与Parameters的选取 1.普通的post请求和上传接口,选择Parameters. 2.json和xml请求接口,选择Body. 注意: 在做接口测试时注意下请 ...
- 为什么你SQL Server中SQL日期转换出错了呢?
开发人员有时候使用类似下面SQL将字符串转换为日期时间类型,乍一看,这样的SQL的写法是没有什么问题的.但是这样的SQL其实有时候就是一个定时炸弹,随时可能出现问题(),下面简单对这种情况进行一个简单 ...
- day 17 初始递归
递归函数 了解什么是递归 : 在函数中调用自身函数 最大递归深度默认是997/998 —— 是python从内存角度出发做的限制 能看懂递归 能知道递归的应用场景 初识递归 —— 算法 —— 二分查找 ...
- 逻辑卷管理(LVM)-快照
1.需要在逻辑卷相同的卷组中创建逻辑卷快照.-s :表示快照 -p r:表示只读 /dev/vg0/mysql 为那个卷的快照 2.查看快照卷信息. 3.快照恢复,必须先取消挂载,还原成功之后,快 ...
- jsonArray jsonString list<Object> 之间转换
1.示例: package com.test.demo.pojo; import lombok.Data; import lombok.experimental.Accessors; /** * @p ...
- 优酷爱奇艺视频转换为MP4格式工具
本君今天分享两个免费的视频格式转换工具,分别是爱奇艺和优酷的(腾讯的有点复杂,等整理完再分享).教程都是一步步亲手操作的,每一步都有配图.希望各位老板多转发分享,谢谢! 一爱奇艺QSV转MP4格式 解 ...
- c#---params参数
写一个方法,求一个同学的总成绩 static void Main(string[] args) { , , }; Test("张三", n); Console.ReadKey(); ...
- 剑指offer-面试题54-二叉搜索树的第k大节点-中序遍历
/* 题目: 求二叉搜索树的第k大节点. */ /* 思路: 中序遍历. */ #include<iostream> #include<cstring> #include< ...