成绩管理系统 c++工程:
单片机源程序如下:
- // 学生成绩管理系统.cpp : Defines the entry point for the console application.
- //
- #include "stdafx.h"
- #include<iostream>
- #include<cstdio>
- using namespace std;
- const int Max=5;//字符串最大长度
- class Student;//类声明
- void setData(Student &s);//设置对象s的数据
- void count(Student &s);//计算对象s的总分,平均分
- void sort(Student S[],int N);//把长度为N的对象数组S,按平均分排序
- double getAverage(Student S[],int N);//计算全班的平均分
- void print(Student &s);//打印信息
- int search(Student S[],int N,char *n);//从长度为M的对象数组中,查找学号n的位置
- class Student
- {
- public:
- char number[Max]; //学号
- char name[Max]; //姓名
- double chinese; //语文成绩
- double math; //数学成绩
- double english; //英语成绩
- double total; //总分
- double average; //平均分
- int rank;//只有比较才不为了0
- };
- void setData(Student &s) //成绩录入模块
- {
- cout<<"输入学号,姓名,语文,数学,英语成绩:";//录入数据
- cin>>s.number>>s.name>>s.chinese>>s.math>>s.english;
- s.total=0;//初始化
- s.average=0;
- s.rank=0;
- }
- void count(Student &s)//成绩统计
- {
- s.total=s.chinese+s.math+s.english;
- s.average=s.total/3;
- }
- void sort(Student S[],int N)//插入法排序 (成绩排名)
- {
- int index;
- Student inserter;
- for(int i=1;i<N;i++)
- {
- inserter=S[i];
- index=i-1;
- while(index>=0&&inserter.average>S[index].average)
- {
- S[index+1]=S[index];
- index--;
- }
- S[index+1]=inserter;
- }
- for(int j=0;j<N;j++)
- S[j].rank=j+1;//设置排名
- }
- double getAverage(Student S[],int N)
- {
- double Average=0;
- for(int i=0;i<N;i++)
- Average+=(S[i].chinese+S[i].math+S[i].english);
- Average/=(N*3);
- return Average;
- }
- void print(Student &s) //输出结果
- {
- cout<<"排名"<<"\t"<<"学号"<<"\t"<<"姓名"<<"\t"<<"语文:"<<"\t"
- <<"数学:"<<"\t"<<"英语:"<<"\t"<<"总分"<<"\t"<<"平均分"<<endl;
- cout<<s.rank<<"\t"<<s.number<<"\t"<<s.name<<"\t"<<s.chinese<<"\t"
- <<s.math<<"\t"<<s.english<<"\t"<<s.total<<"\t"<<s.average<<endl;
- }
- int search(Student S[],int N,char *n) //成绩查询模块
- {
- for(int i=0;i<N;i++)
- {
- if(strcmp(S[i].number,n)==0)
- return i;
- }
- return -1;
- }
- int main() //系统集成
- {
- const int M=3;
- Student S[M];
- for(int i=0;i<M;i++)
- {
- cout<<"下面输入第"<<i+1<<"位同学的数据:"<<endl;
- setData(S[i]);
- count(S[i]);
- cout<<endl;
- }
- sort(S,M);
- int order=1;
- while(order!=4)
- {
- cout<<"*****************************命令菜单******************************"<<endl;
- cout<<"1.打印所有排名"<<endl;
- cout<<"2.打印出成绩在全班平均分以上的学生名单和数据信息"<<endl;
- cout<<"3.任意输入一个学号,查找出该学生在班级中的排名及其考试成绩"<<endl;
- cout<<"4.退出系统"<<endl;
- cout<<"*******************************************************************"<<endl;
- cout<<"输入命令选择:";
- cin>>order;
- switch(order)
- {
- case 1:
- {
- for(int j=0;j<M;j++)
- print(S[j]);
- }
- break;
- case 2:
- {
- double compare=getAverage(S,M);
- for(int k=0;k<M;k++)
- if(S[k].average>compare)
- print(S[k]);
- }
- break;
- case 3:
- {
- char code[Max];
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
学生成绩管理系统.rar
(367.94 KB, 下载次数: 12)
|