面向对象程序设计大作业参考题目和要求doc.docx

上传人:b****3 文档编号:5295206 上传时间:2022-12-15 格式:DOCX 页数:33 大小:61.83KB
下载 相关 举报
面向对象程序设计大作业参考题目和要求doc.docx_第1页
第1页 / 共33页
面向对象程序设计大作业参考题目和要求doc.docx_第2页
第2页 / 共33页
面向对象程序设计大作业参考题目和要求doc.docx_第3页
第3页 / 共33页
面向对象程序设计大作业参考题目和要求doc.docx_第4页
第4页 / 共33页
面向对象程序设计大作业参考题目和要求doc.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

面向对象程序设计大作业参考题目和要求doc.docx

《面向对象程序设计大作业参考题目和要求doc.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计大作业参考题目和要求doc.docx(33页珍藏版)》请在冰豆网上搜索。

面向对象程序设计大作业参考题目和要求doc.docx

面向对象程序设计大作业参考题目和要求doc

面向对象程序设计大作业

参考题目

1、学生信息管理

(1)问题描述

学生信息包括:

学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。

试设计一学生信息管理系统,使之能提供以下功能:

●系统以菜单方式工作

●学生信息录入功能(学生信息用文件保存)---输入

●学生信息浏览功能——输出

●查询、排序功能——算法

1、按学号查询

2、按姓名查询

●学生信息的删除与修改(可选项)

(2)功能要求

●界面简单明了;

●有一定的容错能力,比如输入的成绩不在0~100之间,就提示不合法,要求重新输入;

●最好用链表的方式实现。

(3)算法分析

首先,一个学生包括这么多的属性,应该考虑定义一个结构,其次,我们应该考虑数据的存储形式:

是定义一个数组来存储,还是定义一个链表呢?

在这里假如我们以数组的方式来存储,当然可以,但是我们知道,假如我们定义一个数组的话,我们首先必须知道学生人数大概是多少,以便我们确定数组的大小,但是题目中没有给出,而且题目要求中有大量的删除、插入操作,所以用链表的方式比较方便。

对于菜单的实现,其实也比较简单,首先我们用printf语句把程序的功能列出来,然后等待用户输入而执行不同的函数,执行完了一个功能后又回到菜单。

文件的读写操作大家参照书中的有关文件的章节。

2、学生综合测评系统

每个学生的信息为:

学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。

考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%,10%,10%,20%。

A、学生信息处理

(1)输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序存入文件中。

提示:

学生信息可先输入到数组中,排序后可写到文件中。

(2)插入(修改)同学信息:

提示:

先输入将插入的同学信息,然后再打开源文件并建立新文件,把源文件和输入的信息合并到新文件中(保持按学号有序)若存在该同学则将新记录内容替换源内容,

(3)删除同学信息:

提示:

输入将删除同学号,读出该同学信息,要求对此进行确认,以决定是否删除将删除后的信息写到文件中。

(4)浏览学生信息:

提示:

打开文件,显示该文件的学生信息。

B、学生数据处理:

(1)按考试科目录入学生成绩并且按公式:

考试成绩=(语文+数学+外语)/3计算考试成绩,并计算考试名次,提示:

先把学生信息读入数组,然后按提示输入每科成绩,计算考试成绩,求出名次,最后把学生记录写入一个文件中。

(2)学生测评数据输入并计算综合测评总分及名次。

提示:

综合测评总分=(考试成绩)*0.6+(同学互评分)*0.1+品德成绩*0.1+任课老师评分*0.2。

(3)学生数据管理

提示:

输入学号,读出并显示该同学信息,输入新数据,将改后信息写入文件

(4)学生数据查询:

提示:

输入学号或其他信息,即读出所有数据信息,并显示出来。

C、学生综合信息输出

提示:

输出学生信息到屏幕。

3、图书管理系统

主要包括管理图书的库存信息、每一本书的借阅信息以及每一个人的借书信息。

每一种图书的库存信息包括编号、书名、作者、出版社、出版日期、金额、类别、总入库数量、当前库存量、已借出本数等。

每一本被借阅的书都包括如下信息:

编号、书名、金额、借书证号、借书日期、到期日期、罚款金额等。

每一个人的借书信息包括借书证号、姓名、班级、学号等。

系统功能包括以下方面:

A、借阅资料管理

要求把书籍、期刊、报刊分类管理,这样的话操作会更加灵活和方便,可以随时对其相关资料进行添加、删除、修改、查询等操作。

B、借阅管理

 

(1)借出操作

   

(2)还书操作

   (3)续借处理

提示:

以上处理需要互相配合以及赔、罚款金额的编辑等操作完成图书借还业务的各种登记。

例如:

读者还书时不仅更新图书的库存信息,还应该自动计算该书应罚款金额。

并显示该读者所有至当日内到期未还书信息。

