c语言找成绩(最小值),c语言成绩排名.doc

软件训练

总体设计:

本次实验要求做成绩分析系统。该系统要求六个功能:

1 录入个人基本信息

2 查询信息

3 修改信息

4 班级成绩分析

5 各科成绩分析

6 对全班同学成绩排名

同时要求有简单的操作界面;

在主函数中打印操作界面;定义六个子函数实现相关的六个功能。其中要求信息录入查询修改,所以应该定义文件存储数据和相关的结构体承载各个变量。

详细设计:

首先在主函数中打印操作界面,在界面上显示以上要求的功能。用switch语句实现功能的选择。并将switch语句嵌套在while语句中使得函数在实现子功能时不会跳出。

录入功能:首先用添加方式打开文件,定义录入学生人数n。输入学生信息先存入结构体中。

在用fscanf存入到打开的文件中。关闭文件,返回主函数。

查询功能:只读方式打开文件,调出数据,关闭文件。输入要查询人的姓名或学号。打印该人的基本信息。返回到主函数。

修改功能:先用只读方式打开文件,调出数据,关闭文件。输入要修改人的信息,并替换。再以只写方式打开文件,将新的信息存入。返回的主函数。

班级成绩分析功能:要求各科平均分,优秀率,及格率。首先只读方式调任文件,调出数据,关闭文件。用for循环求出各科的总成绩,总人数,用if语句判断优秀人数和及格人数。最后求平均成绩,以及优秀率及格率打印出来。返回到主函数。

各科成绩分析功能:要求各科平均成绩,最大最小值。首先只读方式调入文件,调出数据,关闭文件。用for循环求出各科的总成绩,总人数。用if语句求出最值。打印平均成绩和最值。返回主函数。

对全班同学成绩排名:对总成绩排名并打印各科成绩。首先打开文件,调出数据,关闭文件。求出总成绩,并用冒泡法对其排序,同时将各科成绩和姓名同时排序。最后打印。返回主函数。

#include "stdio.h"

#include "string.h"

#include "stdlib.h"

FILE *fp,*fw; 文件定义

char z,l;

struct chengji 定义结构体

{int yuwen;

int gaoshu;

int waiyu;

};

struct student 嵌套结构体

{

char num[20];

char name[10];

char xibie[20];

char banji[20];

struct chengji chengji;

} student[100];

先打开文本 输入学生信息 存入变量 打印到文本 关闭文本

返回到主函数

luru(struct student *student) 子函数1

{int i,n,j;

fp=fopen("student.txt","a"); 打开文本

printf("qing shuru ni yao luru xuesheng xinxi ge shu n \n");

scanf("%d",&n);

printf("qing shuru xuesheng jiben xinxi. \n");

printf("num name xiebie banji yuwen gaoshu waiyu \n");

for(i=0;i

{scanf("%s %s %s %s %d %d %d",student[i].num,student[i].name,student[i].xibie,\

student[i].banji,&student[i].chengji.yuwen,&student[i].chengji.gaoshu,\

&student[i].chengji.waiyu);

}

for(i=0;i

{fprintf(fp,"%s %s %s %s %d %d %d",student[i].num,student[i].name,student[i].xibie,\

student[i].banji,student[i].chengji.yuwen,student[i].chengji.gaoshu,\

student[i].chengji.waiyu);

fprintf(fp,"\n");}

fclose(fp);

}

打开文件 读取信息 关闭文件 输入查询人的姓名学号

打印学生信息 返回到主函数

chaxun(struct student *student)

{

int j;char a[20];

fp=fopen("student.txt","r");

if(!fp){printf("file cannot found.\

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值