课程设计说明书Word文件下载.docx
- 文档编号:18374008
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:14
- 大小:152.11KB
课程设计说明书Word文件下载.docx
《课程设计说明书Word文件下载.docx》由会员分享,可在线阅读,更多相关《课程设计说明书Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
6、课程设计总结....................................................15
7、附件............................................................15
课程设计指导教师评语...............................................16
1、课程设计目的
巩固和加深学生对C++课程的基本知识的理解和掌握,掌握C++编程和程序调试的基本技能,利用C++进行软件设计的基本思路和方法并初步了解面向过程和面向对象的编程思想,提高运用C++解决实际问题的能力,培养学生的实际操作能力和团对协作能力,为以后的工作打下坚实的基础。
2、课程设计任务与要求
本次课程设计有两个任务1.阅读指定示例程序2.完成运动会管理系统的设计
3、C++语言成绩管理系统
3.1问题描述与功能设计
要设计一个具有C++课程成绩管理功能的系统。
用于教师对每位学生的C++成绩进行管理。
要求实现以下功能:
1.可以输入学生成绩信息数据,包括学号,姓名,平时成绩,实验成绩,考试成绩。
(可以键盘输入,也可以从文件中读取)2.对全体学生成绩进行排序。
可以查询前十名和后十名的学生,及成绩不及格的人数。
3.可以用以下方式进行查询:
用学号或用姓名查询个人成绩。
3.2概要设计
根据要求实现的功能所得到的该系统的框架图。
成绩管理系统,总概况图:
C++语言成绩管理系统
前10名
不及格
学号
键盘输入
文件输入
成绩查询
成绩统计
退出系统
成绩输入
成绩浏览
姓名
后10名
3.3详细设计
详细设计的主要内容:
1.Main()函数的流程图及调用关系:
开始
VoidMainMene()
判断
nchoiceis1voidResultsBrowser()break
nchoiceis2voidResultsInput()break
nchoiceis3voidResultsCount()break
nchoiceis4voidResultsInquirt()break
显示错误break
结束
当nchoice=4时选择调用函数ResultInquirt()时,此时进入子菜单,则他们之间的调用关系为
nchoiceis1InquiryByNo(pRshead)break
nchoiceis2InquiryByName(pRshead)break
nchoiceis3nquiryFail(pRshead)break
nchoiceis4InquiryHead10(pRshead)break
nchoiceis5InquiryTail10(pRshead)break
nchoiceis0break
判断是否为0
对于成绩浏览、成绩统计、成绩查询均需要显示结果,因此可设计一成绩结
果显示函数,其主要功能是:
对于一次显示多个学生成绩信息采用列表方式,对于显示单个或几个学生信息可采用逐个显示方式,显示格式分别如下:
列表方式:
序号学号姓名平时成绩实验成绩考试成绩总成绩
12010111001张三丰98.5085.5095.5094.80
2…
逐个显示方式:
序号:
1
学号:
2010111001
姓名:
张三丰
平时成绩:
98.50
实验成绩:
85.50
考试成绩:
95.50
总成绩:
94.80
该函数程序流程图可表示为:
开始
输入目录
F
目录存在?
T
列表显示?
TF
显示表头
显示一条记录
还有记录?
?
列表显示一条记录
FF
结束
对于程序存储结构,我们可以采用嵌套结构体和单向链表方式进行内存管理,对于外部存储,可以采用二进制文件方式也可以采用文本文件方式管理。
从数据安全和操作方便考虑,一般采用二进制文件方式管理,此时可直接将内存数据映射到外部文件,但该方式不便于数据与其它系统进行交换;
如果采用文本文件方式管理,内存数据与外部数据文件必须进行相应变换,但便于数据交换。
//-------------------------------------
structResults//学生成绩
{
intnNo;
//学号
charchName[10];
//姓名
floatfUsually;
//平时成绩
floatfExperiment;
//实验成绩
floatfExam;
//考试成绩
floatfTotality;
//总成绩
Results*pNext;
//指向下一位学生成绩
};
//-------------------
Results*pRsHead;
数据以二进制方式读写例程为
//从文件以二进制方式读入内存
while(!
fileIn.eof())
pRsNew=newResults;
fileIn.read((char*)pRsNew,sizeof(*pRsNew));
if(pRsHead==NULL)
pRsHead=pRsNew;
else
pRsNew->
pNext=pRsHead;
}
//数据保存到文件
pRsCur=pRsHead;
while(pRsCur!
=NULL)
fileOut.write((char*)pRsCur,sizeof(*pRsCur));
pRsCur=pRsCur->
pNext;
4、运动会管理系统
4.1问题描述与功能设计
主要是模拟解决一场运动会举行时,如何查询、管理比赛项目(含时
间、地点、选手等信息)和选手信息(含参加的比赛项目、成绩、名次等信息)。
在此管理系统中,一个比赛项目有多名运动员参赛,而一名运动员只能参加一种
比赛项目。
1、功能要求及说明
(1)比赛项目信息(编号、名称、比赛时间、比赛地点)的录入、删除;
(2)运动员信息(编号、姓名、成绩、名次、比赛项目编号)的录入、删除;
(3)赛事查询:
运动员参赛查询和比赛项目参赛运动员查询
(4)系统参考界面如下
比赛项目录入
比赛项目删除
运动员信息录入
运动员信息删除
赛事查询—运动员
赛事查询—参赛项目
2、完成以下功能:
比赛项目的添加、删除、查询,运动员信息
的录入、删除、查询,比赛项目和运动员信息的文件读入和保存
3、要应用以下知识点:
格式文件的输入、输出,类的定义,文
件访问,对象链表的操作,简单的排序算法、查找算法等。
4.2概要设计
1、定义项目信息类、运动员信息类;
2、定义项目信息对象和运动员对象链表类;
3、分析设计各类的属性及其所有的操作;
4、程序设计、实现、调试;
4.3详细设计
1、boolFileExist(stringPathName)
2\boolFreeMem(Athletics*sHead)//释放链表内存
3、Athletics*AthleticsFromFile(stringAthleticsPathName)//从给定的文件读取运动员信息
4、boolAthleticsToFile(stringAthleticsPathName,Athletics*sHead)//追加保存数据到文件
5、boolAthleticsToFileDele(stringAthleticsPathName,Athletics*sHead)//保存(删除已存在数据保存新数据到文件)
6、boolFreeMem1(Game*sHead)
7、Game*GameFromFile(stringGamePathName)//类似于上一个函数的实现
8、boolGameToFile(stringGamePathName,Game*sHead)//追加保存数据到文件
9、boolGameToFileDele(stringGamePathName,Game*sHead)//保存(删除已存在数据保存新数据到文件)
10、intMenuMain()//信息主菜单
11、Athletics*SSort(Athletics*sHead)//运动员信息按编号排序
12、Game*SSort1(Game*sHead)//项目信息按编号排序
13、boolGameInput()//项目信息的录入
14、intgame_project_menu()//4:
比赛项目的录入
15、Game*Delete1(Game*sHead,Game*sCur)//删除某个项目的信息
16、boolDelete_By_Number1(Game*sHead)//通过项目编号删除
17、boolGameDelete()//删除文件中的信息并保存
18、intgame_delete_menu()//比赛项目的删除
18、boolDisplayT()//显示项目信息
19、boolDisplay(Game*sHead,intnum)//显示具体编号的项目
20、boolShow_Game_Information(Game*sHead)//显示项目信息菜单
21、boolInquiry_ByStus_Game(Game*sHead)//通过编号查询项目信息
22、intgame_check_menu()//查看比赛项目信息菜单
23、boolAthleticsInput()//运动员录入信息
24、intathletics_project_menu()//运动员信息的录入的菜单调用
25、Athletics*Delete(Athletics*sHead,Athletics*sCur)//删除某个运动员的信息
26、boolDelete_By_Number(Athletics*sHead)//通过运动员编号删除运动员信息
27、boolAthleticsDelete()//运动员的删除函数的调用
I28、ntathletics_delete_menu()//运动员的删除菜单
29、boolDisplayT2()//运动员信息的显示
30、boolDisplay2(Athletics*sHead,intnum)//显示运动员的信息
31、boolShow_Athletics_Information(Athletics*sHead)//显示所有的运动员的信息
32、boolInquiry_ByStus_Athletics(Athletics*sHead)//通过学号查询运动员信息
33、intathletics_check_menu()//查看运动员信息的函数调用
I34、ntDisplay_Project()//运动员比赛信息显示
35、intProject_Input()//录入某个项目参加的运动员及其对应的比赛成绩
36、intgame_information()//比赛项目的主菜单
课程设计流程图
定义各种变量
输入
是
nChoice>
9或者nChoice<
否
nChoice=0?
=1=2=3=4=5=6=7=8=9
athletics_delete_menu
athletics_project_menu
athletics_check_men
Inquiry_ByStus_Athletics
Inquiry_ByStus_Game
game_delete_menu
game_check_menu
game_information
game_project_menu
Display
Display2
Show_Athletics_Information
AthleticsDelete
AthleticsInput
GameInput
GameDelete
Choice=1?
Show_Game_Information
Project_Input
Choice=2?
Delete_By_Number
Delete_By_Number1
DisplayT2
Display_Projectmation
Delete1
Delete
DisplayT
4.4程序源代码附件形式提供。
(见附件一)
4.5测试数据与测试情况
1.录入:
2查看:
3删除:
5、参考文献
【1】钱能,C++程序设计教程(修订版)-设计思路与实现,清华大学出版社,2009年7月。
【2】Y.Danielliang著,王刚,刘晓光,刘璟译:
C++程序设计,机械工程出版社,2009年11月。
【3】郑秋生:
C/C++程序设计教程,电子工业出版社,2007年10月。
6、课程设计总结
通过此次的课程设计,巩固了以前的理论知识,能更加的灵活运用C++的链表,和文件的的输入。
对类的理解更加深刻,对面向对象的设计理念有了基本认识,更懂得了团队合作的重要性。
7、课程设计指导教师评语
课程设计指导教师评语
班级:
计科122学生姓名:
张红学号:
20121111056
指导教师评语(包括工作态度,遵守纪律;
基本理论、知识、技能;
独立工作能力和分析解决问题的能力;
完成任务情况及水平):
学生成绩(百分制):
指导教师签名:
年月日
附件
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 说明书
![提示](https://static.bdocx.com/images/bang_tan.gif)