




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGE1课程设计报告书《C++程序设计》课程设计学院专业数学与应用数学(统计方向)教师评语教师签名:日期:成绩评定备注
基于记录的应用程序设计一、选题背景本课题应解决的主要问题:编写一个应用程序实现程序化教学应达到的技术要求:该程序可以完成以下功能:向学生提问题;从学生处获得答案;根据学生的答案继续选择下一个问题。本设计的指导思想:在程序中表示教学课程所需的信息;在设计阶段,设计一个合适的数据结构;将数据文件使用的外部表示转换为程序内部表示;编写程序对内部数据库进行操作。二、方案论证(概要设计)设计原理(理念):在老师所给的参考数据结构设计及函数原型设计的基础上,略加修饰,填充函数原型的内部结构,使得函数具备所需要的功能,最终能使程序实现程序化教学。例如:voidReadQuestionText(ifstream&infile,questionT*q)这个函数将问题的文本读入问题数据结构,这必须由调用才可分配。这个问题文本结束的标志是EndMarker,即“”的标记。voidReadAnswers(ifstream&infile,questionT*q)这个函数将问题答案的文本读入答案数据结构。voidAskQuestion(intnum)这个函数用于提出问题。voidWriteQuestionText(questionT*q)这个函数根据问题序号显示问题题目内容。voidFindWriteAnswer(stringans,questionT*q)这个函数用于查找与输入答案匹配的内容。三、过程论述(详细设计)1.数据结构设计*类型名:answerT,这个结构提供空间给每个问题可能的答案structanswerT{stringans;intnextq;};定义answerT为结构体类型,其中包括一个字符串变量ans和一个整型变量nextq,而ans用于储存一个问题的一个答案,nextq用于储存下一个问题的题号。nextq的储存示意图……ans的储存示意图*类型名:questionT,这个结构提供空间给问题和相应的答案structquestionT{stringqtext[MaxLinesPerQuestion+1];answerTanswers[MaxAnswersPerQuestion];intnAnswers;intlinenumber;};定义questionT为结构体类型,其中包括字符串数组qtext[]、属于answerT类型的数组answers[]、整形变量nAnswers和linenumber,而qtext[]用于储存一个问题的文本,answers[]用于储存一个问题的每一个答案,nAnswers用于储存一个问题相应答案的个数,linenumber用于储存每个问题所占行数的行号。…共n行好吧共n行好吧共n个qtext[n]的储存示意图共n个answers[m]的储存示意图………………共m个answerT类型的结构体共m个answerT类型的结构体共m个类型为answerT的结构体共m个类型为answerT的结构体nAnswers的储存示意图Linenumber的储存示意图*类型名:courseDB,这个结构提供空间给文件主题和问题structcourseDB{stringtitle;questionTquestions[MaxQuestions+1];};定义courseDB为结构体类型,其中包括字符串变量title和属于questionT类型的数组questons,而title用于储存题目文本,questions[]用于储存问题和相应的答案。………courseDB的储存示意图questions[N]的储存示意图……有有MaxAnswersPerQuestion个类型为answerT的结构体有N个类型为questionT的结构体有N个类型为questionT的结构体………………有MaxAnswersPerQuestion个类型为answerT的结构体有MaxAnswersPerQuestion个类型为answerT的结构体…………外部数据文件的格式说明c++程序设计复习1c++程序设计复习1复习int或bool类型?输入:int/bool请选择:int:2bool:102判断题:int可以有小数部分。请输入:(对/错)对:3错:53答错了!浮点数有小数部分,整数没有。判断题:int可以取负值。请输入:(对\错)对:5错:44答错了!你必须再复习一下课本。要重新测试吗?(是/否)是:1否:-1说明:如左图所示,首行为文本题目(尽量控制在一行内且不能出现空格,否则会出现问题),其次是问题的布局,每一个问题的首行为问题的序号1、2、3、……,接着换行写入问题的主要内容,问题完毕后,换行,以“”为标志,划分问题内容文本与程序执行文本,写入每一个正确答案之后以“:”分隔(注意:此处的冒号是英文的冒号而非中文的冒号),写入下一题的题号,再换行。直至将每一个问题文本写入后,增添最后一个问题,且对于最后一个问题“”以上的内容要提示操作者是否重新测试,“”以下的内容为:是:1否:-1在输完文本后,最后要空留一行,即按一下回车键3.函数设计说明:*函数原型:voidReadQuestionText(infile,question);函数功能:这个函数将问题的文本读入问题数据结构,记录问题文本所占用的行数。这个问题文本结束的标志是EndMarker,即“”的标记。函数算法描述:先定义ch为字符串变量,再从文件中读取一行数据储存于字符串变量ch中,如若ch不等于结束标志“”且不是空行,则使问题文本行数增加1,最后可得问题文本所占用的总行数。*函数原型:voidReadAnswers(ifstream&infile,questionT*q)函数功能:这个函数将问题答案的文本及其相应的题号读入答案数据结构。函数算法描述:在分界符“”后,用q->answers[++(q->nAnswers)].ans数组分别将各个答案储存起来,再以答案后的“:”为标志,用q->answers[q->nAnswers].nextq数组将其后的题号存储起来。*函数原型:voidWriteQuestionText(questionT*q)函数功能:这个函数根据问题序号显示问题题目内容函数算法描述:通过循环,将每一个问题的文本一行行地输出。*函数原型:intFindWriteAnswer(stringans,questionT*q,intnum)函数功能:这个函数用于查找并返回与答案匹配的相应的题号。函数算法描述:从主调函数中,传入参数ans、结构体questionT的地址和题号num,通过循环,倘若输入的答案与所给答案相同,则返回相应答案的下一题题号,倘若不相同,则返回原题号num。*函数原型:voidAskQuestion(intnum)函数功能:这个函数用于提出问题,这必须由调用才可分配,无返回值。函数算法描述:通过循环,调用WriteQuestionText函数输出问题,再由测试者从函数中输入答案,再调用FindWriteAnswer函数返回下一题题号赋值于num,如果num的值为下一题号,则再次执行循环,如果num的值为-1,则跳出循环。四、结果分析1.测试方法:先输入文件名(文件名后需添加“.dat”),再按回车键则如图显示: 再按题目指示输入答案:如果输错答案,程序会把题目重新显示并要求再次输入:当全部题目完成后,程序会问是否重新测试,若输入是,则返回第一题重新测试:若输入否,则结束程序:2.调试过程总结:*编译时遇到的主要典型错误:编程时循环范围掌握不当,导致达不到原有目的,甚至陷入死循环。解决方案:重新思考,适当控制循环范围,使循环能够顺利跳出。*连接时遇到的主要典型错误:文件名输入错误,少输入了“.dat”。解决方案:补充“.dat”即可。*编译和连接都成功,但结果不对时,主要典型错误:当在某个问题里输入了与所供选答案都不同时,程序会直接跳出循环,结束程序,而不是重新问问题。解决方案:修改循环中的某个函数的返
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浙江育英职业技术学院《文学概论》2023-2024学年第一学期期末试卷
- 福建警察学院《软件测试与维护》2023-2024学年第二学期期末试卷
- 惠州工程职业学院《古典诗词鉴赏与吟诵》2023-2024学年第二学期期末试卷
- 宁德师范学院《科技写作与科研素养》2023-2024学年第二学期期末试卷
- 保安证考试前瞻性试题及答案
- 保安证考试全面发展题及答案
- 四川省眉山市彭山区一中2025届高三下学期期末质量评估物理试题试卷含解析
- 2025届三明市重点中学高三下学期第四次适应性训练英语试题含解析
- 江苏省盐城市亭湖区校联考2024-2025学年九年级下学期3月月考语文试题(含答案)
- 15 2025年高中化学科学素养模拟试题及答案
- Q∕SY 08007-2017 石油储罐附件检测技术规范
- 教学课件:《新能源材料技术》朱继平
- 四川大学C语言上机考试题
- 2022年芜湖职业技术学院职业适应性测试题库及答案解析
- DBJ∕T 15-134-2018 广东省地下管线探测技术规程
- 人岗匹配分析和总结
- 幼小衔接拼音课程 课件(共49张PPT)
- 《S7-1200-PLC-编程及应用技术》试题试卷及答案2套
- 三年级下册口算天天100题(A4打印版)(共32页)
- 河南土地承包经营权技术方案
- 堤中纳言物语虫姫君词语解释和中日翻译
评论
0/150
提交评论