学生作业完成情况管理程序.doc

上传人:b****2 文档编号:1261399 上传时间:2022-10-19 格式:DOC 页数:13 大小:125KB
下载 相关 举报
学生作业完成情况管理程序.doc_第1页
第1页 / 共13页
学生作业完成情况管理程序.doc_第2页
第2页 / 共13页
学生作业完成情况管理程序.doc_第3页
第3页 / 共13页
学生作业完成情况管理程序.doc_第4页
第4页 / 共13页
学生作业完成情况管理程序.doc_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

学生作业完成情况管理程序.doc

《学生作业完成情况管理程序.doc》由会员分享,可在线阅读,更多相关《学生作业完成情况管理程序.doc(13页珍藏版)》请在冰豆网上搜索。

学生作业完成情况管理程序.doc

天津城市建设学院

课程设计任务书

2011—2012学年第1学期

电子与信息工程系专业班级

课程设计名称:

数据结构课程设计

设计题目:

学生作业完成情况管理程序

完成期限:

自2012年1月2日至2012年1月6日共1周

设计依据、要求及主要内容(可另加附页):

一、设计目的

熟悉各种数据结构和运算,会使用数据结构的基本操作解决一些实际问题。

二、设计要求

(1)重视课程设计环节,用严谨、科学和踏实的工作态度对待课程设计的每一项任务;

(2)按照课程设计的题目要求,独立地完成各项任务,严禁抄袭;凡发现抄袭,抄袭者与被抄袭者皆以零分计入本课程设计成绩。

凡发现实验报告或源程序雷同,涉及的全部人员皆以零分计入本课程设计成绩;

(3)学生在接受设计任务后,首先要按设计任务书的要求编写设计进程表;

(4)认真编写课程设计报告。

三、设计内容

1)请设计一个学生作业完成情况管理程序。

假设某门课程一学期要留10次作业,每次老师要进行批改,给出分数后还要进行登记。

学期期末要根据每次作业的成绩计算出最终的平时成绩(满分100)。

作业登记信息应该包含:

学号、姓名、10次作业的完成情况。

2)基本要求

该程序应该具有下列功能:

(1)通过键盘输入某位学生某次作业的分数;

(2)给定学号,显示某位学生作业完成情况;

(3)给定某个班级的班号,显示该班所有学生的作业完成情况;

(4)给定某位学生的学号,修改该学生的作业完成信息;

(5)给定某位学生的学号,删除该学生的信息;

(6)按学生的最终平时成绩进行排序;

(7)输平均分数

目录

一、需求分析 6

1、1.程序的功能 6

2、2.输入输出的要求 6

3、3.测试数据 6

二、概要设计 7

4、1.程序设计组成框图 7

5、2.程序流程图 8

8

三、详细设计 8

6、1.函数的入口和出口 8

7、2.主函数 8

8、3.成员函数 9

四、调试分析 9

五、核心源程序清单和执行结果 10

9、1.程序清单 10

10、2.执行结果 14

六、参考文献 16

一、需求分析

1.程序的功能

设计一个学生作业完成情况程序,实现对学生作业完成情况的修改,对学生信息的删除,对总成绩的排序,输出平均分数。

2.输入输出的要求

必须符合输入输出函数的定义。

3.测试数据

系统保存的学生信息:

stu1("1","David",1);

stu2("2","Mike",1);

stu3("3","Tom",2);

学号第几次作业成绩

1122

1233

1344

2155

2266

2377

3188

3299

33100

二、概要设计

1.程序设计组成框图

在主函数main()中调用各函数

定义学生作业情况的一维数组

以菜单形式提示输入

用switch语句对输入作出反应实现输出

声明student类

各学生学号

学生班级

各学生姓名

在类中调用setPoint

等函数

学号、姓名、10次作业的完成情况

2.程序流程图

三、详细设计

1.函数的入口和出口

cout<<"-------------------输入操作1-78退出-------------------\n\n";

cout<<"

(1)通过键盘输入某位学生某次作业的分数,请按1\n";

cout<<"

(2)给定学号,显示某位学生作业完成情况,请按2\n";

cout<<"(3)给定某个班级的班号,显示该班所有学生的作业完成情况,请按3\n";

cout<<"(4)给定某位学生的学号,修改该学生的作业完成信息,请按4\n";

cout<<"(5)给定某位学生的学号,删除该学生的信息,请按5\n";

cout<<"(6)按学生的最终平时成绩进行排序,请按6\n";

cout<<"(7)输出平均分数,请按7\n";

