程序设计题一:  保龄球分数计算
指导老师:王传栋(chdwang_em@163
问题描述】
本程序完成多名学生的保龄球计分。用户依序输入每局所打的球数,程序会根据保龄球的计分规则计算所得到的分数,并根据用户要求完成所得分数的排序和查。
【功能要求】
1)学生信息包括:
学号,姓名,出生(年,月,日),得分。
2)需要实现的功能
1) 建立学生信息结构数组
2) 从键盘输入并显示每局的球数
3) 求得并显示每名学生的分数
4) 按分数递减选择排序
5) 显示按分数排序后学生信息
6) 按学号查学生信息和分数(顺序查法)
7) 将排序后的内容存为文件,以后显示时直接从文件中调出而不用再执行排序算法。
【程序设计的具体说明】
数据结构如何打分数:
结构类型的层次结构:
   
struct student{    /*  学生信息结构 */
                    char no[9];                /* 学号 */
                    char name[9];            /* 姓名 */
                    struct date birthday;    /* 出生日期 */
                    int score;            /* 保龄球得分 */
};
为减少参数传递,程序中用到的学生结构体数组可以定义为一个全局变量:
struct student stu[20];
保龄球计分规则分析:(如不清楚,可以自己查相关规则)
(1) 保龄球一场共10局,每一句最多打两球,至少打一球。
(2) 每一局共有10个瓶子,击倒一个瓶子得1分。若第1局到第9局的第一个球击倒10个瓶子(全倒),则跳入下一局,不需要打第2个球。
(3) 若第10局的第1个球击倒10个瓶子,或者第10局的2个球加起来击倒10个瓶子(补中),
则第10局可以打第3个球。
(4) 保龄球10局最少打11个球,最多打21个球。
(5) 计分方式若该局中第1球击倒10个瓶子,则本局分数加计下局的两球的分数;若一局中第1球加第2球共击倒10个球则本局分数会加计下局第1球的分数;若一局2球没有击倒10个瓶子,该局只计击倒瓶子的分数。
【程序设计的开发环境】
VC++6.0,在内存中的各种操作可以采用一维数组方式或是指针方式。
1对学生课程设计两周的纪律及提交内容的要求:
(1) 规定上机的时间内不得无故缺勤,有事需要向指导老师书面请假;
(2) 上机时禁止玩游戏,屡教不改者,实习成绩可为不及格;
(3) 每人手头准备一至两本C/C++的有关工具书,上机前作好充分的准备,包括事先写好主要算法的程序代码以保证充分利用上机的时间调试程序;
(4) 同组可以讨论思路,但是程序要自己完成,不可抄袭,若完全抄袭别人的,实习成绩可为不及格;
(5) 实习的最后阶段认真完成实习报告,电子文档,统一用A4纸打印,封面正反打印,在左侧面装订,报告内容不得少于15。程序设计报告的首页指导单位处,填上:计算机学院软件工程系
(6) 每个学生最后提交的材料:
程序设计报告的打印件,装订好;
压缩文件一个,起名为:程序设计_学号.rar(如:程序设计_B07030127.rar)。
注,该压缩文件中包含下列几个文件:
程序设计报告封面文档(起名为:程序设计封面_学号.doc
程序设计报告的电子文档(起名为:程序设计报告_学号.doc
源程序文件(起名为:程序设计_学号.cpp
原始数据文件(如:stud.dat
编译链接后得到的可执行文件(起名为:程序设计_学号.exe
7)请同学独立完成报告,若发现两份报告一模一样,则两人都按不及格论处
2:本班课程设计上机安排:
上机地点:见通知
3:成绩的评定
根据学生平时的上机出勤情况、为上机所作的准备情况、上机时的表现、程序的完成情况、报告的完成情况、验收答辩时的表现等综合打分。等级为:优秀、良好、中等、及格、不及格。
4:课程设计报告具体内容要求
保龄球分数计算
(题目格式:宋体,3号,加粗,居中对齐)
一、 课题内容和要求(格式:宋体,4号,加粗,两端对齐)
该部分可参考前面给出的问题描述再加以细化一些
(正文格式:宋体,小4号,不加粗,两端对齐,1.5倍行距)
二、需求分析(格式:宋体,4号,加粗,两端对齐)
在该部分中叙述每个模块的功能要求
(正文格式:宋体,小4号,不加粗,两端对齐,1.5倍行距)
三、概要设计  (格式:宋体,4号,加粗,两端对齐)
在此说明每个部分的算法设计说明(可以是描述算法的流程图),每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义,如果用面向对象的方法,应该给出类中成员变量和成员函数原型声明)。
(正文格式:宋体,小4号,不加粗,两端对齐,1.5倍行距)
四、详细设计  (格式:宋体,4号,加粗,两端对齐)
各个算法实现的源程序(可以是一组源程序,每个功能模块采用不同的函数实现),源程序要按照写程序的规则来编写。要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。
(正文格式:宋体,小4号,不加粗,两端对齐,1.5倍行距)
五、测试数据及其结果分析(格式:宋体,4号,加粗,两端对齐)
(正文格式:宋体,小4号,不加粗,两端对齐,1.5倍行距)
六、调试过程中的问题(格式:宋体,4号,加粗,两端对齐)
每个模块设计和调试时存在问题的思考(问题是哪些?问题如何解决?),以及算法的改进设想。
(正文格式:宋体,小4号,不加粗,两端对齐,1.5倍行距)
七、课程设计总结(格式:宋体,4号,加粗,两端对齐)
总结可以包括 : 程序设计过程的收获、遇到的问题,遇到问题解决问题过程的思考、程序调试能力的思考,对该课程组织和考核方式的建议等
(正文格式:宋体,小4号,不加粗,两端对齐,1.5倍行距) 
爱人者,人恒爱之;敬人者,人恒敬之;宽以济猛,猛以济宽,政是以和。将军额上能跑马,宰相肚里能撑船。
  最高贵的复仇是宽容。有时宽容引起的道德震动比惩罚更强烈。
  君子贤而能容罢,知而能容愚,博而能容浅,粹而能容杂。
  宽容就是忘却,人人都有痛苦,都有伤疤,动辄去揭,便添新创,旧痕新伤难愈合,忘记昨日的是非,忘记别人先前对自己的指责和谩骂,时间是良好的止痛剂,学会忘却,生活才有阳光,才有欢乐。
  不要轻易放弃感情,谁都会心疼;不要冲动下做决定,会后悔一生。也许只一句分手,就再也不见;也许只一次主动,就能挽回遗憾。