دومیش

#include <stdio.h>
#include <stdlib.h>
#include<conio.h>
#include<string.h>
#include <ctype.h>
int menu_select();
int del_houses(struct house *houseList, int houseCount);
#define MAX 100
struct house
{
int status;
float cost;
float groundArea;
float infrastructureArea;
int rooms;
};
char type[][20] = { "rent","mortage","sale","rent\\mortage" };
int main(void){
struct house houseList[MAX];
int houseCount=0,i=0,q=0,choice=0,exit=0,del=0,edit=0;
float rep=0;
char type[][20]={"rent","mortage","sale","rent\\mortage"};
for(i=0;exit==0;i++){
printf("1<<add>>\n");
printf("2<<delet>>\n");
printf("3<<edit>>\n");
printf("4<<report>>\n");
printf("5<<exit>>\n");
printf("**************************\n");


do {
printf("please enter your choice(1_5)\n");
do
{
memset(s, 0, sizeof(s));
gets(s);
}
while (!isdigit(s[0]));
c = atoi(s);
} while (c<1 || c>5);
return c;
scanf("%d",&choice);
switch(choice){
case 1:
printf("Enter ground area:");
scanf("%f",&houseList[houseCount].groundArea);

printf("Enter infrastructure area:");
scanf("%f",&houseList[houseCount].infrastructureArea);

printf("Enter number of rooms:");
scanf("%d",&houseList[houseCount].rooms);

printf("Enter cost:");
scanf("%f",&houseList[houseCount].cost);

do{
printf("\n**************************************** \n");
printf("enter house type:\n");
printf("\t1 <for rent>\n");
printf("\t2 <for mortage>\n");
printf("\t3 <for sale>\n");
printf("\t4 <for rent and mortage>\n");
scanf("%d",&houseList[houseCount].status);
if(houseList[houseCount].status<0 || houseList[houseCount].status>4 ){
printf("Invalid Input\nEnter valid input\n");
}
else{
q=1;
}
}
while(q==0);
houseCount++;

break;
case 2:
int del_houses();


break;
case 3:

printf("%5s%15s%12s%12s%5s%8s\n","** ID **","** Type **","** Grd Area **","** Inf Area **","** rooms **","** Cost **");
for(int m=0;m<houseCount;m++){
printf("%5d%15s%12.2f%12.2f%8d%8.2f\n",m+1,type[(houseList[m].status)-1],houseList[m].groundArea,houseList[m].infrastructureArea,houseList[m].rooms,houseList[m].cost);
}
do{
printf("****************************************** ***\n");
printf("Enter the ID number you want to Edit:");
scanf("%d",&del);
if(del<=0 || del>houseCount+1){
printf("Invalid Id Number\nPlease Enter Valid ID number\n");
}
}
while(del<=0 || del>houseCount+1);

printf("Enter ground area:");
scanf("%f",&houseList[del-1].groundArea);

printf("Enter infrastructure area:");
scanf("%f",&houseList[del-1].infrastructureArea);

printf("Enter number of rooms:");
scanf("%d",&houseList[del-1].rooms);

printf("Enter cost:");
scanf("%f",&houseList[del-1].cost);

printf("Enter house type:\n\t\t1 for rent\n\t\t2 for mortage\n\t\t3 for sale\n\t\t4 for rent and mortage\n");
scanf("%d",&houseList[del-1].status);
break;
case 4:
int menu_select()
break;

}
return 0;
}
int menu_select()
{
char p[10], ch;
int i = 0, del = 0;
float rep = 0;
printf("1<<all>>\n");
printf("2<<by size>>\n");
printf("3<<by status>>\n");
printf("4<<by cost>>\n");
printf("5<<by room>>\n");
printf("6<<Back>>\n");
printf("************************");
printf("please enter your choice(1_6):\n");
gets(p);
del = atoi(p);
switch (del) {
case 1:
for (int m = 0; m<houseCount; m++) {
printf("%5d%15s%12.2f%12.2f%8d%8.2f\n", m + 1, type[(houseList[m].status) - 1], houseList[m].groundArea, houseList[m].infrastructureArea, houseList[m].rooms, houseList[m].cost);
}
break;
case 2:
printf("Enter the size of house to print the list\n");
scanf("%f", &rep);
printf("%5s%15s%12s%12s%5s%8s\n", "** ID **", "** Type **", "** Grd Area **", "** Inf Area **", "** rooms **", "** Cost **");


for (int m = 0; m<houseCount; m++) {
if (houseList[m].groundArea >= rep) {
printf("%5d%15s%12.2f%12.2f%8d%8.2f\n", m + 1, type[(houseList[m].status) - 1], houseList[m].groundArea, houseList[m].infrastructureArea, houseList[m].rooms, houseList[m].cost);
}
}
break;
case 3:
printf("Enter the status of house to print the list\n");
while (1)
{
scanf("%f", &rep);
if (rep >= 1 || rep <= 4)
break;
}



for (int m = 0; m<houseCount; m++) {
if (houseList[m].status == (int)rep) {
printf("%5d%15s%12.2f%12.2f%8d%8.2f\n", m + 1, type[(houseList[m].status) - 1], houseList[m].groundArea, houseList[m].infrastructureArea, houseList[m].rooms, houseList[m].cost);
}
}
break;
case 4:
printf("Enter the cost of house to print the list\n");
scanf("%f", &rep);
printf("%5s%15s%12s%12s%5s%8s\n", "** ID **", "** Type **", "** Grd Area **", "** Inf Area **", "** rooms **", "** Cost **");
for (int m = 0; m<houseCount; m++) {
if (houseList[m].cost <= rep) {
printf("%5d%15s%12.2f%12.2f%8d%8.2f\n", m + 1, type[(houseList[m].status) - 1], houseList[m].groundArea, houseList[m].infrastructureArea, houseList[m].rooms, houseList[m].cost);
}
}
break;
case 5:
printf("Enter the number of rooms of house to print the list\n");
scanf("%f", &rep);
printf("%5s%15s%12s%12s%5s%8s\n", "** ID **", "** Type **", "** Grd Area **", "** Inf Area **", "** rooms **", "** Cost **");


for (int m = 0; m<houseCount; m++) {
if (houseList[m].rooms == (int)rep) {
printf("%5d%15s%12.2f%12.2f%8d%8.2f\n", m + 1, type[(houseList[m].status) - 1], houseList[m].groundArea, houseList[m].infrastructureArea, houseList[m].rooms, houseList[m].cost);
}
}
break;
case 6:


break;
default:
printf("Invalid Input\n");
}
}
int del_houses(struct house *houseList, int houseCount)
{
struct house houseList[MAX];
int houseCount=0,i=0,q=0,choice=0,exit=0,del=0,edit=0;
float rep=0;
char type[][20]={"rent","mortage","sale","rent\\mortage"};
printf("\n**************************************** **************\n");
printf("%5s%15s%12s%12s%5s%8s\n","** ID **","** Type **","** Grd Area **","** Inf Area **","** rooms **","** Cost **");
printf("\n**************************************** **************\n");
for(int m=0;m<houseCount;m++){
printf("%5d%15s%12.2f%12.2f%8d%8.2f\n",m+1,type[(houseList[m].status)-1],houseList[m].groundArea,houseList[m].infrastructureArea,houseList[m].rooms,houseList[m].cost);
}
do{
printf("Enter the ID number you want to delete:");
scanf("%d",&del);
if(del<=0 || del>houseCount+1){
printf("****************************************** *****\n");
printf("Invalid Id Number\nPlease Enter Valid ID number\n");
}
}
while(del<=0 || del>houseCount+1);
for(int m=del-1;m<houseCount;m++){
houseList[m].cost=houseList[m+1].cost;
houseList[m].groundArea=houseList[m+1].groundArea;
houseList[m].infrastructureArea=houseList[m+1].infrastructureArea;
houseList[m].rooms=houseList[m+1].rooms;
houseList[m].status=houseList[m+1].status;
}
houseCount--;
}