C++学生成绩管理系统 课程设计.docx

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

C++学生成绩管理系统 课程设计.docx

《C++学生成绩管理系统 课程设计.docx》由会员分享,可在线阅读,更多相关《C++学生成绩管理系统 课程设计.docx(43页珍藏版)》请在冰点文库上搜索。

C++学生成绩管理系统 课程设计.docx

C++学生成绩管理系统课程设计

 

肇庆学院计算机学院

课程设计报告

 

课程名称:

C++面向对象程序设计

设计题目:

计算机专业学生成绩管理系统

年级:

系别:

专业:

姓名:

学号:

任课教师:

 

2011年12月12日

肇庆学院计算机学院

课程设计结果评定

评阅意见:

(1)内容设计(20分):

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

(2)流程分析 (20分):

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

(3)数据定义 (30分):

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

(4)代码编写 (20分):

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

(5)创新能力 (10分):

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

(6)格式规范性、设计态度及考勤是否降等级:

是( )、否( )

其它意见:

 

评阅人:

   

年月日

成绩等级:

计算机专业学生成绩管理系统

1课程设计的目的和要求

1.1目的

本课程设计的目的是培养应用《面向对象程序设计》设计方法及思想解决实际问题的能力,掌握使用面向对象程序设计语言C++[1],熟悉面向对象开发平台BorlandC++Builder6或VisualC++6.0,提高调查研究、查阅技术资料以及编写技术文献的能力。

1.2要求

1.2.1本课程设计基本要求(考核时合格的依据)

⑴所做的课程设计必须能够体现面向对象基本思想[2]:

类、对象、继承等。

所有源代码中的函数、类名、类的成员函数、关键变量、类的数据成员均有注释说明其含义。

⑵根据各自对所学C++面向对象的基本概念、原理和机制的理解,自己设计学生成绩管理系统的具体内容。

⑶学生成绩管理系统至少应包含能任意增加记录、删除记录、修改记录、课程名称、任课教师、总分、平均分、及格人数、优秀人数等基本信息,、查询记录、显示全部记录、清空全部记录、安全退出系统等功能。

另外,要求程序有输入格式的提示以防止错误数据输入引起的问题。

⑷设计采用控制台应用程序方式编写;数据能存放在文本类的文件(如*.txt)中,测试数据有3个以上的数据记录保存在文本文件中以便于老师检查和验证;所编程序不能直接使用的要有使用说明文档,并在程序源代码中备注。

⑸课程设计要求每人自己独立完成,不得重复和抄袭,如发现两人以上代码明显重复和有明显从网络或书上抄袭的嫌疑,一律按“差”等级处理。

⑹设计完成必须提交源代码及课程设计报告电子版,另交课程设计报告纸质版1份。

1.2.2本课程设计的较高要求

⑴满足上述基本要求的第⑴点的同时,还能包含面向对象的高级编程思想:

多态性、模板等,并在源代码中注释说明。

⑵满足上述基本要求的第⑵点的同时,学生成绩管理系统的具体内容还能根据某些专业的学生成绩管理的具体特点进行设计,方便实际应用。

⑶满足上述基本要求的第⑶点的同时,增加了其它实用的功能(例如:

成绩可分平时成绩和考试成绩,平时成绩按考勤情况、作业情况、上机情况等进行评分,可任意设定各项成绩占总评分的比例)

⑷程序能接受任意错误的数据输入,错误输入时,屏幕能给出错误输入的提示信息,且不会由于错误而停止。

⑸满足上述基本要求的第⑷点的同时,另外设计了采用C++对话框界面方式编写的程序代码(注:

控制台的程序还是必须要有);或数据存放方式为office的access数据库或SQL2000的数据库,测试数据必须有3个以上记录;所编程序不能直接使用的要有使用说明文档,并在程序源代码中备注。

2课程设计的内容

本《学生成绩管理系统》程序是一个具有对学生信息进行录入、添加、删除、根据学号进行学生信息的查询、显示已有学生信息的显示、对学生成绩进行统计(包括总分排名,平均分排名,及格人数统计,优秀人数统计等),可以对已有的学生信息进行修改,保存和读取输入的数据等功能。

一切功能都可以在运行的软件中运行。

3课程设计的进度安排

4课程设计报告内容

4.1程序设计思路

表4.1Student类说明表

名称

属性

说明

number

数据成员

学生学号

name

数据成员

学生姓名

sex

数据成员

学生性别

grade

数据成员

学生所在班级

teacher

数据成员

学生的科任老师

Math

数据成员

高等数学

English

数据成员

大学英语

C

数据成员

C语言

Java

数据成员

Java语言

表4.2主函数说明表

名称

属性

说明

Input

成员方法

实现学生信息的录入

Operate

