C语言编写单科学生成绩

C语言编写单科学生成绩,第1张

#include "stdio.h"

#define N 16

int main(int argv,char *argc[]){

int s[N],i,d[5],sum

printf("Please enter %d students' score(int, Separated by ' ')...\n",N)

for(sum=d[0]=d[1]=d[2]=d[3]=d[4]=i=0i<Ni++){

while(scanf("%d",s+i)!=1 || s[i]<0 || s[i]>100){

printf("Input error, redo: ")

fflush(stdin)

}

s[i]>89 ? d[4]++ : s[i]<60 ? d[0]++ : d[s[i]/10-5]++

sum+=s[i]

}

printf("\nThe AVERAGE are %g.\n",sum/(N+0.0))

printf("GRADE\tNUMBER\tPERCENTAGE\n")

printf("==========================\n")

for(i=4i>=0i--)

printf("  %c\t  %d\t %6.2f%%\n",'E'-i,d[i],d[i]*100.0/N)

return 0 

}

运行结果如下:

我以前写了个,你拿去参考下吧:

#include <time.h>

#include<stdio.h>

#include<conio.h>

#include <stdlib.h>

#include<string.h>

#define MAX 80

void input()

void sort()

void display()

void insert()

void del()

void average()

void find()

void save()

void read()

void del_file()

void average()

void modify()

int now_no=0

struct student

{

int no

char name[20]

char sex[4]

float score1

float score2

float score3

float sort

float ave

float sum

}

struct student stu[MAX],*p

main()/*主函数*/

{

int as

start: printf("\n\t\t\t欢迎使用学生成绩管理系统\n")

/*一下为功能选择模块*/

do

{

printf("\n\t\t\t\t1.录入学员信息\n\t\t\t\t2.显示学员信息\n\t\t\t\t3.成绩排序信息\n\t\t\t\t4.添加学员信息\n\t\t\t\t5.删除学员信息\n\t\t\t\t6.修改学员信息\n\t\t\t\t7.查询学员信息\n\t\t\t\t8.从文件读入学员信息\n\t\t\t\t9.删除文件中学员信息\n\t\t\t\t10.保存学员信息\n\t\t\t\t11.退出\n")

printf("\t\t\t\t选择功能选项:")

fflush(stdin)

scanf("%d",&as)

switch(as)

{

case 1:system("cls")input()break

case 2:system("cls")display()break

case 3:system("cls")sort()break

case 4:system("cls")insert()break

case 5:system("cls")del()break

case 6:system("cls")modify()break

case 7:system("cls")find()break

case 8:system("cls")read()break

case 9:system("cls")del_file()break

case 10:system("cls")save()break

case 11:system("exit")exit(0)

default:system("cls")goto start

}

}while(1)

/*至此功能选择结束*/

}

void input()/*原始数据录入模块*/

{

int i=0

char ch

do

{

printf("\t\t\t\t1.录入学员信息\n输入第%d个学员的信息\n",i+1)

printf("\n输入学生编号:")

scanf("%d",&stu[i].no)

fflush(stdin)

printf("\n输入学员姓名:")

fflush(stdin)

gets(stu[i].name)

printf("\n输入学员性别:")

fflush(stdin)

gets(stu[i].sex)

printf("\n输入学员成绩1:")

fflush(stdin)

scanf("%f",&stu[i].score1)

printf("\n输入学员成绩2:")

fflush(stdin)

scanf("%f",&stu[i].score2)

printf("\n输入学员成绩3:")

fflush(stdin)

scanf("%f",&stu[i].score3)

printf("\n\n")

i++

now_no=i

printf("是否继续输入?(Y/N)")

fflush(stdin)

ch=getch()

system("cls")

}

while(ch!='n'&&ch!='N')

system("cls")

}

void sort()/*排序数据函数*/

{

struct student temp

int i,j

average()

for(i=1i<now_noi++)

{

for(j=1j<=now_no-ij++)

{

if(stu[j-1].ave<stu[j].ave)

{

temp=stu[j]

stu[j]=stu[j-1]

stu[j-1]=temp

}

}

}

}

void display()/*显示数据函数*/

