任务三

/*(3‐1)输入一行字符,统计其中有多少个单词。每两个单词之间以空格(可能多个)隔
开,或者由标点符号(只考虑  , . ; ? !共 5 种)隔开。  如输入: How old are your?   I am   
20.  输出:There are 7 words in the line.   【知识点:字符数组】
*  算法说明:
 
*/
#include <iostream>  
#include "string.h"   
using namespace std;  
int main()  
{   
 
}  
 
/*(3‐2)所谓规范的文本是指:行首的第一个字符不能是空格;两个单词间只能有 1 个空
格且必须有 1 个空格;标点符号前面是单词中的最后一个字母,后面有且只能有一个
空格。
题目要求:输入一行字符,将其整理为规范的文本并输出。标点符号只考虑  , . ; ? !共 5 种。
如输入“:      How    old     are your?    I am     20.It is too old.   ”输出:“: How old are your?
I am 20. It is too old.”
处理后结果解读:即要求输出的文本开头无前导空格,两个单词间如果有多个空格时只保留
1 个,标点符号后没有空格时,要加上 1 个。
提示:可以设置另一个字符数组,逐个检查输入的字符数组,保留的字符复制过去,多余的
空格不复制,增加需要补充的空格。当然也可以直接在原字符数组上做。
*  算法说明:

#include <iostream>
#include "string.h"
using namespace std;
void check_word(char ch[100]);
int count=0;
int main()
{
	char ch[100];
	
	cin.getline(ch,100);

	check_word(ch);

	cout<<"There are "<<count<<" words in the line."<<endl;
	
	return 0;
}
void check_word(char ch[100])

{

	for(int i=0;ch[i]!='\0';i++)
	{
		if((ch[i]==' '||ch[i]==','||ch[i]==';'||ch[i]=='.'||ch[i]=='!'||ch[i]=='?')&&ch[i+1]!=' ')count++;
	}
}
	
	


 

以下是使用μC/OS-II嵌入式系统设计的三个任务任务1:显示学号和姓名 这个任务可以通过串口或者LCD屏幕进行显示。我们可以在任务1创建一个任务来初始化串口或者LCD屏幕,并在任务1创建一个任务来实现显示学号和姓名。以下是任务1的代码示例: ```c #include <includes.h> #include <stdio.h> #define TASK1_STK_SIZE 512 #define TASK1_PRIO 2 static OS_STK Task1Stk[TASK1_STK_SIZE]; static void Task1(void *pdata) { while(1) { printf("My student ID is 1234567890 and my name is John.\n"); OSTimeDlyHMSM(0, 0, 5, 0); // 每5秒钟执行一次 } } void AppTaskCreate(void) { OSTaskCreate(Task1, (void *)0, &Task1Stk[TASK1_STK_SIZE - 1], TASK1_PRIO); } ``` 任务2:简易计算器 这个任务可以通过串口或者LCD屏幕进行用户交互。我们可以在任务2创建一个任务来初始化串口或者LCD屏幕,并在任务2创建一个任务来实现简易计算器。以下是任务2的代码示例: ```c #include <includes.h> #include <stdio.h> #define TASK2_STK_SIZE 512 #define TASK2_PRIO 3 static OS_STK Task2Stk[TASK2_STK_SIZE]; static void Task2(void *pdata) { int num1, num2, result; char op; while(1) { printf("Please input your calculation (e.g. 2 + 3):\n"); scanf("%d %c %d", &num1, &op, &num2); switch(op) { case '+': result = num1 + num2; break; case '-': result = num1 - num2; break; case '*': result = num1 * num2; break; case '/': result = num1 / num2; break; default: printf("Invalid operator!\n"); continue; } printf("The result is %d.\n", result); OSTimeDlyHMSM(0, 0, 0, 500); // 每0.5秒钟执行一次 } } void AppTaskCreate(void) { OSTaskCreate(Task2, (void *)0, &Task2Stk[TASK2_STK_SIZE - 1], TASK2_PRIO); } ``` 任务3:结果显示 这个任务可以通过串口或者LCD屏幕进行显示。我们可以在任务3创建一个任务来初始化串口或者LCD屏幕,并在任务3创建一个任务来实现结果显示。以下是任务3的代码示例: ```c #include <includes.h> #include <stdio.h> #define TASK3_STK_SIZE 512 #define TASK3_PRIO 4 static OS_STK Task3Stk[TASK3_STK_SIZE]; static void Task3(void *pdata) { while(1) { printf("The result is being displayed on the screen.\n"); OSTimeDlyHMSM(0, 0, 10, 0); // 每10秒钟执行一次 } } void AppTaskCreate(void) { OSTaskCreate(Task3, (void *)0, &Task3Stk[TASK3_STK_SIZE - 1], TASK3_PRIO); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值