این برنامه مشکل داره باید ادیت بش
#include <stdio.h>
#include <stdlib.h>
#include<conio.h>
#include<string.h>
#include <ctype.h>
#define MAX 100
int menu_select();
int add_house(struct house *houseList, int houseCount);
int edit_house(struct house *houseList, int houseCount);
int add_house(struct house *houseList, int houseCount);
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++){
choice=menu_select();
scanf("%d",&choice);
switch (choice) {
case 1:
int add_house(struct house *houseList, int houseCount);
do {
printf("\n**************************************** \n");
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[houseCount].status);
if (houseList[houseCount].status < 1 || houseList[houseCount].status>4) {
printf("Invalid Input\nEnter valid input\n");
}
else {
q = 1;
}
} while (q == 0);
houseCount++;
break;
case 2:
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--;
break;
case 3:
int edit_house(struct house *houseList, int houseCount);
break;
case 4:
printf("****************************************** *****\n");
printf("1.All\n2.By size\n3.by status\n4.by cost\n5.by room\n6.back\n");
scanf("%d",&del);
do{
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");
scanf("%f",&rep);
q=0;
do{
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[houseCount].status);
if(houseList[houseCount].status<0 || houseList[houseCount].status>4 ){
printf("Invalid Input\nEnter valid input\n");
}
else{
q=1;
}
}
while(q==0);
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;
break;
case 6:
break;
default:
printf("Invalid Input\n");
}
}
while(del <0 && del >6);
break;
default:
printf("Invalid Input\n");
}
}
return 0;
}
int menu_select()
{
char s[10];
int i = 0, c = 0;
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;
}
int add_house(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("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\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[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++;
}
int edit_house(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("%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);
}