查找学生成绩与学号编程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
云南师范大学
实验报告
课程:《计算机技术基础》任课教师:陈娟实验指导教师:陈娟
姓名:李华福学号:114090395 专业:物电学院电子信息科学类日期:2012-5-31
成绩:
一.实验项目名称:《学生成绩查询》
二.实验项目的目的和任务:存入N个学生的成绩表(学号、姓名、成绩),输入学号或姓名,查找其成绩。输入学生信息,制成学生成绩信息表,通过查找方法查询该学生成绩(比较输入的学生姓名或学号与原来的信息大小,判断是否符合),最后输出表及成绩。
三.实验内容:通过input函数录入学生成绩表,并通过output函数输出学生成绩表;xmchazhao函数和xhchazhao函数能分别以不同的方式查找成绩;最后顺利查找到学生成绩。
四.程序描述:考虑到结构体非常适合该题解答(后面总结结构体与与数组在该题中的优劣),首先定义结构体struct biao[],并分别定义了序号、姓名、学号、成绩信息(假设其为10个字符长)。编写函数input(),该函数实现了从键盘输入数据,构成前面说到列表。随之的是函数output(),实现把学生信息制表。Xmchazhao()(姓名查找)函数能比较两字符串的大小,将其输出,xhchazhao()(学号查找)函数类似前一个函数。最后是主函数,实现了调用input()、output()、xmchazhao()、xhchazhao ()函数,并利用switch( )函数选择查找方式。
五.运行截图:
(图一:录入数据并制表)
(图二:按1通过姓名查找成绩) (图三:按2通过学号查找成绩)
(图四:输入的不是1和2) (图五:姓名输入错误)
(图六:学号输入错误)
五.程序代码:
六.#include
七.#include
八.#define N 3 //N 位同学的信息
九.struct //定义结构体
十.{
十一. int num; //序号
十二. char xingming[11]; //姓名
十三. char xuehao[11]; //学号
十四. char chengji[11]; //成绩
十五. }biao[N];
十六. int input() //输入函数
十七. {
十八. int n=0;
十九. while(n 二十. { 二十一. biao[n].num=n+1; 二十二. printf("\n 第%d 条信息: \n",biao[n].num); 二十三.printf("请输入姓名:"); 二十四.gets(biao[n].xingming); 二十五.if(biao[n].xingming[0]=='\0') 二十六.break; 二十七.printf("请输入学号:"); 二十八.gets(biao[n].xuehao); 二十九.printf("请输入成绩:"); 三十.gets(biao[n].chengji); 三十一.n++; 三十二.} 三十三. 三十四.return n; 三十五.} 三十六.void output() //输出函数 三十七.{ 三十八. int i; 三十九.puts("\n序号\t姓名\t学号\t成绩"); 四十.for(i=0;i 四十一. printf("%d\t%s\t%s\t%s\n",biao[i].num,biao[i].xingming,biao[i] .xuehao,biao[i].chengji); 四十二.} 四十三.int xmchazhao() //按姓名查找 四十四.{ 四十五. int i=0; 四十六. char xm[11]; 四十七. printf("\n请输入姓名:"); 四十八. scanf("%s",xm); 四十九. while(strcmp(xm,biao[i].xingming)!=0&&i 五十.i++; 五十一. 五十二.if(i>=N) 五十三.i=-1; 五十四.return i; 五十五.} 五十六.int xhchazhao() //按学号查找 五十七.{ 五十八.int i=0; 五十九.char xh[11]; 六十.printf("\n请输入学号:"); 六十一.scanf("%s",xh); 六十二.while(strcmp(xh,biao[i].xuahao)!=0&&i 六十三.i++; 六十四.if(i>=N) 六十五.i=-1; 六十六.return i; 六十七.} 六十八.Void main() 六十九.{ 七十. 七十一. int n,i;char ch;char A[11],B[11]; 七十二. n=input(n); 七十三. output(n); 七十四. puts("\n1.通过姓名查找!"); 七十五. puts("\n2.通过学号查找!"); 七十六. printf("请选择:"); 七十七. scanf("%d",&ch); 七十八.switch(ch) 七十九. { 八十. case 1:i=xmchazhao(); 八十一. if(i>=0) puts(strcpy(A,biao[i].chengji)); //如果找到,把它复制到数组A中 八十二. else 八十三. printf("输入错误!"); 八十四. break; 八十五. case 2:i=xhchazhao(); 八十六. if(i>=0) puts(strcpy(B,biao[i].chengji)); //如果找到,把它复制到数组B中 八十七. 八十八. else 八十九. printf("输入错误!"); 九十. break; 九十一. default: //当输入的