C、读者管理

   读者等级:

对借阅读者进行分类处理,例如可分为教师和学生两类。

并定义每类读者的可借书数量和相关的借阅时间等信息。

读者管理:

对读者信息可以录入,并且可对读者进行挂失或注销、查询等服务的作业。

D、统计分析  

    随时可以进行统计分析,以便及时了解当前的借阅情况和相关的资料状态,统计分析包括借阅排行榜、资料状态统计和借阅统计、显示所有至当日内到期未还书信息等功能分析。

E系统参数设置:

可以设置相关的罚款金额,最多借阅天数等系统服务器参数。

4、学校运动会管理系统

 问题描述:

(1)初始化输入:

N-参赛院系总数,M-男子竞赛项目数,W-女子竞赛项目数;

(2)各项目名次取法有如下几种:

取前5名:

第1名得分7,第2名得分5,第3名得分3,第4名得分2,第5名得分1;         

(3)由程序提醒用户填写比赛结果,输入各项目获奖运动员的信息。

(4)所有信息记录完毕后,用户可以查询各个院系或个人的比赛成绩,生成团体总分报表,查看参赛院系信息、获奖运动员、比赛项目信息等。

5、个人通讯录管理系统

建立一通讯录,输入姓名、电话号码、住址等信息,然后对通信簿进行显示、查找、添加、修改及删除。

功能要求

(1)通讯录的每一条信息包括姓名、单位、固定电话、移动手机、分类(如同事、朋友、同学、家人等)、EMAIL、QQ等。

(2)输入功能:

可以一次完成若干条信息的输入。

(3)显示功能:

完成全部通讯录信息的显示(一屏最多显示10条,超过十条应能够自动分屏显示)

(4)查找功能:

可以按姓名等多种方式查找通讯信息

(5)增加、删除、修改功能:

完成通讯录信息的多种更新

6、教师工资管理系统

每个教师的信息为:

教师号、姓名、性别、单位名称、家庭住址、联系电话、基本工资、津贴、生活补贴、应发工资、电话费、水电费、房租、所得税、卫生费、公积金、合计扣款、实发工资。

注:

应发工资=基本工资+津贴+生活补贴;合计扣款=电话费+水电费+房租+所得税+卫生费+公积金;实发工资=应发工资-合计扣款。

A、教师信息处理

(1)输入教师信息

(2)插入(修改)教师信息:

(3)删除教师信息:

(4)浏览教师信息:

  提示:

具体功能及操作参考题1。

B、教师数据处理:

(1)按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。

(2)教师实发工资、应发工资、合计扣款计算。

  提示:

计算规则如题目。

(3)教师数据管理

  提示:

输入教师号,读出并显示该教师信息,输入新数据,将改后信息写入文件

(4)教师数据查询:

  提示:

输入教师号或其他信息,即读出所有数据信息,并显示出来。

(5)教师综合信息输出

  提示:

输出教师信息到屏幕。

 

7、教师工作量管理系统

计算每个老师在一个学期中所教课程的总工作量。

(教师单个教学任务的信息为:

教师号、姓名、性别、职称、认教课程、班级、班级数目、理论课时、实验课时、单个教学任务总课时)

A、教师信息处理

(1)输入教师授课教学信息,包括教师号、姓名、性别、职称、认教课程、班级、班级数目、理论课时、实验课时。

(2)插入(修改)教师授课教学信息:

(3)删除教师授课教学信息:

(4)浏览教师授课教学信息:

B、教师工作量数据处理:

(1)计算单个教学任务总课时。

计算原则如下表:

班级数目

单个教学任务总课时

2

1.5*(理论课时+实验课时)

3

2*(理论课时+实验课时)

>=4

2.5*(理论课时+实验课时)

(2)计算一个教师一个学期总的教学工作量。

总的教学工作量=所有单个教学任务总课时之和。

(3)教师数据查询:

  提示:

输入教师号或其他信息,即读出所有数据信息,并显示出来。

C、教师综合信息输出

  提示:

输出教师信息到屏幕。

基本要求

1、大作业可采取每人一题,可任选一题进行设计,至少包含五个功能模块。

或者每组完成一个课题,每组成员(不得超过5人)分工合作完成一个大作业,每个人的任务不同。

分组情况请于5月17号上报给老师。

2、可以选择老师提供的参考选题,也可以自选,如果自选,需要将自选题目的详细内容以及实现要求提供给老师,老师批准后方可采用。

3、要求利用面向对象设计方法以及C++的编程思想来完成系统的设计。

4、要求有菜单、文件操作,数据使用数组、结构体、链表等均可,键盘操作或鼠标操作均可。

5、模块化程序设计:

要求在设计的过程中,按功能定义函数或书写多个文件,进行模块化设计,各个功能模块用函数的形式来实现。

6、所选课题必须上机通过,并获得满意的结果。

