C语言程序设计:学生宿舍管理系统设计

C语言程序设计:学生宿舍管理系统设计,第1张

给你个学生成绩管理的,你改一下变量名就好了

#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、没有打卡的人数可以看到,点数据可以看到谁没交作业,还有更多功能可以多点点吧。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12483830.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存