《面向对象程序设计》专周报告成绩管理系统.docx

上传人:b****8 文档编号:27926621 上传时间:2023-07-06 格式:DOCX 页数:32 大小:573.48KB
下载 相关 举报
《面向对象程序设计》专周报告成绩管理系统.docx_第1页
第1页 / 共32页
《面向对象程序设计》专周报告成绩管理系统.docx_第2页
第2页 / 共32页
《面向对象程序设计》专周报告成绩管理系统.docx_第3页
第3页 / 共32页
《面向对象程序设计》专周报告成绩管理系统.docx_第4页
第4页 / 共32页
《面向对象程序设计》专周报告成绩管理系统.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

《面向对象程序设计》专周报告成绩管理系统.docx

《《面向对象程序设计》专周报告成绩管理系统.docx》由会员分享,可在线阅读,更多相关《《面向对象程序设计》专周报告成绩管理系统.docx(32页珍藏版)》请在冰豆网上搜索。

《面向对象程序设计》专周报告成绩管理系统.docx

《面向对象程序设计》专周报告成绩管理系统

成都工业学院

专周报告

 

课程名称

《面向对象程序设计》

专周题目

学生成绩管理系统

姓名

junlong

班级

1405173

学号

38

指导教师

设计时间

2015-06-29至2015-07-03

 

成都工业学院计算机工程学院

目录

 

目录-2-

正文-3-

专周任务与要求-3-

一、任务-3-

二、设计要求-3-

设计说明书-4-

一、需求分析-4-

二、过程分析-4-

三、物理设计(流程图)-5-

四、程序代码-8-

专周体会-22-

参考文献-23-

专周评审意见-24-

 

Ø专周目的:

制作此学生成绩信息管理系统,更方便管理学生信息和他人查询,给大家带来方便。

Ø专周任务与要求

1、专周任务

用C++语言编写一系统,实现学生信息管理。

2、专周要求

(1)信息维护,要求:

学生信息数据要以文件的形式保存,能实现学生信息数据的维护。

此模块包括子模块有:

以文件形式读入和从键盘输入。

(2)信息查询,要求:

查询时可实现按姓名查询、按学号查询。

(3)成绩统计,要求:

输入任意的一个课程名编码(1、C语言成绩2、数学成绩3、英语成绩)和一个分数段(如60-70),统计出这科在此分数段的学生情况。

(4)排序:

按降序对平均成绩进行排位。

Ø

设计说明书

1、需求分析:

学生基本信息:

如班级、学号、姓名、性别、年龄、宿舍号码、电话号码等。

学生选修课程的基本信息:

课程编号、课程名称、考试成绩、平时成绩、综合成绩、学分、重修否等。

 

2、过程分析:

 

3、流程图

 

1.主页面

 

2.查询界面

3.文件导入查询界面

 

4.排序界面

 

5.统计选择界面

4、程序代码

#include//C++基本库

#include//string类型头文件

#include//对文件的操作#include和#include

#include//STL模板,容器,双向链表

#include//Sleep(),system("cls")

#include//固定长度输出setw(),排版

usingnamespacestd;

classStudent//定义学生类

{

private:

intnum;//学号

stringname;//姓名

stringsex;//性别

intage;//年龄

stringschool;//学校

floateng;//C语言成绩

floatmath;//数学成绩

floatpe;//体育成绩

floatday;//平时成绩

floattotal;//总成绩

public:

Student(){}//默认的构造函数

Student(intpnum,stringpname,stringpsex,intpage,stringpschool,floatpeng,floatppe,floatpday,floatpmath)//带参数的构造函数

{

num=pnum;

name=pname;

sex=psex;

age=page;

school=pschool;

eng=peng;

pe=ppe;

day=pday;

math=pmath;

}

voidsetNum(intpnum){num=pnum;};//以下8个成员函数都是为了得到学生类的private数据所写的

intgetNum(){returnnum;};

voidsetName(stringpname){name=pname;};

stringgetName(){returnname;};

voidsetSex(stringpsex){sex=psex;};

stringgetSex(){returnsex;};

voidsetAge(intpage){age=page;};

intgetAge(){returnage;};

voidsetSchool(stringpschool){school=pschool;};

stringgetSchool(){returnschool;};

voidsetMath(floatpmath){math=pmath;};

floatgetMath(){returnmath;};

voidsetEng(floatpeng){eng=peng;};

floatgetEng(){returneng;};

voidsetPe(floatppe){pe=ppe;};

floatgetPe(){returnpe;};

voidsetDay(floatpday){day=pday;};

floatgetDay(){returnday;};

voidsetTotal(floatptotal){total=ptotal;};

floatgetTotal()const{returnmath+eng+pe+day;};//原因在于带const修饰符的接口会把this指针转化为为constthis类型。

网上一种解决办法是,把需要调用的非const接口都改为const

};

