华东交大C++课程设计 统计学生成绩Word文件下载.docx

上传人:b****1 文档编号:5055788 上传时间:2023-05-04 格式:DOCX 页数:53 大小:199.71KB
下载 相关 举报
华东交大C++课程设计 统计学生成绩Word文件下载.docx_第1页
第1页 / 共53页
华东交大C++课程设计 统计学生成绩Word文件下载.docx_第2页
第2页 / 共53页
华东交大C++课程设计 统计学生成绩Word文件下载.docx_第3页
第3页 / 共53页
华东交大C++课程设计 统计学生成绩Word文件下载.docx_第4页
第4页 / 共53页
华东交大C++课程设计 统计学生成绩Word文件下载.docx_第5页
第5页 / 共53页
华东交大C++课程设计 统计学生成绩Word文件下载.docx_第6页
第6页 / 共53页
华东交大C++课程设计 统计学生成绩Word文件下载.docx_第7页
第7页 / 共53页
华东交大C++课程设计 统计学生成绩Word文件下载.docx_第8页
第8页 / 共53页
华东交大C++课程设计 统计学生成绩Word文件下载.docx_第9页
第9页 / 共53页
华东交大C++课程设计 统计学生成绩Word文件下载.docx_第10页
第10页 / 共53页
华东交大C++课程设计 统计学生成绩Word文件下载.docx_第11页
第11页 / 共53页
华东交大C++课程设计 统计学生成绩Word文件下载.docx_第12页
第12页 / 共53页
华东交大C++课程设计 统计学生成绩Word文件下载.docx_第13页
第13页 / 共53页
华东交大C++课程设计 统计学生成绩Word文件下载.docx_第14页
第14页 / 共53页
华东交大C++课程设计 统计学生成绩Word文件下载.docx_第15页
第15页 / 共53页
华东交大C++课程设计 统计学生成绩Word文件下载.docx_第16页
第16页 / 共53页
华东交大C++课程设计 统计学生成绩Word文件下载.docx_第17页
第17页 / 共53页
华东交大C++课程设计 统计学生成绩Word文件下载.docx_第18页
第18页 / 共53页
华东交大C++课程设计 统计学生成绩Word文件下载.docx_第19页
第19页 / 共53页
华东交大C++课程设计 统计学生成绩Word文件下载.docx_第20页
第20页 / 共53页
亲,该文档总共53页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

华东交大C++课程设计 统计学生成绩Word文件下载.docx

《华东交大C++课程设计 统计学生成绩Word文件下载.docx》由会员分享,可在线阅读,更多相关《华东交大C++课程设计 统计学生成绩Word文件下载.docx(53页珍藏版)》请在冰点文库上搜索。

华东交大C++课程设计 统计学生成绩Word文件下载.docx

统计学生成绩;

函数;

运算符重载;

文件操作;

3

二.课程设计任务分析

2.1课程设计任务书

华东交通大学

课程设计(论文)任务书

学院专业班一、课程设计(论文)题目:

统计学生成绩

二、课程设计(论文)工作自2012年6月1日起至2012年6月6日止三、课程设计(论文)地点:

软件学院实训中心四、课程设计(论文)内容要求:

1.本课程设计的目的

(1)掌握C++语言的程序设计方法;

(2)理论联系实际,进一步提高学生的软件开发技术;

(3)培养学生分析、解决问题的能力;

(4)提高学生实践论文撰写能力。

2.课程设计的任务及要求

1)基本要求:

(1)对系统所需完成的功能分析;

(2)使用VisualC++编译器进行程序编译;

(3)提出系统的设计方案;

(4)对所设计源程序进行调试。

2)创新要求

在基本要求达到后,可进行创新设计。

3)课程设计论文编写要求

1)理论设计部分以课程设计论文的形式提交,格式必须按照课程设计论文标准(

格式进行书写和装订。

(2)课程设计报告(论文)包括设计任务分析(包括设计任务书、设计运行环境、同组人员及分工等)、系统总框图、每个模块的设计分析、列出所有定义的函数及说明、存在的问题与不足及对策、附上程序源代码。

(3)用A4纸打印出文档(附上源代码),封面到教务处购买;

所写的有效代码不得少于50行;

17周上机检查程序并上交设计报告。

4)课程设计评分标准:

(1)学习态度:

20分;

(2)回答问题及系统演示:

30分

(3)课程设计报告书论文质量:

50分。

成绩评定实行优秀、良好、中等、及格和不及格五个等级。

不及格者需重做。

5)参考文献:

(1)谢昕等编著,《C++程序设计》第二版,北京邮电大学出版社

4

(2)吕凤翥.C++语言基础教程[M].清华大学出版社.2007.2(3)谭浩强编,《C++面向对象程序设计》,清华大学出版社,2005年7月出版6)课程设计进度安排

1.准备阶段(4学时):

选择设计题目、了解设计目的要求、查阅相关资料。

2.程序模块设计分析阶段(4学时):

