第十二讲 C语言大作业的设计思路
- 格式:doc
- 大小:52.50 KB
- 文档页数:6
c语言编程思路C语言编程思路引言C语言是一种广泛应用的编程语言,具有高效、简洁、灵活的特点。
在进行C语言编程时,良好的编程思路是非常重要的,它能够帮助我们更好地理解问题、分析需求,并设计出合理的解决方案。
本文将介绍一些常用的C语言编程思路,帮助读者提高编程效率和质量。
一、理清问题在进行C语言编程之前,我们首先需要理清问题,明确自己要解决的具体需求。
这包括明确输入、输出的数据类型和格式,以及所需的计算或处理过程。
只有深入理解问题,才能更好地为其设计合理的解决方案。
二、分析需求在理清问题之后,我们需要对问题进行深入分析,找出问题的关键点和难点。
这包括确定所需的算法或数据结构,以及需要使用的C 语言特性或库函数。
通过对需求的仔细分析,可以更好地为问题设计合适的解决方案。
三、设计算法在分析需求之后,我们需要根据问题的特点和需求设计出合适的算法。
在设计算法时,我们可以使用流程图、伪代码等工具来辅助思考和表达。
良好的算法设计能够提高程序的执行效率和可维护性,同时也使程序更易于理解和调试。
四、选择合适的数据结构在进行C语言编程时,我们需要根据问题的特点选择合适的数据结构。
C语言提供了丰富的数据结构,如数组、链表、栈、队列等,我们可以根据需求选择最合适的数据结构来存储和处理数据。
合理选择数据结构能够提高程序的执行效率和内存利用率。
五、模块化设计在进行C语言编程时,我们可以将程序划分为多个模块,每个模块负责完成特定的功能。
模块化设计能够提高代码的可读性和可维护性,同时也便于团队协作和代码重用。
我们可以使用函数、结构体等C语言特性来实现模块化设计。
六、编写代码在完成算法和数据结构的设计之后,我们就可以开始编写代码了。
在编写代码时,我们应该遵循良好的编码风格,包括代码缩进、命名规范、注释等。
良好的代码风格能够提高代码的可读性和可维护性,同时也使代码更易于调试和修改。
七、测试和调试在编写完代码之后,我们需要对程序进行测试和调试,以验证程序的正确性和稳定性。
C语言程序设计上机实践大作业专业:班级:姓名:学号:课题名称:说明1、设计的目的1)复习巩固C语言的基础知识,进一步加深对C语言编程的理解和掌握;2)利用所学知识,理论和实际结合,利用资源,采用模块化的结构,使用模仿修改自主设计相结合的方法,锻炼学生综合分析解决实际问题的编程能力;3)培养学生在项目开发中团队合作精神、创新意识及实战能力。
2、设计的任务根据学生的实际情况,进行分组选题。
主要的课程设计题目如下(学生也可自主选题):1、图书管理系统 2、学生信息管理系统3、学生成绩管理系统4、学生通讯录管理系统5、设计简单的计算器3、设计要求与设计报告设计要求:1、任选上述题目之一,或自选题目。
2、模块化的程序设计3、锯齿形的程序书写格式。
4、必须通过编译连接运行设计报告:1、设计目的和任务2、总体设计:包括程序设计组成框图、流程图。
3、详细设计:包括模块功能说明:函数功能、入口及出口参数说明,函数调用关系描述等。
4、调试与测试:包括调试方法,测试结果分析与讨论,测试过程中遇到的主要问题及采取的解决措施。
5、源程序清单和执行结果:清单中应有足够的注释。
设计目的和任务(主要介绍设计的任务,为什么要设计,设计要达到什么样的目的。
)设计目的:(1)基本掌握面向过程程序设计的基本思路和方法;(2)达到熟练掌握C语言的基本知识和技能;(3)能够利用所学的基本知识和技能,解决简单的程序设计问题程序功能:(1)学生基本信息及成绩所选科目成绩的录入。
(2)基本信息的查询(分系、班级;分科目)与修改。
(3)对每系或每班各科成绩进行分析(即求单科平均成绩、及格率和优秀率);(4)对所开课程的成绩分析(求其平均成绩,最高分和最低分);(5)对学生考试成绩进行排名;目录一、总体设计··································································- 4 -二、详细设计··································································- 4 -三、调试与测试····························································- 4 -四、源程序清单和执行结果 ··········································- 4 -五、建议和体会······························································- 4 -六、参考文献··································································- 5 -一:总体设计设计流程图如下:二、详细设计1、输入初始的学生信息:其中包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息;可用函数cin(stu *p1)来实现此操作。
c语言大作业课程设计一、课程目标知识目标:1. 学生能掌握C语言的基本语法,包括变量定义、数据类型、运算符、控制结构等;2. 学生能理解函数的定义和调用,灵活运用函数实现模块化编程;3. 学生能掌握数组、指针、结构体等C语言高级特性,并应用于实际编程中;4. 学生了解文件操作的基本方法,能够读写文件,实现数据的持久化存储。
技能目标:1. 学生能够运用C语言编程解决实际问题,具备独立分析和解决问题的能力;2. 学生能够运用所学知识,设计并实现一个小型的C语言项目;3. 学生能够通过编程实践,提高逻辑思维能力和编程技巧;4. 学生能够熟练使用集成开发环境(IDE),调试程序并优化代码。
情感态度价值观目标:1. 学生培养对编程的兴趣,激发学习计算机科学的热情;2. 学生养成合作、探究的学习习惯,培养团队协作能力;3. 学生通过编程实践,体验解决问题的成就感,增强自信心;4. 学生遵循编程规范,注重代码质量,培养良好的编程习惯。
课程性质:本课程为C语言大作业课程设计,旨在巩固和拓展学生对C语言知识的掌握,提高学生的编程能力和实践能力。
学生特点:学生已经掌握了C语言的基本知识,具备一定的编程基础,但缺乏实际项目经验。
教学要求:注重实践,引导学生通过动手编程解决问题,培养学生独立思考和解决问题的能力。
将课程目标分解为具体的学习成果,以便于后续教学设计和评估。
二、教学内容1. 复习C语言基础知识,包括变量、数据类型、运算符、控制结构等,参考教材第1-4章;2. 函数的定义、调用、参数传递及作用域,引用教材第5章;3. 数组、字符串、指针的概念及应用,深入讲解教材第6-7章;4. 结构体、联合体、枚举类型的使用,分析教材第8章;5. 文件操作,包括文件的打开、读写、关闭,依据教材第9章;6. 面向过程的编程思想,以实际项目为例,引导学生运用所学知识设计程序;7. 编程规范和调试技巧,培养学生的良好编程习惯;8. 小型项目实践,分组进行项目设计和开发,涵盖整个C语言知识体系。
c语言大作业课程设计一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、数据结构和算法,能够运用C语言进行程序设计,提高学生的编程能力和逻辑思维能力。
具体分解为以下三个目标:1.知识目标:学生能够理解并掌握C语言的基本语法、数据结构和常用算法,了解C语言的编程环境和开发工具。
2.技能目标:学生能够熟练使用C语言进行程序设计,具备一定的编程能力和问题解决能力。
3.情感态度价值观目标:学生通过完成C语言程序设计,增强对计算机科学的兴趣和热情,培养良好的编程习惯和团队协作精神。
二、教学内容教学内容主要包括C语言的基本语法、数据结构和算法。
具体安排如下:1.C语言的基本语法:包括变量、数据类型、运算符、控制结构、函数等,共4课时。
2.数据结构:包括数组、链表、栈、队列、树等,共6课时。
3.算法:包括排序算法、查找算法、递归算法等,共4课时。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法,如讲授法、讨论法、案例分析法、实验法等。
具体安排如下:1.讲授法:用于讲解C语言的基本语法、数据结构和算法,共12课时。
2.讨论法:用于引导学生探讨编程问题,提高学生的思考和解决问题的能力,共4课时。
3.案例分析法:通过分析实际案例,使学生更好地理解和掌握C语言编程,共4课时。
4.实验法:让学生动手编写C语言程序,培养学生的编程能力和实践能力,共8课时。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:1.教材:《C语言程序设计》,用于引导学生学习C语言的基本语法、数据结构和算法。
2.参考书:《C Primer Plus》、《C和指针》,为学生提供更多的学习资料和参考。
3.多媒体资料:包括教学PPT、视频教程等,用于辅助教学,提高学生的学习效果。
4.实验设备:计算机、编程软件(如Visual Studio、Code::Blocks等),用于实验教学,培养学生的编程能力和实践能力。
《C语言编程》作业设计方案一、设计背景随着信息技术的飞速发展,计算机编程已经成为一门必不可少的技能。
而C语言作为一种广泛应用于系统编程和应用程序开发的高级语言,也成为了许多计算机专业学生必修的一门课程。
为了帮助学生更好地掌握C语言的基本观点和编程技巧,我们设计了一系列的作业来稳固他们的知识。
二、作业设计目标本次作业的主要目标是让学生通过实践掌握C语言的基本语法和编程技巧,培养他们的逻辑思维能力和解决问题的能力。
具体目标包括:1. 熟练掌握C语言的基本语法,包括变量、运算符、控制语句等;2. 能够编写简单的C程序,实现基本的输入输出功能;3. 能够解决简单的问题,如计算器、学生成绩管理系统等;4. 培养学生的团队合作认识和沟通能力。
三、作业设计内容1. 第一次作业:基本语法练习要求学生编写一个简单的C程序,实现两个整数相加的功能。
学生需要应用C语言的基本语法,包括变量、输入输出函数、算术运算符等。
同时,要求学生写出程序的注释,诠释每一行代码的作用。
2. 第二次作业:控制语句练习要求学生编写一个简单的成绩管理系统,可以实现输入学生姓名和成绩,输出成绩等级的功能。
学生需要应用if-else语句来判断成绩等级,并输出相应的信息。
同时,要求学生应用循环语句来实现屡次输入成绩的功能。
3. 第三次作业:函数练习要求学生编写一个简单的计算器程序,可以实现加减乘除四则运算的功能。
学生需要设计多个函数来实现不同的运算,同时要求应用函数的参数传递和返回值传递来实现数据的交互。
4. 第四次作业:综合练习要求学生结合前三次作业的内容,设计一个小型的学生成绩管理系统。
学生需要实现输入学生信息、查询成绩、计算平均成绩等功能,并且要求程序具有一定的界面美观和用户友好性。
四、作业评分标准作业将根据以下标准进行评分:1. 代码的完备性和正确性:程序是否能够正确运行,并且实现了题目要求的功能。
2. 代码的规范性:代码是否符合C语言的编程规范,包括缩进、注释等。
c语言课程设计思路一、课程目标知识目标:1. 理解C语言的基本语法,掌握变量定义、数据类型、运算符和表达式等基础知识;2. 学会使用C语言进行顺序结构、选择结构和循环结构的程序设计;3. 掌握数组、函数和指针的概念及应用,能运用这些知识解决实际问题;4. 了解C语言中的文件操作,能读写简单的文本文件。
技能目标:1. 能够运用C语言编写简单的程序,解决实际问题;2. 学会分析问题,设计程序框图,培养编程思维和逻辑思维能力;3. 掌握调试程序的方法,能够找出并修正程序中的错误;4. 学会在团队中协作,共同完成一个项目,提高沟通与协作能力。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发学习热情,树立自信心;2. 培养学生的耐心和毅力,面对编程难题时,不轻言放弃;3. 培养学生遵守编程规范,养成良好的编程习惯;4. 培养学生的创新意识,鼓励他们尝试不同的编程方法和技巧。
课程性质:本课程为C语言编程入门课程,旨在让学生掌握C语言的基本语法和编程技能,培养编程兴趣和逻辑思维能力。
学生特点:学生处于初中或高中阶段,具有一定的数学基础和逻辑思维能力,对编程有一定的兴趣,但缺乏实际编程经验。
教学要求:结合学生特点,注重实践操作,让学生在动手编程的过程中掌握C 语言知识。
注重培养学生的编程思维和解决问题的能力,同时关注团队协作和情感态度的培养。
在教学过程中,将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. C语言概述:介绍C语言的发展历史、特点和应用领域,让学生对C语言有整体的认识。
教材章节:第一章 C语言概述2. 基本语法和数据类型:讲解变量定义、数据类型、常量和变量、运算符和表达式等基本概念。
教材章节:第二章 数据类型与运算符3. 程序结构:学习顺序结构、选择结构和循环结构的程序设计方法。
教材章节:第三章 程序结构与控制语句4. 数组:介绍一维数组、二维数组的定义和用法,以及相关的排序算法。
CHANGZHOU INSTITUTE OF TECHNOLOGY课 程 设 计 说 明 书课程名: 《C 语言大作业》题 目: 通 讯 录 管 理 系 统二级学院: 计算机信息工程学院专 业: 软件工程 班 级: 12 软 件 卓 越 学 号: 12030427 姓 名: 许 彦 文 指导教师: 曹 中 心2013年 7 月KC021-11.课程认识目的:加深对《C程序设计》课程所学知识的理解,进一步巩固C语言的编程方法。
学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备解决综合性实际问题的能力,加强动手能力。
任务:根据要求电话簿数据以文本文件存放在文件中,并按要求实现通讯录最基本的功能。
2.课题选择在这个信息化时代,手机已成为最通俗的交流工具,通讯录日常生活中不可缺少的,且编写此系统中要用到的函数大多数是我们学过的,在我们的能力掌握范围内,一开始我们也只想到了通讯录的基本功能,后来我们通过各方面的努力,尽量使整个系统的功能更加齐全。
3.见组长(王扣慈)4.模块详细设计我负责的是注册、添加、删除的功能。
注册:运行此功能时,有用户名限制(仅限字母)、密码限制(仅限数字或字母),注册时密码要输出两次但如果第二次输密码时输错超过两次就意味着注册失败。
(如图4-1)添加:加入你所需要的数据,数据包括姓名、电子邮箱、电话号码、分类、编号。
(如图4-2)删除:输入名字,找到欲删除的那个人的名字后,会自动删除他(她)的记录内容。
(如图4-3)图4-1 注册用户流程图图4-2 添加用户流程图图4-3删除用户流程图5.主要实现方法我编写的最重要的应该是注册,而注册中最重要的就是实现用户名、密码的权限 void zhuce( ) { FILE *fp;if((fp=fopen("mima.dat","wb"))==NULL) //建一个新的文件夹 { printf("cannot open file!\n"); exit(0);}int sign=1; int k=1;Yint j,i=1;int m=1;int len=0;char code1[N],code2[N],user[N];printf("用户名仅限于字母"); //设定用户名权限while(m!=0) //用户名如果不符合要求就继续输入,输对就跳出循环{printf("\n输入用户名\n");getchar();gets(user);len=strlen(user);for(j=0;j<len;j++){if(!((user[j]>='a'&&user[j]<='z')||(user[j]>='A'&&user[j]<='Z'))){m=1;printf("用户名格式不符,请重新输入");}else m=0;}}printf("密码权限仅限数字或字母"); //设定密码权限while(k!=0) //密码不符合要求就继续输入,输对就跳出循环{printf("输入密码\n");gets(code1);len=strlen(code1);for(j=0;j<len;j++){if(!((code1[j]>='a'&&code1[j]<='z')||(code1[j]>='A'&&code1[j]<='Z')||(code1[j]>='0'& &code1[j]<='9'))){k=1;printf("密码格式不符,请重新输入\n");}else k=0;}}while(sign!=0){printf("再输入一次密码\n");//再输入一次密码看两次是否一样gets(code2);if(!strcmp(code1,code2)){printf("注册成功\n");//两次输出密码相等,就注册成功sign=0;}else{sign=1;printf("密码出错,与第一次不符");i++;}if(i>3){printf("\n你已经超过2次输错密码,已无法输入,再见");break; //如果超过两次输错密码,系统将会阻止再次输入}}fputs(user,fp);fputs(code1,fp);//将输入的用户名,密码存放到文件夹中,以便用于登陆fclose(fp);}6.课程设计总结问题:我出现的问题主要还是出现在注册中,其他两个程序虽然也有问题,但都能通过自己和小组成员之间的交流慢慢解决,类如在添加时选择是否继续添加下去时,运行时系统会不理你的选择继续叫你加下去,然后和小组成员讨论后在选择是否添加前面加了个getchar()问题就解决了。
c语言课程设计设计理念一、教学目标本课程旨在让学生掌握C语言的基本语法、数据结构和算法,培养学生独立编程和解决问题的能力。
具体目标如下:1.知识目标:•理解C语言的基本语法和编程规范;•熟悉常用数据类型、运算符和表达式;•掌握函数的定义和调用;•了解数组、指针和字符串的基本使用;•理解结构体和文件操作等高级概念。
2.技能目标:•能够使用C语言编写简单的程序;•熟练使用调试工具进行程序调试;•掌握基本的算法设计和分析方法;•能够独立解决编程问题,具备一定的编程能力。
3.情感态度价值观目标:•培养学生对计算机科学的兴趣和热情;•培养学生良好的编程习惯和团队协作精神;•培养学生面对挑战、解决问题的积极心态;•培养学生对知识产权的尊重和保护意识。
二、教学内容根据课程目标,本课程的教学内容主要包括以下几个方面:1.C语言基本语法和编程规范;2.数据类型、运算符和表达式;3.函数的定义和调用;4.数组、指针和字符串的使用;5.结构体和文件操作等高级概念;6.基本算法设计和分析方法;7.编程实践和调试技巧。
教学大纲将按照教材的章节顺序进行,每个章节都有相应的教学内容和作业要求。
具体安排如下:1.第1-2周:C语言基本语法和编程规范;2.第3-4周:数据类型、运算符和表达式;3.第5-6周:函数的定义和调用;4.第7-8周:数组、指针和字符串的使用;5.第9-10周:结构体和文件操作等高级概念;6.第11-12周:基本算法设计和分析方法;7.第13-14周:编程实践和调试技巧。
三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法:1.讲授法:教师讲解基本概念和语法,引导学生理解和掌握;2.案例分析法:分析典型实例,让学生了解实际应用场景;3.实验法:学生动手实践,巩固所学知识和技能;4.讨论法:分组讨论问题,培养学生的团队协作和沟通能力。
四、教学资源本课程将充分利用教学资源,以支持教学内容和教学方法的实施。
C语言编程思维算法设计和问题解决C语言是一种广泛使用的计算机编程语言,它强调对底层细节的控制,因此对于程序员来说,掌握C语言编程思维、算法设计和问题解决能力是至关重要的。
本文将介绍C语言编程思维的重要性,以及如何设计高效的算法以解决实际问题。
一、C语言编程思维的重要性C语言是一种高效的编程语言,但同时也是一种底层的语言,程序员需要深入了解计算机底层运行机制,并使用C语言进行编程。
因此,掌握C语言编程思维十分重要。
C语言编程思维包括了如下几个方面:1.1 逻辑思维:在编写程序时,程序员需要能够将复杂的问题分解为简单的逻辑步骤,并使用C语言将这些步骤转化为可执行的代码。
1.2 底层思维:C语言是一种底层的语言,程序员需要理解内存管理、指针操作等底层概念,并能够灵活运用这些概念来编写高效的代码。
1.3 算法思维:C语言作为一种通用的编程语言,程序员需要学会设计和实现各种算法,如排序算法、查找算法等,以解决实际问题。
二、算法设计的基本原则算法是解决问题的一种方法或过程,好的算法能够高效地解决问题。
在设计算法时,应遵循以下几个基本原则:2.1 清晰性:算法应该清晰明了,容易理解和实现。
使用有意义的变量名和注释,能够提高代码的可读性和可维护性。
2.2 效率性:算法的效率是衡量其好坏的重要指标之一。
在设计算法时,应尽量追求高效的时间和空间复杂度。
2.3 鲁棒性:算法应该能够处理各种异常情况,并给出合理的输出。
程序员需要进行充分的测试和调试,确保算法的正确性和健壮性。
2.4 可复用性:好的算法应该具有良好的可复用性,能够在不同的场景中进行重复使用,提高开发效率。
三、问题解决思路在面对实际问题时,程序员需要采用一定的思路来解决问题。
下面是一种常用的问题解决思路:3.1 理解问题:首先,需要完全理解问题的要求和限制。
询问问题的细节,并将问题抽象为计算机能够处理的形式。
3.2 设计算法:根据对问题的理解,设计合适的算法来解决问题。
c语言课程设计程序设计思路一、教学目标本课程旨在通过C语言程序设计的学习,让学生掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识,培养学生编写简单程序的能力,使学生理解程序设计的基本思路和方法,培养学生的逻辑思维能力和解决问题的能力。
具体来说,知识目标包括:1.掌握C语言的基本语法和规则。
2.理解数据类型、运算符和控制结构的使用。
3.学会使用函数进行模块化编程。
4.了解C语言的面向对象编程思想。
技能目标包括:1.能够使用C语言编写简单的程序,进行基本的输入输出操作。
2.能够运用控制结构进行程序的控制流程设计。
3.能够运用函数进行模块化编程,提高代码的可读性和可维护性。
4.能够运用面向对象编程思想进行程序设计。
情感态度价值观目标包括:1.培养学生的团队合作意识,能够进行小组合作学习。
2.培养学生的问题解决能力,遇到问题时能够积极寻求解决方案。
3.培养学生的创新思维,鼓励学生进行编程实践和创作。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识,以及简单的程序设计实践。
具体安排如下:1.C语言的基本语法和规则:介绍C语言的基本语法结构,包括变量、常量、数据类型、运算符等。
2.数据类型和运算符:讲解不同数据类型的使用和运算符的优先级。
3.控制结构:讲解条件语句和循环语句的使用,以及它们的嵌套和转移。
4.函数:介绍函数的定义、声明和调用,包括内置函数和用户自定义函数。
5.面向对象编程:介绍类和对象的概念,以及面向对象编程的基本方法。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法相结合的方式进行教学。
1.讲授法:通过讲解和示例,让学生掌握C语言的基本语法和编程方法。
2.讨论法:通过小组讨论和实践,培养学生的团队合作意识和问题解决能力。
3.案例分析法:通过分析实际案例,让学生理解程序设计的实际应用和意义。
4.实验法:通过编写和运行程序,让学生亲身体验编程的过程和结果。
C语言高级程序设计讲座第十二讲 C语言大作业设计思路鹏程C语言教学网站庆祝建站一周年特别企划本文技术支持网站:http://202.112.86.129今天,我们来做C语言高级程序设计讲座的最后一讲,主要讲一下C语言大作业的设计思路。
当前,很多院校在C语言结课的时候都要求做一份大作业,作为考核的一部分,很多同学为此挠头,在这里我们将一些设计的思路,希望能给大家一点提示。
所谓大作业,其实质目的就是让学生在制作过程中体验这种设计思路,一般来说,思路有了,其他的就不在话下了。
毕竟我们不是要求来做这种Windows 之类的大型软件,Microsoft的精英开发了好几年,如果我们用C语言来做,恐怕也不是一朝一夕能完成的。
我们要求学生能够设计出一个小型的游戏或者一个小型的数据库管理软件就很好了。
我们在设计之前,一般考虑以下几点:1、问题定义我们首先要知道应该做什么。
2、可行性分析然后确定这个方案能否实施,不要做那种自己不可能完成的程序,“只有想不到,没有做不到”这句话以马克思主义哲学的观点来看是不成立的。
3、需求分析如果这个方案可行,就要考虑这个程序需要实现什么功能。
4、系统设计前面的都确定后,要设计出宏观的框架,例如主界面。
5、详细设计详细的设计每一项功能。
6、编译并测试一般来讲,我们提倡每完成一项内容都要编译测试。
7、运行维护自己用自己的软件,用所有想到的错误操作来操作它,找出所有的内在BUG。
8、发布如果你自己没有找到错误了,该软件就差不多可以交上去了,结合开发过程我们就可以写出论文来。
下面我们来介绍一个简单的人工智能程序。
初始化人机界面/*exper_1.c*/#include<stdio.h>#include<stdlib.h>#include<conio.h>#define N 11char *pre[]={"p1","p2","p3","p4","p5","p6","p7","p8","p9","p10","p11"};char *symptom[]={"咳嗽","流鼻涕","怕冷","打喷嚏","痰多","体温高","血象偏高","泛酸","呕吐","上腹隐痛","食欲不振",};main(){int i,j;FILE *fp;char answer;char midpre[N][5];if((fp=fopen("c:\\bc\\bin\\pre.txt","wt"))==NULL){printf("Can not open flie");exit(0);}for(i=0;i<N;i++){printf("\n你%s吗?\n",symptom[i]);answer=strlwr(getch());switch(answer){case 'y':putchar(answer);fprintf(fp,"%s",pre[i]);fprintf(fp," ");break;case 'n':putchar(answer);break;}}fclose(fp);printf("\n你的症状是:");if((fp=fopen("c:\\bc\\bin\\pre.txt","rt"))==NULL){printf("Can not open flie");exit(0);}i=0;while(fscanf(fp,"%s",midpre[i])!=EOF){for(j=0;j<N;j++){if(!strcmp(midpre[i],pre[j]))printf("%s ",symptom[j]);}}fclose(fp);printf("\n按任意键返回\n");getch();}具体的实例程序#include <stdlib.h>#include<stdio.h>#include<string.h>#include<process.h>#define N 10#define M 11struct RL{int rnum;int rpsum;char pre[N][5];char res[5];};struct RL zrul[N];char *pre[]={"p1","p2","p3","p4","p5","p6","p7","p8","p9","p10","p11"};char *symptom[]={"咳嗽","流鼻涕","怕冷","打喷嚏","痰多","体温高","血象偏高","泛酸","呕吐","上腹隐痛","食欲不振",};char *result[]={"r1","r2","r3"};char *diagnose[]={"上感","支气管炎","胃炎"};int have(){FILE *fp;int i,ri=-1,rs=0;char mstr[5];char dstr[N][5];if((fp=fopen("c:\\bc\\bin\\jingyan.txt","rt"))==NULL) {printf("Can not open flie");exit(0);}while(fscanf(fp,"%s",mstr)!=EOF){if((!strstr(mstr,"p"))&&(!strstr(mstr,"r"))) {ri++;zrul[ri].rnum=atoi(mstr);if(ri>0){zrul[ri-1].rpsum=rs-1;for(i=0;i<zrul[ri-1].rpsum;i++)strcpy(zrul[ri-1].pre[i],dstr[i]);strcpy(zrul[ri-1].res,dstr[rs-1]);}rs=0;}else{strcpy(dstr[rs],mstr);rs++;}}zrul[ri].rpsum=rs-1;for(i=0;i<zrul[ri].rpsum;i++)strcpy(zrul[ri].pre[i],dstr[i]);strcpy(zrul[ri].res,dstr[rs-1]);fclose(fp);return(ri+1);}query(int n){FILE *fp,*fpi;char lstr[N][5];char mstr[5];int i=0,j=0,k=0;int psum=0;int agrees=0;int m;if((fp=fopen("c:\\bc\\bin\\pre.txt","rt"))==NULL){printf("Can not open flie");exit(0);}if((fpi=fopen("c:\\bc\\bin\\reason.txt","wt"))==NULL) {printf("Can not open flie");exit(0);}while(fscanf(fp,"%s",mstr)!=EOF){strcpy(lstr[i],mstr);i++;}fclose(fp);psum=i;for(i=0;i<n;i++){if(zrul[i].rpsum==psum){for(j=0;j<psum;j++){for(k=0;k<zrul[i].rpsum;k++){if(!strcmp(lstr[j],zrul[i].pre[k]))agrees++;}}if(agrees==zrul[i].rpsum)fprintf(fpi,"%s ",zrul[i].res);agrees=0;for(m=0;m<11;m++){if(!strcmp(zrul[i].res,result[m]))printf("\n对你的症状做出的诊断为:%s\n",diagnose[m]);}}}fclose(fpi);}main(){int n;system("c:\\bc\\bin\\exper_1.exe");n=have();query(n);}文本经验数据库1 p1 p2 p3 p4 p5 p6 p7 r12 p1 p5 p6 r23 p8 p9 p10 p11 r3大家可以通过对本例程的进一步完善使之成为一个专家系统,让自己的电脑成为家庭医生。
到这里,你是不是对C语言大作业的设计有了一定的思路了呢?我们这一讲就到这里了。
编后记做这12讲的讲座,确实是一种很不寻常的经历,从8月1日到12日这12天,我几乎都是每天想着要做这件事,就算再晚,就算再有事情,也要完成,虽然水平有限,但是也力求把它做好。
从下载情况来看,这个讲座还是比较受欢迎的,这几天也经常有人来询问讲座的事情,我想这种有益的讲座我们今后还是要搞,而且要越搞越多。