成绩管理新4.docx

上传人:b****4 文档编号:11535831 上传时间:2023-03-19 格式:DOCX 页数:16 大小:174.57KB
下载 相关 举报
成绩管理新4.docx_第1页
第1页 / 共16页
成绩管理新4.docx_第2页
第2页 / 共16页
成绩管理新4.docx_第3页
第3页 / 共16页
成绩管理新4.docx_第4页
第4页 / 共16页
成绩管理新4.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

成绩管理新4.docx

《成绩管理新4.docx》由会员分享,可在线阅读,更多相关《成绩管理新4.docx(16页珍藏版)》请在冰豆网上搜索。

成绩管理新4.docx

成绩管理新4

目录

1前言1

2需求分析1

2.1要求1

2.2任务1

2.3运行环境1

2.4开发工具1

3分析和设计1

3.1系统分析及设计思路1

3.2主要类图4

3.3函数流程图5

4具体代码实现6

5课程设计总结13

5.1程序运行结果或预期运行结果13

5.3设计结论16

参考文献17

致谢17

1前言

《C++语言程序设计》是通过面向对象程序设计的设计,他能使我们理解面向对象的程序设计思想用到具体的工作和学习中。

这次设计中我们遇到很多困难,我们小组分工合作也完成了这次设计。

设计让我们充分认识到c++的好处。

他能插入让我们分工更准确精细。

此此设计加深了对类与对象的理解,提高分析问题、解决问题的能力。

2需求分析

2.1要求

具体要求:

(1)可以进行学生成绩的输入和查询。

(2)可以通过学号查找某个同学的总成绩,学分,平均成绩。

(3)可以查询同学的达标情况和没有及格的科目。

2.2任务

某学校学生选择的课程包括选修课可必修课,每门课程有相应的学分,学生每学期可以选择若干门课程,设计学生成绩管理系统,计算学生某一学期的总成绩和平均成绩。

2.3运行环境

(1)WINDOWS2000/XP系统

(2)VisualC++6.0编译环境或DEVC++5.0编译环境

2.4开发工具

C++语言

 

3分析和设计

3.1系统分析及设计思路

使用类来设计一个学生成绩管理系统。

首先定义一个父类stu用来存放学生的基本信息(学号,姓名)。

再定义一个子类stu1用了存放课程信息(课程号,课程名,平时成绩,实验成绩,卷面成绩,总成绩,学分)。

其中总成绩=∑(学分×成绩);平均成绩=总成绩/∑学分;学分=平时成绩×0.3+卷面成绩×0.7或学分=平时成绩×0.15+实验成绩×0.15+卷面成绩×0.7。

main函数用来实现操作,我们这个程序提供了三个选项1输入学生成绩;2学生成绩查询;3达标查询。

main函数主要用了if语句,cin,cout语句,for语句。

通过文件来存储信息。

父类stu类的设计:

classstu/*定义一个父类,用来存放学生基本信息*/

