این برنامه مشکل داره باید ادیت بشه
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include<conio.h>
int menu_select2(struct house *houseList, int houseCount);
int menu_select(void);
int edit_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++){
choice=menu_select();
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:");
printf("\n1. for rent");
printf("\n2. for mortage");
printf("\n3. for sale");
printf("\n4. 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:
printf("\n**************************************** ***********************************\n");
printf("%5s%15s%15s%15s%10s%15s\n", "ID", "Type", "Grd Area", "Inf Area", "Rooms", "Cost");
printf("---------------------------------------------------------------------------\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_houses(struct house *houseList, int houseCoun);
break;
case 4:
int menu_select(struct house *houseList, int houseCoun);
break;
}
return 0;
}
int menu_select(void);
{
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 menu_select2(struct house *houseList, int houseCount);
{
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("\n**************************************** ***********************************\n");
printf("%5s%15s%15s%15s%10s%15s\n", "ID", "Type", "Grd Area", "Inf Area", "Rooms", "Cost");
printf("---------------------------------------------------------------------------\n");
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("shrayete khone ra vared konid ta list amlak namayesh dade shavad\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("ghyemate khone ra vared konid ta list amlak namayesh dade shavad\n");
scanf("%f", &rep);
printf("\n**************************************** ***********************************\n");
printf("%5s%15s%15s%15s%10s%15s\n", "ID", "Type", "Grd Area", "Inf Area", "Rooms", "Cost");
printf("---------------------------------------------------------------------------\n");
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("tedad otaghha ra vared konid ta list khaneha namayesh dade shvad\n");
scanf("%f", &rep);
printf("\n**************************************** ***********************************\n");
printf("%5s%15s%15s%15s%10s%15s\n", "ID", "Type", "Grd Area", "Inf Area", "Rooms", "Cost");
printf("---------------------------------------------------------------------------\n");
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 edit_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;
printf("\n**************************************** ***********************************\n");
printf("%5s%15s%15s%15s%10s%15s\n", "ID", "Type", "Grd Area", "Inf Area", "Rooms", "Cost");
printf("---------------------------------------------------------------------------\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("****************************************** ***\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);
}