4、模拟智能交通信号灯系统
设计一个智能信号灯系统,在十字路口控制东西南北四个方向交通信号,当然是红灯停绿灯行了,一般情况是四个方向每次绿灯亮30秒,只不过在绿灯熄灭后亮3秒黄灯再转红灯。现要求系统能够根据各个方向路口来的车流情况动态分配信号灯在来车多的方向绿灯可以綖长30秒时间,为此在各个路口设有车流信号统计器,可以向系统动态发送车流信息。
这个题目确实有些难,因为要用到太多我们没学过的函数知识什么的,而我自己课外学这方面的知识也不是很深,做起来有些蒙,所以我请同学指导了初始化窗口方面的程序,应该是使用了C语言方面的知识,才勉强完成了整个界面的布局,还有就是车流量的那个确实不会了,所以我用了一个六十秒和一个四十秒的,希望老师见谅,感激不尽......
/*****这个程序确实很难,我是找了软件的同学一起帮忙看看的*******/
/*****因为确实有比较函数不懂,既要用到数字倒数,还得设计坐标***/
/*****而且那个初始化窗口的我确实做不出来,希望明哥见谅**********/
#include<windows.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#define ID_TIMER 1
int t=0; //标志灯亮的初始时间
int x,y; //设置鼠标的坐标位置
bool k=false,button=false;
int i=0,j=0; //用来设置输出数字的循环
int t1,s; //设置输出数字
int t2,m=0; //设置输出数字
char time1[10]; //将输出的数字储存在数组中
long CentreX[4],CentreY[4]; //圆心坐标
POINT lp1[100]; //4条车行路线,由北向南
POINT lp2[100]; //由西向东
POINT lp3[100]; //由南向北
POINT lp4[100]; //由东向西
long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam);声明初始化窗口类
BOOL InitWindowsClass(HINSTANCE hInstance);//初始化窗口
BOOL InitWindows(HINSTANCE hInstance,int nCmdShow);//初始化窗口类型
//定义窗口
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
MSG Message;
if(!InitWindowsClass(hInstance))//初始化窗口
return FALSE;
if(!InitWindows(hInstance,nCmdShow))//初始化窗口
return FALSE;
while(GetMessage(&Message,0,0,0))//消息循环
{
TranslateMessage(&Message);
DispatchMessage(&Message);
}
return Message.wParam;
}
/*****绘制整个视图***/
long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam)
{
HDC hDC; //定义指向设备描述表的句柄
HBRUSH hBrush; //定义指向画刷的句柄
HPEN hPen; //定义指向画笔的句柄
PAINTSTRUCT PtStr; //定义指向包含绘图信息的结构体变量
POINT points1[2]={
{300,0},{300,157}}; //划线
POINT points2[2]={
{500,0},{500,157}};
POINT points3[2]={
{0,157},{300,157}};
POINT points4[2]={
{500,157},{800,157}};
POINT points5[2]={
{0,357},{300,357}};
POINT points6[2]={
{300,357},{300,514}};
POINT points7[2]={
{500,357},{800,357}};
POINT points8[2]={
{500,357},{500,514}};
POINT points9[2]={
{400,0},{400,514}};
POINT points10[2]={
{0,