《C++程序设计》课程设计--基于记录的应用程序设计.docx
《《C++程序设计》课程设计--基于记录的应用程序设计.docx》由会员分享,可在线阅读,更多相关《《C++程序设计》课程设计--基于记录的应用程序设计.docx(13页珍藏版)》请在第一文库网上搜索。
1、课程设计报告书C+程序设计课程设计学院数学学院专 业 数学与应用数学(统计方向)基于记录的应用程序设计一、选题背景本课题应解决的主要问题:编写一个应用程序实现程序化教学应达到的技术要求:该程序可以完成以下功能:向学生提问题;从学生处获得答案;根据学生的答案继续选择下一个问题。本设计的指导思想:在程序中表示教学课程所需的信息;在设计阶段,设计一个合适 的数据结构;将数据文件使用的外部表示转换为程序内部表示;编写程序对内部数据库进 行操作。二、方案论证(概要设计)设计原理(理念):在老师所给的参考数据结构设计及函数原型设计的基础上,略加 修饰,填充函数原型的内部结构,使得函数具备所需要的功能,最终
2、能使程序实现程序化 教学。例如:void ReadQuestionText (ifstream &inf ile, question? *q)这个函数将问题的文本读 入问题数据结构,这必须由调用才可分配。这个问题文本结束的标志是EndMarker,即“的标记。void ReadAnswers (ifstream feinfile, question? 类型名:question?,这个结构提供空间给问题和相应的答案struct question? string qtextMaxLinesPerQuestion+1;answer? answersMaxAnswersPerQuestion;int
3、nAnswers;int linenumber;);定义questionT为结构体类型,其中包括字符串数组qtext 、属于answerT类型 的数组answers 、整形变量nAnswers和IinenUmber,而qtext 用于储存一个问题 的文本,answers用于储存一个问题的每一个答案,nAnswers用于储存一个问题相应 答案的个数,linenumber用于储存每个问题所占行数的行号。q)这个函数将问题答案的文本读 入答案数据结构。void AskQuestion(int num)这个函数用于提出问题。void WriteQuestionText (question? *q)这个
4、函数根据问题序号显示问题题目内容。void FindWriteAnswer (string ans, question? *q)这个函数用于查找与输入答案匹 配的内容。三、过程论述(详细设计)1 .数据结构设计*类型名:answer?,这个结构提供空间给每个问题可能的答案struct answer?string ans;int nextq;);定义answer?为结构体类型,其中包括一个字符串变量ans和一个整型变量nextq, 而ans用于储存一个问题的一个答案,nextq用于储存下一个问题的题号。ans的储存示意图nextq的储存示意图qtext n的储存示意图answers m的储存示意
5、图nAnswers的储存示意图共m个类型为answerT的结构体T类型的Linenumber的储存示意图*类型名:courseDB,这个结构提供空间给文件主题和问题struct courseDBstring title;question? questionsMaxQuestions+1;);定义courseDB为结构体类型,其中包括字符串变量title和属于question?类型的 数组questons,而title用于储存题目文本,questions 用于储存问题和相应的答案。CourseDB的储存示意图questions N 的储存示意图MaxAnswersPerQuesti on个类型为
6、answerT 的结构体有N个类型为quesron的结构体2.外部数据文件的格式说明C+程序设计复习1复习int或bool类型?输入:int/bool请选择:int: 2bool:102判断题:int可以有小数部分。请输入:(对/错)说明:如左图所示,首行为文本题目(尽量控制在一 行内且不能出现空格,否则会出现问题),其 次是问题的布局,每一个问题的首行为问题的 序号1、2、3、,接着换行写入问题的主要内容,问题完毕后,换行,以“3 ,函数设计说明:* 函数原型:void ReadQuestionText (inf ile, question);函数功能:这个函数将问题的文本读入问题数据结构,
7、记录问题文本所占用的行数。这个 问题文本结束的标志是EndMarker,即“”的标记。函数算法描述:先定义Ch为字符串变量,再从文件中读取一行数据储存于字符串变量Ch 中,如若Ch不等于结束标志“”且不是空行,则使问题文本行数增加1,最后可得 问题文本所占用的总行数。* 函数原型:VOid WriteQuestionText (question? *q)函数功能:这个函数根据问题序号显示问题题目内容函数算法描述:通过循环,将每一个问题的文本一行行地输出。* 函数原型:int FindWriteAnswer (string ans, question? *q, int num)函数功能:这个函数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+程序设计 C+ 程序设计 课程设计 基于 记录 应用
