1、题目要求
◆ 建立通讯录信息,信息至少包含编号、姓名、年龄、电话、居住街道、省份、城市、电子邮箱等;
◆ 能够提供添加、删除和修改通讯录信息的功能;
◆ 能够提供安不同方式查询的功能;如按姓名或年龄、电话等查询; ◆ 将通讯录保存在文件中;
◆ 能够按表格方式输出通讯录信息。
2、需求分析
本程序将用到文件系统,其中单行内容代表一张纸条。程序运行后首先将文件系统的原始数据读取并保存到程序的结构体数组当中,所以应提供文件输入的操作;由于纸条数据零散,所以要对原始数据进行分类操作并提供一个数组用于保存分类信息;在程序中要进行统计工作,所以要提供显示、排序等操作;另外应提供键盘式选择菜单实现功能选择。
3、总体设计
根据项目的任务要求及以上分析,在设计方法上,采用模块化的程序设计思想,即将通讯录管理系统划分为数据输入模块,数据查询模块,数据修改模块,数据插入模块,数据删除模块,,并对每个模块按照其功能分别独立完成对应的程序设计。在数据处理上,各模块中的数据处理(如数据读/写操作)均用文件形式来实施,并在主程序中完成操作界面的设计功能,设计思路如下:
1、采用模块设计思想;
2、将通讯录信息定义成结构体类型,并通过文件实施数据操作;
3、通过设计一菜单界面完成具体操作。
4、详细设计
第一章 基础掌握
1.1 实验目的
掌握C程序设计编程环境Visual C++,掌握运行一个C程序的基本步骤,包括编辑、编译、链接和运行。(]
1.2 实验要求
在报告中记录建立、保存C程序实习过程。
1.3 实验基本内容
编写程序,在屏幕上显示一个短句“Hello World”
(1) 程序:
1) 编译如下程序:
#include
Void main()
{
printf (“Hello World!”);
}
2)链接。执行Build-命令。
3)运行。执行Build Execute 命令。显示结果。
4)关闭程序工作区。
(2) 运行结果:
输出结果:Hello World!
总结:
掌握C语言程序设计的基本框架,能够编写简单的程序。
第二章 数据类型
2.1 实验目的
(1) 掌握C语言的运算符和表达式的正确使用以及C语言的几种基本数据类型和基本输入输出函数的使用方法。()
(2)通过编程进一步理解和掌握运算符的确切含义和功能。
2.2 实验要求
(1) 在报告中记录建立、保存C程序实习过程。 (2) 完成典型题目,分析遇到的困难和实验中的收获。
2.3 实验基本内容
输入程序,观察输出结果 1>。/*test2.1c*/
1)编译如下程序:includevoidmain() {
char ch; int k;
ch='a',k='b';
printf("%d,%x,%c",ch,ch,ch,ch,k); printf("k=%%d",k) }
2)链接。执行Build-命令。
3)运行。执行Build Execute 命令。显示结果。
4)关闭程序工作区。
2>。/*test2.2c*/
1)编译如下程序:includevoidmain() {
float a1,a2; double b1,b2; a1=1234.12; a2=0.000001; b1=1234.12;
b2=0.000001;
printf("%f,%l f",a1+a2,b1+b2);
}
2)链接。执行Build-命令。
3)运行。执行Build Execute 命令。显示结果。
4)关闭程序工作区。
实验结果:
97.61,141,ak=xd
实验结果:
扩展:c语言程序实验报告/ c语言实验报告 / c语言程序设计报告
1234.120089,1234.120001
总结:
学会C语言的运算符和表达式的正确使用
第三章 选择结构程序设计
3.1 实验目的
学会改正程序中的错误
3.2 实验要求
(1) 在报告中记录建立、保存C程序实习过程。(]
(2) 完成典型题目,分析遇到的困难和实验中的收获。
3.3 实验基本内容
输入实验程序,程序有错,改正程序中的错误
1)输入如下程序:
#include
#include
void main()
{
double a,b,c,d;
printf("输入一元二次方程a=,b=,c=");
scanf("a=%l f,b=%l f",&a,&b,&c); if(a==0) { if(b=0) } { } else Print f("x=%0.2f",-c/b); if(c==0) Print f("0==0参数对方程无意义!”); else Print f("c!=0方程不成立"); else if(d>=0) { printf("x1=%0.2f",(-b+sq rt(d))/(2*a)); printf("x1=%0.2f",(-b-sq rt(d))/(2*a)); } else {
printf("x1=%0.2f+%0.2fi",-b/(2*a),s q rt(-d)/(2*a)); printf("x1=%0.2f-%0.2fi",-b/(2*a),s q rt(-d)/(2*a));
}
}
2)链接。()执行Build-命令。
3)运行。执行Build Execute 命令。显示结果。
4)关闭程序工作区。
实验结果:
运行不了程序 ,做以下修改:
#include
#include
void main()
{
//
//
double a,b,c,d; printf("输入一元二次方程a=,b=,c="); scanf("a=%l f,b=%l f",&a,&b,&c); c=5; if(a==0) //{ /*if(b=0) { } else printf("x=%0.2f",-c/b); if(c==0) printf("0==0参数对方程无意义!”); else printf("c!=0方程不成立"); }*/ else if(d>=0) { } else { } printf("x1=%0.2f",(-b+sq rt(d))/(2*a)); printf("x1=%0.2f",(-b-sq rt(d))/(2*a)); printf("x1=%0.2f+%0.2fi",-b/(2*a),sq rt(-d)/(2*a)); printf("x1=%0.2f-%0.2fi",-b/(2*a),sq rt(-d)/(2*a));
}
这样就可以输出程序了。
总结: 学会使用逻辑运算符和逻辑表达式,掌握简单的查错方法,并改错。
第四章 循环程序设计
4.1 实验目的
熟练使用whiledo…while语句实现循环程序设计。[)
4.2 实验要求
(1) 在报告中记录建立、保存C程序实习过程。
(2) 完成典型题目,分析遇到的困难和实验中的收获。
4.3 实验基本内容
1) 编译如下程序:
#include
void main()
{
int m,n,j,k; printf("input m n"); while(scan f ("%d",&m,&n),m<0&&n<0); j=m; while(j/n!=0) j=j+m; k=(m*n)/j; printf("最小公倍数是%d最大公约数是%d",j,k); }
2)链接。执行build-命令。
3)运行。执行build execute 命令。显示结果。
4)关闭程序工作区。
实验结果:
Input m n
5 2
然后运算出来结果:
最大公倍数是5
最大公约数是0
总结:
学使用for,while,do.。.while语句实现循环程序,
第五章 程序设计
5.1 实验目的
检验最近学习成果,进一步巩固C语言的学习
5.2 实验要求
1)输入任意四位数,写出个,十,百,千位上的数 2)连接任意两个字符串
5.3 实验基本内容
1)编译如下程序:includevoidmain() {
int a,b,c,d,x; scanf("%d",&x); if(999 a=x/1000; b=x/100-a*10; c=x/10-a*100-b*10; d=x-a*1000-b*100-c*10; printf("%d",x); 1)编译如下程序: #includemain() { char s1[10],s2[5]; int i,j; scanf("%s",s1); scanf("%s",s2); i=j=0; while(s1[i]!='') i++; printf("a=%d,b=%d,c=%d,d=%d",a, b,c,d); } } while((s1[i++]=s2[j++])!=''); printf("string no.1. %s",s1); } 2)链接。(]执行build-命令。 3)运行。执行build execute 命令。显示结果。 4)关闭程序工作区。 2)链接。执行build-命令。 3)运行。执行build execute 命令。显示结果。 4)关闭程序工作区。 实验结果: abcd adsg string no.1.abcdadsf 实验结果: 2678 2678 a=2,b=6,c=7,d=8 总结:通过对程序的设计提高编程能力 1、开设课程设计的目的及意义 高等职业教育的目标及侧重点不同于普通高等教育,其培养的学生在毕业后应能直接上岗,具有熟练的实践操作技能。教育部《关于以就业为导向深化高等职业教育改革的若干意见》中指出,高职教育应“坚持培养面向生产、建设、管理、服务第一线需要的‘下得去、留得住、用得上’,实践能力强、具有良好职业道德的高技能人才”。 因此,加强实践性课程教学,对保证人才培养质量显得尤为重要。我院为贯彻《关于全面提高高等职业教育教学质量的若干意见》(教高[20xx]16号文件)精神,针对区域经济发展的要求,灵活调整和设置专业课程,以就业为导向,加快专业课程对应的课程设计改革。目前,我院按照由浅入深、不断深化的教学规律,构建了实践教学三层次四环节的实践课程体系(图1)。实践教学三层次包括基本技能、专业拓展、综合创新,四环节包括实验、实习实训、设计和课外实践。“C语言课程设计”是我院信息类专业的必修专业基础课程设计,在“C语言程序设计”课程教学结束后的下一学期进行,历时2周,40学时。课程开设的目的在于培养学生分析问题和解决问题的能力,为学生提供一个动手、动脑、独立实践的机会。 2、项目教学法的简单介绍 21项目教学法“项目教学法”是基于建构主义教学理论的一种教和学的模式。著名的瑞士心理学家皮亚杰认为,知识不是通过教师传授得到的,而是学生在一定的情境下,借助他人的帮助,利用必要的学习资料,通过意义建构的方式而获得的。美国项目管理专家约翰·宾认为:“项目是要在一定时间里,在预算规定范围内需达到预定质量水平的一项一次性任务。” “项目教学法”是通过实施一个完整的项目而进行的教学活动,旨在把学生融入有意义的任务完成的过程中,让学生积极地学习,自主地进行知识的建构,在课堂教学中把理论与实践教学有机地结合起来,充分发掘学生的创造潜能,提高学生解决实际问题的综合能力。因此,在教学活动中,教师将需要解决的问题或需要完成的任务以项目的形式交给学生,在教师的指导下,以小组工作方式,由学生自己按照实际工作的完整程序,共同制定计划,共同或分工完成整个项目。 在项目教学中,学习过程成为一个人人参与的创造实践活动,注重的不是最终的结果,而是完成项目的过程。在高等职业技术教育中,项目是指以生产或制作一样具体的、具有实际应用价值的产品的工作任务。在技术领域,很多小产品或一些复杂产品的模型都可以作为项目,如:在信息类专业,可以开展微机组装、网站建设、信息管理系统开发、局域网构建、单片机制作、多媒体课件制作等项目;在电子类专业,可以开展报警器、LED、门铃、家电组装等项目;在商业、财会和服务行业,所有具有整体特性并有可见成果的工作也都可以作为项目,如商品展示、产品广告设计、营销策划等。 22项目教学法的基本特征项目教学法与传统的教学法相比,有很大的区别,主要表现在改变了传统的3个中心:以教师为中心转变为以学生为中心;以课本为中心转变为以“项目”为中心;以课堂为中心转变为以实际经验为中心。项目教学法具有以下特点: (1)实践性。项目“源”于企业,项目的主题与真实世界密切联系,由浅入深,选择的项目具有典型性、实用性。 (2)自主性。提供学生根据自己的兴趣选择内容和展示形式的决策机会,让学生能够自主地进行学习,从而有效地促进学生创造能力的发展。 (3)发展性。长期项目与阶段项目相结合,构成了实现教学目标的认知过程。 (4)评价特殊性。项目型教学的评价注重学生在项目活动中能力发展的过程,测评内容包括学生参与活动各环节的表现及作业质量,避免了传统的一张试卷定成绩的弊端。测评可以采用自评、小组评、教师综合评等方法。教师只有明确并抓住项目化教学特点,才能更好地完成教学目标。 3、项目教学法在“C语言课程设计”中的实施 31教学内容为了更好地开展课程设计教学,经过多次实践和摸索,总结出学生在具体实施项目中一般存在2个方面的知识不足: 第一,在教学内容上,由于前导课程在教学上受学时影响,很多教师对指针、结构体、共用体和文件基本操作的知识介绍不甚完善、系统,更难谈上辅以实例加以消化。对此,针对学生在这些知识点上的掌握程度,利用4~6个学时,实施区别式的、辅导性的、实例化教学。 第二,学生对项目管理知识知之甚少,针对此情况,采用2个阶段实施有别于常规教学的补课行动。第1阶段为项目准备阶段,利用2~4个学时,安排曾经做过项目且做得比较好的学生,现身介绍项目的准备工作(包括如何选题、如何查找资料、如何复习C语言知识)、项目实施过程要完成的工作(包括如何做市场调查、如何做需求规格分析说明书、如何做概要设计说明书、如何做详细设计说明书、如何选择使用代码编码器代码编写注意事项)、项目验收及作业提交的工作(包括程序测试事项、如何写课程设计报告)等。在学生介绍中,教师穿插讲解,辅以点评。第2阶段为项目实施阶段,教师应针对学生发生的问题,及时给予指导,直到学生弄懂为止。 32教学要求切实保证教学质量和教学效果,本着“学以致用”的原则,要求学生做到以下3点:第一要做到“学有三备”,即:在项目实施前做好知识储备,在项目实施中做好安全防备,项目结束时做好被评准备。第二要写好“三书一报告”。“三书”即每个项目组要做需求规格说明书、概要设计说明书、详细设计说明书,“一报告”即人人都要做课程设计报告。第三要做“四自”参与者。“一自”即自律,要求学生自觉履行学生守则和项目实施有关规则,不迟到、不早退、不缺席,实施点名制度,若无特殊原因,有5次旷课者自愿以重修论处;“二自”即自尊,要求学生尊重知识、尊重学习规律、尊重项目组成员、尊重教师、尊重自己;“三自”即自信,要求学生相信自己能够按时、按量、按质完成工作内容,遇到困难时,沉着、冷静,理性地寻找问题解决的办法;“四自”即自强,要求学生不满足自己已有的成绩和以往与课题项目组共同取得的成绩,用创新和超越的思想,做出比以前哪怕是前进一小步的事情。同时也要求教师做好相应的工作,如做好项目整体规划、精心准备、努力激发学生参与行为、为人师表、表扬为主、批评为辅、多分析、精点评等。 33项目实施进程项目教学法是一种生动、灵活、多样化的教学方法。在项目实施过程中,既不能生搬硬套地利用一个时间标准,又不能影响项目实施的整体进程,因此对时间的灵活处理是非常关键的,也是值得商榷的。 34明确项目内容,帮助学生立项立项首先要审题。当学生拿到项目列表时,最不能忽略的问题,就是提醒学生审题。审题恰当对学生以后开展各项工作是关键。审题时,学生首先要考虑自己的长、缺处,做到扬长避短,也就是说审题就是学生自己审自己完成该项目有多大的能力,有没有信心。只有学生明白自己,才可以避免以后实施项目过程中走弯路。同时既要建议学生在组建项目组时,考虑所在组的其他学生的长处和短处,又要尽量避免使被学生认定的差等学生没人愿意与其组合,而成绩好的学生又抱团的现象发生。 根据近几年带课程设计的经验,关于如何合理选择项目,建议教师应从学生的角度考虑以下4个因素,协助学生做好选题: (1)规模。项目规模太大会影响项目的完整性,项目规模太小难以体现课程的实践性。 (2)难度。项目难度一定要适中,既要激发学生学习的兴趣又不能影响学生的自信心。 (3)实用性。项目的选择应该是现实世界真实的工作任务,具有一定的现实和实用性。 (4)趣味性。兴趣是最好的老师,所以在选择项目时应考虑其趣味性,让学生有更大热情投入项目。 一、传统C语言课程设计教学模式 C语言是最基本的计算机编程,是计算机、电子信息类等相关专业学生的专业入门课,在其学习过程中,要求必须掌握编程的技能。但是C语言的学习有其特点,规则比较多、知识点多,涉及到的编程程序等也比较难懂,在运行上代码的要求较高,程序执行效率高,因此更讲究教学和学习的方式方法,但是在我们的教学中,目前教学方法比较单一,随着信息化的发展,传统的教学模式已经无法适应,亟需改革。 1、传统型 这种教学模式,也是最常用的,课堂上以老师为主,学生只能被动的接受知识的传授。通过最直接“填鸭”式照本宣科,不管学生接受与否,最后的考核也是以知识点的记住与否,造成学生死记硬背,不能真正掌握知识。其基本模式为:学习——回答——纠错——总结。这种模式下,使得教师在教材以外的发挥余地极小,基本是“照本宣科”,强行灌输C语言的概念、特点、编程程序、基本的方法等,整个教学过程缺乏灵活机动、具有启发性的内容,学生被动的接受知识、被动的记忆、被检查、被考试、被批评等,日复一日的教条式训练,不能有效地激发学生的主观能动性与创造热情。 2、任务型 C语言教学区别于其他学科,在理论知识的传授之外,还需要培养学生的实际动手能力,因此,很多学校也采用“任务型”教学模式,基本模式为:根据具体要求提出任务—鼓励学生设计方案—实际操作—解决任务。在日常的教学中,学校大多会利用电脑等锻炼学生的实际动手能力,利用实际操作,锻炼编程、逻辑等能力,从而掌握C语言的基本知识。例如翻转课堂模式,教师将知识传授环节制作成教学微课,课前提供给学生预习,通过预习使课堂的实践性练习目的性更明确,教师随堂对学生遇到问题进行指导分析,从而培养学生独立思考能力和实际操作能力。这种模式的采用,相对于传统模式,有其进步性,这也是C语言等专业性、操作性学科区别于其他学科的特点决定的,在这种模式下更取决于教师自身的素质、知识、能力等,是整个课程的掌控者、引导者,他们的能力直接关系着教学成果。 二、信息化背景下面临的挑战 随着科技的发展,信息化在教学领域的应用越来越普遍,信息技术的日新月异,也使得其在课堂上,已经不仅仅是局限于简单地计算机和多媒体运用,移动技术、智能化与虚拟技术等为我们的教学提供了新的思路和方法,如何能使我们的教学与高速发展的信息化相结合,是教育领域不断探索的课题。C语言程序设计等课程具有很强的专业性要求,主要是建立在计算机信息技术的基础上,对于信息化的反应更为灵敏,传统的课堂上,以教师为中心的“面对面”的教育模式面临着挑战和冲击,用技术手段的灵活性与便利性来增强课程学习的兴趣和接受能力。随着新技术的广泛应用,会促使传统的教学模式发生变革,以教师为中心的教学模式逐渐转化为互动式教学模式,达到更好的教育效果。在C语言课程设计教学领域,进行信息化教学改革的尝试,充分利用信息技术,变革教学手段和模式,是信息化发展的必然要求。只有实现C语言课程的信息化教学改革,使得教育信息化能够普遍运用,才能展现出信息技术在推动C语言教学中的强大威力和广阔前景。 三、教学模式改革的基本对策 教学模式直接反映出一定的教学理念,也直接决定着教学成果。随着信息化的发展,教育信息化逐渐打破传统的教学模式,在这样的背景下,C语言教学模式的改革任务艰巨,如何构建新型的`信息化教学模式也是我们在实践中不断摸索的问题。 1、充分利用信息化的科技手段 信息化的科技手段,给我们的教育领域带来变革,尤其是计算机领域的学习,其主要是建立在信息化发展的基础上,因此在教学中,更要与时俱进,与信息化的发展程度相互依存,相互辅助,C语言课程设计教学中,可以充分利用信息化的科技手段,如计算机技术、云计算技术、多媒体技术、网络技术、虚拟现实技术、通信技术、移动学习技术、人工智能、传感器技术等,这些技术的发展,带来C语言教育领域的变革。为提高C语言教学质量,激发学生学习C语言的积极性,我们可以在课程建设过程中充分利用现代技术带来的便利与多样性,以及趣味性。如在教学课件设计上,利用多媒体技术,图、文、动画并茂,减少其枯燥的理论传授,增加趣味性;利用网络技术,实现在线教育,建立“C语言程序设计”网站,分组进行网站维护,运用编程能力进行更新;应用现代的通信技术,建立微信学习群,让学生分享自己的学习经验,共享学习资源。 2、案例引导式教学模式 改革C语言教学模式,另一探索的模式为案例引导式教学模式,C语言的教学,是为了培养学生读程序、调试程序、写(仿照)程序的能力以及规范性编程的能力,学习最主要的目的是为了应用,对于编程的应用,只有具体的应用场景,即案例,才能更容易被接受,更易懂。案例引导式教学模式,在别的专业课教授中,常被使用,主要特点就是用案例去引导知识点的掌握,对案例进行分析,通过分析启发学生的思路,将学生带入到具体的案例中,让学生有一种“身临其境”的代入感,从而掌握具体的知识,学会在这种场景下解决问题的方法,这种模式的教学更有针对性、系统性。案例引导式教学模式在C语言课程设计教学中的运用是指针对C语言课程的每一个核心知识点,建立配套的案例,通过这些案例的学习和掌握,使得学生在例子的佐证下,更加了解C语言的应用,这种案例的设计,和我们的书本知识相结合,把理论知识融入到具体的案例中,进行综合性的阐述,如具体的计算机程序的编写,设计游戏环节,运用所学的C语言知识设计网站,并使之运行,可以在班吉内分组进行维护等,并加以各种领域成功案例或者失败经验的案例,让学生能够更进一步了解其应用范围、能力、领域等。 3、实践教学模式 C语言课程设计的学习,所需的能力不再是死记硬背,而是更注重实践和应用,因此我们在教学过程中,不能只传授书本知识,还要锻炼学生的动手能力和编程能力,实践教学模式应运而生,依靠大量的实践,将所学的知识转化为实际操作,得到进一步的应用。信息化技术为这种教学模式提供支撑服务,我们可以在课堂上设计各种实践环节,也可以在课堂后与各种软件公司、游戏公司、网络公司等合作,增加实践机会,让学生在具体的实践环节中,真正了解C语言的知识,并主动内化这些知识,变为实际操作能力。在这种教学模式改革中,如何能够更好的提高实践能力需要通过各个环节的相互配合,如课程设计上,增强实验、实训环节,让学生在熟练掌握C语言语法、程序结构的基本理论的同时,通过大量的实践操作,进一步掌握C语言的知识,学会编码;同是,积极与各软件、互联网、网络公司签订实践基地,让学生可以在实际应用中,边做边学,提高学生逻辑思维、实际操作能力,真正实现教学目的,熟练掌握计算机编程能力。c语言课程设计报告 篇3
c语言课程设计报告 篇4