用C++进行学生成绩统计分析

作者&投稿:伍彭 (若有异议请与网页底部的电邮联系)
求一道程序设计题的解题程序!!!用C++程序编程:学生成绩统计~

#include using namespace std;const unsigned int g_nStudents = 10; // 学生总数// 学生成绩统计类class StudentsScoreStatistics{public: StudentsScoreStatistics() { Clear(); } // 重置学生分数 void Clear() { for (int i = 0; i 100.0) return false; mScores[aIndex] = aCore; return true; } // 排序 void Sort() { // 采用插入排序 for (int i = 1; i = 0 && mScores[j] > dScore; if (!stOperator.InitScore(dScore, i)) { cout << "成绩输入错误!请重新输入:" << endl; i--; } } // 逆序输出 stOperator.Sort(); cout << "排序后的学生成绩为:" << endl; for (int i = 0; i < g_nStudents; i++) { cout << *(stOperator.GetScores() + i) << " "; } cout << endl; cout << endl; system("pause"); return 0;}运行结果:

#include using namespace std;class 学生管理类{public: unsigned int _80分以上人数() { return 0; } unsigned int 不及格人数() { return 0; } double 平均成绩() { return 0; }private: list 分数列表;};int main(int argc, char* argv[]){ 学生管理类 管理; cout << "80分以上人数:" << 管理._80分以上人数() << endl; cout << "不及格人数:" << 管理.不及格人数() << endl; cout << "平均成绩:" << 管理.平均成绩() << endl; return 0;}

我以前写了一个图书管理系统
和这个差不多
稍微改改就可以得到你要的

我的代码==》图书管理系统
2009年07月18日 星期六 上午 00:50
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<malloc.h>
#include<windows.h>//system("color 1e");字体颜色及背景颜色

typedef struct lab{

char title[30];
char number[20];
char owner[20];
char press[30];
struct lab *next;
}book;
typedef struct {

char title[30];
char number[20];
char owner[20];
char press[30];
}books;

book *L;//全局变量
FILE *fp;

book * start()//初始化
{
L=(book *)malloc(sizeof(book));
L->next=NULL;
return(L);
}

void append(book *L)//头插法创建单链表
{
void menu();
int a=1;
char Title[30];
char Number[20];
char Owner[20];
char Press[30];
book *p;
printf ("请依次输入图书信息:\n(输入书名000时结束添加)\n\n");

printf ("\n请输入书名:");
gets(Title);
while(strcmp(Title,"000")!=0)
{
printf ("请输入图书编号:");
gets(Number);
printf ("请输入作者姓名:");
gets(Owner);
printf ("请输入出版社:");
gets(Press);

while(strcmp(Title,"000")!=0)
{
p=(book *)malloc(sizeof(book));
strcpy(p->title,Title);
strcpy(p->number,Number);
strcpy(p->owner,Owner);
strcpy(p->press,Press);

p->next=L->next;
L->next=p;

printf ("\n请输入书名:");
gets(Title);
if(strcmp(Title,"000")==0)
{
void save(book *L,char filename[30]);
printf("\t数据保存中……\n");
save(L,"dat");//同步数据
printf("\t保存成功!!!\n");
break;
}
printf ("请输入图书编号:");
gets(Number);
printf ("请输入作者姓名:");
gets(Owner);
printf ("请输入出版社:");
gets(Press);
}
}
}

void print1()
{
printf(" ====书名===============编号=======作者================出版社============== \n");
}
void print2(book *m)//输出一个结点
{
printf(" %-15s %-7s %-15s %s\n",m->title,m->number,m->owner,m->press);
}
void print3()
{
printf(" ==========================================================================\n");
}

