C语言课表查询程序

C结构体课表查询程序

【问题描述】定义针对某个学生的课表结构体变量,包括课程名、教室、上课时间(用整型变量12、34、56、78、910代表12节课等即可)。
从键盘输入该同学的课表,上课时间不是前面提到的几个的表示输入结束,并输入要查询的课程,输出该课程的所有信息。
若要查询的课程不存在,也要给出 Not Found 的出错提示。
【输入形式】输入所有课程信息以及要查询的课程。
【输出形式】输出要查询的课程信息或提示未找到。
【样例输入】
ca b210 12
ag c215 12
ca b310 56
xx xxxx 68
ca
【样例输出】
ca b210 12
ca b310 56
【样例输入】
ca b210 12
ag c215 12
ca b310 56
yy yyyy 91
c
【样例输出】
c Not Found

由于集成开发环境得不同,本程序代码与其他可能不同,如无法运行或报错,可修改:
scanf_s("%s %s %d", syllabus[i].course, 12, syllabus[i].classroom, 12, &syllabus[i].time);
scanf_s("%s", lesson, 12);
改为:
scanf_s("%s", lesson);
scanf_s("%s %s %d", syllabus[i].course, syllabus[i].classroom, &syllabus[i].time);
即去掉数字。
该程序还有很多可优化得地方,鉴于本人才疏学浅,故暂能写出该程序。
代码中有很多同义词,都表示课程的意思。
本文为原创,未抄袭他人代码,如有雷同,请联系。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct Timetable                                   //定义课程表的结构体
{
 char course[12], classroom[12];                //课程,教室
 int time;                                      //上课时间
};
int main()
{
 struct Timetable syllabus[12];                 //定义一个课程表的结构体变量
 int i, n, m;
 char lesson[12];                               //暂存待查询的课程
 for (i = 0, n = 0;; i++, n++)
 {
  scanf_s("%s %s %d", syllabus[i].course, 12, syllabus[i].classroom, 12, &syllabus[i].time);
  m = syllabus[i].time;
  if (m != 12 && m != 34 && m != 56 && m != 78 && m != 910)
   break;
 }
 scanf_s("%s", lesson, 12);
 m = 0;                                       //重新对m赋值,并在之后判断m是否为0,若为0,则表示找不到该课程
 for (i = 0; i < n; i++)                      //历遍所有课程,若查到则输出
 {
  if (strcmp(lesson, syllabus[i].course) == 0)
  {
   printf("%s %s %d \n", syllabus[i].course, syllabus[i].classroom, syllabus[i].time);
   m += 1;
  }
 }
 if (m == 0)
  printf("%s Not Found \n", lesson);
 system("pause");
 return 0;
}

下面是运行案例:
在这里插入图片描述
在这里插入图片描述

望这篇文章对你有帮助,谢谢!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值