{

charnumber[20];

charname[20];

public:

stu(chara[20],charb[20])

{

strcpy(number,a);

strcpy(name,b);

}

char*getnumber()

{

returnnumber;

}

char*getname()

{

returnname;

};

子类stu1的设计:

classstu1:

publicstu/*定义子类存放课程信息*/

{

charclassnumber[10];

charclassname[10];

doublescore,pingshifen,shiyanfen,juanmianfen,zongfen,lastscore;

public:

stu1(chara[20],charb[20],charf[10],charg[10],doubleaa,doublebb,doublecc,doubledd,doubleee,doubleff):

stu(a,b)

{

strcpy(classnumber,f);

strcpy(classname,g);

score=aa;

pingshifen=bb;

shiyanfen=cc;

juanmianfen=dd;

zongfen=ee;

lastscore=ff;

}

friendvoidmain();

};

3.2主要类图

Stu

public:

stu(chara[20],charb[20])

{strcpy(number,a);strcpy(name,b);}

char*getnumber()

{returnnumber;}

char*getname()

{returnname;};

图3.1父类stu类图

Stu1

public:

stu1(chara[20],charb[20],charf[10],charg[10],doubleaa,doublebb,doublecc,doubledd,doubleee,doubleff):

stu(a,b)

{strcpy(classnumber,f);strcpy(classname,g);score=aa;pingshifen=bb;shiyanfen=cc;juanmianfen=dd;zongfen=ee;lastscore=ff;

}

图3.2子类stu1类图

3.3函数流程图

4具体代码实现

#include

#include

#include

#include

usingnamespacestd;

classstu/*定义一个父类,存放姓名和学号信息*/

{

charnumber[20];

charname[20];

public:

stu(chara[20],charb[20])

{

strcpy(number,a);

strcpy(name,b);

}

char*getnumber()

{

returnnumber;

}

char*getname()

{

returnname;

}

 

};

classstu1:

publicstu/*定义另一个子类,存放课程信息和成绩*/

{

charclassnumber[10];

charclassname[10];

doublescore,pingshifen,shiyanfen,juanmianfen,zongfen,lastscore;

public:

stu1(chara[20],charb[20],charf[10],charg[10],doubleaa,doublebb,doublecc,doubledd,doubleee,doubleff):

stu(a,b)

{

strcpy(classnumber,f);

strcpy(classname,g);

score=aa;

pingshifen=bb;

shiyanfen=cc;

juanmianfen=dd;

zongfen=ee;

lastscore=ff;

}

friendvoidmain();

};

voidmain()/*主函数*/

{

charc;intflag5=0;ints=0;

cout<<"欢迎进入学生管理系统"<

cout<<"进入(y/n)"<

cin>>c;

do

{/*判断是否进入系统*/

if(c=='n')

break;

else

{

flag5=1;

charnumber[10];

charname[20];

inti=0,I=0,j=0;intja;ja=0;

ofstream*file[50];

stu1*s1[50];/*定义指针存放课程信息*/

charclassnumber[8];

charclassname[10];

doublescore,pingshifen,shiyanfen,juanmianfen,zongfen,lastscore;

boolflag=0;

intp;

charc4;

do

{/*选择菜单*/

cout<<"请选择操作"<

cout<<"1输入学生成绩信息"<

cout<<"2成绩查询"<

cout<<"3达标查询"<

do

{/*判断输入字符*/

cin>>p;

if(1<=p&&p<=3)

flag=1;

else

cout<<"指令错误,请重新输入!

"<

}while(flag==0);

if(p==1)/*进入信息输入系统*/

{

cout<<"进入信息添加"<

charc1,c2;

do{/*信息的输入*/

cout<<"请输入课程编号"<

cin>>classnumber;

cout<<"请输入课程名"<

cin>>classname;

do{

cout<<"请输入学生学号"<

cin>>number;

cout<<"请输入学生姓名"<

cin>>name;

cout<<"课程总学分"<

cin>>score;

cout<<"学生的平时成绩"<

cin>>pingshifen;

cout<<"学生的实验成绩"<

cin>>shiyanfen;

cout<<"学生卷面成绩"<

cin>>juanmianfen;

if(shiyanfen==0)/*总分的算法判断*/

zongfen=pingshifen*0.3+juanmianfen*0.7;

else

zongfen=pingshifen*0.15+shiyanfen*0.15+juanmianfen*0.7;

if(90<=zongfen&&zongfen<=100)/*学分的计算*/

lastscore=score;

elseif(80<=zongfen)

lastscore=score*0.8;

elseif(70<=zongfen)

lastscore=score*0.7;

elseif(60<=zongfen)

lastscore=score*0.6;

else

lastscore=0;

file[j]=newofstream("e:

\\eeee.txt",ios:

:

app);/*信息存储文件的建立*/

*file[j]<<"学号"<

j++;

s1[I]=newstu1(number,name,classnumber,classname,score,pingshifen,shiyanfen,juanmianfen,zongfen,lastscore);

I++;

cout<<"数据输入成功,继续输入其他学生成绩?

(y/n)";

cin>>c1;

intflag1=0;

do

{

if(c1!

='y'&&c1!

='n')

{

cout<<"错误指令"<

cin>>c1;

}

else

flag1=1;

}

while(flag1==0);

}

while(c1=='y');

cout<<"输入其他课程成绩?

(y/n)";/*转入其他成绩输入判断*/

cin>>c2;

intflag2=0;

do{

if(c2!

='y'&&c2!

='n')

{

cout<<"错误指令"<

cin>>c2;

}

else

flag2=1;

}

while(flag2==0);

}

while(c2=='y');

}

if(p==2)/*成绩查询系统*/

{

cout<<"进入成绩查询"<

charnum[10];

cout<<"请输入学号"<

cin>>num;

intii=0;doublesum=0;doublefen=0;doublepingjunfen;

for(intj=0;j

{

if(strcmp((*s1[j]).getnumber(),num)==0)/*判断学号是否存在*/

{

cout<<"课程编号"<<(*s1[j]).classnumber<<"课程名称"<<(*s1[j]).classname<<"学分"<<(*s1[j]).score<<"平时成绩"<<(*s1[j]).pingshifen<<"实验成绩"<<(*s1[j]).shiyanfen<<"卷面成绩"<<(*s1[j]).juanmianfen<<"综合成绩"<<(*s1[j]).zongfen<<"实得学分"<<(*s1[j]).lastscore<

ii++;

sum+=(*s1[j]).lastscore;/*总学分计算*/

if((*s1[j]).score!

=0)

{/*平均分的计算*/

fen+=(*s1[j]).zongfen;

pingjunfen=fen/sum;

}

}

}

cout<<"共修"<

}

if(p==3)/*达标查询系统*/

{

cout<<"进入达标查询"<

charnum[10];doublesum;

cout<<"请输入学号"<

cin>>num;

for(intj=0;j

{

if(strcmp((*s1[j]).getnumber(),num)==0)

{

sum+=(*s1[j]).lastscore;

if((*s1[j]).zongfen<60)/*未及格学科的*/

{

cout<<(*s1[j]).classname<<"未及格"<

}

}

}

if(sum<10)/*留级判断*/

{

cout<<"不好意思同学你未通过,需留级!

"<

}

}

 

cout<<"进行其他操作(y/n)"<

cin>>c4;

}

while(c4=='y');

}

}

while(flag5==0);

}

5课程设计总结

5.1程序运行结果或预期运行结果

图5.1菜单栏

图5.2成绩的输入

图5.3成绩的输入

5.4成绩的查询

图5.5达标查询

5.3设计结论

通过这次课程设计我学到了很多,也认识到自己很多的不足之处。

通过这次课程设计,我充分理解了学生成绩管理的设计,并对期设计过程有了进一步了解,特别是加深了对c++的理解与运用,也巩固了c语言的运用,对此有了进一步认识。

在编写程序与程序运行过程中也遇到了不少的困难,经过反反复复的调试与运行才得到正确的结果,在此过程中自己的缺点就凹显出来,归根结底还是对这门课程的熟悉程度不够,c++这门课程要求很高,不仅要有强硬的理论知识,还有一定的实际操作能力,这也是学每们课程所要必须的,c++就更不用说了,c++还需要严谨的态度与不断地练习。

参考文献

[1]张福祥.C语言程序设计[M].辽宁大学出版社,2008.1

[2]黄同成,黄俊民,董建寅数据机构2008.2.

[3]马石安,魏文平,面向对象程序设计教程(C++语言描述),清华大学出版社,2010.

致谢

这次课程设计使我对C++有了更进一步的认识,也使我了解了团队合作的重要性,我要感谢和我一起的组员和为我解难的朋友。

对于指导老师陈智老师,表示衷心的感谢!

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 可爱清新

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1