⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 program.h

📁 操作系统实验 内存分配与回收 实验二(包含程序源代码和完整报告)
💻 H
字号:
#include "define.h"

void Init()
{
	int i;
	T.YEAR=2008;
	T.MONTH =12;
	T.DAY   =31;
	T.HOUR  =23;
	T.MINUTE=59;
	T.SECOND=55;
	Print();
	for(i=1;i<=N;i++)
	{
		printf("设定第%d次闹钟时间:\n",i);
		scanf("%d",&C[i].YEAR);
		scanf("%d",&C[i].MONTH);
		scanf("%d",&C[i].DAY);
		scanf("%d",&C[i].HOUR);
		scanf("%d",&C[i].MINUTE);
		scanf("%d",&C[i].SECOND);
		C[i].FLAG=WAIT;
		C[i].NUMBER=i+1;
	}
}

void Print()
{
	printf("假定当前时间是%d年%d月%d日%d时%d分%d秒\n",T.YEAR,T.MONTH,T.DAY,T.HOUR,T.MINUTE,T.SECOND);
}

void Begin()
{
	printf("输入1产生中断,输入0无中断\n");
}

void Stop()//产生中断
{
	T.SECOND++;
	if(T.SECOND>=60)
	{
		T.MINUTE=T.MINUTE+T.SECOND/60;
		T.SECOND=T.SECOND%60;
		if(T.MINUTE>=60)
		{
			T.MINUTE=T.MINUTE%60;
			T.HOUR=T.HOUR+T.MINUTE/60;
		}
		if(T.HOUR>=24)
		{
			T.HOUR=T.HOUR%24;
			T.DAY=T.DAY+T.HOUR/24;
		}
		switch(T.MONTH)
		{
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:
			if(T.DAY>=31)
			{
				T.MONTH=T.MONTH+T.DAY/31;
				T.DAY=T.DAY%30;
			}
			break;
		case 4:
		case 6:
		case 9:
		case 11:
			if(T.DAY>=30)
			{
				T.MONTH=T.MONTH+T.DAY/30;
				T.DAY=T.DAY%29;
			}
			break;
		case 2:
			if((T.YEAR%4==0&&T.YEAR%400!=0)||(T.YEAR%400==0))
			{
				if(T.DAY>=29)
				{
					T.MONTH=T.MONTH+T.DAY/29;
					T.DAY=T.DAY%28;
				}
			}
			else
			{
				if(T.DAY>=28)
				{
					T.MONTH=T.MONTH+T.DAY/28;
					T.DAY=T.DAY%27;
				}
			}
			break;
		default:printf("系统时间错误!程序非法结束\n");
				exit(0);
		}
		if(T.MONTH>=12)
		{
			T.YEAR=T.YEAR+T.MONTH/12;
			T.MONTH=T.MONTH%12;
		}
	}
}

void Clock()//是否有闹钟时间到
{
	int i;
	for(i=1;i<=N;i++)
	{
		if(T.MINUTE==C[i].MINUTE&&T.SECOND==C[i].SECOND&&C[i].FLAG==WAIT)
		{
			printf("闹钟%d时间到!\n",C[i].NUMBER);
			C[i].FLAG=FINISH;
			NUM--;
		}
		else
			continue;
	}
}

void Over()//所有闹钟时间都到了,程序结束
{
	printf("所有闹钟已结束!\n");
	printf("程序结束!\n");
	exit(0);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -