C++学生成绩管理系统课程设计分析报告Word格式文档下载.docx
- 文档编号:21331653
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:23
- 大小:95.07KB
C++学生成绩管理系统课程设计分析报告Word格式文档下载.docx
《C++学生成绩管理系统课程设计分析报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C++学生成绩管理系统课程设计分析报告Word格式文档下载.docx(23页珍藏版)》请在冰豆网上搜索。
charname[8];
floatcpp,math,eng,ave;
intorder;
Student*next;
Student(){}
Student(intc1,intn1,char*n,floate1,floatc2,floatm,floate2,floats,floatp,floata,
into,Student*next=NULL)
{
Class=c1;
num=n1;
strcpy(name,n);
cpp=c2;
math=m;
eng=e2;
ave=a;
order=o;
this->
next=next;
}
主要功能函数的设计:
1.创建学生数据,对学生的成绩的录入。
代码:
friendStudent*Create(Student*head,istream&
in)
{inty;
Student*p;
intClass,num;
charname[8];
floatcpp,math,eng;
if(&
in==&
cin)
//cout<
<
"
\n\n请输入学生数据(输入成绩非法,则结束),数据输入格式为:
\n"
//<
班级姓名学号C++数学英语\n"
;
//in>
>
Class>
name>
num>
cpp>
math>
eng;
//cout<
\n\n请输入学生数据:
cout<
班级:
endl;
in>
Class;
cout<
姓名:
in>
name;
学号:
num;
C++的成绩:
cpp;
数学的成绩:
math;
英语的成绩:
/*while(Valid(elec)&
&
Valid(cpp)&
Valid(math)&
Valid(eng)&
Valid(sport)&
Valid(polity))
{*/p=newStudent;
p->
Class=Class;
p->
num=num;
strcpy(p->
name,name);
p->
cpp=cpp;
math=math;
eng=eng;
ave=(cpp+math+eng)/6;
head=Insert(head,p);
elec>
eng>
polity>
sport;
cout<
\t\t*****继续添加请按1*******\n"
\t\t*****返回主菜单请按2*******\n"
y;
if(y==2)
{
ShowMenu();
}
else{head=Create(head,cin);
}
SetOrder(head);
//设置排名
returnhead;
2.此函数为查找函数的实现过程
主要代码:
friendconstStudent*Lookup(constStudent*head,intnum)//查找指定学号为num的结点
{
while(head&
head->
num!
=num)
head=head->
next;
friendvoidOutputOne(constStudent*head)//输出一个学生数据
head->
Class<
'
\t'
name<
num<
<
cpp<
math<
eng<
order<
3.此函数为删除函数的实现部分。
friendStudent*DeleteStudent(Student*head,intnum)
Student*p1=head,*p2=p1;
while(p2&
p2->
p1=p2,p2=p2->
if(p2)
if(p2==p1)
{
head=head->
deletep1;
}
else
p1->
next=p2->
deletep2;
cout<
已删除"
号学生数据\n"
SetOrder(head);
}elsecout<
没找到指定学生!
4.排序函数中平均分来排序,排序结果为降序操作。
friendvoidSetOrder(Student*head)
intorder=1;
while(head)
{head->
order=order++;
head=head->
5.修改学生的信息
friendStudent*Modify(Student*head,intnum)//修改学号为学生的数据
=num)//寻找待修改的结点
if(p2)//修改指定结点数据
/*cout<
\n\n请输入新数据,格式为:
<
cin>
math
>
*/
cin>
cin>
while(!
Valid(p2->
cpp)||!
math)||!
eng)
)
\n\n成绩数据非法!
请重新输入,格式为:
<
cin>
>
p2->
ave=(p2->
cpp+p2->
math+p2->
eng)/3;
//将修改的指定结点从原链表上修改下来,并重新降序插入原链表
head=Insert(p2->
next,p2);
else
head=Insert(head,p2);
elsecout<
6.显示数据:
friendvoidOutputAll(constStudent*head)//输出所有学生的数据
if(!
head){cout<
\n\n\t\t没有任何学生数据!
\n\n"
return;
\n\n\t\t学生成绩表\n\n"
班级\t姓名\t学号\tC++\t数学\t英语\t名次\n"
OutputOne(head);
7.平均数据函数
friendvoidStatistic(constStudent*head)
inti=0;
float
ave_cpp=0,
ave_math=0,
ave_eng=0;
ave_cpp+=head->
ave_math+=head->
ave_eng+=head->
i++;
i)
\n\n没有任何学生数据!
return;
\n\n\t\t各门课程平均成绩表\n\n"
tC++\t数学\t英语\n"
ave_cpp/i<
ave_math/i<
ave_eng/i<
程序测试结果:
1运行程序.会出现如下画面,按照提示进行选择.
2.首先选择1,然后按Enter键.按照提示对学生情况进行输入.如图:
3.按1键可以添加多个学生成绩的数据,按2返回主界面。
4.选择5,然后按Enter键,显示刚才输入的数据和排名的情况。
5在主界面选择2可以修改学生的数据。
6.在主界面选择3可以按学号查询学生成绩情况
7.在主界面选择7可以按学号删除学生的成绩信息
三、设计总结
这次课程设计基本上涵盖了学习到的C++语言知识点,课程设计题目要求不仅要求对课本虽然是网上搜来的代码,但这些代码没办法运行,我把这些代码改了和增加了自己写的代码,终于可以运行,而且到达自己想要的结果,这次课程设计不仅让我修补了以前学习的漏洞,也让我知道一个道理:
编程需要兴趣和实际动手。
C++语言程序设计课程设计,我从中受益匪浅,并且对C++语言程序设计这一门课程有了更深一步的认识。
附件
程序源代码清单:
#include<
fstream.h>
string.h>
friendintValid(floatscore)
return(score<
0||score>
100)?
0:
1;
friendStudent*Insert(Student*head,Student*p)//在head所指的链表中降序插入结点p
Student*p1,*p2;
if(head==0)
head=p;
next=0;
elseif(head->
ave<
=p->
ave)
p->
next=head;
head=p;
else
p2=p1=head;
while(p2->
next&
ave>
p1=p2;
p2=p2->
if(p2->
p2->
next=p;
else{
p->
next=p2;
p1->
friendStudent*Create(Student*head,istream&
friendconstStudent*Lookup(constStudent*head,intnum)//查找指定学号为num的结点
friendStudent*Modify(Student*head,intnum)//修改学号为学生的数据
friendStudent*DeleteStudent(Student*head,intnum)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 学生 成绩管理系统 课程设计 分析 报告