收藏 分销(赏)

C学生成绩统计管理系统.doc

上传人:精*** 文档编号:3326703 上传时间:2024-07-02 格式:DOC 页数:50 大小:917.54KB
下载 相关 举报
C学生成绩统计管理系统.doc_第1页
第1页 / 共50页
C学生成绩统计管理系统.doc_第2页
第2页 / 共50页
C学生成绩统计管理系统.doc_第3页
第3页 / 共50页
C学生成绩统计管理系统.doc_第4页
第4页 / 共50页
C学生成绩统计管理系统.doc_第5页
第5页 / 共50页
点击查看更多>>
资源描述

1、湖南科技学院课程设计报告课程名称:计算机高级语言(C+)课程设计课程设计题目:学生通讯管理系统系:数学与计算科学系专 业:信息与计算科学年级、班:信计0801姓 名:谭鄱仑学 号:指导教师:牛志毅职 称:讲师2023年12月目 录课程实验报告-3一、需求分析-3二、概要设计-3 三、程序实现思绪-7四、设计总结-7五、参考文献-7六、源代码-8七、运营情况16C+语言程序设计报告一、 需求分析用C+编写下面程序学生成绩记录管理系统(*)规定实现如下功能: 成绩的输入(学号、姓名、英语、数学、C+语言)。 成绩记录(各科平均成绩、各科成绩“优秀”、“良好”、“中档”、“及格”、“不及格”的人数及

2、其所占比例)。 总成绩记录(学生的总成绩、平均成绩及成绩排名)。 成绩的记录结果显示。 学生数据的添加、修改、与删除。 学生数据的读取与存储。二、 概要设计重要数据定义以及各程序模块的功能: Student类中:class Studentprivate: int id;/学号 string name;/姓名 double score3; int x;/指示是否存储了数据 double all;/总成绩 int rank;/名次 string dengji;/等级public: Student();/构造函数 void SetStudentID(int);/输入学生学号 int StudentI

3、D();/返回学生学号 void SetStudentName(string str);/输入学生姓名 string StudentName();/返回学生姓名 void SetStudentScore(double y,double s,double c);/输入学生成绩 double StudentYscore();/返回学生英语成绩 double StudentSscore();/返回学生数序成绩 double StudentCscore();/返回学生C+成绩 void SetStudentX(int n);/给鉴定学生数据存在与否的X赋值 void Getall();/计算学生总成绩

4、 void SetRank();/给学生名次值加1 int Rank();/返回学生名次值 int StudentX();/返回鉴定X的值,鉴定是否修改 void RankClear();/给学生的名次赋值为1 void Setdengji(string dengji);/输入等级 double All();/返回学生总成绩 string StudentDengji();/返回学生等级值;Studentifo类中:class Studentifoprivate: int num;/学生个数 Student *stu;/定义指向存储学生类的指针public: Studentifo(int n);

5、/构造函数 void LoadID(int n);/输入学生学号 void LoadName(int ,string name);/输入学生姓名 void LoadScore(int ,double,double,double);/输入学生各科成绩 void Setifo();/插入学生数据 void Putifo();/输出所有学生数据 void Clear();/清除所有学生数据 void PutID();/输出指定学生数据 void ClearID();/删除指定学生数据 void MakeRank();/给所有学生排名 void ReSetifo();/修改指定学生数据 void Cl

6、earRank();/给指定学生的名次值赋为1 void MakeAll();/计算各个学生的总成绩 void PutifoRank();/按名次输出所有学生数据 int ID(int n);/返回学生学号 double Yscore(int);/返回学生英语成绩 double Sscore(int);/返回学生数学成绩 double Cscore(int);/返回学生C+成绩 double StudentAll(int n);/返回学生总成绩 int StudentRank(int n);/返回学生名次 string Name(int);/返回学生名次 int X(int);/指定X值,拟定

7、是否有存储数据 string Dengji(int n);/返回学生等级 void Numadd();/num值加1 void Xfix(int);/将指定学生的X指示值赋为1Studentifo();/析构函数释放new创建的空间;类外:void DoMenu(int n,Studentifo*t);/将类里的各个函数组合起来实现各个功能,按指定数字执行void Load(Studentifo *S);/从文献中载入学生信息void Save(Studentifo *S);/将学生信息保存到文献void ShowTip(); /显示操作提醒void ShowMenu(); /显示菜单主函数的