成员方法

实现学生信息的查询、修改、增加、删除

Count

成员方法

实现学生信息的总分、平均分排名,及格优秀人数统计

Manage

成员方法

实现学生信息的读取、保存、浏览

Exit

成员方法

退出程序

表4.3Operate说明表

名称

属性

说明

query

成员方法

实现学生信息的查询功能

update

成员方法

实现学生信息的更改功能

add

成员方法

实现学生信息的增加功能

delet

成员方法

实现学生信息的删除功能

 

表4.4Count说明表

名称

属性

说明

total

成员方法

实现学生成绩总分高到底的排名

ave

成员方法

实现学生成绩平均分高到底的排名

passes

成员方法

统计各科的及格人数

excelent

成员方法

统计各科的优秀人数

表4.5Manage说明表

名称

属性

说明

read

成员方法

实现学生信息从文件夹中读取

save

成员方法

实现学生信息保存到文件夹中

display

成员方法

浏览所有学生的信息

4.2程序结构和流程图

图4.6程序结构图

 

图4.7程序流程图

4.3源程序清单

#include

#include

#include

#include

usingnamespacestd;

//公共变量

intchoose;

intn;//输进学生个数

inti;

stringfb;//定义fb为将要查找的学号

stringfn;//定义fn为将要查找的姓名

charpress;//选择按键

classStudent//定义一个student类

{

public:

stringnumber;//学号

stringname;//姓名

charsex;//性别

stringgrade;//班级

stringteacher;//科任老师

floatMath;//高等数学

floatEnglish;//大学英语

floatC;//c语言

floatJava;//Java成绩

floatsum;//总成绩

floatave;//平均成绩

};

staticStudentstud[100];//定义一个可以容下100个元素的stud静态数组

//————————————————退出系统———————————————

voidExit(){//定义一个exit退出方法

cout<<"\t*谢谢使用该系统*"<

}

//—————————————保存输入学生的全部信息进文件————————

voidsave()//定义一个save类

{

charfilename[40];//定义一个存放输入文件名称的数组

for(i=0;i

{

cout<<"学号:

"<

"<

"<

"<

"<

"<

"<

"<

}

cout<<"\n"<<"请输入文件名(最好输入完整文件名,如:

1.txt):

"<

cin>>filename;

ofstreamoutfile(filename);//文件操作,保存

for(i=0;i

{

outfile<<""<

outfile<<""<

}

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

cout<<"保存成功!

"<

}

//———————————————读取学生成绩——————————————

voidread()

{

charfilename[40];//定义一个存放输入文件名称的数组

cout<<"请输入文件名(最好输入完整文件名,如:

1.txt):

"<

cin>>filename;

ifstreaminfile(filename,ios:

:

in|ios:

:

out);//定义输入文件流对象,以输出方式打开用户自定义的磁盘文件

if(!

infile)//如果文件夹不存在

{

cerr<<"文件名错误或者不存在该文件!

"<

}

else{//如果文件夹存在

while(!

infile.eof())//判断是否为文件尾

{

inti=0;//定义从第一个数组读起stud[0]

//读取的格式

infile>>stud[i].number>>stud[i].name>>stud[i].sex>>stud[i].grade>>stud[i].teacher;

infile>>stud[i].Math>>stud[i].English>>stud[i].C>>stud[i].Java;

//向屏幕显示数据

cout<<"学号:

"<

"<

"<

"<

"<

"<

"<

"<

i++;

}

infile.close();

cout<<"读取成功!

"<

}

}

//——————————————输入学生信息————————————————

voidInput()//定一个input输入方法

