1、C学生成绩统计管理系统湖南科技学院课程设计报告课程名称:计算机高级语言(C+)课程设计课程设计题目:学生通讯管理系统系:数学与计算科学系专 业:信息与计算科学年级、班:信计0801姓 名:谭鄱仑学 号:2109指导教师:牛志毅职 称:讲师2010年12月课程实验报告-3一、需求分析-3二、概要设计-3 三、程序实现思路-7四、设计总结-7五、参考文献-7六、源代码-8七、运行情况16C+语言程序设计报告一、 需求分析用C+编写下面程序学生成绩统计管理系统(*) 要求实现如下功能: 成绩的输入(学号、姓名、英语、数学、C+语言)。 成绩统计(各科平均成绩、各科成绩“优秀”、“良好”、“中等”、“
2、及格”、“不及格”的人数及其所占比例)。 总成绩统计(学生的总成绩、平均成绩及成绩排名)。 成绩的统计结果显示。 学生数据的添加、修改、与删除。 学生数据的读取与存储。二、 概要设计主要数据定义以及各程序模块的功能: Student类中:class Studentprivate: int id;C+程序设计. 清华大学出版社, 六 源程序/* 课程设计题目:学生信息管理系统 班级:0901 学号:2109 姓名:谭鄱仑 */#includeint main() int i=0; char ok; Studentifo stuifo; Studentifo *ifo=&stuifo; ShowM
3、enu(); couti; system(cls); ShowMenu(); DoMenu(i,ifo); ShowTip(); if(flag) coutok; if(ok=Y|ok=y) ifo-MakeAll(); ifo-ClearRank(); ifo-MakeRank(); Save(ifo); cout数据已保存.按任意键安全退出; else cout已安全退出.按任意键返回;#ifndef STUDENT_H_INCLUDED#define STUDENT_H_INCLUDED#include#include#include#include#include#includeusi
4、ng namespace std;class Studentprivate: int id;etStudentID(n);void Studentifo:LoadName(int n,string name) stun.SetStudentName(name);void Studentifo:LoadScore(int n,double y,double s,double c) stun.SetStudentScore(y,s,c);void Studentifo:Setifo() int n; coutn; if(stun.StudentX()=1|n=0) cout该学号已有或者学号信息错
5、误endl; else stun.SetStudentID(n); stun.SetStudentName(0); stun.SetStudentScore(0,0,0); stun.SetStudentX(1); num+; coutendl; void Studentifo:Putifo() int i,s1=0,y1=0,c1=0,y2=0,s2=0,c2=0,y3=0,s3=0,c3=0,y4=0,s4=0,c4=0,y5=0,s5=0,c5=0; double Y=0,S=0,C=0; if(num=0) cout没有学生数据endl; else cout |*学生综合信息*|end
6、l; cout | 学号t姓名t英语t数学tC+t总成绩t名次t等级 |endl; cout |*|endl; for(i=1; i=100; i+) if(stui.StudentX()=1) Y+=stui.StudentYscore(); S+=stui.StudentSscore(); C+=stui.StudentCscore(); cout | stui.StudentID()t; coutstui.StudentName()t; coutstui.StudentYscore()t; coutstui.StudentSscore()t; coutstui.StudentCscore
7、()t; stui.Getall(); coutstui.All()t; coutstui.Rank()t; coutstui.StudentDengji(); coutt|endl; cout |*|=0&stui.StudentYscore()=60&stui.StudentYscore()=70&stui.StudentYscore()=80&stui.StudentYscore()=0&stui.StudentSscore()=60&stui.StudentSscore()=70&stui.StudentSscore()=80&stui.StudentSscore()=0&stui.S
8、tudentCscore()=60&stui.StudentCscore()=70&stui.StudentCscore()=80&stui.StudentCscore()90) c4+; else c5+; cout _endl; cout |*各科成绩信息*|endl; coutt |tt英语tt数学ttC+t |endl; coutt |平均成绩tY/numttS/numttC/numt |endl; coutt |不及格t100*double(y1)/num%tt100*double(s1)/num%tt100*double(c1)/num%t |endl; coutt |及格tset
9、precision(4)100*double(y2)/num%ttsetprecision(4)100*double(s2)/num%ttsetprecision(4)100*double(c2)/num%t |endl; coutt |中等tsetprecision(4)100*double(y3)/num%ttsetprecision(4)100*double(s3)/num%ttsetprecision(4)100*double(c3)/num%t |endl; coutt |良好tsetprecision(4)100*double(y4)/num%ttsetprecision(4)10
10、0*double(s4)/num%ttsetprecision(4)100*double(c4)/num%t |endl; coutt |优秀tsetprecision(4)100*double(y5)/num%ttsetprecision(4)100*double(s5)/num%ttsetprecision(4)100*double(c5)/num%t |endl; cout |_|nendl; cout*各等级人数*endl; cout成绩t优秀t良好t中等t及格t不及格为endl; cout英语t y5t y4t y3t y2t y1endl; cout数学t s5t s4t s3t
11、s2t s1endl; coutC+ t c5t c4t c3t c2t c1endl; cout*endl; void Studentifo:PutifoRank() if(num=0) cout没有学生数据endl; else cout名次t姓名t英语t数学tC+t总成绩t学号t等级endl; for(int n=1; n=num; n+) for(int i=1; i=100; i+) if(stui.StudentX()=1&stui.Rank()=n) stui.Getall(); coutstui.Rank()t; coutstui.StudentName()t; coutstui
12、.StudentYscore()t; coutstui.StudentSscore()t; coutstui.StudentCscore()t; coutstui.All()t; coutstui.StudentID()t; coutstui.StudentDengji(); coutendl; void Studentifo:PutID() int n,i,k=0; string str2;pick: cout *endl; cout *1:按学号查找*endl; cout *2:按姓名查找*endl; cout *3:退出查找 *endl; cout *endl; couti; switc
13、h(i) case 1: coutn; if(stun.StudentX()=2) cout错误!不存在该学生endl; goto pick; else cout学号t姓名t英语t数学tC+t总成绩t名次t等级endl; coutstun.StudentID()t; coutstun.StudentName()t; coutstun.StudentYscore()t; coutstun.StudentSscore()t; coutstun.StudentCscore()t; stun.Getall(); coutstun.All()t; coutstun.Rank()t; coutstun.S
14、tudentDengji(); coutendl; break; case 2: coutstr2; cout学号t姓名t英语t数学tC+t总成绩t名次t等级endl; for(int j=1; j=100; j+) if(stuj.StudentName()=str2&stuj.StudentX()=1) coutstun.StudentID()t; coutstun.StudentName()t; coutstun.StudentYscore()t; coutstun.StudentSscore()t; coutstun.StudentCscore()t; stun.Getall(); c
15、outstun.All()t; coutstun.Rank()t; coutstun.StudentDengji(); coutendl; k+; if(k=0) cout错误!不存在该学生请重新输入:endl; goto pick; break; case 3: break; void Studentifo:ClearID() int n; coutn; if(stun.StudentX()=1) stun.SetStudentX(2); -num; else cout无此人endl;void Studentifo:Clear() for(int i=0;i=100;i+) stui.Set
16、StudentX(2); num=0; cout数据已清空;void Studentifo:ClearRank() for(int i=1; i=100; i+) stui.RankClear();void Studentifo:MakeRank() for(int i=1; i100; i+) for(int j=i+1; j=100; j+) if(stui.StudentX()=1&stuj.StudentX()=1) if(stui.All()stuj.All() stuj.SetRank(); void Studentifo:ReSetifo() int n,x,y;fixinfo:
17、 coutn; if(stun.StudentX()=2) cout没有该学号学生信息,重试请按1,退出请按其他数字z; if(z=1) goto fixinfo; else goto end; elsefix: cout$n; cout$1:修改学号 $n; cout$2:修改姓名 $n; cout$3:修改成绩 $n; cout$4:退出修改 $n; cout$; coutendl; coutx; switch(x) case 1: couty; for(int i=1; i=num; i+) if(stui.StudentID()=y) cout该学号已存在,请重新输入:; goto l
18、oop; stun.SetStudentID(y); cout学号修改成功!n; goto fix; break; case 2: stun.SetStudentName(0); cout姓名修改成功n; goto fix; break; case 3: stun.SetStudentScore(0,0,0); cout成绩修改成功n; goto fix; break;end: case 4: break; void Studentifo:MakeAll() for(int i=1; i=100; i+) for(i=1; i=100; i+) if(stui.StudentX()=1) st
19、ui.Getall();void Studentifo:Xfix(int n) stun.SetStudentX(1);int Studentifo:X(int n) int x=stun.StudentX(); return x;int Studentifo:ID(int n) int x=stun.StudentID(); return x;string Studentifo:Name(int n) string str1=stun.StudentName(); return str1;double Studentifo:Yscore(int n) double x=stun.StudentYscore(); r
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1