void Delete(book *L,char number[20])//删除图书信息
{
void menu(void);
void save(book *L,char filename[30]);
void Delete(book *L,char number[20]);

book *q,*p;
p=L;
char choice[10];
if(p->next!=NULL)
{
while(p->next!=NULL)
{
if(strcmp(p->number,number)==0) break;
else
{
q=p;
p=p->next;
}
}
if(p->next==NULL)
{
if(strcmp(p->number,number)==0)//判断是不是正好最后一个与之匹配
{
printf("该图书信息如下:\n");
print1();
print2(p);
print3();
printf("\t确认删除请输入y,撤消请输入n:");
gets(choice);
if(strcmp(choice,"y")==0)
{
q->next=q->next->next;
printf("\t数据保存中……\n");
save(L,"dat");//同步数据
printf("\t删除成功!!!\n");
free(p);
}
else if(strcmp(choice,"n")==0)
printf("删除取消!");
else
printf("\n抱歉,您的输入有误!\n\n");
}
else
printf("\n\t\t\t抱歉!书库中没有该图书!\n\n");
}
else
{
printf("该图书信息如下:\n");
print1();
print2(p);
print3();
printf("\t确认删除请输入y,撤消请输入n:");
gets(choice);
if(strcmp(choice,"y")==0)
{
if(strcmp(p->number,number)==0)
{
q->next=q->next->next;
printf("\t数据保存中……\n");
save(L,"dat");//同步数据
printf("\t删除成功!!!\n");
free(p);
}
}
else if(strcmp(choice,"n")==0)
printf("删除取消!");
//menu();
else
printf("\n抱歉,您的输入有误!\n\n");
}
}
else
printf("\n抱歉,书库里还没有藏书!\n");
system("pause");
system("cls");//清屏函数
}

//3,搜索 图书编号->searchNumber(L,number2);
void searchNumber(book *L,char number2[20])
{
book *p;
p=L;
if(p->next!=NULL)//当书库非空
{
do
{
p=p->next;
if(strcmp(p->number,number2)==0)
{
printf("搜到图书如下:\n");
print1();
print2(p);
print3();
break;
}
}while(p->next!=NULL);
if((p->next==NULL)&&(strcmp(p->number,number2)!=0)) //到最后一个结点依然没匹配
printf("\n\t\t\t抱歉!没有该编号的图书!!\n\n");
}
else
printf("\n抱歉,书库里还没有藏书!\n");
system("pause");
system("cls");//清屏函数

}
//4,搜索 书名->searchName(L,s);
void searchName(book *L,char s[20])
{
book *p;
p=L;
int i=0;
if(p->next!=NULL)
{
print1();
while(p->next!=NULL)
{
p=p->next;
if(strcmp(p->title,s)==0)
{
print2(p);
i=i+1;
}
}
printf("\n\t\t\t找到 %d 本该作者的图书!!\n",i);//判断是不是正好是尾结点与之匹配
print3();
}
else
printf("\n\n\t\t\t书库里还没有藏书\n\n");
system("pause");
system("cls");//清屏函数

}
//5,搜索 作者->searchOwner(L,t);
void searchOwner(book *L,char t[20])
{
book *p;
p=L;
int i=0;
if(p->next!=NULL)
{
print1();
while(p->next!=NULL)//不为空时,打印出该作者所有图书信息
{
p=p->next;
if(strcmp(p->owner,t)==0)
{
print2(p);
i=i+1;
}
}
printf("\n\t\t\t找到 %d 本该作者的图书!!\n",i);//判断是不是正好是尾结点与之匹配
print3();
}
else
printf("\n\n\t\t\t抱歉,书库里还没有藏书!\n\n");
system("pause");
system("cls");//清屏函数
}
//6,搜索 出版社->searchPress(L,f);
void searchPress(book *L,char f[30])
{
int i=0;//记录符合条件的结点数
book *p;
p=L;
if(p->next!=NULL)
{
print1();
while(p->next!=NULL)//不为空时,打印出该作者所有图书信息
{
p=p->next;
if(strcmp(p->press,f)==0)
{
print2(p);
i++;
}
}
printf("\n\t\t\t找到 %d 本该出版社的图书!!\n",i);
print3();
}
else {printf("\n\n\t\t\t抱歉,书库里还没有藏书!\n\n");}
system("pause");
system("cls");//清屏函数
}

