《计算机程序设计VC++课程设计》报告.docx

上传人:b****3 文档编号:4142569 上传时间:2022-11-28 格式:DOCX 页数:22 大小:362.28KB
下载 相关 举报
《计算机程序设计VC++课程设计》报告.docx_第1页
第1页 / 共22页
《计算机程序设计VC++课程设计》报告.docx_第2页
第2页 / 共22页
《计算机程序设计VC++课程设计》报告.docx_第3页
第3页 / 共22页
《计算机程序设计VC++课程设计》报告.docx_第4页
第4页 / 共22页
《计算机程序设计VC++课程设计》报告.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

《计算机程序设计VC++课程设计》报告.docx

《《计算机程序设计VC++课程设计》报告.docx》由会员分享,可在线阅读,更多相关《《计算机程序设计VC++课程设计》报告.docx(22页珍藏版)》请在冰豆网上搜索。

《计算机程序设计VC++课程设计》报告.docx

《计算机程序设计VC++课程设计》报告

计算机程序设计语言(VC++)课程设计报告

一、目的

通过一个学生成绩管理系统的实际开发,提高应用所学知识分析问题,解决问题和实际动手的能力,更加熟练地掌握C++程序开发的基本方法和工作步骤,对系统开发实践有进一步体会。

从而综合复习课程中的所有理论知识点,进一步熟练面向对象程序的开发方法和流程,提高独立分析问题和解决问题的能力。

真正理解书本知识,牢固掌握课堂教学内容。

二、设计任务

设计一程序,实现对某班级学生成绩的管理及奖学金、三好生的评定工作。

要求具备查询和检索等功能,并且能够对指定文件进行操作,也可以将多个文件组成一个文件。

三、设计要求

⒈应严格按照开发小型项目的基本流程进行设计。

⒉成绩管理程序至少应具有以下功能:

⑴输入:

学生的基本信息,包括学号、姓名、性别、籍贯、VC++成绩、英语成绩、高数成绩等;

⑵计算:

每个学生的总成绩、平均成绩,所有学生单科的平均成绩,找出总成绩和单科成绩最高的学生并输出;

⑶查询:

可以按学号、姓名等进行成绩查询;

⑷排序:

可以按学号、姓名、VC++成绩、英语成绩、高数成绩、总成绩、平均成绩等进行排序并输出;

⑸删除:

删除某条记录;

⑹按学分绩点计算办法计算出每个学生的学分绩点,并按从高到低的顺序排列输出。

⑺按奖学金评定办法,从特等奖开始,输出获得奖学金的学生名单及该生的学习成绩与学分绩点。

⑻按三好生评定办法,输出获得三好生的学生名单。

⑼定义类,用类和对象的知识进行系统设计和实现。

本课程设计由单人一组独立完成,根据课程设计任务和设计要求,在教师的指导下,进行资料的查阅,规范地进行系统分析与系统设计工作。

本课程设计是以学生自主设计为主的开放模式组织教学。

设计完成后要求提交设计电子文档的设计报告,并以“学号姓名.doc”文件命名,刻录在同一张光盘上。

四、设计思路

1.定义一个student类,包含学生的基本信息:

姓名,学号,各科成绩等。

2.在类外构造函数,print函数输出学生信息。

3.count函数计算各学生的总成绩以及平均成绩,并输出各科成绩最高的学生。

4.Search函数用来查询学生的基本信息,可用学号或姓名进行查询。

5.Low函数按学生的成绩进行从高到低排序。

6.Score函数计算学生的学生绩点,判断出各等奖学金名额并输出。

7.Goodstudent函数是根据学分绩点选出三好学生的名额。

8.Deletenode函数根据学号或姓名删除学生的信息。

9.定义主函数进行测试。

五、主要算法设计过程描述

1.其中的排序以及奖学金的评定主要用了冒泡排序。

2.用了switch()选择语句,来解决输入数字到达对应功能。

3.最高的成绩主要用了max()的内置函数。

4.查询主要用了指针所指的内容与输入的内容进行比对

5.主函数即为主界面,用了do-while进行循环

六、程序代码

#include

#include

#include

