#ifndef __UTILITY_H__ // 如果没有定义__UTILITY_H__
#define __UTILITY_H__ // 那么定义__UTILITY_H__
// 实用程序软件包
#ifdef _MSC_V // 表示是VC
#if _MSC_VER == 1200 // 表示VC6.0
// 标准库头文件
#include <string.h> // 标准串和操作
#include <iostream.h> // 标准流操作
#include <limits.h> // 极限
#include <math.h> // 数学函数
#include <fstream.h> // 文件输入输出
#include <ctype.h> // 字符处理
#include <time.h> // 日期和时间函数
#include <stdlib.h> // 标准库
#include <stdio.h> // 标准输入输出
#include <iomanip.h> // 输入输出流格式设置
#include <stdarg.h> // 支持变长函数参数
#include <assert.h> // 支持断言
#else // 其它版本的VC++
// ANSI C++标准库头文件
#include <string> // 标准串和操作
#include <iostream> // 标准流操作
#include <limits> // 极限
#include <cmath> // 数学函数
#include <fstream> // 文件输入输出
#include <cctype> // 字符处理
#include <ctime> // 日期和时间函数
#include <cstdlib> // 标准库
#include <cstdio> // 标准输入输出
#include <iomanip> // 输入输出流格式设置
#include <cstdarg> // 支持变长函数参数
#include <cassert> // 支持断言
using namespace std; // 标准库包含在命名空间std中
#endif // _MSC_VER == 1200
#else // 非VC
// ANSI C++标准库头文件
#include <string> // 标准串操作
#include <iostream> // 标准流操作
#include <limits> // 极限
#include <cmath> // 数据函数
#include <fstream> // 文件输入输出
#include <cctype> // 字符处理
#include <ctime> // 日期和时间函数
#include <cstdlib> // 标准库
#include <cstdio> // 标准输入输出
#include <iomanip> // 输入输出流格式设置
#include <cstdarg> // 支持变长函数参数
#include <cassert> // 支持断言
using namespace std; // 标准库包含在命名空间std中
#endif // _MSC_VER
// 自定义类型
enum StatusCode {SUCCESS, FAIL, UNDER_FLOW, OVER_FLOW,RANGE_ERROR, DUPLICATE_ERROR,
NOT_PRESENT, ENTRY_INSERTED, ENTRY_FOUND, VISITED, UNVISITED};
// 宏定义
#define DEFAULT_SIZE 1000 // 缺省元素个数
#define DEFAULT_INFINITY 1000000 // 缺省无穷大
// 实用函数声明
char GetChar(istream &inStream = cin); // 从输入流inStream中跳过空格及制表符获取一字符
bool UserSaysYes(); // 当用户肯定回答(yes)时, 返回true, 用户否定回答(no)时,返回false
void SetRandSeed(); // 设置当前时间为随机数种子
int GetRand(int n); // 生成0 ~ n-1之间的随机数
int GetRand(); // 生成随机数
int GetPoissionRand(double expectValue);// 生成期望值为expectValue泊松随机数
template <class ElemType >
void Swap(ElemType &e1, ElemType &e2); // 交换e1, e2之值
template<class ElemType>
void Display(ElemType elem[], int n); // 显示数组elem的各数据元素值
template <class ElemType>
void Write(const ElemType &e); // 显示数据元素
// 实用类
class Timer; // 定时器类Timer
class Error; // 通用异常类
char GetChar(istream &inStream)
// 操作结果:从输入流inStream中跳过空格及制表符获取一字符
{
char ch; // 临时变量
while ((ch = (inStream).peek()) != EOF // 文件结束符(peek()函数从输入流中接受1
// 字符,流的当前位置不变)
&& ((ch = (inStream).get()) == ' ' // 空格(get()函数从输入流中接受1字符,流
// 的当前位置向后移1个位置)
|| ch == '\t')); // 制表符
return ch; // 返回字符
}
bool UserSaysYes()
// 操作结果: 当用户肯定回答(yes)时, 返回true, 用户否定回答(no)时,返回false
{
char ch; // 用户回答字符
bool initialResponse = true; // 初始回答
do
{ // 循环直到用户输入恰当的回答为止
if (initialResponse)
{ // 初始回答
cout << "(y, n)?";
}
else
{ // 非初始回答
cout << "用y或n回答:";
}
while ((ch = GetChar()) == '\n'); // 跳过空格,制表符及换行符获取一字符
initialResponse = false;
} while (ch != 'y' && ch != 'Y' && ch != 'n' && ch != 'N');
while (GetChar() != '\n'); // 跳过当前行后面的字符
if (ch == 'y' || ch == 'Y') return true;
else return false;
}
// 定时器类Timer
class Timer
{
private:
// 数据成员
clock_t startTime;
public:
// 方法声明
Timer(); // 构造函数
~Timer(void) {}; // 析构函数
double ElapsedTime(); // 返回已过的时间
void Reset(); // 重置开始时间
};
// 定时器类Timer的实现部分
Timer::Timer()
// 操作结果:由当前时间作为开始时间构造对象
{
startTime = clock();
}
double Timer::ElapsedTime()
// 操作结果:返回从Timer对象启动或最后一次调用reset()后所使用的CPU时间
{
clock_t endTime = clock();
return (double)(endTime - startTime) / (double)CLK_TCK;
}
void Timer::Reset()
// 操作结果:重置开始时间
{
startTime = clock();
}
// 通用异常类
#define MAX_ERROR_MESSAGE_LEN 100
class Error
{
private:
// 数据成员
char message[MAX_ERROR_MESSAGE_LEN];// 异常信息
public:
// 方法声明
Error(char mes[] = "一般性异常!"); // 构造函数
~Error(void) {}; // 析构函数
void Show() const; // 显示异常信息
};
// 通用异常类的实现部分
Error::Error(char *mes)
// 操作结果:由mes构构通用异常对象
{
strcpy(message, mes); // 复制异常信息
}
void Error::Show()const
// 操作结果:显示异常信息
{
cout << message << endl; // 显示异常信息
}
void SetRandSeed()
// 操作结果:设置当前时间为随机数种子
{
srand((unsigned)time(NULL));
}
int GetRand(int n)
// 操作结果:生成0 ~ n-1之间的随机数
{
return rand() % (n);
}
int GetRand()
// 操作结果:生成随机数
{
return rand();
}
int GetPoissionRand(double expectValue)
// 操作结果:生成期望值为expectValue泊松随机数
{
double x = rand() / (double)(RAND_MAX + 1); // x均匀分布于[0, 1)
int k = 0;
double p = exp(-expectValue); // pk为泊松分布值
double s = 0; // sk用于求和p0+p1+...+pk-1
while (s <= x)
{ // 当sk <= x时循环, 循环结束后sk-1 <= x < sk
s += p; // 求和
k++;
p = p * expectValue / k; // 求下一项pk
}
return k - 1; // k-1的值服从期希值为expectValue的泊松分布
}
template <class ElemType >
void Swap(ElemType &e1, ElemType &e2)
// 操作结果: 交换e1, e2之值
{
ElemType temp; // 临时变量
// 循环赋值实现交换e1, e2
temp = e1; e1 = e2; e2 = temp;
}
template<class ElemType>
void Display(ElemType elem[], int n)
// 操作结果: 显示数组elem的各数据元素值
{
for (int i = 0; i < n; i++)
{ // 显示数组elem
cout << elem[i] << " ";
}
cout << endl;
}
template <class ElemType>
void Write(const ElemType &e)
// 操作结果: 显示数据元素
{
//cout << e << " ";
cout << ((VehicleType)e).num << " ";
}
#endif
没有合适的资源?快使用搜索试试~ 我知道了~
停车场代码(c++数据结构课程设计)
共34个文件
h:7个
pdb:4个
idb:3个
4星 · 超过85%的资源 需积分: 16 44 下载量 153 浏览量
2009-12-21
10:29:29
上传
评论 2
收藏 1.24MB RAR 举报
温馨提示
设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。停车场内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。编制程序模拟该停车场的管理。
资源推荐
资源详情
资源评论
收起资源包目录
.rar (34个子文件)
carstop
main.cpp 1KB
carstop.vcproj 5KB
lk_stack.h 5KB
node.h 640B
carstop.sln 878B
Vehicle.h 127B
utility.h 7KB
carstop.plg 248B
Debug
carstop.exe.embed.manifest 146B
vc60.pdb 108KB
vc80.pdb 172KB
vc60.idb 73KB
vc90.idb 243KB
carstop.exe.embed.manifest.res 212B
BuildLog.htm 11KB
carstop.exe 524KB
mt.dep 67B
carstop.pdb 2.42MB
main.obj 537KB
vc90.pdb 204KB
carstop.ilk 404KB
vc80.idb 235KB
carstop.exe.intermediate.manifest 145B
新建 文本文档.txt 7KB
stoppingplace.h 3KB
carstop.opt 50KB
carstop.vcproj.B301-7.计算机学院专业实验室.user 1KB
lk_list.h 7KB
utility1.h 7KB
carstop.suo 21KB
carstop.ncb 2.15MB
carstop.dsp 5KB
carstop.vcproj.WIN-4LI94TFTS22.Administrator.user 1KB
carstop.dsw 539B
共 34 条
- 1
资源评论
- wz23562013-06-12可以运行,做的不错,非常感谢
- qq_257078792015-06-12我们要求用顺序栈和链式队列,, 还是感谢分享~~
- enhsh2012-10-25我调试成了,非常谢谢你的资料
bb303071765
- 粉丝: 3
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 国际象棋检测2-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar
- ssd5课件图片记录保存
- 常用算法介绍与学习资源汇总
- Python与Pygame实现带特效的圣诞节场景模拟程序
- 国际象棋检测11-YOLO(v7至v9)、COCO、Darknet、Paligemma、VOC数据集合集.rar
- 使用Python和matplotlib库绘制爱心图形的技术教程
- Java外卖项目(瑞吉外卖项目的扩展)
- 必应图片壁纸Python爬虫代码bing-img.zip
- 基于Pygame库实现新年烟花效果的Python代码
- 浪漫节日代码 - 爱心代码、圣诞树代码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功