C语言课程设计 您所在的位置:网站首页 成绩排名代码 C语言课程设计

C语言课程设计

2024-02-29 14:40| 来源: 网络整理| 查看: 265

任务:

设计一个学生成绩排名系统。

实现功能:

1)  具备对成绩的管理功能(添加、删除、排序)

2)  具备对成绩的统计功能(最高分,最低分,平均分,及格率等)

3)  具备按学号、姓名、或课程名查询成绩的功能。

4)学生成绩应该保存在文件中。

备注:成绩记录以下信息:班级,学号,姓名,课程名,成绩(百分制)。可以用能表示学生成绩的结构体数组存储数据。 

概要设计 一、设计思路

1.根据题目要求成绩记录以下信息:班级,学号,姓名,课程名,成绩。可以把这些信息设为结构体成员,用结构体数组来存放45个学生的信息,并且为方便输入信息可以定义一个全局变量N。

2.将系统功能分为五大模块:读取,管理,统计,查询和保存。另外在程序中需要增加读取文件信息的功能,以保证可以正确执行四大模块功能。

3.细化具体系统的功能,并用函数的嵌套调用来实现

将管理功能细化分为增添、删除和排序。     2. 将统计功能分为求最大值、最小值、平均值和及格率。将查询功能分按学号、姓名、班级查询。

4.函数调用方法:用switch语句实现多分支选择结构。在主函数中用switch语句调用四大模块函数,在前三大模块函数中用switch语句调用细化的功能函数。各个模块的函数功能相互独立,不会影响别的函数的功能。

5.程序界面设计:在三大主函数中加入printf语句具体提示用户具体功能信息,以保证用户在使用时能逐步实现具体的系统功能。

二、学生成绩系统结构图

学生成绩系统结构图

详细设计    一、声明结构体和全局变量

①:首先声明结构体,然后定义结构体数组,数组的每一个元素都包含结构体中的所有成员即学号、姓名、班级、课程名以及分数。

②:为节省输入信息的时间,定义一个全局变量N=20。(同时为保证更接近信息真实情况,数字不能过小)。

代码如下:

struct Student { int num; char name[20]; int clas; char course[10]; float score; }stu[45]; int N=20;  二、主函数模块 先声明管理、统计、查询、读取和保存函数。在声明函数之后,紧接着调用读取信息函数,读取文本文件中的学生信息。输入提示信息,以保证程序在运行时,用户能够方便快速的进行操作。     4.用switch选择语句进行对输入的命令进行判断,并且调用相应的函数。

    代码如下: 

int main() { void manage(struct Student stu[]); //声明管理信息函数 void count(struct Student stu[]); //声明统计信息函数 void search(struct Student *p); //声明查找信息函数 void save(); //声明保存信息函数 void read(); //声明读入信息函数 read(); //调用读入信息函数(此处需特别注意read函数的位置:只有先读入文本文件信息,才能进行后续操作) printf("*****************************学生成绩管理系统***********************************"); printf("* *"); printf("* 管理学生信息(请输入1) 统计学生信息(请输入2) *"); printf("* 查询学生信息(请输入3) 保存学生信息(请输入4) *"); printf("* *"); printf("********************************************************************************"); printf("请输入功能选项(1-manage/2-count/3-search/4-save):\n"); int order; scanf("%d",&order); switch(order) //用switch选择结构来调用四个不同的函数 { case 1: manage(stu);break; case 2: count(stu);break; case 3: search(stu);break; case 4: save();break; } return 0; }  三、读取信息函数模块

首先定义一个文件指针变量

用fopen函数,以“r”的方式打开一个文本文件(在此之前需建立好一个文本文件),并判断是否能正常打开。

用for循环来以格式化的方式读取磁盘文件中的信息。

关闭所打开的文件。代码如下: void read() //定义读入函数(注意read函数在主函数中调用的位置) { FILE *fp; int i; if((fp=fopen("student.txt","r"))==NULL) //r表示为了输入数据打开一个文本文件 { printf("cannot open the file!\n"); exit(0); } for(i=0;i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有