用c++编写程序,要求用程序模拟出一个计算机,有内存和CPU,要实现其显示功能和交互式输入状态

用c++编写程序,要求用程序模拟出一个计算机,有内存和CPU,要实现其显示功能和交互式输入状态,第1张

#include <memory.h>

#include <iostream>

#include <ctime>

#include <cstdlib>

using namespace std

const int NUM = 52

const int DECK = 13

enum SortType

typedef struct CARD

{

int suit/芦行誉/ 取值0 - 3,分别表示梅花、方块、红心和黑带族桃

int value// 取值2 - 10、J(11)、Q(12)、K(13)、A(14)

} Card

void suffle(Card *cards)

{

int i, j, t

Card c

srand(time(NULL))

for (i = 0i <NUM++i)

for (j = 0j <NUM++j)

{

t = rand() % NUM

if (j != t)

{

memcpy(&c, &cards[t], sizeof(Card))

memcpy(&cards[t], &cards[j], sizeof(Card))

memcpy(&cards[j], &c, sizeof(Card))

}

}

}

void sort(Card *cards, int size, SortType stype)

{

int i, j, k

Card t

for (i = 0i <size-1++i)

{

k = i

for (j = i + 1j <size++j)

{

if ((stype == SUIT) &&(cards[k].suit >cards[j].suit))

k = j

else if ((stype == VALUE) &&cards[k].value <cards[j].value)

k = j

}

if (k != i)

{

memcpy(&t, &cards[i], sizeof(Card))

memcpy(&cards[i], &cards[k], sizeof(Card))

memcpy(&cards[k], &t, sizeof(Card))

}

}

}

void show(int suit, int value)

{

static char values[] =

switch (suit)

{

case 0:

cout <<陪段 "梅花 "

break

case 1:

cout <<"方块 "

break

case 2:

cout <<"红心 "

break

case 3:

cout <<"黑桃 "

break

}

if (value == 10)

cout <<"10"

else

cout <<values[value-2]

cout <<"\t\t"

}

void sortValue(Card *cards)

{

int p[4] =

int i, j

for (i = 0i <DECK++i)

++p[cards[i].suit]

j = 0

for (i = 0i <4++i)

{

sort(cards + j, p[i], VALUE)

j += p[i]

}

}

void main(void)

{

Card cards[NUM]

Card A[DECK], B[DECK], C[DECK], D[DECK]

int i, j, s = 0, v = 2

for (i = 0i <NUM++i)

{

cards[i].suit = s

cards[i].value = v

++v

if ((i+1) % 13 == 0)

{

++s

v = 2

}

}

suffle(cards)

j = 0

for (i = 0i <NUMi += 4)

{

memcpy(&A[j], &cards[i], sizeof(Card))

memcpy(&B[j], &cards[i+1], sizeof(Card))

memcpy(&C[j], &cards[i+2], sizeof(Card))

memcpy(&D[j], &cards[i+3], sizeof(Card))

++j

}

sort(A, DECK, SUIT)

sortValue(A)

sort(B, DECK, SUIT)

sortValue(B)

sort(C, DECK, SUIT)

sortValue(C)

sort(D, DECK, SUIT)

sortValue(D)

cout <<"PLAYER 1" <<"\t" <<"PLAYER 2" <<"\t"

cout <<"PLAYER 3" <<"\t" <<"PLAYER 4" <<endl

for (i = 0i <DECK++i)

{

show(A[i].suit, A[i].value)

show(B[i].suit, B[i].value)

show(C[i].suit, C[i].value)

show(D[i].suit, D[i].value)

cout <<endl

}

system("PAUSE")

}

请参考

这个一般不能做到。

一般的C语言编译器会限制程序的资源使用量(如CPU不超过40%),超过设定时,编译出来的程序会提示“未响应”而停止工作,不会造成电脑满负荷工作的情况。

实现满负荷工作可以用一些拷机软件,比如Super PI,来测烂态试处理器的性能。

但对于时间的饥弯源记录,可以闹埋运用<time.h>的函数来实现,用法如下:

time_t start,end  

start =time(NULL)//or time(&start)  

//计时中

end =time(NULL)  

printf("time=%d\n",difftime(end,start))

这里的输出单位为秒。如要精确到毫秒的计时,可以调用clock():

clock_t start,end  

start = clock()  

//计时中 

end = clock()  

printf("time=%f\n",(double)end-start)/CLK_TCK)

这里end和start得到的是计算机时钟的tick数,换算成毫秒需要除以常数CLK_TCK,换算成秒除以常数CLK_TCKCLOCKS_PER_SEC。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12413027.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存