C++学生成绩管理系统 课程设计.docx
- 文档编号:20127845
- 上传时间:2023-04-25
- 格式:DOCX
- 页数:43
- 大小:978.40KB
C++学生成绩管理系统 课程设计.docx
《C++学生成绩管理系统 课程设计.docx》由会员分享,可在线阅读,更多相关《C++学生成绩管理系统 课程设计.docx(43页珍藏版)》请在冰豆网上搜索。
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成
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+学生成绩管理系统 课程设计 C+ 学生 成绩管理系统