{

int i

char as

average()

do

{

printf("\t\t\t班级学员信息列表\n")

printf("\t编号\t姓名\t性别\t成绩1\t成绩2\t成绩3\t平均值\n")

for(i=0i<now_no&&stu[i].name[0]i++)printf("\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave)

printf("\t\t按任意键返回主菜单.")

fflush(stdin)

as=getch()

}

while(!as)

system("cls")

}

void insert()/*插入数据函数*/

{

char ch

do

{

printf("\n\t\t输入新插入学员队信息\n")

printf("\n输入学生编号:")

scanf("%d",&stu[now_no].no)

fflush(stdin)

printf("\n输入学员姓名:")

fflush(stdin)

gets(stu[now_no].name)

printf("\n输入学员性别:")

fflush(stdin)

gets(stu[now_no].sex)

printf("\n输入学员成绩1:")

fflush(stdin)

scanf("%f",&stu[now_no].score1)

printf("\n输入学员成绩2:")

fflush(stdin)

scanf("%f",&stu[now_no].score2)

printf("\n输入学员成绩3:")

fflush(stdin)

scanf("%f",&stu[now_no].score3)

printf("\n\n")

now_no=now_no+1

sort()

printf("是否继续输入?(Y/N)")

fflush(stdin)

ch=getch()

system("cls")

}

while(ch!='n'&&ch!='N')

}

void del()/*删除数据函数*/

{

int inum,i,j

printf("输入要删除学员的编号:")

fflush(stdin)

scanf("%d",&inum)

for(i=0i<now_noi++)

{

if(stu[i].no==inum)

{

if(i==now_no)now_no-=1

else

{

stu[i]=stu[now_no-1]

now_no-=1

}

sort()

break

}

}

system("cls")

}

void save()/*保存数据函数*/

{

FILE *fp

int i

char filepath[20]

printf("输入要保存的文件路径:")

fflush(stdin)

gets(filepath)

if((fp=fopen(filepath,"w"))==NULL)

{

printf("\n保存失败!")

exit(0)

}

for(i=0i<now_noi++)

{

stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3

stu[i].ave=stu[i].sum/3

fprintf(fp,"\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave)

}

fclose(fp)

printf("学生信息已保存在%s中!\n",filepath)

system("pause")

system("cls")

}

void find()/*查询函数*/

{

int i

char str[20],as

do

{

printf("输入要查询的学生姓名:")

fflush(stdin)

gets(str)

for(i=0i<now_noi++)

if(!strcmp(stu[i].name,str))

{

printf("\t编号\t姓名\t性别\t成绩1\t成绩2\t成绩3\t平均值\n")

printf("\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave)

}

printf("\t\t按任意键返回主菜单.")

fflush(stdin)

as=getch()

}

while(!as)

system("cls")

}

void average()/*求平均数*/

{

int i

for(i=0i<now_noi++)

{

stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3

stu[i].ave=stu[i].sum/3

}

}

void modify()/*修改数据函数*/

{

int i

char str[20],as

printf("输入要修改的学生姓名:")

fflush(stdin)

gets(str)

for(i=0i<now_noi++)

if(!strcmp(stu[i].name,str))

{

system("cls")

printf("\n\t\t输入新插入学员队信息\n")

printf("\n输入学生编号:")

fflush(stdin)

scanf("%d",&stu[i].no)

printf("\n输入学员性别:")

fflush(stdin)

gets(stu[i].sex)

printf("\n输入学员成绩1:")

fflush(stdin)

scanf("%f",&stu[i].score1)

printf("\n输入学员成绩2:")

fflush(stdin)

scanf("%f",&stu[i].score2)

printf("\n输入学员成绩3:")

fflush(stdin)

scanf("%f",&stu[i].score3)

printf("\n\n")

sort()

break

}

system("cls")

}

void read()

{

FILE *fp

int i

char filepath[20]

printf("输入要读入的文件路径:")

fflush(stdin)

gets(filepath)

if((fp=fopen(filepath,"r"))==NULL)

{

printf("找不到%s文件!\n",filepath)

system("pause")

exit(0)

}

now_no=0

for(i=0i<MAX&&!feof(fp)i++)

{

fscanf(fp,"\t%d\t%s\t%s\t%f\t%f\t%f\t%f\n",&stu[i].no,stu[i].name,stu[i].sex,&stu[i].score1,&stu[i].score2,&stu[i].score3,&stu[i].ave)

now_no++

}

fclose(fp)

printf("保存的在文件%s中的所有信息已经读入!\n",filepath)

system("pause")

system("cls")

}

void del_file()

{

FILE *fp

char filepath[20]

printf("输入要删除的文件路径:")

fflush(stdin)

gets(filepath)

fp=fopen(filepath,"w")

fclose(fp)

printf("保存的在文件%s中的所有信息已经删除!\n",filepath)

system("pause")

system("cls")

}


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

原文地址: http://outofmemory.cn/yw/11422519.html

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

发表评论

登录后才能评论

评论列表(0条)

保存