Show Bid Request
random number generator
Bid Request Id: 4302
|
|
|
Posted by: |
nothing (3 ratings)
(Software buyer rating 10) (Cancellation Ratio: 25%)
|
Posted: |
Oct 30, 2001 5:08:05 AM EDT
|
Bidding Closes: |
Nov 13, 2001 5:08:53 AM EDT
|
Viewed (by coders): |
222 times
|
|
|
|
Description:
Problem: Write a program that generates simple arithmetic questions using the random number generator. The program prints out the question on the terminal and asks the user to input the answer. The program then waits a fixed time for the answer to be entered, prints out the correctness of the answer provided and the correct answer if it was wrong (or a message indicating the time ran out) on standard output and then moves on to the next question.
Method: The main function will set up a loop, generate a question within the loop. The questions have only two operands. The operators including +, -, * and / are also to be random generated. The loop stops when the user sends interrupt signals (e.g. ctrl-C). The program then print out statistics such as how many questions have been attempted, and what is the percentage of the questions that were not answered.
Here is how the program should go:
loop (until interrupt signal is received) print the question fork in the child: read the answer, output the result, exit in the parent process: set a flag to indicate no answer sleep for required number of seconds if still no answer kill the child print out that time's up flush any pending characters from stdin * wait for the child (to avoid zombies) end of the loop clean up
If the child terminates before the sleep is completed, it sends a signal called SIGCHLD to the parent. This signal interrupts the parent and, provided the parent has an interrupt handler for it, enables the parent to change the value of the (global) flag to indicate that an answer has been received.
The program should accept one command line argument: the wait time per question. (No error checking is required in this assignment.)
Deliverables: Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
Special Conditions / Other:
i need within 1 day n must run under unix
Remember that contacting the other party outside of the site (by email, phone, etc.) on all business projects < $500 (before the buyer's money is escrowed) is a violation of both the software buyer and seller agreements.
We monitor all site activity for such violations and can instantly expel transgressers on the spot, so we thank you in advance for your cooperation.
If you notice a violation please help out the site and report it. Thanks for your help.
|
|
Bidding/Comments:
|
All monetary amounts on the site are in United States dollars.
Rent a Coder is a closed auction, so coders can only see their own bids and comments. Buyers can view every posting made on their bid requests. |
See all rejected bids (and all comments)
Name |
Bid Amount |
Date |
Coder Rating |
|
|
|
$20 (USD)
|
Oct 30, 2001 7:14:49 AM EDT
|
9.85
(Excellent)
|
|
|
|
|
|
|
This bid was accepted by the buyer!
|
$20 (USD)
|
Oct 30, 2001 11:56:58 AM EDT
|
9.85
(Excellent)
|
|
|
I can write this program for you with no trouble, I am very experenced with the using of real time.
Here is an example of 'stop watch' code I have that calulates time to the neareast... I think nano second on any computer.
// File stopwatch.hpp
#ifndef STOPWATCH_HPP
#define STOPWATCH_HPP
#include <iostream>
#include <ctime>
class StopWatch {
public :
StopWatch ();
void reset ();
void start ();
void stop ();
double value () const;
private :
clock_t begin;
clock_t end;
bool run;
};
ostream& operator<< (ostream&, StopWatch const&);
#endif
#include <iostream>
#include <ctime>
#include 'stopwatch.hpp'
StopWatch::StopWatch() {
run = false;
end = begin = clock();
}
void StopWatch::reset() {
end = begin = clock();
}
void StopWatch::start() {
if (!run) {
begin = clock();
run = true;
}
}
void StopWatch::stop() {
if (run) {
end = clock();
run = false;
}
}
double StopWatch::value() const {
return run ? (clock()-begin)/double(CLOCKS_PER_SEC) : (end-begin)/double(CLOCKS_PER_SEC);
}
ostream& operator<< (ostream& os, StopWatch const& sw) {
ios::streamsize p(os.precision(2));
ios::fmtflags f(os.setf(ios::fixed, ios::floatfield));
os << sw.value();
os.precision(p);
os.flags(f);
return os;
}
While I would not use this code for your program, it is an abple of my ability to use it.
|
|
|
|
|
|