栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【C语言趣味实验】

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【C语言趣味实验】

C语言趣味实验--电脑关机&&猜数字
  • 前言
  • 一、如何实现强制关机?
      • shutdown用法
  • 二、优化
      • 改进1:通过输入的字符串来判断是否关机
      • 改进2:通过猜数字是否正确来判断是否关机
  • 总结


前言

亲爱的朋友们大家好,正如题目所见,今天给大家带来了一个趣味小实验–强制电脑关机
不过由于操作过于简单,不能体现和好兄弟的“深厚友谊”,所以博主我就进行了一些小小的改良,具体操作且看下文,我们一起进入今天的学习。


一、如何实现强制关机? shutdown用法

使用shutdown -s 即可实现电脑关机
如果要实现定时关机可以加上 -t 60(单位/s,表示一分钟后关机)
要在C语言中实现,需要引用头文件,调用 system(); 函数
代码如下:

#include
#include
int main(){
system("shutdown -s -t 60");//注意中间的空格不能少
return 0;
}


大家可不要只看了第一部分代码就开始实践,上面的只能设置关机,不能取消关机的。(哈哈)
取消关机的命令是:shutdown -a
代码如下:

#include
#include
int main(){
system("shutdown -s -t 60");
system("shutdown -a");
return 0;
}


二、优化 改进1:通过输入的字符串来判断是否关机

这里用到了字符串的比较函数strcmp(); 所以需要引用头文件
简单介绍以下比较函数:

int strcmp ( const char * str1, const char * str2 );
比较两个字符串
将 C 字符串 str1 与 C 字符串 str2 进行比较。
此函数开始比较每个字符串的第一个字符。如果它们彼此相等,则继续使用以下对,直到字符不同或达到终止空字符。
str1>str2 返回 1
str1=str2 返回 0
str1

#include
#include
#include

int main() {
	system("shutdown -s -t 60");
	char str[20] = { 0 };
	char cmp[20] = { "我是猪" };//或者“***下一周的饭我带了”
	while (1) {
		puts("请输入“我是猪”,否则电脑将会在一分钟后关机。");
		scanf("%s", str);
		if (strcmp(str, cmp) == 0) {
			system("shutdown -a");
			puts("恭喜你,关机取消。");
			break;
		}
	}
		return 0;
}

改进2:通过猜数字是否正确来判断是否关机

该部分设计了一个猜数字小游戏
那么我们就要来设置随机数:
1、我们可以直接创建一个整形数组提前设计好“随机数”;
2、也可以调用 rand()函数 来生成“伪随机数”,之所以叫伪随机数是因为rand()生成的数字虽然的确是随机的,但是由于每次启动生成的数都是一样的(相当于之前设计好的数组);

rand()不需要参数,他会生成一个从0到最大随机数的任意整数,最大随机数的大小通常是一个固定的大整数;
如果你要产生一个0~99中的随机数,可以表达为 rand()%100
生成一个1~100的随机数,可表达为 rand()%100+1

3、引用头文件,来设置随机数种子 srand((unsigned int)time(NULL)),
引用头文件可以调用系统时间,这里以时间为种子使得每次产生的随机数都不相同


设置游戏开始界面:

void Home() {
	printf("	************************************n");
	printf("	***输入:1、开始游戏  0、退出游戏***n");
	printf("	************************************n");
}

设计猜数字游戏:

void game() {
	system("shutdown -s -t 60");//一分钟后关机
	puts("游戏开始,如果一分钟内未能猜对数字,电脑将自动关机。");
	int num = rand() % 100 + 1;	//	生成1--100的随机数
	int n = 0;
	printf("请输入猜测数字:");
while(1){
	scanf("%d", &n);
	if (n == num) {
		system("shutdown -a");	//关机取消
		printf("恭喜你猜对了, 关机取消n");
		break;
	}
	else {
		if (n > num)
			printf("猜大了,请重新输入:");
		else
			printf("猜小了,请重新输入:");
		}
	}
}

完整代码如下:

#include
#include
#include

void Home() {
	printf("	************************************n");
	printf("	***输入:1、开始游戏  0、退出游戏***n");
	printf("	************************************n");
}

void game() {
	system("shutdown -s -t 60");
	puts("游戏开始,如果一分钟内未能猜对数字,电脑将自动关机。");
	int num = rand() % 10000 + 1;//生成1~10000的随机数,当然我们自己测试的时候可以设置1~100
	int n = 0;
	printf("请输入猜测数字:");
while(1){
	scanf("%d", &n);
	if (n == num) {
		system("shutdown -a");	//关机取消
		printf("恭喜你猜对了, 关机取消n");
		break;
	}
	else {
		if (n > num)
			printf("猜大了,请重新输入:");
		else
			printf("猜小了,请重新输入:");
		}
	}
}

int main() {
	srand((unsigned int)time(NULL));
	int k = 0;
	while (1) {
		Home();
		printf("是否开始游戏:");
		scanf("%d", &k);
		if (k == 0)
			break;
		game();
		system("pause");
		system("cls");
	}
	return 0;
}

总结

以上,就是我们今天一起学习的内容,能给大家增进同学友谊的事情我当然是义不容辞的,希望能给大家带来帮助,谢谢。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1021724.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号