(Simplified Water Bill Computation)

The bill for a water service subscriber is prepared as follows:
1. The name of the water consumer is entered
2. The previous water meter reading in cubic meters (reading last month) from the consumer’s meter is entered.
3. The present water meter reading in cubic meters (reading this month) from the consumer’s meter is entered. The present water meter reading cannot be less than the previous water meter reading.
4. The volume of water consumed (consumption) is computed by subtracting the previous reading from the present reading.
5. The classification of the consumer is entered ( commercial or residential )
6. The amount due from the consumer is computed based on the following

For residential consumers
If Cubic Meters Consumed is then Amount Due (pesos)
========================== ====================
Less than or equal to 12 180.00
More than 12 180.00 + (cubicMetersConsumed – 12)*30.00

For commercial consumers
If Cubic Meters Consumed is then Amount Due (pesos)
========================== ====================
Less than or equal to 30 600.00
More than 30 600.00 + (cubicMetersConsumed – 30)*50.00

7. The bill statement is prepared. The bill statement should show the name of the subscriber, the readings, the consumption and the amount due. You may include other appropriate details too.

Required:
Develop a program for the water billing problem described above. Provide validation of data entries so that the billing process will be constrained to dealing with valid values.

Here's a step-by-step guide to developing a program for the water billing problem:

Step 1: Prompt the user to enter the name of the water consumer.
Step 2: Prompt the user to enter the previous water meter reading in cubic meters.
Step 3: Prompt the user to enter the present water meter reading in cubic meters.
- Make sure that the present reading is not less than the previous reading. If it is, prompt the user to reenter a valid value.
Step 4: Calculate the volume of water consumed by subtracting the previous reading from the present reading.
Step 5: Prompt the user to enter the classification of the consumer (residential or commercial).
- Validate the input to ensure it is either "residential" or "commercial". If not, prompt the user to reenter a valid value.
Step 6: Calculate the amount due based on the classification and volume of water consumed.
- For residential consumers:
- If the cubic meters consumed is less than or equal to 12, the amount due is 180.00 pesos.
- If the cubic meters consumed is more than 12, the amount due is 180.00 pesos + (cubicMetersConsumed - 12) * 30.00 pesos.
- For commercial consumers:
- If the cubic meters consumed is less than or equal to 30, the amount due is 600.00 pesos.
- If the cubic meters consumed is more than 30, the amount due is 600.00 pesos + (cubicMetersConsumed - 30) * 50.00 pesos.
Step 7: Prepare the bill statement.
- Display the name of the subscriber, the previous and present readings, the consumption, and the amount due.

You can implement this logic in any programming language of your choice. Just make sure to include appropriate input validation and formatting for the bill statement.

To develop a program for the water billing problem described in the question, you can use any programming language of your choice. I will provide you with a Python solution to demonstrate how the program can be implemented.

Here's an example code that will ask the user for the necessary inputs and compute the amount due based on the provided rules:

```python
# Step 1: Ask for the name of the water consumer
name = input("Enter the name of the water consumer: ")

# Step 2: Ask for the previous and present water meter reading
previous_reading = float(input("Enter the previous water meter reading in cubic meters: "))
present_reading = float(input("Enter the present water meter reading in cubic meters: "))

# Step 3: Validate that the present reading is not less than the previous reading
while present_reading < previous_reading:
print("Invalid input. Present reading cannot be less than the previous reading.")
present_reading = float(input("Enter the present water meter reading in cubic meters: "))

# Step 4: Compute the volume of water consumed
cubic_meters_consumed = present_reading - previous_reading

# Step 5: Ask for the classification of the consumer
classification = input("Enter the classification of the consumer (residential or commercial): ")

# Step 6: Compute the amount due based on the classification and cubic meters consumed
if classification.lower() == "residential":
if cubic_meters_consumed <= 12:
amount_due = 180.00
else:
amount_due = 180.00 + (cubic_meters_consumed - 12) * 30.00
elif classification.lower() == "commercial":
if cubic_meters_consumed <= 30:
amount_due = 600.00
else:
amount_due = 600.00 + (cubic_meters_consumed - 30) * 50.00
else:
amount_due = 0.00
print("Invalid classification. Amount due set to 0.")

# Step 7: Prepare the bill statement
print("\nBill Statement")
print("Name of Subscriber:", name)
print("Previous Reading:", previous_reading)
print("Present Reading:", present_reading)
print("Consumption:", cubic_meters_consumed, "cubic meters")
print("Amount Due:", amount_due, "pesos")
```

This code takes the necessary inputs from the user, validates them, and computes the amount due based on the provided rules. Finally, it displays the bill statement showing the subscriber's name, readings, consumption, and the amount due.

You can run this code in a Python environment to test it. Feel free to modify it according to your specific requirements or preferred programming language.