int main(){ int cr=0; while(1){ MENU(); int choice; scanf("%d",&choice); if(cr==0) { if(choice==1){ printf("现在开始创建!!!\n"); }else{ printf("必须先创建磁道哟!!!\n"); choice=1; gotoxy(25, 35); printf("请点击任意键继续使用。。。\n"); getch(); } } switch(choice) { case 1: system("cls"); creat(); cr=1; break; case 2: system("cls"); FCFS(); printf("请点击任意键继续使用。。。"); getch(); system("cls"); break; case 3: system("cls"); SSTF(); printf("请点击任意键继续使用。。。"); getch(); system("cls"); break; case 4: system("cls"); SCAN(); printf("请点击任意键继续使用。。。"); getch(); system("cls"); break; case 5: system("cls"); CSAN(); printf("请点击任意键继续使用。。。"); getch(); system("cls"); break; case 6: system("cls"); compare(); printf("请点击任意键继续使用。。。"); getch(); system("cls"); break; case 7: printf("再见!Bye~\n"); gotoxy(25, 25); printf("欢迎下次使用,再见!!!!!!"); exit(1); default: printf("Input error!(输入数字有误,请重新输入))\n"); printf("请点击任意键继续使用。。。"); getch(); system("cls"); } getchar(); } MENU(); } 具体实现
时间: 2024-03-04 21:53:50 浏览: 120
这是一个简单的磁盘调度算法模拟程序,使用了菜单和循环结构实现用户交互。程序中包含了以下函数:
- creat():用于创建磁道序列。
- FCFS():先来先服务算法。
- SSTF():最短寻道时间优先算法。
- SCAN():扫描算法。
- CSAN():循环扫描算法。
- compare():比较各个算法的效率。
程序的主函数中,定义了一个变量 cr,用于判断是否已经创建了磁道序列。如果没有创建,则只能选择创建操作,否则才可以执行其他操作。使用 switch 语句根据用户的选择执行相应的算法函数,并且在每个函数执行完后暂停程序,等待用户按下任意键继续使用。如果用户输入的选择不在菜单范围内,则会提示输入错误并重新显示菜单。
程序的实现比较简单,适合初学者练习。但是需要注意的是,程序中使用了 goto 语句,这在实际开发中是不推荐使用的,容易造成程序逻辑混乱。
阅读全文