##switch用作目录
非计算机大二小白在自学过程中的一点积累
#include<stdio.h>
#include<stdlib.h>
#define NUM 3
void input_grade(int grade[NUM][3])
{
int i, j, k, temp_n, temp_m, temp_e, retry;
for (i = 0; i < NUM; i++) {
printf("请输入学生学号: ");
do{
retry = 0;
scanf_s("%d", &temp_n);
grade[i][0]=temp_n;
for (k = 0; k < i; k++) {
if (grade[k][0] == temp_n) {
printf("重复录入,请重新输入\n");
retry = 1;
break;
}
}
} while (retry);
do{
retry = 0;
printf("请输入该生的高数成绩: ");
scanf_s("%d", &temp_m);
if (temp_m > 100||temp_m<0) {
printf("请输入0-100的值\n");
retry = 1;
}
else {
grade[i][1] = temp_m;
}
} while (retry);
do {
retry = 0;
printf("请输入该生的英语成绩: ");
scanf_s("%d", &temp_e);
if (temp_e > 100 || temp_e < 0) {
printf("请输入0-100的值\n");
retry = 1;
}
else {
grade[i][2] = temp_e;
}
} while (retry);
}
}
void output_grade(int grade[NUM][3])
{
int i, j;
printf("------------------------------\n");
for (i = 0; i < NUM; i++) {
for (j = 0; j < 3; j++) {
printf("%d\t", grade[i][j]);
}
printf("\n");
}
printf("------------------------------\n");
}
void inquire_grade(int grade[NUM][3])
{
int i,flag=0,number,retry;
start_iq:printf("请输入要查询的学生学号: ");
scanf_s("%d", &number);
if (number == 0) {
output_grade(grade);
}
else {
for (i = 0; i < NUM; i++) {
if (grade[i][0] == number) {
printf("学号为%d的学生高数成绩是: %d,英语成绩是: %d\n", number, grade[i][1], grade[i][2]);
flag = 1;
break;
}
}
if (flag == 0) {
printf("未找到该学号学生的成绩\n是否要重新查询?\n");
printf("是......1,否......0: ");
start_iq_ipt:scanf_s("%d", &retry);
switch (retry) {
case 1:goto start_iq; break;
case 0:break;
default:printf("请输入0或1: "); goto start_iq_ipt;
}
}
}
}
前面是定义的一些函数,下面是main函数中使用switch的部分。
int main()
{
int sl,check;
int grade[NUM][3];
start:printf("欢迎使用成绩管理系统\n");
do {
printf("功能选项\n");
printf("输入成绩...1\n");
printf("输出全部成绩...2\n");
printf("查询成绩...3\n");
printf("退出...0\n");
fflush(stdin);
scanf_s("%d", &sl);
switch (sl) {
case 0:exit(0); break;
case 1:system("cls"); input_grade(grade); system("cls"); break;
case 2:system("cls"); output_grade(grade); system("pause"); system("cls"); break;
case 3:system("cls"); inquire_grade(grade); system("pause"); system("cls"); break;
default:system("cls"); goto start;
}
} while (1);
return 0;
}
system(“cls”)起到清屏的作用,exit(0)起到退出do-while循环的作用。