7、程序书写风格:

锯齿型书写格式。

8、完成大作业报告书(格式见附录一)。

评价标准

大作业成绩评定的依据有设计文档资料、具体实现设计方案的程序及大作业考勤登记表。

优(90分以上):

必须要有一定的创意,有自己独特的算法。

按要求完成课题的全部功能,有完整的符合标准的文档,文档有条理、文笔通顺,格式正确,其中有总体设计思想的论述,有正确的流程图,程序完全实现设计方案,设计方案先进,软件可靠性好;

良(80-89分):

完成课题规定的功能,有完整的符合标准的文档,文档有条理、文笔通顺,格式正确;有完全实现设计方案的软件,设计方案较先进,无明显错误;

中(70-79分):

完成课题规定的功能,有完整的符合标准的文档,有基本实现设计方案的软件,设计方案正确,但有少数失误;

及格:

完成课题规定的大部分功能,有完整的符合标准的文档,有基本实现设计方案的软件,设计方案基本正确,个别功能没有实现,但错误不多;

不及格:

没有完成课题规定的功能,没有完整的符合标准的文档,软件没有基本实现设计方案,设计方案不正确。

附录一:

(封面样式)

附件1:

学号:

《面向对象程序设计》大作业

 

题目

学生成绩管理系统

学院

文法学院

专业

教育学

班级

教育学1201

姓名

指导教师

鄢红国

2013

12

20

(正文部分)

一、需求分析(标题均为小三号,宋体)

(正文均为小四号,宋体,行距1.5倍)

(对所选择题目进行分析,描述问题。

简述课题要解决的问题是什么,有什么要求和限制条件。

列出参与人员进行本设计时要达到的具体的目标。

二、总体设计

(对设计目标进行总体分析,说明要采用的基本思路,说明遇到的问题和解决方法。

说明完成本次大作业的完整过程。

要描述程序的设计思想,画出本次大作业完整的程序框图或流程图。

三、详细设计

(要求列出所有编写的函数清单,说明每个函数的功能,各形式参数的意义,画出各函数的调用关系图。

即模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等)。

四、程序运行结果测试与分析

(要针对程序处理的不同情况列出有代表性的输入和输出,用足够多的实例说明程序完成了设计任务和目标。

五、结论与心得

(主要说明程序调试中发现的问题和解决办法,包括你在该设计中主要承担什么任务,在设计中学到了什么,哪里遇到了困难,解决的办法,可能但因时间关系没有来得及完成的想法,今后的目标等。

六、致谢

 

#include

#include

#include

#include

usingnamespacestd;

classStudent

{

public:

stringname;

stringID;

intgrade;

Student(stringpName,stringpID,intpgrade)

{

name=pName;

ID=pID;

grade=pgrade;

}

//显示学生的信息

voidprint()

{

cout<

}

};

listlst;//学生链表,用于存放学生数据

voidprint(listlst)//显示链表中所有的学生

{

list:

:

iteratorit;

cout<<"tname\tID\tgrade"<

for(it=lst.begin();it!

=lst.end();++it)

it->print();

cout<

}

voidinsertStudent()//插入一个学生

{

system("cls");

cout<<"-------请输入学号ID"<

stringtID;

cin>>tID;

cout<<"-------请输入姓名:

"<

stringtname;

cin>>tname;

cout<<"-------请输入分数:

"<

inttgrade;

cin>>tgrade;

Studentstu(tname,tID,tgrade);

lst.push_back(stu);

list:

:

iteratorit;

for(it=lst.begin();it!

=lst.end();++it)

{

it->print();

}

}

voiddeleteStudent()//按要求删除一个学生

{

system("cls");

cout<<"-------请输入要删除学生的学号ID:

"<

stringtID;

cin>>tID;

boolflag=false;

list:

:

iteratorit;

for(it=lst.begin();it!

=lst.end();++it)

{

if(it->ID==tID)

{

cout<<"----查找到,该学生信息如下:

-----"<

it->print();

lst.erase(it);

cout<<"删除完毕!

"<

flag=true;

break;

}

}

if(flag==false)

{

cout<<"未找到!

"<

}

}

voidscreenA()//显示屏幕操作A

{

cout<<"****************************************"<

cout<<"1--------------查询"<

cout<<"2--------------插入"<

cout<<"3--------------删除"<

cout<<"4--------------显示"<

cout<<"5--------------退出"<

cout<<"****************************************"<

}

voidsearchByName()//按名字查找

{

cout<<"-------请输入姓名:

"<

stringtname;

cin>>tname;

boolflag=false;

list:

:

iteratorit;

for(it=lst.begin();it!

=lst.end();++it)

{

if(it->name==tname)

{

cout<<"----查找到,该学生信息如下:

-----"<

it->print();

flag=true;

break;

}

}

if(flag==false)

{

cout<<"未找到!

"<

}

}

intmain()

{

charch;

screenA();

while(cin>>ch)

{

system("cls");

switch(ch)

{

case'1':

searchByName();

break;

case'2':

//插入学生

insertStudent();

break;

case'3':

//删除学生

deleteStudent();

break;

case'4':

//显示当前信息

cout<<"---------当前数据列表如下"<

print(lst);

break;

case'5':

//退出

return0;

}

system("pause");

system("cls");

screenA();

}

cout<<"系统退出"<

return0;

}

附件1:

学号:

《面向对象程序设计》大作业

 

题目

学生成绩管理系统

学院

文法学院

专业

教育学

班级

教育学1201

姓名

指导教师

鄢红国

2013

12

20

一设计目的…………………………………………………………….1

二大作业的内容........................................2

三大作业的要求与数据..................................3

四大作业应完成的工作..................................4

五总体设计(包含几大功能模块)...........................5

六详细设计(各功能模块的具体实现算法——流程图)………….6

七调试分析(包含各模块的测试用例,及测试结果)…………….7

八总结………………………………………………………………...8

十参考资料…………………………………………………………….9

一大作业的目的

《面向对象程序设计》是一门实践性很强的课程,通过大作业不仅可以全方位检验学生知识掌握程度和综合能力,而且还可以进一步加深、巩固所学课程的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。

更好地掌握运用C++语言独立地编写、调试应用程序和进行其它相关设计的技能。

二大作业的内容

对学生信息(包括学号、语文、数学、英语、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出.将学生的成绩信息进行记录,信息内容包含:

(1)学生的学号

(2)学生的姓名(3)学生的成绩。

假设,现收集到了一个班学生的所有成绩信息,要求用C语言编写一个简单的成绩管理系统,可进行录入、查询、修改和浏览等功能。

学习相关开发工具和应用软件,熟悉系统建设过程。

三大作业的要求与数据

1、用C语言实现系统;

2、对学生信息(包括学号、姓名、语文、数学、英语、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出.

3、学生信息包括:

其内容较多,为了简化讨论,要求设计的管理系统能够完成以下功能:

(1)每一条记录包括一个学生的学号、姓名、3门课成绩

(2)、成绩信息录入功能:

(成绩信息用文件保存,可以一次完成若干条记录的输入。

(3)、成绩信息显示浏览功能:

完成全部学生记录的显示。

(4)、查询功能:

完成按姓名查找学生记录,并显示。

(5)成绩信息的删除:

按学号进行删除某学生的成绩.

(6)、排序功能:

按学生平均成绩进行排序。

(7)、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!

四大作业应完成的工作

(1)编写算法;

(2)算法测试,并有具体的测试结果和结果分析;

(3)撰写大作业报告。

内容包括:

1)封面扉页

2)设计任务书

3)目录

4)总体设计方案(包括流程图)

5)使用说明及运行实例(包括界面)

6)成员设计内容简介

7)项目源程序代码(注意注释的使用)