classDstudent:

publicStudent//定义了一个大学生类

{

private:

stringschool;//学校

stringxibie;//系别

stringprofession;//专业

intteam;//班级

public:

Dstudent(){}

voidsetschool(intpage){xibie=page;};

stringgetAge(){returnxibie;};

voidsetprofession(intpage){profession=page;};

stringgetProfession(){returnprofession;};

voidsetSchool(stringpschool){school=pschool;};

stringgetSchool(){returnschool;};

voidsetMath(floatpmath){team=pmath;};

floatgetMath(){returnteam;};

};

classcourse:

publicStudent//定义了一个课程类

{

private:

intclassnum;//课程编号

stringclassname;//课程名称

stringclasstea;//课程教师

intclassscore;//课程学分

public:

course(){}

voidsetclassnum(intpage){classnum=page;};

intgetclassnum(){returnclassnum;};

voidsetclassname(intpage){classname=page;};

stringgetclassname(){returnclassname;};

voidsetclasstea(stringpschool){classtea=pschool;};

stringgetclasstea(){returnclasstea;};

voidsetclassscore(floatpmath){classscore=pmath;};

intgetclassscore(){returnclassscore;};

};

intTrue=0;//用于判断链表中是否有数据

typedeflistLinkList;//LinkLisell相当于listll;

//listsort()重载函数,自定义排序,bool类型的返回值,1.true2.false

booloperator>(Studentconst&student1,Studentconst&student2)

{

returnstudent1.getTotal()>student2.getTotal();

}

classStudentManager//定义了一个管理学生信息的类