{

cout<<"请根据你的需要输入学生的个数:

";

cin>>n;//输入学生个数

for(i=0;i

{

cout<<"\n请输入第"<

"<

cout<<"学号:

"<<'';cin>>stud[i].number;

cout<<"姓名:

"<<'';cin>>stud[i].name;

cout<<"性别:

"<<'';cin>>stud[i].sex;

cout<<"班级:

"<<'';cin>>stud[i].grade;

cout<<"科任老师:

"<<'';cin>>stud[i].teacher;

cout<<"高等数学成绩:

"<<'';cin>>stud[i].Math;

cout<<"大学英语成绩:

"<<'';cin>>stud[i].English;

cout<<"C语言成绩:

"<<'';cin>>stud[i].C;

cout<<"Java成绩:

"<<'';cin>>stud[i].Java;

stud[i].sum=stud[i].Math+stud[i].English+stud[i].C+stud[i].Java;//总分计算

stud[i].ave=(stud[i].sum)/4.0;//平均分计算

}

cout<<'\n'<<"输入成功,按1保存学生信息进文件夹0返回主界面"<

cout<<"输入:

";

cin>>press;

switch(press)//选择操作

{

case'1':

save();break;//保存文件

}

}

//————————————————显示学生信息——————————————

voiddisplay()//定义一个浏览学生信息的方法display

{

for(i=0;i

{

//显示学生的基本信息到屏幕上

cout<<"\n"<<"第"<

"<

"<

"<

"<

"<

"<

"<

"<

"<

"<

"<

}

}

//—————————————————学生信息查询———————————————

voidquery()//定义一个查询方法query

{

cout<<"1.根据学号查询2.根据姓名查询"<

cin>>press;

switch(press){

case'1':

do

{

cout<<"请输入要查询学生的学号:

";

cin>>fb;//fb是表示将要输入的学号

for(i=0;i

if(stud[i].number==fb)//判断学号是否存在

{

//把查到的信息显示在屏幕上

cout<<"\n"<<"学号:

"<

"<

"<

"<

"<

"<

"<

"<

}

if(stud[i].number!

=fb)//学号不存在时

cout<<"\n"<<"不存在此学号的学生"<

cout<<'\n'<<"\t"<<"按1继续查询0返回成绩操作界面"<

cout<<"输入:

";

cin>>press;

}while(press=='1');break;

case'2':

do{

cout<<"请输入要查询学生的姓名:

";

cin>>fn;

for(i=0;i

if(stud[i].name==fn)//如果姓名存在

{

cout<<"\n"<<"学号:

"<

"<

"<

"<

"<

"<

"<

"<

}

if(stud[i].name!

=fn)//如果姓名不存在

cout<<"\n"<<"不存在此姓名的学生"<

cout<<'\n'<<"\t"<<"按1继续查询0返回成绩操作界面"<

cout<<"输入:

";

cin>>press;

}while(press=='1');break;//当输入1时,返回重新输

default:

cout<<"\t对不起,输入错误"<

}

}

//——————————————学生成绩修改——————————————

voidupdate()//定义一个更新方法update

{

cout<<"1.根据学号查询来修改2.根据姓名查询来修改"<

cin>>press;

switch(press){

case'1':

do

{

cout<<"请输入你要修改的学生学号:

";

cin>>fb;//fb代表学号

for(i=0;i

if(stud[i].number==fb)//如果学号存在,就向屏幕显示如下信息

{

cout<

"<

cout<<"学号:

"<

"<

"<

"<

"<

"<

"<

"<

for(intj=0;j

{

cout<<"请输入新的信息:

"<

cout<<"学号:

"<<'';cin>>stud[j].number;

cout<<"姓名:

"<<'';cin>>stud[j].name;

cout<<"性别:

"<<'';cin>>stud[j].sex;

cout<<"班级:

"<<'';cin>>stud[j].grade;

cout<<"科任老师:

"<<'';cin>>stud[j].teacher;

cout<<"高等数学成绩:

"<<'';cin>>stud[j].Math;

cout<<"大学英语成绩:

"<<'';cin>>stud[j].English;

cout<<"C语言成绩:

"<<'';cin>>stud[j].C;

cout<<"Java成绩:

"<<'';cin>>stud[j].Java;

//将修改后的信息各自赋给

stud[i].number=stud[j].number;

stud[i].name=stud[j].name;

stud[i].sex=stud[j].sex;

stud[i].grade=stud[j].grade;

stud[i].teacher=stud[j].teacher;

stud[i].Math=stud[j].Math;

stud[i].English=stud[j].English;

stud[i].C=stud[j].C;

stud[i].Java=stud[j].Java;break;

}

}

if(stud[i].number!

=fb)

cout<<"不存在此学号的学生"<

cout<<"\n"<<"按1继续查询修改0返回成绩操作界面"<

cout<<"输入:

";

cin>>press;

}while(press=='1');break;

case'2':

do

{

cout<<"请输入你要修改的学生姓名:

";

cin>>fn;

for(i=0;i

if(stud[i].name==fn)//fn代表姓名

{

cout<

"<

//屏幕显示的信息

cout<<"学号:

"<

"<

"<

"<

"<

"<

"<

"<

for(intj=0;j

{

cout<<"请输入新的信息:

"<

cout<<"学号:

"<<'';cin>>stud[j].number;

cout<<"姓名:

"<<'';cin>>stud[j].name;

cout<<"性别:

"<<'';cin>>stud[j].sex;

cout<<"班级:

"<<'';cin>>stud[j].grade;

cout<<"科任老师:

"<<'';cin>>stud[j].teacher;

cout<<"高等数学成绩:

"<<'';cin>>stud[j].Math;

cout<<"大学英语成绩:

"<<'';cin>>stud[j].English;

cout<<"C语言成绩:

"<<'';cin>>stud[j].C;

cout<<"Java成

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

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

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

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