book * load(char filename[30])//信息加载,将所有原来的信息加载到链表中,在打开程序时自动加载
{
book *p,*head;//结构体指针
books per;//定义结构体变量per
head=(book*)malloc(sizeof(book));//申请空间
p=head->next=NULL;
if((fp=fopen(filename,"rb"))==NULL)//为输入打开一个二进制文件
{
printf("\n\t\t\t原有信息加载失败!!\n");
system("pause");
return head;
}

else
{
while(!feof(fp))//文件没结束
{
if(fread(&per,sizeof(books),1,fp)==1)
//fread(&per,sizeof(struct person),1,fp)
//从fp所指向的文件读入1个sizeof(books)字节的数据,
//存储到结构体变量per中
{
p=(book*)malloc(sizeof(book));//申请结点空间
strcpy(p->title,per.title);
strcpy(p->number,per.number);
strcpy(p->owner,per.owner);
strcpy(p->press,per.press);
p->next=head->next;head->next=p; //赋值
}
}
fclose(fp);
return head;
}
}

//7,保存所有信息->save(void);
void save(book *L,char filename[30])//保存信息,当对链表进行了 添加,删除,修改时调用,确保文件信息与链表中信息一致
{
books per;
book *p;
p=L->next;
if((fp=fopen(filename,"wb"))==NULL)//"wb+"(读写) 为读/写建立一个新的二进制文件
//"w+".首先建立一个新文件,进行写操作,随后可以从头开始读.(若文件存在,原内容将全部消失)
{
printf("文件打开失败\n");
exit(1);
}
else
{
while(p!=NULL)
{
strcpy(per.title,p->title);
strcpy(per.number,p->number);
strcpy(per.owner,p->owner);
strcpy(per.press,p->press);
if(fwrite(&per,sizeof(books),1,fp)!=1)
{
printf("文件打开失败!!\n");
exit(0);
}
p=p->next ;
}
fclose(fp);
}
}

void Free(book *L)//结点空间释放
{
book *p,*q=NULL;
p=L;
while(p)
{
q=p->next;
free(p);
p=q;
}
}

void menu(void)//主菜单函数
{
int i=0,c;
char m[20];
char number1[20],number2[20];
char s[30],t[10],f[30];
printf("\n\t\t***********欢迎登陆图书管理系统***************\n\n");
printf("\t\t ☆添加图书信息 请输入1;\n\n") ;
printf("\t\t ☆删除图书信息 请输入2;\n\n") ;
printf("\t\t ☆搜 索 图 书 请输入3;\n\n");
printf("\t\t ☆列出所有信息 请输入4;\n\n") ;
printf("\t\t ☆保存并退出 请输入5;\n\n") ;
printf("\t\t**********************************************\n\n");

fflush(stdin);//清除键盘缓存区,避免当m输入一组字符串时,程序崩溃

printf("\t请输入相应指令(1~5):");
gets(m);
printf("\n\n");
if((strcmp(m,"1")==0))
append(L);
else if((strcmp(m,"2")==0))
{
printf("请输入要删除图书的编号:");
gets(number1);
Delete(L,number1);
}
else if((strcmp(m,"3")==0))
{
char choice[10];
printf("\t\t ●按编号搜索=====>请输入1;\n");
printf("\t\t ●按书名搜索=====>请输入2;\n");
printf("\t\t ●按作者搜索=====>请输入3;\n");
printf("\t\t ●出版社搜索=====>请输入4;\n\n");

printf("请选择操作:");
gets(choice);
if((strcmp(choice,"1")==0))
{
printf("请输入图书编号:");
gets(number2);
searchNumber(L,number2);
}
else if((strcmp(choice,"2")==0))
{
printf("请输入图书书名:");
gets(s);
searchName(L,s);
}
else if((strcmp(choice,"3")==0))
{
printf("请输入图书作者:");
gets(t);
searchOwner(L,t);
}
else if((strcmp(choice,"4")==0))
{
printf("请输入图书出版社:");
gets(f);
searchPress(L,f);
}
else
printf("\n抱歉,您的输入有误!\n\n");
}
else if((strcmp(m,"4")==0))
{
book *p;
p=L;
print1();
while(p->next!=NULL)
{
p=p->next;
print2(p);
i++;
}
print3();
printf("\n\t\t\t该图书馆共有 %d 本图书的信息\n\n",i);
system("pause");
system("cls");//清屏函数

}
else if((strcmp(m,"5")==0))
{
printf("\t保存中……\n");
save(L,"dat");
printf("\t成功!!!\n");
Free(L);
exit(1);
}
else
{
printf("\n抱歉,您的输入有误!\n\n");
system("pause");
system("cls");//清屏函数
}
}

