C语言中的switch用作目录

##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循环的作用。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值