帮看一下这个程序哪里有错!谢谢~!

yupeng007 2003-05-27 08:23:43
///main.h
#include <deque>
#include <dos.h>
#include <stdlib.h>
#include <conio.h>
#include "process.h"

const int pronum = 10;
int require[10] = {0,0,0,0,0,0,0,0,0,0};
int available[10] = {0,0,0,0,0,0,0,0,0,0};
int cost[10] = {0,0,0,0,0,0,0,0,0,0};


int main(void)
{
char key;
Process temp;
Process *p;
p=new Process[pronum];
deque<Process> Proque(pronum);
cout<<"How many process to be scheduled?\n";

for(int i = 0; i < pronum; ++i)
{
Process[i].SetProcessName(i);
Process[i].SetRequiredTime(require[i]);
Proque.push_back(Process[i]);
}

cout<<"### Press any key to block the active process ###\n"
while(!Proque.empty())
{
temp = Proque.front();
Proque.pop_front();
cout<<temp.GetProcessName()<<" is active.\n"
<<"It need "<<temp.GetRequiredTime()<<" second(s).\n"
<<"Need blocked(Y/N)?\n";
if((key = getch()) == 'Y')
{
int order = temp.GetNum();
cost[order] = 0;
require[order] -= available[order];
temp.SetRequiredTime(require[order]);
Proque.push_back(temp);
}
}
system("pause");
return 0;
}



///process.h
#ifndef _STRING_H
#include <string>
#endif

class Process
{
public:
void SetProcessName(int i);
string GetProcessName();
void SetNum(int i);
int GetNum();
void SetRequiredTime(int second);
int GetRequiredTime();
private:
string processName; //the name of the process
int order; //the order of the three global array
int requiredTime; //the time allocate to the process
};

void Process::SetProcessName(int i) { processName = "Process "; }
string Process::GetProcessName() { return processName; }
void Process::SetNum(int i) { order = i; }
int Process::GetNum() { return order;}
void Process::SetRequiredTime(int second) { requiredTime = second;}
int Process::GetRequiredTime() { return requiredTime; }

#endif
...全文
29 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yupeng007 2003-05-27
  • 打赏
  • 举报
回复
哦!是写错了~!
太粗心了~!
谢谢!
qizi0wang 2003-05-27
  • 打赏
  • 举报
回复
#include <deque>
#include <dos.h>
#include <stdlib.h>
#include <conio.h>
#include <iostream>
#include "process.h"
using namespace std;
const int pronum = 10;
int require[10] = {0,0,0,0,0,0,0,0,0,0};
int available[10] = {0,0,0,0,0,0,0,0,0,0};
int cost[10] = {0,0,0,0,0,0,0,0,0,0};


int main(void)
{
char key;
Process temp;
Process *p;
p=new Process[pronum];
deque<Process> Proque(pronum);
cout<<"How many process to be scheduled?\n";

for(int i = 0; i < pronum; ++i)
{
Proque[i].SetProcessName(i);
Proque[i].SetRequiredTime(require[i]);
Proque.push_back(Proque[i]);
}

cout<<"### Press any key to block the active process ###\n";
while(!Proque.empty())
{
temp = Proque.front();
Proque.pop_front();
cout<<temp.GetProcessName()<<" is active.\n"
<<"It need "<<temp.GetRequiredTime()<<" second(s).\n"
<<"Need blocked(Y/N)?\n";
if((key = getch()) == 'Y')
{
int order = temp.GetNum();
cost[order] = 0;
require[order] -= available[order];
temp.SetRequiredTime(require[order]);
Proque.push_back(temp);
}
}
system("pause");
return 0;
}


#ifndef _STRING_H
#include <string>
using namespace std;
class Process
{
public:
void SetProcessName(int i);
string GetProcessName();
void SetNum(int i);
int GetNum();
void SetRequiredTime(int second);
int GetRequiredTime();
private:
string processName; //the name of the process
int order; //the order of the three global array
int requiredTime; //the time allocate to the process
};

void Process::SetProcessName(int i) { processName = "Process "; }
string Process::GetProcessName() { return processName; }
void Process::SetNum(int i) { order = i; }
int Process::GetNum() { return order;}
void Process::SetRequiredTime(int second) { requiredTime = second;}
int Process::GetRequiredTime() { return requiredTime; }

#endif

vc++ 6.0 win2k 通过

但是我不明白 你的程序里这几句:
Process[i].SetProcessName(i);
Process[i].SetRequiredTime(require[i]);
你根本没有定义 Process啊!他只是一个类名啊!不是变量名!
煜知搬砖者 2003-05-27
  • 打赏
  • 举报
回复
引用头文件的时候有问题
要么#include <***.h>
要么#include <****>
using namespace std;
不过再devC++下,一定要用到命名空间,VC下就随便了
yupeng007 2003-05-27
  • 打赏
  • 举报
回复
是用DEV-C++4.9.7.0编译的。老是说有错误。错误信息如下:
D:\scarecrow\FCFS\main.cpp[Warning] In function `int main()':
26 D:\scarecrow\FCFS\main.cpp parse error before `['
28 D:\scarecrow\FCFS\main.cpp parse error before `['
28 D:\scarecrow\FCFS\main.cpp parse error before `)'
32 D:\scarecrow\FCFS\main.cpp parse error before `while'
At top level:
48 D:\scarecrow\FCFS\main.cpp ANSI C++ forbids declaration `system' with no type
48 D:\scarecrow\FCFS\main.cpp `int system' redeclared as different kind of symbol
328 D:\Dev-Cpp\include\stdlib.h previous declaration of `int system(const char *)'
48 D:\scarecrow\FCFS\main.cpp initialization to `int' from `const char *' lacks a cast
49 D:\scarecrow\FCFS\main.cpp parse error before `return'
D:\scarecrow\FCFS\Makefile.win [Build Error] [main.o] Error 1




69,368

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