{

private:

LinkListll;//listll;

public:

StudentManager(){}//默认构造函数

voidStudentAdd(Studentstudent)//添加学生信息

{

ll.push_back(student);

True=1;//用于判断链表中是否有数据

}

voidStudentPrint()//显示学生信息

{

system("cls");//清屏

intcount=0;

LinkList:

:

iteratori;//对链表进行遍历

cout<<"\n\n";

for(i=ll.begin();i!

=ll.end();i++)

{

cout<<"学号:

"<

(2)<getNum()<<""<<"姓名:

"<getName()<<"";

cout<<"性别:

"<

(2)<getSex()<<""<<"年龄:

"<

(2)<getAge()<<"";

cout<<"学校:

"<getSchool()<<""<<"C语言成绩:

"<getEng()<<"";

cout<<"数学成绩:

"<getMath()<<""<<"体育成绩:

"<getPe()<<"";

cout<<"平时成绩:

"<getDay()<<""<<"总成绩:

"<getTotal()<<""<

count++;

}

cout<<"\n学生总人数为:

"<

}

voidWriteFile()//保存到文件

{

LinkList:

:

iteratori;

ofstreamoutfile("student.txt",ios:

:

app);//新建一个“student.txt”文件

if(!

outfile)//默认的是打开成功返回1

{

cout<<"outfile打开失败01";

}

for(i=ll.begin();i!

=ll.end();i++)

{

outfile<getNum()<<""<getName()<<""<getSex()<<""<getAge()<<""

<getSchool()<<""<getEng()<<""<getMath()<<""

<getPe()<<""<getDay()<<""<getTotal()<<""<

}

outfile.close();//关闭文件

cout<<"保存成功!

"<

}

voidStudentDelete(intpnum)//删除学生信息

{

LinkList:

:

iteratori;

intyes_no=0;

for(i=ll.begin();i!

=ll.end();i++)

{

while(i->getNum()==pnum)

{

i=ll.erase(i);//删除该节点

yes_no=1;

}

}

if(yes_no)

cout<<"删除成功!

"<

else

cout<<"没有找到该学生信息!

"<

}

voidStudentSelectname(stringpname)//查找学生信息(按姓名)

{

intyes_no=0;//用于判断该学生是否存在

LinkList:

:

iteratori;

system("cls");

for(i=ll.begin();i!

=ll.end();i++)

{

while(i->getName()==pname)

{

cout<<"存在此学生!

"<

cout<<"此学生的信息为:

\n"<

cout<<"学号:

"<

(2)<getNum()<<""<<"姓名:

"<getName()<<"";

cout<<"性别:

"<

(2)<getSex()<<""<<"年龄:

"<

(2)<getAge()<<"";

cout<<"学校:

"<getSchool()<<""<<"C语言成绩:

"<getEng()<<"";

cout<<"数学成绩:

"<getMath()<<""<<"体育成绩:

"<getPe()<<"";

cout<<"平时成绩:

"<getDay()<<""<<"总成绩:

"<getTotal()<<""<

yes_no=1;

break;

}

}

if(!

yes_no)

cout<<"不存在此学生!

"<

}

voidStudentSelectnum(intpnum)//查找学生信息(按学号)

{

intyes_no=0;//用于判断该学生是否存在

LinkList:

:

iteratori;

system("cls");

for(i=ll.begin();i!

=ll.end();i++)

{

while(i->getNum()==pnum)

{

cout<<"存在此学生!

"<

cout<<"此学生的信息为:

\n"<

cout<<"学号:

"<

(2)<getNum()<<""<<"姓名:

"<getName()<<"";

cout<<"性别:

"<

(2)<getSex()<<""<<"年龄:

"<

(2)<getAge()<<"";

cout<<"学校:

"<getSchool()<<""<<"C语言成绩:

"<getEng()<<"";

cout<<"数学成绩:

"<getMath()<<""<<"体育成绩:

"<getPe()<<"";

cout<<"平时成绩:

"<getDay()<<""<<"总成绩:

"<getTotal()<<""<

yes_no=1;

break;

}

}

if(!

yes_no)

cout<<"不存在此学生!

"<

}

voidReadFile()//从文件读取学生信息

{

Studentstudent;

LinkList:

:

iteratori;

intnum;

stringname;

stringsex;

intage;

stringschool;

floateng;

floatmath;

floatpe;

floatday;

floattotal;

ifstreaminfile("student.txt",ios:

:

in);//输入文件数据

if(infile)//输入成功默认返回1

{

//将文件中的数据依次存入链表中

while(infile>>num>>name>>sex>>age>>school>>eng>>math>>pe>>day>>total)

{

student.setNum(num);//单个进行赋值

student.setName(name);

student.setSex(sex);

student.setAge(age);

student.setSchool(school);

student.setEng(eng);

student.setMath(math);

student.setPe(pe);

student.setDay(day);

student.setTotal(total);

ll.push_back(student);//将链表串起来

}

cout<<"导入文件成功!

"<

True=1;//用于判断链表中是否有数据

}

else

{

cout<<"导入文件失败!

"<

}

infile.close();//关闭文件

}

voidStudentCppeng()//统计学生成绩(C语言成绩)

{

floatmin,max;//分数段

intcount=0;//人数计数器

LinkList:

:

iteratori;

cout<<"请输入您要查询分段的最低分:

(C语言)"<

cin>>min;

cout<<"请输入您要查询分段的最高分:

(C语言)"<

cin>>max;

for(i=ll.begin();i!

=ll.end();++i)

{

while(i->getEng()<=max&&i->getEng()>=min)

{

count++;

break;

}

}

cout<<"在此分数段的学生有"<

}

voidStudentCppmath()//统计学生成绩(数学成绩)

{

floatmin,max;//注释和StudentCppeng类似

intcount=0;

LinkList:

:

iteratori;

cout<<"请输入您要查询分段的最低分:

(数学)"<

cin>>min;

cout<<"请输入您要查询分段的最高分:

(数学)"<

cin>>max;

for(i=ll.begin();i!

=ll.end();++i)

{

while(i->getMath()<=max&&i->getMath()>=min)

{

count++;

break;

}

}

cout<<"在此分数段的学生有"<

}

voidStudentCpptotal()//统计学生成绩(总成绩)

{

floatmin,max;//注释和StudentCppeng类似

intcount=0;

LinkList:

:

iteratori;

cout<<"请输入您要查询分段的最低分:

(总成绩)"<

cin>>min;

cout<<"请输入您要查询分段的最高分:

(总成绩)"<

cin>>max;

for(i=ll.begin();i!

=ll.end();++i)

{

while(i->getTotal()<=max&&i->getTotal()>=min)

{

count++;

break;

}

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

当前位置:首页 > PPT模板 > 其它模板

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

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