资源简介
实验题目
1、设计程序求任意给定范围之间的素数。
2、模仿EXCEL中的自动筛选,设计完成班级学生信息的自动筛选程序。
实验要求
1.该实验的课内学时是4个课时。
2.题目1必须完成。
3.题目2完成如下基本功能:
1)自定义班级学生信息结构体,结构体的数据项超过5个(包含5个)。
2)输入班级的全部数据。
3)对每个数据项根据数据项的值进行筛选。
4)实现模糊筛选,例如可将姓名中包含“张”或姓“张”的学生列出。
5)输出筛选的结果。
4.题目2在完成上述基本功能的前提下,有能力的同学可以完成如下加强功能:
1)可以进行自定义的筛选。
2)班级的全部数据能够以文件方式保存。
3)筛选之后的数据
代码片段和文件信息
#include
#include
#include
typedef struct
{
long int num;
char name[20];
float score[4]; //四门成绩分别为 语文、数学、英语、计算机
float total;
} Student;
//输出函数
void Export(Student stu[])
{int i;
printf(“\n%10s%20s%8s%8s%8s%8s%8s\n““学号““姓名““语文““数学““英语““计算机““总分“);
for(i=0;stu[i].num!=0;i++)
if(strcmp(stu[i].name“#“)) //用 ‘#‘ 号来标记筛选过程中不需要的学生信息
printf(“%10ld%20s%8.1f%8.1f%8.1f%8.1f%8.1f\n“stu[i].numstu[i].namestu[i].score[0]stu[i].score[1]stu[i].score[2]stu[i].score[3]stu[i].total);
printf(“\n“);
}
// 输入函数
int Input(Student stu[])
{int i;
printf(“\n请先后输入学号,姓名,语文、数学、英语、计算机成绩:\n“);
printf(“输入0、0、0、0、0、0退出输入\n“); // 用 0 来标记输出结束,同时后面用它来控制循环
for(i=0;i<100;i++)
{
while(scanf(“%ld%s%f%f%f%f“&stu[i].numstu[i].name&stu[i].score[0]&stu[i].score[1]&stu[i].score[2]&stu[i].score[3])!=6)
fflush(stdin);
stu[i].total=stu[i].score[0]+stu[i].score[1]+stu[i].score[2]+stu[i].score[3];
if (stu[i].num==0) break; // 遇到 0 说明已经全部输出
}
}
//打印菜单
int menu()
{int z;
printf(“\n\t\t每次筛选前必须读入筛选信息,可键盘输入或从文件中读取\n\n“);
printf(“\t\t===========班级学生信息筛选系统===========\n“);
printf(“\t\t||\t1.输入学生信息\t\t\t||\n“);
printf(“\t\t||\t2.从文件里读取学生信息\t\t||\n“);
printf(“\t\t||\t3.输出学生信息\t\t\t||\n“);
printf(“\t\t||\t4.保存学生信息到文件\t\t||\n“);
printf(“\t\t||\t5.按学生成绩筛选学生信息\t||\n“);
printf(“\t\t||\t6.对学生姓名模糊筛选\t\t||\n“);
printf(“\t\t||\t其他:退出. . .\t\t\t||\n“);
printf(“\t\t==========================================\n“);
printf(“请选择你要的操作:“);
while(scanf(“%d“&z)!=1) fflush(stdin); //判断是否正常接受到一个数值 否则 清楚缓存 继续输入
return z;
}
//保存学生信息到文件
void Save(Student stu[])
{FILE *fp;
char filename[20];
int i;
printf(“请输入文件名(如file):“);
while(scanf(“%s“filename)!=1) fflush(stdin); //判断是否接受到一个正常的字符串 否则就 清除缓存 继续输入
if((fp=fopen(filename“wb“))==NULL)
{printf(“不能打开该文件\n“);return; }
for(i=0;stu[i].num!=0;i++)
if(fwrite(&stu[i]sizeof(Student)1fp)!=1)
printf(“文件写入错误\n“);
fclose(fp);
}
//按学生成绩进行筛选 并 输出
void Score_filter(Student stu[]int Cnum)
{int iminmax;
printf(“请输入你要筛选科目成绩的范围(最小值、最大值):“);
while(scanf(“%d%d“&min&max)!=2) fflush(stdin);
if (Cnum==5) // Cnum=5 对总分进行筛选
{for(i=0;stu[i].num!=0;i++)
if(stu[i].totalmax)
strcpy(stu[i].name“#“);
}
else
for(i=0;stu[i].num!=0;i++)
if(stu[i].score[Cnum-1]max)
strcpy(stu[i].name“#“); //用 # 来标记筛选过程中剔除的 学生信息
Export(stu);
相关资源
- MFC实现数据绘图显示示波器界面
- ds1302\\DS1302八位数码管C语言可调时钟
- 纯C语言的串口YModem程序
- UKF的C、C++代码实现
- eig.cpp
- C语言的32个关键字、9种控制语句、
- xmodem C语言实现
- C语言32个关键字九种控制语句34种运算
- C语言课程设计 体育馆预约系统
- VC++获取系统信息/获取OS/获取MAC/获取
- VC++五子棋程序源码VC6.0控制台下运行
- 门限秘密分享算法C实现
- VC++编写USB接口通信程序
- 基于DSP2812的SVPWM算法C语言编程
- 三次样条差值C语言程序,亲测有用!
-
MFC、DOM实现的xm
l文件解析、修改和 - C语言试题库含答案.rar
- vc++ tcp 客户端和服务器端
- 参考资料\\C++获取MP3文件信息.doc
- 简单的停车场收费 c++
- JPEG图片EXIF信息提取及缩略图显示VC
- C语言课程设计学生成绩管理系统源码
- 数字信号处理的函数库
- shell.rar,一个用c++实现的具有基本完
- socket通信MFC版本
- 分治法解决凸包问题用C语言递归调用
- 178个经典C语言源代码
- LMSE(Ho-Kashyap).rar
- VS2010 C++配色方案 主题
- Opencv2.4.12 SVM手写数字识别
评论
共有 条评论