程序总体设计、详细设计。

3.代码编写调试阶段(8学时):

程序模块代码编写、调试、测试。

4.撰写论文阶段(4学时):

总结课程设计任务和设计内容,撰写课程设计论文。

7)课程设计题目具体要求:

本课程设计的重点是练习文件的存储与读取以及读入整行数据。

要求编写一个“学生”类及用来存储文件的save()和load()函数,使用函数及运算符重载技术完成如下操作:

(1)有10个小学生,每个学生有“算术”和“语文”两门功课,从键盘输入学生的学号.姓名以及成绩,计算每个学生的平均成绩,将数据存入文件stud,dat中并验证是否正确的存入了文件。

(2)要求对“<

<

”和“>

>

”运算符进行重载。

考虑到输入学号时,也会因不小心引入空格,而且名字中也需要有空格,所以重载“>

”运算符时,需要满足这个要求。

(3)把学生姓名和平均成绩抽取起来,建立一个简明文件stud_mean.dat,并验证是否正确的存入了。

(4)从文件stud.dat按如下格式输出大于等于平均成绩的学生信息:

学号姓名算术语文平均

(5)将两门功课成绩都不及格的学生信息从文件中删除并外存入文件bad.dat中。

(6)编写能检索文件中某个学生信息的子程序。

如无此学生,输出“未查到”信息。

(7)使用多文件编程和菜单操作。

学生签名:

2012年6月1日

课程设计(论文)评审意见

(1)考勤(10分):

优()、良()、中()、一般()、差();

(2)系统设计(20分):

优()、良()、中()、一般()、差();

(3)编程调试(10分):

(4)回答问题(15分):

(5)论文撰写(35分):

(6)创新思想(10分):

综合评定等级:

评阅人:

职称:

年月日

5

2.2设计运行环境

1.操作系统:

Windowsxp

1.程序运行环境:

MicrosoftVisualC++6.0

2.3课程设计任务要求

(1)有10个小学生,每个学生有“算术”和“语文”两门功课,从键盘输入学生的学号.姓名以及成绩,计算每个学生的平均成绩,将数据存入文件stud,dat中并验证是否正确的存入了文件。

6

2.4小组成员任务分配表

小组成员任务分配表

成员

班级学号分配任务项目

论文设计部分代码

编写

部分代码编写及代码

编整理工作

部分代码编写及后期

完善总结和打印

我的任务详情:

我的任务主要是负责论文的设计与部分代码的编写工作。

首先,在看完了课程设计的论文任务书以及题目后,根据里面的要求,我进行了概括总结,之后,在XX文库里看了几篇往届学生的课设论文范例。

在总结以前写论文的经验,再添加了一些自己的想法,最终融汇而成。

论文设计完成初稿后,与小组成员进行讨论,做了某些方面的修改和完善。

除此之外,我还参与部分代码编写工作,主要是前三个部分的编写,我看了老师给的代码范例,也从网上看了一些类似范例,最终决定用老师的代码。

在MicrosoftVisualC++6.0环境下运行时发现一些错误,并予以纠正。

由于创新能力缺乏,所以没有进一步的创新设计。

在遇到某些问题时,咨询了老师及一些学长学姐。

最终顺利的完成了任务。

7

三.课程任务具体设计

3.1设计思想

设计一个菜单,通过菜单选择实现相应的操作,对于输入的原始信息,使用链表存储它们,这样做的好处是,可以随时增加内容,也容易将两门功课不及格的学生从文件中删除。

为学生设计一个类,单独设计完成这个这个文件读写的成员函数。

使用结构数组作为学生信息简表和两门不及格的学生的存储器,由它们和文件建立读写关系,需要显示它们时,现将文件读入内存,然后再显示。

需要显示输出大于等于平均成绩的学生信息时,则直接从内存链表中筛选。

当然,需要显示原始信息时,也通过直接显示链表信息的方法实现。

这四种数据的显示问题均通过一个成员函数来实现。

为了操作方便,原始数据可以单独存取.修改和查询。

3.2系统总框图

统计学生成绩

增建显保寻均读删结

加立示存找不取除束

原简各原原及原原程

始明种始始格始始序

记文文文记文文记运

录件件件件录件录行

8

3.3各模块设计分析

3.3.1定义头文件

用#define命令自定义宏,用静态结构体函数声明简明文件和不及格文件。

定义一个学生类,说明数据成员函数。

具体代码如下:

#if!

defined(CPP9_H)#defineCPP9_H#include<

fstream.h>

//对文件操作文件输入输出#include<

stdlib.h>

//标准库头文件定义杂项函数及内存分配函数#include<

stdio.h>

//定义输入输出函数#include<

string.h>

//字符串处理

#include<

iostream.h>

//数据输入输出

#defineASK(p){do{p=newStudent;

if(p==NULL){cout<

"

memoryfail!

"

<

endl;

exit(-1);

}}while(0);

};

//宏定义