cout<<"(8)退出,请按8\n\n";

2.主函数

voidmain(){

stringname,id;

doublepoint;

intindex,i,cls;

intselect;

vectorstudents;

Studentstu1("0001","Clark",1);

Studentstu2("0002","Mac",1);

Studentstu3("0003","Tim",2);

students.push_back(stu1);

students.push_back(stu2);

students.push_back(stu3);

3.成员函数

getTotal():

用来实现十次作业的情况输入和。

showHomework():

用来实现某个学生十次完成作业的情况。

getName():

让后面的类调用此函数,名字函数。

getId():

让后面的类调用此函数,学号函数,实现根据学号显示此学生的作业完成情况。

getSClass():

让后面的类调用此函数,班级函数,实现根据班级显示学生作业完成情况的功能。

SetPoint():

记录成绩函数,使后面的类调用此函数用来显示修改后的成绩。

getHomework():

获得作业完成情况函数,使后面的类调用此函数实现修改后的学生作业完成情况。

voidSort():

排序函数,使用快速排序实现对学生总成绩的排序。

四、调试分析

(1)在类中调用函数时,出现了一些错误,问题出现在调用时的函数变量和初始化函数时的变量不一致,然后又检查程序,将变量匹配。

(2)运用了快速排序的方法,到调用排序函数时出现变量不匹配,检查程序,并修改。

(3)在输出平均成绩的时候,循环出现错误,没有语法错误,但是输出结果与正确结果不一致,后来发现是最后输出在循环内,所以又进行了修改。

(4)运用了容器vector,在用之前并不熟悉这个功能,也出现了不少错误,比如它的定义,装载,输出,最后通过上网了解了容器的功能对程序加以修改直至没有错误。

(5)运用了map功能,这个功能适用于对这次设计的查询并修改的程序,使程序更优化。

(6)对数据结构有了进一步的理解,使用算法后可以使设计思路更加清晰,对所学过东西的结合,也学了新的东西vector,map。

五、核心源程序清单和执行结果

1.程序清单

#include

#include

#include//属于STL库,为了把c和c++分开

#include//map是一种关联容器,它定义了一种数据结构,类似查表功能,每一个数据都有自己的键值,通过键值可以查找和排序相应的数据

usingnamespacestd;

classStudent{

stringid;//学生学号

stringname;//学生姓名

intsClass;//学生所正在班级

doublesum;//所有作业成绩之和

doublehomework[10];//十次作业完成情况及成绩

enum{unfinished=-1};//枚举类型,枚举初始化,将学生完成情况一一枚举出来,等待成绩赋值

public:

Student(stringid,stringna,intcls):

name(na),id(id),sClass(cls){//构造函数赋值

for(inti=0;i<10;i++)

homework[i]=unfinished;//初始化学生的10次作业都是未完成的

}

voidsetPoint(intindex,doublepoint){//录入成绩函数,index是每次作业计数,point是作业分数

homework[index-1]=point;//把每次作业成绩赋给作业完成情况

}

doublegetHomework(intindex){//得到作业完成情况函数

return homework[index-1];

}

doublegetTotal(){//作业总成绩函数

sum=0;

for(inti=0;i<10;i++)

if(homework[i]!

=unfinished)

sum+=homework[i];

returnsum;

}

voidshowHomework(){//显示最后学生作业完成情况函数

for(inti=0;i<10;i++)

if(homework[i]==unfinished)

cout<<"unfinished\t";

else

cout<

cout<<"\n";

}

stringgetName(){//初始化学生姓名函数

returnname;

}

stringgetId(){//初始化学生学号函数

returnid;

}

intgetSClass(){//初始化学生所在班级函数

returnsClass;

}

};

voidsort(ints,intt,doublea[],stringb[]){//快速排序,排序平均成绩

inti,j;

doublex;

stringy;

i=s;

j=t;

x=a[i];

y=b[i];

while(i!

=j)

{ while((j>i)&&(a[j]>=x))j--;

if(j>i)

{a[i]=a[j];b[i]=b[j];i++;}

while((j>i)&&(a[i]<=x))i++;

if(j>i)

{a[j]=a[i];b[j]=b[i];j--;}

}

a[i]=x;

b[i]=y;

i++;j--;

if(j>s)sort(s,j,a,b);

if(i

}

voidmain(){

stringname,id;

doublepoint;

intindex,i,cls;

intselect;

vectorstudents;//定义容器students

Studentstu1("

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

当前位置:首页 > 考试认证 > IT认证

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

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