1.题目与要求

1.1问题提出

设计学生成绩管理系统,有N个学生,每个学生的数据包含学号(不重复)、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统

1.2本系统涉及的知识点

结构体数组、结构体指针、数组、循环、函数、分支、指针

1.3 功能要求

1、成绩录入:输入学生的学号、姓名及三门课的成绩;

2、成绩查询:(至少一种查询方式)。按学号查询学生记录,或查询不及格学生的记录;

3、成绩统计:计算学生的平均分;根据学生的平均分高低,对学生的数据进行排序后输出;对学生单科成绩排序,输出学生姓名与该科成绩;

4、退出系统:退出整个系统(即主菜单);

1.4 根据所选菜单编写相应代码:

1)输入学生的信息,利用循环赋值的方式,给结构体数组赋值。

2)输出平均分函数ave:首先定义double型数组,利用循环赋值的方式,计算出三门课的成绩的平均值放入数组中,利用循环的方式,输出相关值及平均值。

3)按学号查询成绩函数search:首先输入要查询的学号,与结构体中的学号进行比较,如果相等输出这个学生的信息,另外输出没有查到相关结果。

4)按平均分排序后输出函数average:首先另外一个定义结构体数组、结构体指针变量,计算三门课程的平均值存到结构体成员aver中,利用循环的方式,进行平均分排序,输出相应的学生信息。

5)对学生单科成绩排序后输出函数grade:首先另外一个定义结构体数组、结构体指针变量,通过选择k的值来选择按分数几排序,利用循环的方式,进行单科成绩排序(从大到小),输出学生姓名及该课的成绩。

6)退出程序。

2、附录:程序清单

#include <stdio.h>

#include<stdlib.h>

typedef struct student

{

int num;

char name[13];

int score[3];

double aver;

}STU;

void ave(STU s[],int n)

{ double a[1000];

int i;

for(i=0;i<n;i++)

a[i]=(s[i].score[0]+s[i].score[1]+s[i].score[2])/3.0;

printf("学号t姓名tt分数1t分数2t分数3t平均分n");

for(i=0;i<n;i++)

printf("%dt%stt%dt%dt%dt%.1fn",s[i].num,s[i].name,s[i].score[0],s[i].score[1],s[i].score[2],a[i]);

}

void search(STU s[],int n, int a)

{

int i,k=0;

for(i=0;i<n;i++)

{

if(s[i].num==a)

{ printf("学号t姓名t分数1t分数2t分数3tn");

printf("%dt%st%dt%dt%dn",s[i].num,s[i].name,s[i].score[0],s[i].score[1],s[i].score[2]);

k=k+1;

break;

}

}

if(k==0)

printf("t没有查询到相关信息");

}

void average(STU s[],int n)

{ int i,j;

STU ss[10000];

STU *p=ss;

for(i=0;i<n;i++)

s[i].aver=(s[i].score[0]+s[i].score[1]+s[i].score[2])/3.0;

for(i=0;i<n;i++)

ss[i]=s[i];

for(i=0;i<n-1;i++)

{

for(j=i+1;j<n;j++)

{

if(ss[i].aver<ss[j].aver)

{

STU temp=*(p+i);

*(p+i)=*(p+j);

*(p+j)=temp;

}

}

}

printf("学号t姓名t平均分n");

for(i=0;i<n;i++)

printf("%dt%st%.1fn",(p+i)->num,(p+i)->name,(p+i)->aver);

}

void grade(STU s[],int n)

{int i,j,k;

STU ss[10000];

STU *p=ss;

for(i=0;i<n;i++)

ss[i]=s[i];

printf("请输入k的值查询,k=0时按分数1,k=1时按分数2,k=2时按分数3:");

scanf("%d",&k);

for(i=0;i<n-1;i++)

{

for(j=i+1;j<n;j++)

{

if(ss[i].score[k]<ss[j].score[k])

{

STU temp=*(p+i);

*(p+i)=*(p+j);

*(p+j)=temp;

}

}

}

printf("姓名t分数n");

for(i=0;i<n;i++)

printf("%st%dn",(p+i)->name,(p+i)->score[k]);

}

main()

{ int N,i;

STU s[10000];

int num1;

int menu;

printf("请输入学生个数:");

scanf("%d",&N);

for(i=0;i<N;i++)

{

printf("请输入学号 姓名 分数1 分数2 分数3n");

scanf("%d%s%d%d%d",&s[i].num,s[i].name,&s[i].score[0],&s[i].score[1],&s[i].score[2]);

}

printf("nn");

printf("*************学生成绩管理系统*************nn");

printf("1--------输出平均分n");

printf("2--------按学号查询成绩n");

printf("3--------按平均分排序后输出n");

printf("4--------对学生单科成绩排序后输出n");

printf("5--------退出程序n");

printf("nn");

while(1)

{

printf("n请输入菜单号:");

scanf("%d",&menu);

switch(menu)

{

case 1: ave(s,N);break;

case 2: printf("请输入要查询的学号:");

scanf("%d",&num1);

search(s,N,num1);

break;

case 3: average(s,N);break;

case 4: grade(s,N);break;

case 5: exit(0);

default:

printf("菜单号输入错误n");

break;

}

}

}