#defineNULL0

classstudent

{public:

longintnum;//学号.

charname[20];//姓名.

charsex[20];//性别.

charplace[20];//籍贯.

floatc;//VC++成绩.

floaten;//英语成绩.

floatma;//高数成绩.

floatPE;//体育成绩.

student*next;//指向下一个结点的指针.

};

student*create(intn)//输入函数.

{

student*p,*pend,*h=NULL;

inti=0;

if(n<1)returnNULL;

cout<<"学号姓名性别籍贯VC++成绩英语成绩高数成绩体育成绩"<

while(i

{

p=newstudent;

cin>>p->num>>p->name>>p->sex>>p->place>>p->c>>p->en>>p->ma>>p->PE;

p->next=NULL;

if(h==NULL){h=p;pend=p;}

else{pend->next=p;pend=p;}

i++;

}

returnh;

}

voidprint(student*h)

{

student*p;

p=h;

cout<<"学号姓名性别籍贯vc++成绩英语成绩高数成绩体育成绩"<

while(p!

=0)

{

cout<num<<'\t'<name<<'\t'<sex<<'\t'<place<<'\t'<c<<'\t'<en<<'\t'<ma<<'\t'<PE<

p=p->next;

}

}

voidcount(student*h,intn)//计算成绩函数.

{

floatS[20],aver[20],aver1=0,aver2=0,aver3=0,MAX,max1,max2,max3;

floats1[20],s2[20],s3[20];

student*p;

p=h;

for(inti=0;i

{

S[i]=p->c+p->en+p->ma;

aver[i]=S[i]/3;

p=p->next;}

for(p=h,i=0;i

{

aver1+=p->c;aver2+=p->en;aver3+=p->ma;p=p->next;

}

aver1=aver1/n;

aver2=aver2/n;

aver3=aver3/n;

for(p=h,i=0;ic;s2[i]=p->c;s3[i]=p->ma;p=p->next;}

MAX=0;max1=0;max2=0;max3=0;

for(i=0;i

{

if(MAX

if(max1

if(max2

if(max3

}

cout<<"总成绩最高的学生:

"<<'\n';

for(p=h,i=0;i

{

if(MAX==S[i])cout<num<<'\t'<name<<'\t'<next;

}

cout<<"VC++成绩最高的学生:

"<<'\n';

for(p=h,i=0;inum<<'\t'<name<<'\t'<next;}

cout<<"英语成绩最高的学生:

"<<'\n';

for(p=h,i=0;inum<<'\t'<name<<'\t'<next;}

cout<<"高数成绩最高的学生:

"<<'\n';

for(p=h,i=0;inum<<'\t'<name<<'\t'<next;}

}

voidsearch(student*h)//搜索函数

{

student*p;

p=h;

intr,t;

charname[10];

cout<<"按学号查询请输入1,按姓名查询请输入2!

"<

cin>>r;

switch(r)

{

case1:

{

cout<<"请输入要查询的学号:

"<

cin>>t;

while(p!

=0)

{

if(p->num==t)

{

cout<<"学号姓名性别籍贯vc++成绩英语成绩高数成绩体育成绩"<

cout<num<<'\t'<name<<'\t'<sex<<'\t'<place<<'\t'<c<<'\t'<en<<'\t'<ma<<'\t'<PE<

break;

}

elsep=p->next;

}

}break;

case2:

{

cout<<"请输入要查询的姓名:

"<

cin>>name;

while(p!

=0)

{

if(strcmp(name,p->name)==0)

{

cout<<"学号姓名性别籍贯vc++成绩英语成绩高数成绩体育成绩"<

cout<num<<'\t'<name<<'\t'<sex<<'\t'<place<<'\t'<c<<'\t'<en<<'\t'<ma<<'\t'<PE<

break;

}

elsep=p->next;

}

}

}

}

voidLOW(student*h,inta,intn)//排序函数.

{

student*p,*p1,*p2;

longintNUM;

charNAME[20],SEX[20],PLACE[20];

floatS[20],aver[20],CSCORE,CENGLISH,CMATH;

p=h;

for(inti=0;i

{

S[i]=p->c+p->en+p->ma;

aver[i]=S[i]/3;

p=p->next;

}

cout<<"请选择排序方式!

"<

cout<<"按姓名排序请输入1"<

cout<<"按VC++成绩排序请输入2"<

cout<<"按英语成绩排序请输入3"<

cout<<"按高数成绩排序请输入4"<

cout<<"按总成绩排序请输入5"<

cout<<"按平均成绩排序请输入6"<

cin>>a;

switch(a)

{

case1:

if(h==0)cout<<"无结点"<<'\n';

else{

p1=h;

while(p1->next!

=0)

for(i=0;i

{

p2=p1->next;

{

for(intj=i+1;j

{

if(strcmp(p1->name,p2->name)==1)

{

NUM=p1->num;p1->num=p2->num;p2->num=NUM;strcpy(NAME,p1->name);strcpy(p1->name,p2->name);

strcpy(p2->name,NAME);

strcpy(SEX,p1->sex);strcpy(p1->sex,p2->sex);strcpy(p2->sex,SEX);

strcpy(PLACE,p1->place);strcpy(p1->place,p2->place);strcpy(p2->place,PLACE);

CSCORE=p1->c;p1->c=p2->c;p2->c=CSCORE;

CENGLISH=p1->en;p1->en=p2->en;p2->en=CENGLISH;

CMATH=p1->ma;p1->ma=p2->ma;p2->ma=CMATH;

}

p2=p2->next;

}

p1=p1->next;

}

}

}

p=h;

for(i=0;i

{

cout<num<<'\t'<name<<'\t'<sex<<'\t'<place<<'\t'<c<<'\t'<en<<'\t'<ma<<'\n';

p=p->next;

}

cout<

case2:

if(h==0)cout<<"无结点"<<'\n';

else

{

p1=h;

while(p1->next!

=0)

for(i=0;i

{

p2=p1->next;

for(intj=i+1;j

{

if(p1->c>=p2->c)

{

NUM=p1->num;p1->num=p2->num;p2->num=NUM;strcpy(NAME,p1->name);strcpy(p1->name,p2->name);

strcpy(p2->name,NAME);strcpy(SEX,p1->sex);strcpy(p1->sex,p2->sex);strcpy(p2->sex,SEX);

strcpy(PLACE,p1->place);strcpy(p1->place,p2->place);strcpy(p2->place,PLACE);

CSCORE=p1->c;p1->c=p2->c;p2->c=CSCORE;CENGLISH=p1->en;p1->en=p2->en;p2->en=CENGLISH;

CMATH=p1->ma;p1->ma=p2->ma;p2->ma=CMATH;

}

p2=p2->next;

}

p1=p1->next;

}

}

p=h;

for(i=0;i

{

cout<num<<'\t'<name<<'\t'<sex<<'\t'<place<<'\t'<c<<'\t'<en<<'\t'<ma<<'\n';

p=p->next;

}

cout<

case3:

if(h==0)cout<<"无结点"<<'\n';

else

{

p1=h;

while(p1->next!

=0)

for(i=0;i

{

p2=p1->next;

{

for(intj=i+1;j

{

if(p1->en>=p2->en)

{

NUM=p1->num;p1->num=p2->num;p2->num=NUM;

strcpy(NAME,p1->name);strcpy(p1->name,p2->name);strcpy(p2->name,NAME);

strcpy(SEX,p1->sex);strcpy(p1->sex,p2->sex);strcpy(p2->sex,SEX);

strcpy(PLACE,p1->place);strcpy(p1->place,p2->place);strcpy(p2->place,PLACE);

CSCORE=p1->c;p1->c=p2->c;p2->c=CSCORE;

CENGLISH=p1->en;p1->en=p2->en;p2->en=CENGLISH;

CMATH=p1->ma;p1->ma=p2->ma;p2->ma=CMATH;

}

p2=p2->next;

}

p1=p1->next;

}

}

}

p=h;

for(i=0;i

{

cout<num<<'\t'<name<<'\t'<sex<<'\t'<place<<'\t'<c<<'\t'<en<<'\t'<ma<<'\n';

p=p->next;

}

cout<

case4:

if(h==0)cout<<"无结点"<<'\n';

else

{

p1=h;

while(p1->next!

=0)

for(i=0;i

{

p2=p1->next;

{

for(intj=i+1;j

{

if(p1->c>=p2->c)

{

NUM=p1->num;p1->num=p2->num;p2->num=NUM;

strcpy(NAME,p1->name);strcpy(p1->name,p2->name);strcpy(p2->name,NAME);

strcpy(SEX,p1->sex);strcpy(p1->sex,p2->sex);strcpy(p2->sex,SEX);

strcpy(PLACE,p1->place);strcpy(p1->place,p2->place);strcpy(p2->place,PLACE);

CSCORE=p1->c;p1->c=p2->c;p2->c=CSCORE;CENGLISH=p1->en;p1->en=p2->en;p2->en=CENGLISH;

CMATH=p1->ma;p1->ma=p2->ma;p2->ma=CMATH;

}

p2=p2->next;

}

p1=p1->next;

}

}

}

p=h;

for(i=0;i

{

cout<num<<'\t'<name<<'\t'<sex<<'\t'<place<<'\t'<c<<'\t'<en<<'\t'<ma<<'\n';

p=p->next;

}

cout<

case5:

if(h==0)cout<<"无结点"<<'\n';

else

{

p1=h;

while(p1->next!

=0)

for(i=0;i

{

p2=p1->next;

{

for(intj=i+1;j

{

if(S[i]>=S[j])

{

NUM=p1->num;p1->num=p2->num;p2->num=NUM;

strcpy(NAME,p1->name);strcpy(p1->name,p2->name);strcpy(p2->name,NAME);

strcpy(SEX,p1->sex);strcpy(p1->sex,p2->sex);strcpy(p2->sex,SEX);

strcpy(PLACE,p1->place);strcpy(p1->place,p2->place);strcpy(p2->place,PLACE);

CSCORE=p1->c;p1->c=p2->c;p2->c=CSCORE;

CENGLISH=p1->en;p1->en=p2->en;p2->en=CENGLISH;

CMATH=p1->ma;p1->ma=p2->ma;p2->ma=CMATH;

}

p2=p2->next;

}

p1=p1->next;

}

}

}

p=h;

for(i=0;i

{

cout<num<<'\t'<name<<'\t'<sex<<'\t'<place<<'\t'<c<<'\t'<en<<'\t'<ma<<'\n';

p=p->next;

}

cout<

case6:

if(h==0)cout<<"无结点"<<'\n';

else

{

p1=h;

while(p1->next!

=0)

for(i=0;i

{

p2=p1->next;

{

for(intj=i+1;j

{

if(aver[i]>=aver[j])

{

NUM=p1->num;p1->num=p2->num;p2->num=NUM;

strcpy(NAME,p1->name);strcpy(p1->name,p2->name);strcpy(p2->name,NAME);

strcpy(SEX,p1->sex);strcpy(p1->sex,p2->sex);strcpy(p2->sex,SEX);

strcpy(PLACE,p1->place);strcpy(p1->place,p2->place);strcpy(p2->place,PLACE);

CSCORE=p1->c;p1->c=p2->c;p2->c=CSCORE;

CENGLISH=p1->en;p1->en=p2->en;p2->en=CENGLISH;

CMATH=p1->ma;p1->ma=p2->ma;p2->ma=CMATH;

}

p2=p2->next;

}

p1=p1->next;

}

}

}

p=h;

for(i=0;i

{

cout<num<<'\t'<name<<'\t'<sex<<'\t'<place<<'\t'<c<<'\t'<en<<'\t'<ma<<'\n';

p=p->next;

}

cout<

default:

cout<<"无可排序的依据!

"<

}

}

voiddeletenode(student*h,intdata)//删除学生信息函数.

{

student*p1,*p2;

intb;

cout<<"如果要删除学生的信息请输入1!

"<<'\n'<<"如果不需要删除学生的信息请输入2!

"<

cin>>b;

switch(b)

{

case1:

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

当前位置:首页 > 经管营销 > 生产经营管理

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

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