void main()
{

system("color 1e");
L=start();
L=load("dat");//信息加载,将所有原来的信息加载到链表中,在打开程序时自动加载
while(1)
{
menu();
}
}

struct studdent{
str name[20];
int number[20];
char sex[20];
int a[20];
}stu;
for(i=0;i<=20;i++)
scanf("input the name:\n");
scanf("str",&name[i]);
for(j=0;j<=20;j++)
scanf("%d",&number[j]);
,,
,
,
,不好意思,忘了


使用C语言做一个学生成绩管理系统
题描述用C语言编写一个程序实现学生成绩管理,每个学生包括3门课的成绩,从键盘输入学生信息,包括学号、姓名、三门课成绩,计算出学生的平均成绩,按照学生平均成绩由大到小... 题描述 用C语言编写一个程序实现学生成绩管理,每个学生包括3门课的成绩,从键盘输入学生信息,包括学号、姓名、三门课成绩,计算出学生...

用C语言设计一个学生成绩管理系统
请教c语言高手~~~设计一个学生成绩管理系统功能:1.学生成绩的录入并保存(课程门数为N);2.输出全班同学各门课程的成绩(人数为M);3.输入学号,查询该学生各门课程成绩;4.输... 急急急!!!请教c语言高手~~~设计一个学生成绩管理系统功能: 1.学生成绩的录入并保存(课程门数为N); 2.输出全班同学各门课程...