3、运行过程

学生成绩管理系统实验报告_学生成绩管理系统设计相关推荐

  1. python学生成绩管理系统实验报告_【python 学生信息管理系统】

    1. 简述 本文讲述的是用 python 语言写一个简单的学生信息管理系统,系统包含学生信息的增删查改功.同时使用了 mysql5.7.14 来存储数据. 2.准备工作 首先,先搭建好自己的 MySQ ...

  2. 学生成绩管理系统实验报告_学习60天python成果,Python变成学生成绩管理系统

    学习60天python成果,Python变成学生成绩管理系统 大家好,我是一名刚进入大学的python新秀,初次来到博客,希望通过博客想大家分享一下自己的学习成果,并记录自己的在大数据方向的经历,希望 ...

  3. python图书馆管理系统实验报告_基于python图书馆管理系统设计实例详解

    写完这个项目后,导师说这个你完全可以当作毕业项目使用了,写的很全,很多的都设计考虑周全,但我的脚步绝不止于现在,我想要的是星辰大海!与君共勉! 这个项目不是我的作业, 只是无意中被拉进来了,然后就承担 ...

  4. 用C语言学生成绩数据库排序功能设计,[c语言学生成绩管理系统]C语言学生成绩管理系统实验报告...

    篇一 : C语言学生成绩管理系统实验报告 实 验 四:结构体(6学时) 实验目的: 1.更加灵活的使用数组作为函数参数: 2.初步掌握开发一个小型实用系统的基本方法: 3.初步掌握书写程序设计开发文档 ...

  5. 成绩分析系统c语言实验报告,学生成绩管理系统实验报告

    <学生成绩管理系统实验报告>由会员分享,可在线阅读,更多相关<学生成绩管理系统实验报告(13页珍藏版)>请在人人文库网上搜索. 1.学生成绩管理系统实验报告实验名称:学生成绩管 ...

  6. c语言成绩管理系统报告书,C语言学生成绩管理系统实验报告

    <C语言学生成绩管理系统实验报告>由会员分享,可在线阅读,更多相关<C语言学生成绩管理系统实验报告(22页珍藏版)>请在人人文库网上搜索. 1.学生成绩管理系统实验报告实验名称 ...

  7. c语言学生成绩管理实验报告,C语言 学生成绩管理系统实验报告.doc

    ... WORD格式可编辑版 学生成绩管理系统实验报告 ㈠实验名称: 学生成绩管理系统 ㈡实验目的: 1)利用所学的三种程序基本结构以及数组.用户自定义函数进行一个简单管理系统的设计,进一步理解和掌握 ...

  8. java销售管理系统实验报告_java学生通讯录管理系统实验报告

    java学生通讯录管理系统实验报告 (4页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 宁波大红鹰学院 课课程程设设计计课程设计名称: ...

  9. c语言学生档案管理课设作业,2019-2020年c语言课程设计学生档案管理系统实验报告.doc...

    2019-2020年c语言课程设计学生档案管理系统实验报告.doc 还剩 10页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: *********C 语 ...

最新文章

  1. pythongui登录界面密码显示_python的GUI之一个简单的登录界面
  2. 小甲鱼python003答案_小甲鱼:Python学习笔记003_函数
  3. Failed to read schema document ‘http://code.alibabatech.com/schema/dubbo/dubbo.xsd‘问题解决方法
  4. python简单代码加法-Python tkinter实现简单加法计算器代码实例
  5. Java学习笔记——局部变量和成员变量
  6. Python 科学计算库 Numpy(一)—— 概述
  7. 微信摇一摇插件ios_微信开发平台 Jeewx-Boot
  8. Eclipse4.8.0无法打开 Eclipse MarketPlace
  9. git常用命令及分支简介
  10. 【机器视觉】 catch算子
  11. 使用 CefSharp 在 C# App 中嵌入 Chrome 浏览器
  12. [渝粤教育] 西南科技大学 工程力学 在线考试复习资料
  13. 计算机无法播放,如果无法播放计算机mp4文件怎么办?
  14. HTML5表单提交和PHP环境搭建
  15. python创建数组并运行_python-Cython中从现有数组和变量创建新数组...
  16. My Data Sructure TemplatesClass
  17. 应急卫星通信系统项目建设要求
  18. SecureCRT 破解版v7.1.1.264中文汉化绿色版
  19. java word另存为_java实现页面另存为word
  20. 戴尔服务器bios设置u盘启动不了系统,戴尔电脑主板bios设置u盘启动不了怎么办...

热门文章

  1. tf.shape()和tf.reshape()
  2. 转载:制造业信息化:计划模拟APS软件驱动敏捷制造
  3. 电影天堂电影链接爬取
  4. dev 域名与 Chrome
  5. 201521123106《java程序设计》第三周学习总结
  6. Android AsyncTask 详解及注意事项
  7. web前端的十种jquery特效及源码下载
  8. 串结构练习--字符串匹配
  9. 工作经验总结:百万数据引发的性能瓶颈问题
  10. [转载] python中import问题