资源简介
实验题目
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);
相关资源
- C++中头文件与源文件的作用详解
- 基于mfc的多线程文件传输
- C++多线程网络编程Socket
- VC++ 多线程文件读写操作
- C语言代码高亮html输出工具
- 猜数字游戏 c语言代码
- C语言课程设计
- 数字电位器C语言程序
- CCS FFT c语言算法
- 使用C语言编写的病房管理系统
- 通信过程中的RS编译码程序(c语言)
- 利用C++哈希表的方法实现电话号码查
- 计算机二级C语言上机填空,改错,编
- 用回溯法解决八皇后问题C语言实现
- 移木块游戏,可以自编自玩,vc6.0编写
- 简易教务管理系统c语言开发文档
- 操作系统课设 读写者问题 c语言实现
- 小波变换算法 c语言版
- C流程图生成器,用C语言代码 生成C语
- 3des加密算法C语言实现
- 简单的C语言点对点聊天程序
- 单片机c语言源程序(51定时器 八个按
- C++纯文字DOS超小RPG游戏
- 个人日常财务管理系统(C语言)
- MFC数字钟(基于VC6.0)
- c语言电子商务系统
- 小甲鱼C语言课件 源代码
- 将图片转换为C语言数组的程序
- 安科瑞智能电能表MODBUS通讯程序 VC6
- C语言实现的一个内存泄漏检测程序
评论
共有 条评论