用c语言设计一个程序统计一个班的学生成绩?
\/\/导入学生信息 void input() { int id = 0;double score = 0;while (1) { printf("请输入学生学号:");scanf_s("%d", &id);if (id == -1) { break; } printf("请输入学生成绩:");scanf_s("%lf", &score);Student[len].id = id;Student[len].score = score;len++;} pr...

用c语言建立一个学生成绩管理系统
建立一个学生成绩管理系统。程序运行时显示一个简单的菜单。例如:1.信息输入(INPUT)2.信息的删除与修改3.显示当前学生成绩的记录信息,若无记录,则给出提示信息4.学生或者各个班级各门课程总分、平均分、最低分、最高分等的统计 5.可以按照班级、姓名、性别、分数(可以有区间)等方式进行查询6.具有良好的交互功能...

C语言编写单科学生成绩
include "stdio.h"#define N 16int main(int argv,char *argc[]){int s[N],i,d[5],sum;printf("Please enter %d students' score(int, Separated by ' ')...\\n",N);for(sum=d[0]=d[1]=d[2]=d[3]=d[4]=i=0;i<N;i++){while(scanf("%d",s+i)!=1 || s[i]<0...

C语言编程:学生成绩管理系统设计 学生成绩信息包括:学号,姓名,语文成绩...
scanf("%c",&b); } b=a; } while(b!=10); system("cls"); \/\/功能选择界面 int select; while(1) { system("cls");printf(" ***欢迎进入电子科技大学成都学院学生管理系统***\\n");printf("\\n"); printf("\\n"); printf(" 1.学生成绩新建\\n"); printf(" 2.学生成绩查询\\n");pri...

用C语言编写一个简单的学生成绩管理的程序
start: printf("\\n\\t\\t\\t欢迎使用学生成绩管理系统\\n");\/*一下为功能选择模块*\/ do { printf("\\n\\t\\t\\t\\t1.录入学员信息\\n\\t\\t\\t\\t2.显示学员信息\\n\\t\\t\\t\\t3.成绩排序信息\\n\\t\\t\\t\\t4.添加学员信息\\n\\t\\t\\t\\t5.删除学员信息\\n\\t\\t\\t\\t6.修改学员信息\\n\\t\\t\\t\\t...

C语言程序设计学生成绩查询系统
printf(" * 学生成绩管理系统2.0 *\\n");printf(" * 1.输入信息 *\\n");printf(" * 2.输出信息 *\\n");printf(" * 3.保存到文件 *\\n");printf(" * 4.从文件读

用c语言实现一个简单的学生成绩管理系统,包括:学号,姓名,科目,成绩
\/\/用字符界面实现,比如按数字1,可以录入学生所有信息;\/\/按数字2,显示所有学生成绩;\/\/按数字3,进入查询,按学号或姓名查询该学生是否存在,如果存在显示他的所有信息,\/\/\/否则给出不存在提示。#include <stdio.h>struct student{ char num[6]; \/*学号*\/ char name[10]; char ...

2.学生成绩管理系统 (c语言做)
2.学生成绩管理系统(c语言做)(线性表的应用)设计一个学生成绩管理系统,对班级学生的成绩进行显示,求总分、平均分、、查找、排序等操作。(1)学生信息包含姓名、学号多门成绩(... 2.学生成绩管理系统 (c语言做)(线性表的应用)设计一个学生成绩管理系统,对班级学生的成绩进行显示,求总分、平均分、、查找、排序等...

宣化区19114195883: 用C++编程:从键盘上输入若干学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入. -
幸疫布瑞: #include<iostream> using namespace std; int main() { double a[100]; double max=0,min=100,t; int i; for(i=0;i<100;i++) { cin>>a[i]; if(a[i]<0) break; else { if(a[i]>max) max=a[i]; if(a[i]<min) min=a[i]; } } cout<<"最大值是:"<<max<<endl; cout<<"最小...

宣化区19114195883: c++的编程题 编写一个程序统计考试成绩. -
幸疫布瑞: #include<iostream> #include<vector> using namespace std; int main() {vector<double> score;int i=0,n=0;double ave,max=0,min=0,sum_score=0,b,score1=0;vector<double>::size_type j,k;cout<<"input score (输入Ctrl^z时结束):";//同...

宣化区19114195883: c++写一个统计学生成绩的程序.分别用子函数求出:(1)输入n个学生m门 -
幸疫布瑞: C++可以先设计一个类:class student { priveate:...public:}; 哪里不懂可以问我

宣化区19114195883: 用C++编写学生成绩统计情况 -
幸疫布瑞: #include<iostream> #include<cstdlib> using namespace std; int cmp(const void *a,const void *b) {return *(double*)a-*(double*)b>0?1:-1;} class Student { private:char num[10];double score[4]; public:Student(char *nu){int i;for(i=0;i<4;i++)...

宣化区19114195883: 用c++语言编辑学生成绩统计表 -
幸疫布瑞: 试着写了一个,可能不是很精简,但功能还是满足的.希望能帮到你.#include<string>#include<iostream> using namespace std; class Student{ public: int num;//学号 string name; //姓名 float score[5]; //5门课程成绩 float avg; //平均成绩 ...

宣化区19114195883: c++编程:输入学生成绩单,并进行统计,打印出统计表 -
幸疫布瑞: 建数据结构,记录每一个学生的各科成绩、总分. 计算各科平均分,一个循环,把每一个学生循环一遍,把总分相加,处以实际考试人数即可. 打印总分排名,整一个排序算法,把排序关键字写成每一个学生的总分即可.

宣化区19114195883: C++编写一个程序,从键盘输入10个学生的成绩,统计最高分、最低分和平均分. -
幸疫布瑞: main() {float num[10]; float max.min; int i,aver,sum1,sum2,sum; 以上三行是定义变量 printf("请依次输入学生的分数\n"); for(i=0;i<10;i++) {printf("第i+1位:"); scanf("%f",&x[i]);} 把十个分数定义为一维数组,用循环语句,输入十个分...

宣化区19114195883: 求大侠写个分析学生成绩的c++程序 -
幸疫布瑞: #include <stdio.h> void main() {int i,n,nMax,nMin,s[1000],sum;nMax=0; nMin=100; sum=0;do{ printf("请输入学生数:"); scanf("%d",&n);} while ( n<=0 || n>1000 );for ( i=0;i<n;i++ ){do{ printf(" 请输入第%03d名学生成绩:")...

宣化区19114195883: C语言 统计学生成绩 -
幸疫布瑞: #include#include struct student{ double score[5];}s[10];void avg(){ printf("\n"); double sum; for(int i=0;i<10;i++) { sum=0; p...

宣化区19114195883: 用C++编写“利用结构函数组统计成绩”
幸疫布瑞: typedef struct { aa bb; } class aa() { 英文 =0分 数学=0分 } bb.英文=1分 bb.数学=2分 完毕

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网