#include
#include
#define LEN sizeof(struct student)
#define N 35
#include
#define NULL 0
int n=0
char m[8]={'0','1','2','3','4','5','6','7'}
int ichar c[10]char d[10]
char fname[20],fname0[20],fname6[20]={"shanchu"}
struct student
{long num
char name[10]
int eng
int math
int comp
int ave
int all
}p
void shuru()
{FILE *fp
printf("\n\n\t请输入存储学生数据的文件名:")
scanf("%s",fname)
fp=fopen(fname,"w")
printf("\t输入的数据之间请用跳格键(Tab)隔开\n\t每输入完一个学生的信按回车键(Enter)\n")
printf("\t结束输入学生数据时,请输入一个学生历枝宏的学号为0并按回车键\n")
printf("\t学号 姓名 英语 数学 计算机\n")
do{ printf("\t")
scanf("%ld",&p.num)
if(p.num==0) break
scanf("\t%s\t%d\t%d\t%d",p.name,&p.eng,&p.math,&p.comp)
p.all=(p.eng+p.math+p.comp)
p.ave=(p.all/3)
fwrite(&p,LEN,1,fp)
n++
}while(1)
fclose(fp)
}
void chazhao()
{char fname1[20]
FILE *fp
do{printf("\n\n\t请输入查肢册找学生数据的文件名:"搭漏)
scanf("%s",fname1)
if(strcmp(fname1,fname)==0){fp=fopen(fname,"r")break}
else printf("\t你输入的文件不存在\n")}while(1)
long number
do
{ printf("\t请输入要查找的学生的学号按回键(Enter):")
scanf("%ld",&number)rewind(fp)
for(i=0i { fread(&p,LEN,1,fp)
if(number==p.num) { printf("\t学号 姓名 英语 数学 计算机 平均分 总? \n")
printf("\t%ld\t%s\t%d\t%d\t%d\t%d\t%d\n",p.num,p.name,p.eng,p.math,p.comp,p.ave,p.all)
}
}
printf("\t你还要查找吗?如果继续请输y'加回车键,否'n'加回车键:")
scanf("%s",c)}while(c[0]=='y')
fclose(fp)
}
void paixu()
{FILE *fpchar fname3[20]struct student k[N]
do{printf("\n\n\t请输入你要排序的学生数据的文件名:")
scanf("%s",fname3)
if(strcmp(fname3,fname)==0)
{fp=fopen(fname,"r")break}
else printf("\t你输入的文件不存在\n")}while(1)
rewind(fp)
for(i=0i fread(&k[i],LEN,1,fp)
int w,q,j,g,t,t2,t3,t4,t5char z[10]long t1
for(q=0q {g=q
for(j=q+1j if(k[j].ave t=k[g].avek[g].ave=k[q].avek[q].ave=t
t1=k[g].numk[g].num=k[q].numk[q].num=t1
t2=k[g].engk[g].eng=k[q].engk[q].eng=t2
t3=k[g].mathk[g].math=k[q].mathk[q].math=t3
t4=k[g].compk[g].comp=k[q].compk[q].comp=t4
t5=k[g].allk[g].all=k[q].allk[q].all=t5
for(w=0w<10w++)
{z[w]=k[g].name[w]k[g].name[w]=k[q].name[w]k[q].name[w]=z[w]}
}
fclose(fp)
printf("\n\n\t请输入存储排完序的数据的文件名\n\t注意此文件名和存储原始数据的文件名不相同\n")
printf("\t")
scanf("%s",fname0)
fp=fopen(fname0,"w")
for(i=0i fclose(fp)
}
void shuchu()
{FILE *fpchar fname2[20]
do{printf("\n\n\t请输入你要输出学生数据的文件名:")
scanf("%s",fname2)
if(strcmp(fname2,fname)==0){fp=fopen(fname,"r")break}
else if(strcmp(fname2,fname0)==0){fp=fopen(fname0,"r")break}
else if(strcmp(fname2,fname6)==0){fp=fopen(fname6,"r")break}
else printf("\t你输入的文件不存在\n")}while(1)
rewind(fp)
printf("\t学号 姓名 英语 数学 计算机 平均分 总分\n")
printf("\t==============================================================\n")
for(i=0i {fread(&p,LEN,1,fp)
printf("\t%ld\t%s\t%d\t%d\t%d\t%d\t%d\n",p.num,p.name,p.eng,p.math,p.comp,p.ave,p.all)
}
printf("\t==============================================================\n")
fclose(fp)}
void tongji()
{FILE *fpchar fname4[20]int e1=0,e2=0,e3=0,e4=0,e5=0
do{printf("\n\n\t请输入你要统计的学生数据的文件名:")
scanf("%s",fname4)
if(strcmp(fname4,fname)==0)
{fp=fopen(fname,"r")break}
else printf("\t你输入的文件不存在\n")}while(1)
rewind(fp)
for(i=0i {fread(&p,LEN,1,fp)
if(p.ave<=59&&p.ave>=0)e1=e1+1
if(p.ave<=69&&p.ave>=60)e2=e2+1
if(p.ave<=79&&p.ave>=70)e3=e3+1
if(p.ave<=89&&p.ave>=80)e4=e4+1
if(p.ave<=100&&p.ave>=90)e5=e5+1
}
fclose(fp)
printf("\t按平均分统计各分数段的学生人数 \n")
printf("\t==============================================================\n")
printf("\t分数段\t0--59\t60--69\t70--79\t80--89\t90--100\n")
printf("\t人 数 \t %d\t %d\t %d\t %d\t %d\n",e1,e2,e3,e4,e5)
printf("\t==============================================================\n")
}
void shanchu()
{FILE *fp,*fp1char fname5[20]long numberstruct student M[N]
printf("\n\t")
do{printf("\n\t请输入你要删除学生数据的文件名:")
scanf("%s",fname5)
if(strcmp(fname5,fname)==0)
{fp=fopen(fname,"r")break}
else printf("\n\t你输入的文件不存在 \n")}while(1)
rewind(fp)
fp1=fopen(fname6,"w")
do{printf("\t请输入要删除数据的学生的学号并按回车键:")
scanf("%ld",&number)
for(i=0i {fread(&M[i],LEN,1,fp)
if(M[i].num!=number)fwrite(&M[i],LEN,1,fp1)
}
n--
fcloseall()
fp1=fopen(fname6,"r")fp=fopen(fname,"w")
for(i=0i {fread(&M[i],LEN,1,fp1)fwrite(&M[i],LEN,1,fp)}
fcloseall()
printf("\t你还要删除吗?如果继续请输入'y'加回车键,否则'n'加回车键:")
scanf("%s",c)
}while(c[0]=='y')
}
void charu()
{FILE *fpchar fname7[20]
do{printf("\t请输入你要插入学生数据的文件名:")
scanf("%s",fname7)
if(strcmp(fname7,fname)==0){fp=fopen(fname,"r+")break}
else printf("\t你输入的文件不存在 ")}while(1)
printf("\t请输入你要插入的数据\n\t输入的数据之间请用跳格键(Tab)隔开\n\t每输入完一个学生的数据按回车键(Enter) \n")
printf("\t结束插入学生数据时,请输入一个学生的学号为0并按回车键\n")
printf("\t学号\t姓名\t英语\t数学\t计算机 \n")
do{fseek(fp,n*LEN,0)printf("\t")
scanf("\t%ld",&p.num)
if(p.num==0) break
scanf("\t%s\t%d\t%d\t%d",p.name,&p.eng,&p.math,&p.comp)
p.all=(p.eng+p.math+p.comp)
p.ave=(p.all/3)
fwrite(&p,LEN,1,fp)
n++}while(1)
fclose(fp)
}
void zhujiemian()
{
printf("\n\t 主菜单 \n")
printf("\n")
printf("\t============================================================== \n")
printf("\n")
printf("\t 1.数据输入 2.数据输出 \n")
printf("\n")
printf("\t 3.数据排序(按平均分) 4.数据查找(按学号) \n")
printf("\n")
printf("\t 5.数据的插入 6.数据的删除(按学号) \n")
printf("\n")
printf("\t 7.数据的统计(按平均分)? 0.退出 \n")
printf("\n")
printf("\t============================================================== \n")
printf("\t请输入你的选择(0---7)并按回车键:")
scanf("%s",d)
}
void main()
{do
{
zhujiemian()
if(d[0]==m[0])break
else if(d[0]==m[1]){shuru()printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n")}
else if(d[0]==m[2]){shuchu()}
else if(d[0]==m[3]){paixu()}
else if(d[0]==m[4]){chazhao()}
else if(d[0]==m[5]){charu()}
else if(d[0]==m[6]){shanchu()}
else if(d[0]==m[7]){tongji()}
else {printf("\t你的选择不正确!请重新选择! \n")
}
}while(1)
printf("\n\t\n\t\n\t\n\t\n\t\n\t\n\t")
printf("\t\t谢谢你的使用!!! ")
}
#include "stdio.h"#define N 6 // 宿舍成员数
struct member {
char Name[20]
float cost[6] // 一个学期6个月的生活费
float aver // 平均生活费
} mem[N]
int main() {
float sum = 0.0
printf("成员信息录入:\n")
for(int i=0i<Ni++) {
mem[i].aver = 0.0
printf("请输入第 %d 个成员姓名:\n", i+1)
慎御渣 scanf("%s", &mem[i].Name)
拆念 printf("请输入第 %d 个成员6个月每个月的生活费:\n", i+1)
for(int j=0j<6j++) {
scanf("%f", &mem[i].cost[j])
mem[i].aver += mem[i].cost[j]
}
sum += mem[i].aver
mem[i].aver /= 6 // 每个成员的平均生活费
}
printf("该宿舍所有成员本学期的总月平均费为:%.2f\n", sum / 36)
printf("个人月平均生活费高于总月平均生活费成员的数据:\n")
for(int i=0i<Ni++) {
if(mem[i].aver >(sum /36)) {
printf("姓名:%s\n每个月生活费:", mem[i].Name)
for(int j=0j<6j++) {
printf("%.2f\t", mem[i].cost[j])
宽悄 }
printf("\n平均生活费:%.2f\n", mem[i].aver)
}
}
}
1、打开微信携余碰——发现——小程序——搜索“趣练习”即可打开这个小程序。
2、进入小程序后,微信授权首次登录。
3、先进入创建页,再点击创建“每日打卡”。
4、温馨提醒:每日打卡适合布置作业,老师常用。
5、按引导布置完作业,学生交辩谈作业后,首页--我管理的--进入活动,点击后台。
6、毁李可以看到当天的数据,或者筛选时间;数据都可以看到。
7、没有打卡的人数可以看到,点数据可以看到谁没交作业,还有更多功能可以多点点吧。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)