C程序,同样的列表出现两次,找不到错误!
请高手帮我看这个吗?全部例子选项你选1,1,1,1,1
然后跳回去主菜单时 你选3.generatebill
做么会有2个table的???还有我的sport名字为什么显示没有的?变成null了
程序代码:
#include <conio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #include <stdio.h> char pasword[10], usrname[10], ch, day[10], sportname[20]; int i, menu1, picktime, qq, select, dayy,amount; struct badminton{ char *bad[20]; }p[10], np[10]; struct squash{ char *squ[20]; }a1[10], a2[10]; struct tennis{ char *ten[20]; }b1[10], b2[10]; struct futsal{ char *fut[20]; }c1[10], c2[10]; void print_line(int time) { switch (time) { case 1: { printf("|-------------------------------------------------------------------|\n"); }break; case 2: { printf("|---------------------------------------------|\n"); }break; } } void print_header(int time) { switch (time) { case 1: { printf("| court | 7am-9am | 9am-11am | 11am-1pm | 1pm-3pm | 3pm-5pm |\n"); }break; case 2: { printf("| court | 5pm-7pm | 7pm-9pm | 9pm-10pm |\n"); }break; } } void print_header2(int time) { switch (time) { case 1: { printf("| court | 10am-12am | 12pm-2pm | 2pm-4pm | 4pm-5pm |\n"); }break; case 2: { printf("| court | 5pm-7pm | 7pm-9pm | 9pm-10pm |\n"); }break; } } void print_header3(int time) { switch (time) { case 1: { printf("| court | 8am-10am | 10am-12pm | 12pm-2pm | 2pm-4pm | 4pm-5pm |\n"); }break; case 2: { printf("| court | 5pm-7pm | 7pm-9pm | 9pm-10pm |\n"); }break; } } void print_header4(int time) { switch (time) { case 1: { printf("| court | 7am-9am | 9am-11am | 11am-1pm | 1pm-3pm | 3pm-5pm |\n"); }break; case 2: { printf("| court | 5pm-7pm | 7pm-9pm | 9pm-10pm |\n"); }break; } } void bill_content(int menu){ printf("| %s | %d ", sportname[20], amount); switch (menu){ case 1:{printf("| Rm16.00 |\n"); }break; case 2:{printf("| Rm10.00 |\n"); }break; case 3:{printf("| Rm30.00 |\n"); }break; case 4:{printf("| Rm40.00 |\n"); }break; } } void print_content(char *court, int time, int start_index){ char *space; printf("| %s |", court); switch (time){ case 1:{ for (int i = 0; i < 5; i++) { if (start_index + i < 10) { space = " "; printf(" %d. %s%s ", start_index + i, np[dayy].bad[start_index + i - 1], space); } else { printf(" %d. %s ", start_index + i, np[dayy].bad[start_index + i - 1]); } } printf("|\n"); }break; case 2:{ for (int i = 0; i < 3; i++) { if (start_index + i < 10) { space = " "; printf(" %d. %s%s ", start_index + i, p[dayy].bad[start_index + i - 1], space); } else { printf(" %d. %s ", start_index + i, p[dayy].bad[start_index + i - 1]); } } printf("|\n"); }break; } } void print_content2(char *court, int time, int start_index){ char *space; printf("| %s |", court); switch (time){ case 1:{ for (int i = 0; i < 4; i++) { if (start_index + i < 10) { space = " "; printf(" %d. %s%s ", start_index + i, a1[dayy].squ[start_index + i - 1], space); } else { printf(" %d. %s ", start_index + i, a1[dayy].squ[start_index + i - 1]); } } printf("|\n"); }break; case 2:{ for (int i = 0; i < 3; i++) { if (start_index + i < 10) { space = " "; printf(" %d. %s%s ", start_index + i, a2[dayy].squ[start_index + i - 1], space); } else { printf(" %d. %s ", start_index + i, a2[dayy].squ[start_index + i - 1]); } } printf("|\n"); }break; } } void print_content3(char *court, int time, int start_index){ char *space; printf("| %s |", court); switch (time){ case 1:{ for (int i = 0; i < 5; i++) { if (start_index + i < 10) { space = " "; printf(" %d. %s%s ", start_index + i, b1[dayy].ten[start_index + i - 1], space); } else { printf(" %d. %s ", start_index + i, b1[dayy].ten[start_index + i - 1]); } } printf("|\n"); }break; case 2:{ for (int i = 0; i < 3; i++) { if (start_index + i < 10) { space = " "; printf(" %d. %s%s ", start_index + i, b2[dayy].ten[start_index + i - 1], space); } else { printf(" %d. %s ", start_index + i, b2[dayy].ten[start_index + i - 1]); } } printf("|\n"); }break; } } void print_content4(char *court, int time, int start_index){ char *space; printf("| %s |", court); switch (time){ case 1:{ for (int i = 0; i < 5; i++) { if (start_index + i < 10) { space = " "; printf(" %d. %s%s ", start_index + i, c1[dayy].fut[start_index + i - 1], space); } else { printf(" %d. %s ", start_index + i, c1[dayy].fut[start_index + i - 1]); } } printf("|\n"); }break; case 2:{ for (int i = 0; i < 3; i++) { if (start_index + i < 10) { space = " "; printf(" %d. %s%s ", start_index + i, c2[dayy].fut[start_index + i - 1], space); } else { printf(" %d. %s ", start_index + i, c2[dayy].fut[start_index + i - 1]); } } printf("|\n"); }break; } } void print_badminton_table(int time) { switch (menu1){ case 1:{ print_line(time); print_header(time); print_line(time); print_content("A", time, 1); print_line(time); print_content("B", time, 6); print_line(time); print_content("C", time, 11); print_line(time); print_content("D", time, 16); print_line(time); }break; case 2:{ print_line(time); print_header2(time); print_line(time); print_content2("A", time, 1); print_line(time); print_content2("B", time, 4); print_line(time); }break; case 3:{ print_line(time); print_header3(time); print_line(time); print_content3("A", time, 1); print_line(time); print_content3("B", time, 6); print_line(time); print_content3("C", time, 11); print_line(time); }break; case 4:{ print_line(time); print_header(time); print_line(time); print_content4("A", time, 1); print_line(time); print_content4("B", time, 6); print_line(time); print_content4("C", time, 11); print_line(time); }break; } } void chooseday(){ printf("Which day?"); scanf("%s", &day); if (!strcmp(day, "monday")) { printf("Monday is off day !\nPlease choose another day!"); scanf("%s", &day); } else if (!strcmp(day, "tuesday")){ dayy = 1; } else if (!strcmp(day, "wednesday")){ dayy = 2; } else if (!strcmp(day, "thursday")){ dayy = 3; } else if (!strcmp(day, "friday")){ dayy = 4; } else if (!strcmp(day, "saturday")){ dayy = 5; } system("cls"); { printf("You have choose %s\nPlease pick a time\n", day); printf("1.None Peak time\n"); printf("2.Peak time\n"); scanf("%d", &picktime); } } void checkcourt(){ printf("1.Badminton\n"); printf("2.Squash\n"); printf("3.Tennis\n"); printf("4.Futsal\n"); scanf("%d", &menu1); system("cls"); printf("How many court you want to book?"); scanf("%d", &amount); if (menu1 == 1){ sportname[10] = "Badminton"; chooseday(); int amountx; for (amountx = 0; amountx < amount; amountx++) { print_badminton_table(picktime); printf("Please insert the court"); scanf("%d", &qq); system("cls"); printf("You successsfully have booked a court.\n"); switch (picktime){ case 1:{ np[dayy].bad[qq - 1] = "X"; print_badminton_table(picktime); getch(); }break; case 2:{ p[dayy].bad[qq - 1] = "X"; print_badminton_table(picktime); getch(); }break; } }mainmenu(); } else if (menu1 == 2){ sportname[10] = "Squash"; chooseday(); int amountx; for (amountx = 0; amountx < amount; amountx++){ print_badminton_table(picktime); printf("Please insert the court"); scanf("%d", &qq); system("cls"); printf("You successsfully have booked a court.\n"); switch (picktime){ case 1:{ a1[dayy].squ[qq - 1] = "X"; print_badminton_table(picktime); getch(); } case 2:{ a2[dayy].squ[qq - 1] = "X"; print_badminton_table(picktime); getch(); } } }mainmenu(); } else if (menu1 == 3){ sportname[10] = "Tennis"; chooseday(); int amountx; for (amountx = 0; amountx < amount; amountx++){ print_badminton_table(picktime); printf("Please insert the court"); scanf("%d", &qq); system("cls"); printf("You successsfully have booked a court.\n"); switch (picktime){ case 1:{ b1[dayy].ten[qq - 1] = "X"; print_badminton_table(picktime); getch(); } case 2:{ b2[dayy].ten[qq - 1] = "X"; print_badminton_table(picktime); getch(); } } }mainmenu(); } else if (menu1 == 4){ sportname[10] = "Futsal"; chooseday(); int amountx; for (amountx = 0; amountx < amount; amountx++){ print_badminton_table(picktime); printf("Please insert the court"); scanf("%d", &qq); system("cls"); printf("You successsfully have booked a court.\n"); switch (picktime){ case 1:{ c1[dayy].fut[qq - 1] = "X"; print_badminton_table(picktime); getch(); } case 2:{ c2[dayy].fut[qq - 1] = "X"; print_badminton_table(picktime); getch(); } } }mainmenu(); } else{} } void generatebill() { printf("\n"); printf("\n"); printf("\n"); printf(" Genome Sport Centre Bill No:\n"); printf(" No.123,Sri Petaling,\n"); printf(" Kuala Lumpur\n"); printf(" Tel:03-89119223\n"); printf(" Staff:%s Day:%s\n", usrname, day); printf("\n"); printf(" Booking Table\n"); printf(" "); print_line(1); printf(" "); printf("| Sport | Number of booking | Rate | Total |\n"); printf(" "); print_line(1); printf(" "); bill_content(menu1); printf(" "); print_line(1); } int mainmenu(){ int menu2; system("cls"); printf("1.Check court availability\n"); printf("2.Booking\n"); printf("3.Generate bill\n"); printf("4.Exit\n"); scanf("%d", &menu2); system("cls"); switch (menu2){ case 1:{ checkcourt(); } case 3:{ generatebill(); } } } int main(){ int b; int a; for (a = 0; a < 20; a++){ for (b = 0; b < 10; b++){ np[b].bad[a] = "O"; p[b].bad[a] = "O"; a1[b].squ[a] = "O"; a2[b].squ[a] = "O"; b1[b].ten[a] = "O"; b2[b].ten[a] = "O"; c1[b].fut[a] = "O"; c2[b].fut[a] = "O"; } } printf("Enter User name: "); gets(usrname); printf("Enter the password : "); for (i = 0; i < 10; i++) { ch = getch(); if (isprint(ch)) { pasword[i] = ch; ch = '*'; printf("%c", ch); } else { pasword[i] = '\0'; break; } } if (!strcmp(pasword, "class")) { printf("\n\naccess\n"); mainmenu(); } else { printf("\n\nno access\n"); } }
[ 本帖最后由 chaicai333 于 2014-1-23 20:45 编辑 ]