staticstructshorts{//静态结构体声明定义变量

charname[16];

doubleave;

}sm[10]={{"

0}};

//给静态结构体变量赋初值staticstructbads{//静态结构体声明定义变量

charno[10];

//定义学生总数

//定义学生姓名

intmath;

//定义数学成绩

intchi;

//定义语文成绩

//定义平均成绩}bad[10]={{"

"

0,0}};

//给静态结构体变量赋初值

classStudent//定义一个学生类{

private:

//定义私有成员

Student*next;

//定义对象指针

intmenu_select(void);

//声明菜单选择函数

public:

//定义公有成员

staticintcount;

//定义了一个静态对象

Student();

//构造函数的声明

9

~Student();

//析构函数的声明

Student*input(Student*);

//输入信息函数的声明

voiddisplay(Student*);

//显示数据信息函数的声明

voidsave(Student*);

//文件存储操作函数的声明

Student*load(Student*);

//文件读取操作函数的声明

voidhandle_menu(Student*);

//菜单处理函数的声明

Student*delete_record(Student*);

//删除学生信息函数的声明

voidshort_record(Student*);

//建立简明文件的声明

Student*bad_record(Student*top);

//建立不及格文件的声明

voidStudent:

:

find_record(Student*);

//查询学生信息函数的声明

friendostream&

operator<

(ostream&

os,Student&

ob);

//重载"

运算符函数声明

friendistream&

operator>

(istream&

is,Student&

//重载"

运算符函数声明};

#endif

3.3.2源文件

菜单栏的构建,定义一个student类的构造函数和析构函数,定义一个菜单处理函数和菜单选择函数。

#include"

cpp9.h"

intStudent:

count=0;

//声明静态成员记录计数变量/****************************************构造函数

***************************************/Student:

Student()//定义构造函数

{

next=NULL;

name[0]='

0'

;

no[0]='

'

math=0;

chi=0;

ave=0.0;

}

/****************************************析构函数

~Student()//定义析构函数

if(next!

=NULL)

deletenext;

}//缺省析构函数体为空voidmain()//定义主函数

Student*top;

10

ASK(top);

top->

handle_menu(top);

}

/************************************菜单处理函数

***********************************/voidStudent:

handle_menu(Student*top)//定义菜单处理函数{

for(;

;

)//相当于while

(1)语句(死循环)

switch(menu_select())

case1:

top=input(top);

//调用输入信息函数

break;

case2:

display(top);

//调用显示数据信息函数

case3:

save(top);

//调用文件存储操作函数

case4:

top=load(top);

//调用文件读取操作函数

case5:

top=delete_record(top);

//调用删除学生信息数据函数

case6:

short_record(top);

//调用生成简明文件函数

case7:

top=bad_record(top);

//调用查询学生信息函数

case8:

find_record(top);

case9:

cout<

\t退出操作,再见~"

deletetop;

return;

//退出函数

/***********************************

11

*菜单选择函数

***********************************/

menu_select()//定义菜单选择函数{

chars[2];

intcn=0;

'

\n'

\t1,增加原始记录\n"

\t2,显示各种文件\n"

\t3,保存原始文件\n"

\t4,读取原始文件\n"

\t5,删除原始记录\n"

\t6,建立简明文件\n"

\t7,均不及格文件\n"

\t8,寻找原始记录\n"

\t9,结束程序运行\n"

\n\t左边数字对应功能选择,请选择1~9:

flush;

for(;

gets(s);

//从键盘接受字符串,并放入数组s中

cn=atoi(s);

if(cn<

1||cn>

9)cout<

\n\t输入错误,重选1-9:

elsebreak;

returncn;

3.3.3源文件

定义一个文件存储操作函数,将记录存入文件,再建力一个文件读取操作函数,读取文件信

息。

再用运算符的重载,便于操作自定义数据类型。

#include"

/*******************

*文件存储操作函数

*******************/

save(Student*top)//定义文件存储操作函数{

if(top->

name[0]=='

)//如果指针指向对象的name等于0,那么就直接退出函数

\t没有记录可存!

ofstreamout;

//建立输出流对象

12

out.open("

stud.dat"

ios:

out);

//与stud.dat关联并制定以输出方式打开

if(!

out)//如果文件不能打开

\t不能打开文件!

exit

(1);

//非正常退出

\n\t存文件"

out<

count<

运算符

Student*p=top;

while(p!

=NULL)//当p不为空时

*p;

p=p->

next;

//对象访问成员

out.close();

//关闭文件

\t'

条记录已经存入文件,请继续操作。

*文件读取操作函数

Student*Student:

load(Student*top)//定义文件读取操作函数

ifstreamin;

//建立输入流对象

in.open("

in|ios:

nocreate);

//与stud.dat关联并制定以输入方式打开/如果文

件不存在,则打开文件失败

if(!

in)//如果打开文件失败

\t文件不存在!

returntop;

\n\t取文件..."

in>

count;

in.

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

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2