8、程序流程图开始输出菜单及提醒信息输入功能数字1N 2YN 3清除学生数据YN 4插入学生数据NNYY 5删除指定学生数据 6N7Y Y 超找指定学生数据修改指定学生数据按名次输出学生信息 8N 9 输出所有学生综合信息载入数据10退出保存 结束 三 程序实现思绪本程序通过Studentifo类开辟一个Student的类数组用已储存学生数据。通过Studentifo类的公有函数和Student的公有函数进行关联,对Student类里的私有学生数据进行操作,达成输入,解决,输出学生数据的功能。同时运用文献输入输出流在项目文献夹中创建一个date.txt文档进行学生数据的保存与读取。四 设计总结(1

9、)摆正心态,不心浮气躁 刚拿到题目,难免会觉得特别迷茫,无从下手,这时假如心浮气躁则会更加的觉得困难重重。但当我摆正心态,静小心来慢慢思考的时候,一个个的思绪不断的的冒出,头脑中的想法远比实践过的多。此时,困难已不是从何下手,而是如何下手会是程序更趋完美。(2)一鼓作气,个个击破一旦开始了编程后,就要一鼓作气的继续下去。选择个个击破,然后将所有的程序在组合起来,不久主程序的雏形就能展现出来,接下来的就只是一点点的修改关联是的小错误了。用不了多久任务即可完毕,特有成就感。但是假如断断续续的则会在每次编的时候被冗杂而繁多的定义弄糊涂,从而没有心情继续下去。(3)有目的地修改、完善运营时会出现一些错

10、误,但我发现其实里面的参数并不复杂,只要跟着那个error的提醒,一个一个的改下去,其实很简朴的。结果事实也是如此,看完书后,只用了一个小时多一点,102个错误所有搞定了。错误几乎为以下三类:1. 冒号,分号等符号打错了;2. 大小写等导致的相应问题;3. 变量的不完全修改。改完以后,在执行时我发现界面不好看,于是我又将主界面略加修改了些。看上去美观了不少。再运营功能,前四个都能顺利运营,但对比例饼状图我傻眼了。不管我输入数据与否,输入了什么数据,结果都是同样的,相称离谱。我又糊涂了,搞不清是怎么回事。于是,又去问同学,在他们的帮助下,成功解决这个问题,在此真要好好谢谢他们!终于大功告成!欣慰

11、在这次实践中,我不仅填补了自己在C+课上所落下的内容,特别是指针那块部分,虽然现在概念搞的还不是很懂,但看见程序是可以理解的。这次C+实践是给我们这一学期来所学知识的一个总复习,总的实践。它让我们把所知道的知识点运用的更好,把不知道的知识点搞得明白了。实践出真知,通过这次实践,我也系统的把课本好好的回顾了下。猛然觉得,C+二级考试也有些把握了。五 参考文献谭浩强. C+程序设计. 清华大学出版社, 2023.5六 源程序main.cpp/* 课程设计题目:学生信息管理系统 班级:0901 学号: 姓名:谭鄱仑 */#includestudent.hint main() int i=0; cha

12、r ok; Studentifo stuifo; Studentifo *ifo=&stuifo; ShowMenu(); 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已安全退出.按任意键返回;Student.h#ifndef STUDENT_H_INCLUDED#define STUDE

13、NT_H_INCLUDED#include#include#include#include#include#includeusing namespace std;class Studentprivate: int id;/学号 string name;/姓名 double score3; int x;/指示是否存储了数据 double all;/总成绩 int rank;/名次 string dengji;/等级public: Student();/构造函数 void SetStudentID(int);/输入学生学号 int StudentID();/返回学生学号 void SetStude

14、ntName(string str);/输入学生姓名 string StudentName();/返回学生姓名 void SetStudentScore(double y,double s,double c);/输入学生成绩 double StudentYscore();/返回学生英语成绩 double StudentSscore();/返回学生数序成绩 double StudentCscore();/返回学生C+成绩 void SetStudentX(int n);/给鉴定学生数据存在与否的X赋值 void Getall();/计算学生总成绩 void SetRank();/给学生名次值加1

15、 int Rank();/返回学生名次值 int StudentX();/返回鉴定X的值,鉴定是否修改 void RankClear();/给学生的名次赋值为1 void Setdengji(string dengji);/输入等级 double All();/返回学生总成绩 string StudentDengji();/返回学生等级值;class Studentifoprivate: int num;/学生个数 Student *stu;/定义指向存储学生类的指针public: Studentifo(int n);/构造函数 void LoadID(int n);/输入学生学号 void

16、LoadName(int ,string name);/输入学生姓名 void LoadScore(int ,double,double,double);/输入学生各科成绩 void Setifo();/插入学生数据 void Putifo();/输出所有学生数据 void Clear();/清除所有学生数据 void PutID();/输出指定学生数据 void ClearID();/删除指定学生数据 void MakeRank();/给所有学生排名 void ReSetifo();/修改指定学生数据 void ClearRank();/给指定学生的名次值赋为1 void MakeAll()