8)指导教师评语

五总体设计(包含几大功能模块)

1、成绩录入功能

2、成绩输出功能

3、成绩查询功能

4、删除模块

5、排序功能

6、统计功能

7、退出系统

六详细设计(各功能模块的具体实现算法——流程图)

6.1各函数的功能和实现

1、输入初始的学生信息:

输入信息包括学生的姓名、学号以及学生的成绩等相关信息;可用函数voidinput(STUDENT*data,int*len)来实现此操作。

2、成绩输出模块:

输出学生的信息以及成绩voidoutput(STUDENT*data,intlen):

通过学生的姓名来查看学生的相关成绩,同时也可以分别通过caverage() 、maverage() 、eaverage() 和comaverage() 来输出成绩的平均分数、最高和最低分数。

3、成绩查询模块:

可用voidfind(STUDENT*data,intlen) 来实现。

找到就输出此学生全部信息。

4、删除模块:

用函数voiddelete_item(STUDENT*data,int*len)来实现

5、排序模块:

用函数voidsort(STUDENT*data,intlen)来实现

6、统计功能能:

用函数voidstat(STUDENT*data,intlen)来实现

7、退出系统:

可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。

如图6.1

图6.1

七调试分析(包含各模块的测试用例,及测试结果)

7.1源程序

#include

#include

#include

#defineMAXN35

#defineMAX_NAME256

typedefstructstudent//学生信息

{

intno;

charname[MAX_NAME];

doubleChinese;

doublemath;

doubleEnglish;

doublemark_ave;

doublemark_tot;

}STUDENT;

/*-----------输入信息子程序---------*/

voidinput(STUDENT*data,int*len)

{

intno;

putchar('\n');

printf("%s\n","请输入新的记录,如果需要退出当前菜单请输入-1.")

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

当前位置:首页 > 自然科学 > 物理

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

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