计算机学院信息管理与信息系统专业《程序设计综合课程设计》报告(2010/2011学年第一学期)学生姓名:学生班级:1学生学号:指导教师:2011年1月7日目录Ⅰ第一章课程设计的目的和要求............................................11.1课程设计的目的...............................................11.2课程设计的目标...............................................11.3课程设计要求.................................................2第二章课程设计任务内容................................................32.1课程设计题目.................................................32.2背景.........................................................32.3功能需求.....................................................32.4系统模块图...................................................4第三章详细设计说明....................................................53.1主函数的流程图...............................................53.2输入歌手数据.................................................63.3查询歌手数据.................................................73.4编码与调试...................................................8第四章软件使用说明及运行结果..........................................94.1使用说明.....................................................94.2运行结果....................................................10第五章课程设计心得与体会.............................................13附录1:参考文献.......................................................15附录2:程序清单.......................................................16程序设计综合课程设计1歌手比赛系统第一章课程设计的目的和要求1.1课程设计的目的C++语言课程设计的主要目的是培养学生综合运用C++程序设计课程所学到的知识,编写C++程序解决实际问题的能力,以及严谨的工作态度和良好的程序设计习惯。通过课程设计的训练,学生应该能够了解程序设计的基本开发过程,掌握编写、调试和测试C++语言程序的基本技巧,充分理解结构化程序设计的基本方法。C++语言程序设计的主要任务时要求学生遵循软件开发过程的基本规范,运用结构化程序设计的方法,按照课程设计的题目要求,分析、设计、编写、调试和测试C++语言程序及编写设计报告。本次课程设计是通过设计一个较为简单的“歌手比赛系统”,进一步熟悉C++中有关各种知识的运用与掌握。了解系统开发的需求分析、模块分析、程序流程图、编码测试、模块组装与整体调试的全过程,加深对C++的理解与VisualC++环境的使用;逐步熟悉程序设计的方法,并养成良好的编程习惯,进一步培养完善的C++编程设计思维,为以后进行软件编程、数据库管理等深入学习打下一个牢固基础1.2课程设计的目标本课程设计的目标:1.巩固和加深学生对C++语言课程的基本知识的理解和掌握;2.掌握C++语言编程和程序调试的基本技能;3.掌握利用C++语言进行软件设计的方法;4.提高书写程序设计说明文档的能力;5.提高运用C++语言解决实际问题的能力。程序设计综合课程设计21.3课程设计要求基本要求:1.题目:设计一个“歌手比赛系统”软件;2.了解该系统软件开发的相关背景;3.参考相关书籍学习课程设计的基本知识;4.清楚所开发系统软件的各个相关功能,以便顺利开发系统软件;5.对系统功能模块进行分析,写出设计说明文档;6.设计完成的软件要便于操作和使用;7.对自己所设计的程序进行调试,并不断完善;8.在设计过程中熟练掌握软件编程的相关知识;9.详细体会并记录相关过程,并将心得体会写在课程设计报告中;10.设计完成后提交课程设计报告。程序设计综合课程设计3第二章课程设计任务内容2.1课程设计题目歌手比赛系统。2.2背景时下,无论是社会上某些场合还是校园内,经常举行一些歌手演唱比赛,一般不会再像以前那样用笔记录比赛的情况,歌手比赛系统由此产生。它几乎包含了一切应有的功能,歌手信息的输入,评委打分,成绩排序等功能应有尽有,省去了很多麻烦的环节,完全可以满足一次歌手比赛的需求。开发此系统只为方便一般的歌手比赛。2.3功能需求用C++实现歌手比赛系统。该系统主要有以下功能:1、系统以菜单方式工作;2、歌手数据录入功能(歌手数据用文件保存)--输入;3、歌手成绩(评委打分)录入功能—输入:按输入选手的顺序对其分别打分,输入每个评委的评分,对一个选手打完分之后,显示其总分和平均分;4、计算总成绩和平均成绩(去掉一个最高分和一个最低分);5、歌手成绩排序(按平均分):对选手按平均分进行排序,输出选手的姓名、编号、总分和平均分;6、歌手成绩查询功能—算法;按编号查询:输入编号,如果存在,输出选手的数据,不存在,输出“信息不存在”。按姓名查询:输入选手姓名,存在,则输出选手数据,不存在,则输出“信息不存在”;7、追加选手数据(包括歌手姓名和编号):如果添加的选手已经存在,则不能插入,不存在,则输出“成功插入”。8、写入数据文件:将输入的信息进行保存,保存到自己所写的文件中。程序设计综合课程设计42.4系统模块图以下是歌手管理系统的模块图:图2-1系统模块图歌手管理系统创建歌手信息评委打分成绩排序数据查询追加选手数据写入数据文件退出系统程序设计综合课程设计5第三章详细设计说明3.1主函数的流程图图3-1主函数流程图输入选手数据是否继续输入查询选手数据追加选手数据结束YN成绩排序成绩输入开始程序设计综合课程设计63.2输入歌手数据输入函数:刷新此前的显示界面,然后输入在执行上步操作后的显示界面Singer*create()包含的参数有:选手姓名stringname;编号longnum。图3-2输入函数流程图输入歌手编号、姓名开始添加错误该信息是否存在结束NY添加到文件程序设计综合课程设计73.3查询歌手数据查询函数:刷新此前的显示界面,然后查询在执行上步操作后的显示界面按姓名查询:voidinquire();参数:姓名stringname按编号查询:voidinquire()。参数:编号longnum图3-3查询函数流程图输入歌手编号或姓名开始是否存在结束NY显示所查询歌手数据程序设计综合课程设计83.4编码与调试此程序包含六个函数:main();Singer*create();voidprint();Singer*insert();voidsave();voidmenu();voidgrade();voidrank();voidwelcome();voidinquire();Singer*import();其中:main()为主函数,可输出开机界面;voidmenu()功能选择界面,按提示可提供相关服务;Singer*create()创建歌手信息表,输入选手相关数据;voidprint()输出函数,输出选手的相关数据;Singer*insert()插入函数,插入新的选手的数据;voidsave()写入数据文件的函数,将选手的数据保存到文件夹中;voidgrade()评委打分函数,输入评委所打的分数;voidrank()成绩排序函数,对选手按平均分进行排序,并输出最终结果;voidwelcome()该函数的作用是清空屏幕;Singer*import()文件导入函数,从某文件把选手信息导入系统。程序设计综合课程设计9第四章软件使用说明及运行结果4.1使用说明该程序可以实现对选手有关信息查找的功能,安装VisualC++6.0英文版后,在工具栏“file”中单击“new”选项,单击“files”菜单,选择“C++Sourcefile”输入文件名“歌手比赛系统”。开始输入程序,程序输入完成,单击“build”工具栏,选择“build[歌手比赛系统.cpp1]”,待程序无误后,开始执行程序。根据数据结构、函数功能和主要的流程图,进行录入源代码操作。在编码时,注意代码的书写规范,包括命名惯例、注释、分隔和缩进等,这样使程序层析清晰,增强可读性和可维护性。编码操作完成后,先静态检查一下有没有语法错误,然后进行编译,更深一步检查语法错误。待编译通过时,运行程序,观察是否能够正常运行,如果有问题,再去修改源程序,直至达到了预期的效果。程序设计综合课程设计104.2运行结果1、初始界面,提供功能选择,输入相应数字或字母。图4-1程序截图一2、选择1,输入选手信息,包括姓名和编号(编号必须是阿拉伯数字)。图4-2程序截图二程序设计综合课程设计113、评委打分界面,会依次提醒输入每个评委所打的分数(分数必须是0到100之内的数),输入完毕,显示选手的总分和平均分,也就是最终得分。图4-3程序截图三4、成绩排序界面,输入选择“4”,输出排序的结果,显示有选手的编号、姓名、总分和平均分,排序是按平均分。图4-4程序截图四程序设计综合课程设计125、下面是查询界面,可按姓名或者编号查询,输出选手信息。图4-5程序截图五6、追加选手数据,输入新增选手的姓名和编号。图4-6程序截图六7、写入数据文件,保存信息到自己建立的文件内。图4-7程序截图七程序设计综合课程设计13第五章课程设计心得与体会课程设计刚开始的时候,我真的感觉到无从下手。因为已经过去一个学期了,期间又没有怎么看书,大一的时候学的c++,不过基本上已经忘光了,而且那时候学的不深,如果单单写一个比较的小的程序还可以,大程序基本写不了。当老师把题目发给我们之后,刚开始是一筹莫展,不过短时间内就已经觉醒,重新对题目分析了一遍,了解了一下要用到哪方面的知识,然后着手去看书,重新熟悉一下以前的知识。然后去图书馆借了一些关于数据结构和c++的书。看过那些书之后,信心增加了不少,对接下来的程序编译有很大帮助。通过这三周的课程设计,我独立完成了一个较大的C++语言程序的设计,并认真完成了课程设计报告。回忆这三周的时间,我收获很大。首先,我熟练地运用了所学的知识编写程序,并成功的完成,感觉成就感很强,这大大激发了我编程的兴趣;其次,在设计的过程中遇到了一些困难,我会认真的去思考,或者充分利用网络资源来寻求帮助,提高获取信息的能力。课程设计期间,我有向老师和同学寻求帮助,在交流中共同进步。最后,我了解了软件开发的大体过程及各个步骤,这对将来的学习和工作是很有帮助的。对于信管专业的大学生来说,积累实战经验是一项极其重要的内容,很可能成为将来就业的敲门砖。而程序设计综合课程设计就是积累实战经验的一个过程,虽然程序的规模并不大,但能够让我们尽早地认识软件开发的重要性和必要性,为将来的就业打下坚实的基础。经过两个星期的上机实践学习,使我对C++语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机