17、;/计算各个学生的总成绩 void PutifoRank();/按名次输出所有学生数据 int ID(int n);/返回学生学号 double Yscore(int);/返回学生英语成绩 double Sscore(int);/返回学生数学成绩 double Cscore(int);/返回学生C+成绩 double StudentAll(int n);/返回学生总成绩 int StudentRank(int n);/返回学生名次 string Name(int);/返回学生名次 int X(int);/指定X值,拟定是否有存储数据 string Dengji(int n);/返回学生等级 v

18、oid Numadd();/num值加1 void Xfix(int);/将指定学生的X指示值赋为1 Studentifo();/析构函数释放new创建的空间;void DoMenu(int n,Studentifo*t);/将类里的各个函数组合起来实现各个功能,按指定数字执行void Load(Studentifo *S);/从文献中载入学生信息void Save(Studentifo *S);/将学生信息保存到文献void ShowTip(); /显示操作提醒void ShowMenu(); /显示菜单#includestudentifo.h#endif / STUDENT_H_INCLU

19、DEDStudentifo.h#ifndef STUDENTIFO_H_INCLUDED#define STUDENTIFO_H_INCLUDEDbool flag=false ;/数据是否修改过的标志Student:Student() id=0; name=; score0=0; score1=0; score2=0; x=2; all=0; rank=1; dengji=;void Student:SetStudentID(int n) id=n;void Student:SetStudentName(string str) if(str=0) string str1; coutstr1;

20、 this-name=str1; else this-name=str;void Student:SetStudentScore(double y,double s,double c) if(y!=0|s!=0|c!=0) score0=y; score1=s; score2=c; else double a,b,c; couta; coutb; coutc; score0=a; score1=b; score2=c; int Student:StudentID() return id;string Student:StudentName() return name;double Studen

21、t:StudentYscore() return score0;double Student:StudentSscore() return score1;double Student:StudentCscore() return score2;void Student:SetStudentX(int n) x=n;int Student:StudentX() return x;void Student:Getall() this-all=0; this-all=score0+score1+score2; double n; n=all/3; if(0=n&ndengji=不及格; else i

22、f(60=n&ndengji=及格; else if(70=n&ndengji=中档; else if(80=n&ndengji=良好; else this-dengji=优秀;double Student:All() return all;void Student:SetRank() rank+=1;int Student:Rank() return rank;void Student:RankClear() rank=1;void Student:Setdengji(string dengji) this-dengji=dengji;string Student:StudentDengji

23、() return dengji;Studentifo:Studentifo(int n=100) num=0; stu=new Studentn;Studentifo:Studentifo() delete stu;void Studentifo:Numadd() num+=1;void Studentifo:LoadID(int n) stun.SetStudentID(n);void Studentifo:LoadName(int n,string name) stun.SetStudentName(name);void Studentifo:LoadScore(int n,double

24、 y,double s,double c) stun.SetStudentScore(y,s,c);void Studentifo:Setifo() int n; coutn; if(stun.StudentX()=1|n=0) cout该学号已有或者学号信息错误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

25、,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 |*学生综合信息*|endl; 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

26、(); cout | stui.StudentID()t; coutstui.StudentName()t; coutstui.StudentYscore()t; coutstui.StudentSscore()t; coutstui.StudentCscore()t; stui.Getall(); coutstui.All()t; coutstui.Rank()t; coutstui.StudentDengji(); coutt|endl; cout |*|=0&stui.StudentYscore()=60&stui.StudentYscore()=70&stui.StudentYscor

27、e()=80&stui.StudentYscore()=0&stui.StudentSscore()=60&stui.StudentSscore()=70&stui.StudentSscore()=80&stui.StudentSscore()=0&stui.StudentCscore()=60&stui.StudentCscore()=70&stui.StudentCscore()=80&stui.StudentCscore()90) c4+; else c5+; cout _endl; cout |*各科成绩信息*|endl; coutt |tt英语tt数学ttC+t |endl; cou

28、tt |平均成绩tY/numttS/numttC/numt |endl; coutt |不及格t100*double(y1)/num%tt100*double(s1)/num%tt100*double(c1)/num%t |endl; coutt |及格tsetprecision(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%ttsetprecisio

29、n(4)100*double(s3)/num%ttsetprecision(4)100*double(c3)/num%t |endl; coutt |良好tsetprecision(4)100*double(y4)/num%ttsetprecision(4)100*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

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服