按平均成绩排行c语言文件操作,学生成绩管理系统(c语言结构体以及文件操作)实验报告精选.doc...

学生成绩管理系统(c语言结构体以及文件操作)实验报告精选

C程序设计 实验报告

编号:

姓名院系学号任课教师于萧指导教师实验地点实验时间实验名称文件操作同 组 人无预习报告(对实验主要内容的认识)得分实验目的: 练习使用C语言的标准I/O函数系列处理文件

熟悉二维数组的操作函数、模块化程序设计以及增量测试方法

熟悉结构体类型、结构体数组、写钩体数组函数参数、体会结构体类型代替普通的数组类型实现数据库管理的优越性

熟悉文件的基本操作以及增量的测试方法

实验内容(问题,思路,程序,结果)得分设计思路:

仔细阅读系统要求,首先将此系统化分为如下模块(即如下函数)

输入初始的学生信息:其中包括学生的学号、姓名、数学、物理、英语成绩等相关信息;使用for循环,以及结构体成员调用一次录入每个学生的成绩等学生信息

计算平均和总分模块:利用两层for循环,计数变量i累加一次循环一个学生、计数变量j进行与科目次数相同的累加循环每个科目的成绩进行累加。

按照学生成绩以及姓名字典排序模块:比较学生成绩的高低以及姓名字典的大小,使用选择法进行排序

查询模块:遍历结构体数组,如果姓名相同则循环输出学生的信息。

写文件模块:使用fopen函数打开文件以后进行循环写入。一直到最后一个学生。

读文件操作模块:打开文件以后,进行循环输出,一直循环的文件的最末尾。利用feof()。

退出函数,使用exit函数进行操作。

将整个程序模块化编写之后,在主函数中使用while循环调用,使用switc函数进行选择相应的函数功能。为了防止用户不按照正常的操作流程操作,不进行学生成绩的输入就进行后续操作导致的系统报错或者弹出错误,在调用函数之前使用while循环增加一段容错代码,如果用户第一次选择的不是输入功能则提示用户选择错误并返回循环重新要求用户选择功能,直到用户输出成绩为止,跳出容错的处理循环进行正常的功能选择循环。最后进行相应的用户使用界面的设计和优化。

菜单设计

***************欢迎进入学生成绩管理系统****************

*********programmed by Menglingxin 131110412************

*************************菜单***************************

** 1、录入每个学生的学号,姓名,和各科考试成绩! **

** 2、计算每个学生的总分和平均分! **

** 3、按每个学生的总分和平均分从高到低排出名次表!**

** 4、按姓名的字典顺序排出成绩! **

** 5、按姓名查询学生学生排名和考试成绩! **

** 6、输出每个学生的学号,姓名,各科成绩! **

** 7、将每个学生的信息写入文件! **

** 8、从文件读取信息并显示! **

** 9、退出程序! **

*******************************************************

退出界面

***************************************

**** 谢谢您的使用 ****

***************************************

错误提示界面

***************************************

***** 请先录入学生信息和成绩 ****

***************************************

函数代码

主函数

/*编 程:孟令鑫 131110412

时 间:2013年12月24日

内 容;结构体实现学生成绩管理系统*/

#include

#include

#define COURSE 3

#define STUD_N 30

#include "lab1.h"

#include "lab2.h"

#include "lab3.h"

#include "lab4.h"

#include "lab5.h"

#includ

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言学生成绩管理系统(以包含文件的形式写的),结构体,链表,数组,以下是main.c #include #include #include #define m 3/*宏定义m的值为3*/ struct node/*链表初始化*/ { char name[20]; int no; float score[m]; float sum; float avg; struct node *next; }; char ch[m+4][20]={{"学号"},{"姓名"},{"语文"},{"数学"},{"英语"},{"总分"},{"平均分"}};/*定义并初始化一个全局二维字符数组*/ #include "save.c"/*包含保存文件*/ #include "read.c"/*包含读取文件*/ #include "output.c"/*包含打印文件*/ #include "set.c"/*包含录入文件*/ #include "demand.c"/*包含查询文件*/ #include "sort.c"/*包含排序文件*/ #include "modified.c"/*包含修改文件*/ #include "add.c"/*包含添加文件*/ #include "del.c"/*包含删除文件*/ void main() { int n; printf("\n\t\t\t欢迎使用学生成绩管理系统\n\n"); printf("\t\t\t\t\t\t制 作: XIA XIA\n"); do { printf("\n\n1:学生成绩录入,并保存\n"); printf("2:学生成绩查询\n"); printf("3:学生成绩的排序\n"); printf("4:学生成绩的修改\n"); printf("5:学生成绩的打印\n"); printf("6:学生信息的添加\n"); printf("7:学生信息的删除\n"); printf("0:退出学生成绩管理系统\n\n\n"); printf("输入你要执行操作的相应序号\n"); scanf("%d",&n);/*输入相就的操作的序号*/ switch (n) { case 1: set();break;/*调用录入函数*/ case 2: demand();break;/*调用查询函数*/ case 3: sort();break;/*调用排序函数*/ case 4: modified();break;/*调用修改函数*/ case 5: output();break;/*调用打印函数*/ case 6: add();break;/*调用添加函数*/ case 7: del();break;/*调用删除函数*/ case 0: printf("正在退出学生成绩管理系统......\n");exit(0);/*直到输入“0”退出学生成绩管理系统*/ default:printf("输入错误码,请重新输入\n"); } }while(1); }

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值