C语言学生成绩信息管理系统【结构体+文本】
根据给定的文件信息,我们可以总结出以下C语言学生成绩信息管理系统的相关知识点: ### 1. 结构体定义与使用 在本系统中,使用了`struct`(结构体)来组织学生成绩信息。结构体允许将不同类型的数据组合成一个单一的单元,便于管理和操作。 #### 示例代码: ```c typedef struct STUDENT{ char id[10]; // 学号 char name[20]; // 姓名 float score[3]; // 三门成绩: 数学、英语、计算机 float sum; // 总分 } Stu; ``` ### 2. 数组与结构体结合 为了存储多个学生的成绩信息,本例中使用了一个包含30个结构体元素的数组。 #### 示例代码: ```c Stu stu[N]; ``` 这里`N`被定义为30,表示最多可以存储30名学生的成绩信息。 ### 3. 文件操作 文件操作是本系统的一个重要功能,主要涉及读取和写入学生成绩信息。 #### 读取文本信息 - 使用`fopen()`函数以只读方式打开文件。 - 使用`fscanf()`函数从文件中逐行读取数据,并存储到结构体数组中。 #### 示例代码: ```c void readStuList(){ FILE *fp = fopen("score.txt", "r"); if(fp == NULL){ return; } while(!feof(fp)){ fscanf(fp, "%s\t%s\t%f\t%f\t%f\n", &stu[i].id, &stu[i].name, &stu[i].score[0], &stu[i].score[1], &stu[i].score[2]); sum = 0; for(k=0; k<3; k++){ sum += stu[i].score[k]; } stu[i].sum = sum; i++; } fclose(fp); } ``` #### 写入数据到文件 - 使用`fopen()`函数以追加模式打开文件。 - 使用`fprintf()`函数将结构体中的数据写入文件。 #### 示例代码: ```c void writeStuInfo(Stu st){ FILE *fp = fopen("score.txt", "a+"); if(fp == NULL){ printf("打不开文件 Cannot open the file\n"); return; } fprintf(fp, "%s\t%s\t%3.2f\t%3.2f\t%3.2f\n", st.id, st.name, st.score[0], st.score[1], st.score[2]); fclose(fp); } ``` ### 4. 函数定义与调用 系统中定义了多个函数,包括打印学生信息、菜单显示、成绩统计等。 #### 打印学生信息 - 使用`printf()`函数格式化输出学生信息。 #### 示例代码: ```c void printStuInfo(Stu st){ printf(" 学 号 :%s\t 姓 名 :%s\t 数 学 :%3.2f\t 英 语 :%3.2f\t 计 算 机 :%3.2f\t 总分:%3.2f\n", st.id, st.name, st.score[0], st.score[1], st.score[2], st.sum); } ``` ### 5. 成绩统计与分析 本系统还实现了对学生成绩进行统计的功能,如统计不及格的学生、各科成绩的等级分布等。 #### 统计每科的五档水平的人数 - 定义二维数组`level`来记录每科的成绩等级分布情况。 - 使用`switch`语句对成绩进行分类统计。 #### 示例代码: ```c void showLevel(char* score[3]){ int i, k; int level[3][5] = {0}; for(k=0; k<3; k++){ printf("%s 学科每档人数如下:\n", score[k]); for(i=0; i<N; i++){ switch((int)(stu[i].score[k]) / 10){ case 9: level[k][0]++; break; case 8: level[k][1]++; break; case 7: level[k][2]++; break; case 6: level[k][3]++; break; default: level[k][4]++; break; } } printf("A 档学生人数有【%d】人\n", level[k][0]); printf("B 档学生人数有【%d】人\n"); } } ``` 以上就是基于给定的文件信息总结出的C语言学生成绩信息管理系统的关键知识点。这些知识点覆盖了结构体的定义与使用、文件操作、函数设计等多个方面,是实现此类系统的基础。
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![cpp](https://img-home.csdnimg.cn/images/20250102104920.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![7z](https://img-home.csdnimg.cn/images/20241231044736.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![7z](https://img-home.csdnimg.cn/images/20241231044736.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![text/x-c](https://img-home.csdnimg.cn/images/20250102104920.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/release/download_crawler_static/88882211/bg1.jpg)
![](https://csdnimg.cn/release/download_crawler_static/88882211/bg2.jpg)
剩余8页未读,继续阅读
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/028727a2eb5242899f6965d5256e3e54_qq_63462564.jpg!1)
- 粉丝: 3257
- 资源: 8
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
- 双红外LM393DXP资料及其相关资料.zip
- 四路继电器控制模块DXP资料.zip
- 四路12V30A无线遥控控制板DXP资料.zip
- 通信原理实验指导书.zip
- 田老师的PIC单片机教案.zip
- 无线电基础知识.zip
- 微机原理及应用实验指导书.zip
- 基于Carsim与Simulink联合仿真的车辆状态估计模型:EKF与AEKF算法对比及自适应策略应用,基于Carsim与Simulink的车辆状态估计模型:EKF与AEKF算法对比,噪声自适应策略实
- 信号与系统实验系统.zip
- 基于HTML/CSS/JavaScript的Red-Tour-Youth-Initiative红色青年行项目设计源码
- 三自由度磁流变座椅悬架模型:Bouc-Wen减震器性能分析与随机路面激励响应结果详述,基于3自由度磁流变座椅悬架模型的Bouc-Wen磁流变减震器随机路面激励响应分析:公式与结果文档说明及后续处理简述
- 基于JavaScript的React与Redux状态管理设计源码示例
- MicroCommunity-Java资源
- 基于Scala语言的毕设项目设计源码
- 多尺度混合卷积与Informer模型结合,强化全局特征提取能力,优化参数与数据一致性,显著提升中长期预测精度,基于多尺度混合卷积的Informer模型优化:强化全局特征提取能力,提升中长期预测精度,基
- 8通道电子开关电路.zip
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)