找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2182|回复: 0
打印 上一主题 下一主题
收起左侧

成绩管理系统c++源代码下载

[复制链接]
跳转到指定楼层
楼主
成绩管理系统 c++工程:


单片机源程序如下:
  1. // 学生成绩管理系统.cpp : Defines the entry point for the console application.
  2. //

  3. #include "stdafx.h"

  4. #include<iostream>
  5. #include<cstdio>
  6. using namespace std;

  7. const int Max=5;//字符串最大长度

  8. class Student;//类声明
  9. void setData(Student &s);//设置对象s的数据
  10. void count(Student &s);//计算对象s的总分,平均分
  11. void sort(Student S[],int N);//把长度为N的对象数组S,按平均分排序
  12. double getAverage(Student S[],int N);//计算全班的平均分
  13. void print(Student &s);//打印信息
  14. int search(Student S[],int N,char *n);//从长度为M的对象数组中,查找学号n的位置
  15. class Student
  16. {
  17. public:
  18.         char number[Max]; //学号
  19.         char name[Max];        //姓名
  20.         double chinese; //语文成绩
  21.         double math;        //数学成绩
  22.         double english; //英语成绩
  23.         double total;        //总分
  24.         double average;        //平均分
  25.         int rank;//只有比较才不为了0
  26. };

  27. void setData(Student &s) //成绩录入模块
  28. {
  29.         cout<<"输入学号,姓名,语文,数学,英语成绩:";//录入数据
  30.         cin>>s.number>>s.name>>s.chinese>>s.math>>s.english;
  31.         s.total=0;//初始化
  32.         s.average=0;
  33.         s.rank=0;
  34. }

  35. void count(Student &s)//成绩统计
  36. {
  37.         s.total=s.chinese+s.math+s.english;
  38.         s.average=s.total/3;
  39. }

  40. void sort(Student S[],int N)//插入法排序 (成绩排名)
  41. {
  42.         int index;
  43.         Student inserter;
  44.         for(int i=1;i<N;i++)
  45.         {
  46.                 inserter=S[i];
  47.                 index=i-1;
  48.                 while(index>=0&&inserter.average>S[index].average)
  49.                 {
  50.                         S[index+1]=S[index];
  51.                         index--;
  52.                 }
  53.                 S[index+1]=inserter;
  54.         }
  55.         for(int j=0;j<N;j++)
  56.                 S[j].rank=j+1;//设置排名
  57. }

  58. double getAverage(Student S[],int N)
  59. {
  60.         double Average=0;
  61.         for(int i=0;i<N;i++)
  62.                 Average+=(S[i].chinese+S[i].math+S[i].english);
  63.         Average/=(N*3);
  64.         return Average;
  65. }

  66. void print(Student &s) //输出结果
  67. {
  68.         cout<<"排名"<<"\t"<<"学号"<<"\t"<<"姓名"<<"\t"<<"语文:"<<"\t"
  69.                 <<"数学:"<<"\t"<<"英语:"<<"\t"<<"总分"<<"\t"<<"平均分"<<endl;
  70.         cout<<s.rank<<"\t"<<s.number<<"\t"<<s.name<<"\t"<<s.chinese<<"\t"
  71.                 <<s.math<<"\t"<<s.english<<"\t"<<s.total<<"\t"<<s.average<<endl;
  72. }

  73. int search(Student S[],int N,char *n) //成绩查询模块
  74. {
  75.         for(int i=0;i<N;i++)
  76.         {
  77.                 if(strcmp(S[i].number,n)==0)
  78.                         return i;
  79.         }
  80.         return -1;
  81. }

  82. int main() //系统集成
  83. {
  84.         const int M=3;
  85.         Student S[M];
  86.         for(int i=0;i<M;i++)
  87.         {
  88.                 cout<<"下面输入第"<<i+1<<"位同学的数据:"<<endl;
  89.                 setData(S[i]);
  90.                 count(S[i]);
  91.                 cout<<endl;
  92.         }
  93.         sort(S,M);
  94.         int order=1;
  95.         while(order!=4)
  96.         {
  97.                 cout<<"*****************************命令菜单******************************"<<endl;
  98.                 cout<<"1.打印所有排名"<<endl;
  99.                 cout<<"2.打印出成绩在全班平均分以上的学生名单和数据信息"<<endl;
  100.                 cout<<"3.任意输入一个学号,查找出该学生在班级中的排名及其考试成绩"<<endl;
  101.                 cout<<"4.退出系统"<<endl;
  102.                 cout<<"*******************************************************************"<<endl;
  103.                 cout<<"输入命令选择:";
  104.                 cin>>order;
  105.                 switch(order)
  106.                 {
  107.                 case 1:
  108.                         {
  109.                                 for(int j=0;j<M;j++)
  110.                                         print(S[j]);
  111.                         }
  112.                         break;
  113.                 case 2:
  114.                         {
  115.                                 double compare=getAverage(S,M);
  116.                                 for(int k=0;k<M;k++)
  117.                                         if(S[k].average>compare)
  118.                                                 print(S[k]);
  119.                         }
  120.                         break;
  121.                 case 3:
  122.                         {
  123.                                 char code[Max];
  124. ……………………

  125. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
学生成绩管理系统.rar (367.94 KB, 下载次数: 12)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表