c课程设计实训报告(共8篇)
1.c课程设计实训报告 篇一
C语言课程设计报告
1.实验题目:职员信息管理系统
2.数据结构:整型int,字符型char,长整型long,结构体及结构体数组 3.源代码 :
#include“stdio.h” #include“string.h” #define N 20
/*符号常量的定义*/ struct employee
/*定义结构体类型employee*/ {
char name[15];char sex;long num;
/*职工工号可能较长,定义为长整型*/ char debt[15];int salary;char office[15];char tel[15];}emp[N];
/*定义结构体数组,并将其作为全局变量*/ void menu(){
int i;printf(“请选择您的操作:n”);printf(“tt1.增加职工信息n”);printf(“tt2.查找职工信息n”);printf(“tt3.显示所有职工信息n”);printf(“tt4.删除职工信息n”);printf(“tt0.退出n”);printf(“请选择按键!(0-4):n”);scanf(“%d”,&i);
/*从键盘输入数据并将其值赋给i*/
void input();void search();
void show();void omit();
/*被调函数定义出现在主调函数之后,应对其进行原型说明*/ switch(i)
/*使用switch语句,根据i的数值,进入相应的操作环境*/ {
case 1:input();break;
case 2:search();break;
/*在switch语句中掌握对break的使用*/ case 3:show();break;case 4:omit();break;
/*实现函数的调用*/
case 0:
{ printf(“tt-----n”);printf(“tt谢谢您对本公司职工信息管理程序的使用n”);
printf(“tt-----n”);}break;
default:printf(“您输入的数据有误,请确认后重新输入!n”);menu();} } void fun(int i)
/*search()函数和omit()函数都对此函数进行调用,输出相应职工信息*/ {
printf(“职工信息找到!!信息如下:n”);printf(“姓名t工号t性别t部门t工资t职位t电话n”);printf(“%st%ldt%ct%st%dt%st%sn”,emp[i].name,emp[i].num,emp[i].sex,emp[i].debt,emp[i].salary,emp[i].office,emp[i].tel);} void input()
/*定义input()函数,实现职工信息的录入功能*/ {
int i,j,k,a;for(i=0;i /*使用条件语句,防止原有的职工信息被覆盖*/ { printf(“增加职工信息时:n”);printf(“请输入职工姓名:”);fflush(stdin); /*刷新缓冲区,下同*/ gets(emp[i].name); /*使用gets()函数实现字符串的输入,下同*/ do { printf(“请输入职工号:”);scanf(“%d”,&a);for(k=0;k if(k /*判断所输入工号是否已存在*/ printf(“该工号已存在,请重新输入!n”);}while(k /*do-while语句控制本层循环*/ emp[i].num=a;printf(“请输入职工性别,男(M)女(F):”);fflush(stdin);emp[i].sex=getchar(); /*使用getchar()函数实现字符的输入*/ printf(“请输入职工部门:”);fflush(stdin);gets(emp[i].debt);printf(“请输入职工工资:”);scanf(“%d”,&emp[i].salary);printf(“请输入职工职位:”);fflush(stdin);gets(emp[i].office);printf(“请输入职工联系电话:”);fflush(stdin); gets(emp[i].tel);printf(“职工添加成功!!n”);printf(“还继续增加吗?继续请输入1否则输入0:n”);scanf(“%d”,&j);if(j==0)break; /*使用break语句,在条件成立时跳出for循环*/ } menu(); /*不再添加职工信息时,返回到目录函数menu()*/ } void search() /*定义search()函数,实现职工信息的查找功能*/ { int i,j,number;printf(“请输入要查找的职工号:”); scanf(“%d”,&number);for(i=0;number!=emp[i].num&&i /*i /*函数的递归调用*/ else menu(); /*不再查找职工信息时,返回到目录函数menu()*/ } void show() /*定义show()函数,实现职工信息的显示功能*/ { printf(“%st%ldt%ct%st%dt%st%sn”,emp[i].name,emp[i].num,emp[i].sex,emp[i].debt,emp[i].salary,emp[i].office,emp[i].tel);menu(); /*输出所有信息后,返回到目录函数menu()*/ } void omit() /*定义omit()函数,实现职工信息的删除功能*/ { int i;printf(“所有职工信息如下:n”);printf(“姓名t工号t性别t部门t工资t职位t电话n”);for(i=0;i /*利用for循环输出所有职工信息*/ int i,j,a,number;printf(“请输入要删除的职员号:”);scanf(“%d”,&number);for(i=0;number!=emp[i].num&&i /*i scanf(“%d”,&a);if(a==1){ strcpy(emp[i].name,“"); /*确定删除后,还原结构体成员*/ } emp[i].num=0;emp[i].sex=;strcpy(emp[i].debt,”“);emp[i].salary=0;strcpy(emp[i].office,”“);strcpy(emp[i].tel,”“);printf(”删除成功!!n“);} else printf(”无对应信息,请重新查找!!n“);printf(”还继续删除吗?继续请输入1否则输入0:n“);scanf(”%d“,&j);if(j==1)omit(); /*函数的递归调用*/ else { printf(”删除成功后“);show(); /*调用show()函数,输出删除成功后所有职工信息*/ } } void main() /*程序由主函数开始运行*/ { int i;for(i=0;i /*利用for循环语句对结构体数组赋初值*/ emp[i].num=0;emp[i].sex=;strcpy(emp[i].debt,”“);emp[i].salary=0;strcpy(emp[i].office,”“);strcpy(emp[i].tel,”“);} printf(”tt----------------------------n“);printf(”tt欢迎进入公司职工信息管理程序n“); printf(”tt----------------------------n"); menu();} 4.每种情况下的运行结果截图 1.判断输入数据是否有误的运行结果截图 2.增加职工信息并确保工号不重复时的运行结果截图 3.查找职工信息时的运行结果截图 4.显示所有职工信息时的运行结果截图 5.删除职工信息,并通过显示所有职工信息验证该信息是否确实被删除时的运行结果截图 6.继续添加职工信息时的运行结果截图 7.显示最后的所有职工信息时的运行结果截图 8.退出该系统时的运行结果截图 5.学习心得体会: 学习C语言程序设计这门课一个学期了,这是我所学的第一门计算机课程,作文一名当代的大学生,我认为这十分重要。记得宇文老师在第一节课就说过,C语言是计算机的基础,通过一个学期的学习,使我掌握了关于这门课的基本知识。这次的课程设计是对我们一个学期来所学的知识的综合考察,里面涉及到了我们大多数所学知识。记得刚开始学这门课的时候,自己很有信心学好这门课,但是经过一段时间的学习之后。才发现程序设计并不好学,它既要我们有很强的领悟能力,还需要课后的努力。之后,随着时间的推移,我慢慢掌握了这门课学习的一些窍门,学习起来也比刚开始的时候好了很多,虽然编程有时还会有错误,但比以前少了很多。这次的课程设计要求我们编一个简单的公司职工信息管理系统,在编程过程中我走了很多弯路,也犯过了很多错误。最终在其他同学的帮助和宇文老师的指导下我完成了这次课程设计,因此对C语言也有了更多的理解和体会。今后我会通过课外学习了解更多的C语言知识! 一、注重首次课的启发和引导作用 首次课,学生怀着好奇又恐惧的心理坐到课堂上,渴求新知,却又担心教师会讲出一些深奥理论,难以理解、消化。面对这种状况,教师应该从实践入手,培养学生对课程的兴趣,拉近学生与课程之间的距离,激发学生的学习主动性;然后,讲授学习方法,鼓励学生大胆实践,将枯燥的编程课变成生动活泼的引导课,为学生今后的学习打好基础。 1.演示程序运行过程,激发学习兴趣 在Tuber C 2.0编译环境下,导入“俄罗斯方块”游戏程序,编译、连接、运行,展示程序执行结果。通过这种方式,既可以让学生熟悉从C语言源程序到可执行文件的整个操作流程,又可以激发学生的兴趣,使学生认识到C语言并不是枯燥乏味的计算机理论,而是有血有肉、活灵活现的计算机程序,从而消除其畏惧心理,增强学习的主动性。 2.传授学习方法,强调学习的意义 有了学习兴趣,更要有好的学习方法。C语言是一门实践性很强的课程,最有效的学习方法就是将理论和实践结合起来,通过理论带动实践,通过实践强化理论,从而改善学生盲目的学习状况。在首次课上,可以用简洁的语言告诉学生如何预习、听课、复习,但应重点强调如何通过实践锻炼学生的动手能力和解决问题的能力。同时,C语言是学生学习后续编程语言的基础,虽然程序设计语言更新很快,但如果能够通过C程序设计课程掌握程序设计思想,具备真正解决实际问题的能力,那么,学习其他语言也会更加得心应手。 3.严格要求学生出勤,保证课程正常衔接 对初学者来说,C程序设计课程是非常深奥复杂的,一旦缺课,就很难再跟上教师的进度。因此,教师在首次课应着重强调听课的重要性,避免学生因懈怠或无关紧要的事情缺课,耽误学习。如果学生因病或重大事件不得不耽误课程,教师应利用业余时间帮助学生补习,保证课程的连续性和教学的整体进度。 二、始终坚持理论教学与学生实践相结合的教学方法 对于C程序设计课程来说,实践是至关重要的。因此,在整个教学过程中,一定要坚持理论学习和上机实践两手抓、两手都要硬。在理论课堂上,启发学生思想、开拓程序思路、讲明知识要点。上机课也不能流于形式,照抄照搬书中例题,而应给学生思考的空间,启迪学生敢于创新、勇于实践,锻炼学生解决问题的能力,使学生既掌握书中的重点算法,又充分感受到程序设计的乐趣。同时,理论课程与上机实践应紧密融合,学一部分知识,上机实践相应的内容。这样,学生既锻炼了动手和解决问题的能力,又巩固了所学的知识,否则理论和实践脱节,就失去了实践的意义。在实践过程中,还应该让学生养成预先分析题目、确定算法与数据结构、在纸上编出程序源代码的好习惯。这样,上机时,就可以将主要精力放在调试程序上面,提高上机效率。 三、巧妙引入软件工程的基本思想 在软件工程中,软件的生存周期包括“问题定义、可行性研究、需求分析、概要设计、详细设计、编码、调试、运行与维护”几个阶段,C语言编写的程序也是如此。但是,初学者对软件生存周期的认识不深,容易忽略,致使软件结构不合理、运行缓慢或难以维护。教师可以通过日常教学,逐渐培养学生编程中的软件工程思想,帮助学生养成良好的编程习惯,培养学生分析问题、解决问题的能力,培养学生的创新精神、团队意识,为学生今年从事IT行业做好铺垫。 C程序设计课程是学生学习编程语言的基础,在学生整个学习过程中占据着非常重要的地位。教师必须通过科学的教法,巧妙引导学生,帮助学生有效学习新知,养成良好的编程习惯,从而为学生今后的学习打下坚持的基础。 1.目的 本次大作业是《C程序设计》课程的综合实验,作为课堂教学和课内正常上机实验的补充。通过对《C程序设计》课程的学习,学生已初步掌握C语言的基本概念、过程化程序设计的基本方法,但是实际编程和上机调试程序的能力还远远不足。通过《C程序设计》大作业,加强学生自主学习、收集资料和动手编程的能力,为后续专业课程打好基础。 2.大作业说明 本次课程设计使用Visual C++ 6.0完成程序设计。按照2~6人为一组,每组选择一个题目,共同完成。每人必须独立该题目的一个部分,有能力的同学可独立完成。本次课程设计要求每个程序要求调试通过;课程设计结束后,每个小组上交大作业设计报告一份、程序一套,要求演示,演示时采用答辩形式,由各小组同学边演示边讲解编程思路。源代码以电子版形式提交,提交的源代码要求加注释。 3.提交内容要求 (一)程序设计报告 要求: (1)封面: 201x级《C程序设计》大作业设计报告 设计题目:…… 小组参与人员: [姓名:XXX] [学号:XXXXXXX] [分工:XXXXXXX] [姓名:XXX] [学号:XXXXXXX] [分工:XXXXXXX] (2)正文最好分章节,正文为5号宋体。(3)内容: 1)概述:需求说明,功能分析,开发环境等 2)程序概要设计:程序流程是什么,有哪些文件、函数,各实现什么功能,程序如何使用,输入输出各是什么等。3)程序详细设计:关键代码的主要思想,例如采用的查找采用折半法、排序采用冒泡法等给出算法的主要思想。 4)总结:分析程序的优点和不足,总结自己的收获。 (二)程序代码清单 要求:程序要求能够正常运行,并至少能实现基本功能要求。完成功能越多将得到较高的分数。 4.备选题目 (1)学习软件 系统功能设计 在本系统的设计中,主要实现如下一些功能:学习、测试、成绩统计与分析。其中,“学习”部分要求教100以内的加、减、乘和除;“测试”模块要求随机给出参与运算的数及运算类型,并判断用户的答案,测试完给出得分;“成绩统计与分析”模块能够统计成绩各种运算的平均成绩。 界面要求 欢迎界面、登录界面、系统模块选择界面及各模块界面。 (2)旅馆信息管理程序 系统功能设计 1.要求实现旅客的入住、换房和退房、查看旅客和房间信息,以及从文件读取相关信息,相关信息储存到文件的功能,从而实现旅馆信息管理的基本功能。;使用结构体数组来实现旅客入住、换房、退房三种行为。能将文件中的信息读到结构体中,能将结构体的信息保存到文件中。 2.旅客和房间的信息存放到文件中。界面要求 欢迎界面、登录界面、系统模块选择界面及各模块界面。例如: (3)大学生信息管理系统 系统功能设计 1. 在本系统的设计中,主要实现如下一些功能:增加记录、修改记录、删除记录、查询记录及浏览记录。学生记录包括:姓名、学号、性别、专业、联系电话、简历。 2. 学生记录以文件形式保存。 界面要求 欢迎界面、登录界面、管理界面。 (4)毕业纪念册 系统功能设计 1. 在本系统的设计中,主要实现如下一些功能:增加记录、修改记录、查询记录及浏览记录。毕业生记录包括:姓名、学号、性别、专业、联系电话、留言。 2. 毕业生记录以文件形式保存。 界面要求 欢迎界面、登录界面、管理界面。(5)英汉电子词典 系统功能设计 1. 在本系统的设计中,主要实现如下一些功能:(1)词典功能。英汉双解及例句。(2)生词本。查找过的单词写入生词本。 2. 词典中的词语及生词本以文件形式存储。 界面要求 管理界面。 (6)电话簿管理程序 系统功能设计 1. 在本系统的设计中,主要实现如下一些功能:增加新电话号码、删除电话号码、修改电话号码、查询电话号码(按照电话号码和按照姓名)、排序电话号码(按照电话号码和按照姓名)。电话记录包括:人名、工作单位、电话号码和E-mail地址。2. 电话记录以文件形式保存。 界面要求 欢迎界面、登录界面、管理界面。 (7)工资管理程序 系统功能设计 1. 在本系统的设计中,主要实现如下一些功能:加入一个员工的记录、删除一个员工的记录、显示所有员工记录、排序员工记录(按照职工号排序和按照姓名字母序排序)、查询工资(查询工资和显示某一工资范围的记录)、统计功能(统计某一工资范围的人数和统计各部门的工资总数)。员工记录包括:姓名、职工号、所属部门、基本工资、奖励工资.2. 员工记录以文件形式保存。界面要求 欢迎界面、登录界面、管理界面。 (8)商品库存管理 系统功能设计 1. 在本系统的设计中,主要实现如下一些功能:输入商品总类、显示商品种类、增加商品种类、删除商品种类、查询商品种类。商品种类记录包括:名称、代码、颜色、数量、品牌。 2. 商品记录以文件形式保存。 界面要求 欢迎界面、登录界面、管理界面。 (9)银行帐户管理 系统功能设计 1. 在本系统设计中,主要实现:输入新用户账户信息;显示用户帐户信息;修改帐户信息,要求用户输入帐号,根据用户需要修改除了帐号之外的其余信息;查询帐户情况,根据输入的帐号查询用户情况和帐户金额;删除帐户:根据输入的帐号找到要删除的帐号信息以后,经确认后删除该帐号信息;其中每个用户帐户信息中要求保存帐号、用户身份证号码、用户姓名、用户地址、帐户金额等; 2. 用户账户信息以文件形式存放 界面要求 欢迎界面、登录界面、管理界面。 (10)图书管理 1. 设计一个具有数据插入、修改、删除、显示、查询和统计(例统计总图书价格,某一出版社、某一类书有多少等)功能的图书管理程序,图书信息包括:书名、作者、书号、所属种类(例如计算机类、海洋类)、出版社、出版日期和单价。 2. 图书信息以文件形式存放 界面要求 欢迎界面、登录界面、管理界面。 (11)电话簿管理程序 系统功能设计 1. 存储的记录信息包括:人名、工作单位、电话号码和E-mail地址。要求具有如下功能: (1)加入一个新电话号码;(2)删除一个电话号码;(3)显示所有电话号码;(4)修改功能; (5)排序功能,包括按照电话号码排序和按照姓名字母序排序;(6)查询功能,包括按人名查询电话号码和按电话号码查询人名。2. 记录需要保存到文件中。 界面要求 欢迎界面、登录界面、管理界面。 (12)医院信息管理程序 系统功能设计 1.病人信息包括病人的id号码、姓名、病历以及消费信息,并用链表将所有病人信息整合。 2.能够实现病人信息的注册、病人信息的查询、病人消费统计、保存信息、载入信息、查询库存等几项功能。 界面要求 欢迎界面、登录界面、管理界面。系统完成后应实现类似下图所示界面。 (13)航班售票系统 系统功能设计 1、假设该民航有若干航班,要求实现增加航班和取消某个航班的功能。 2、查询:根据用户提出的终到站查询航班号、售票情况等航班信息;也可根据航班号,列出该航班已订票的乘客名单; 3、订票:根据航班号为客户订票,如该航班有余票,则为客户订票;如该航班已满员,则显示相应信息。 4、退票。 界面要求 欢迎界面、登录界面、管理界面。 (14)单项选择题测试系统 系统功能设计 1、用文件保存试题库,每个试题包括题干、4个备选答案、标准答案; 2、试题输入,增加试题到试题库中; 3、试题抽取,每次从试题库中抽出n道题(n由键盘输入); 4、答题,用户输入自己的答案; 5、自动判卷,系统可根据用户答案与标准答案的对比实现判卷并给出成绩。界面要求 欢迎界面、登录界面、管理界面。 (15)餐厅信息管理程序 系统功能设计 1.要求实现客户点菜的过程、客户结账、账目的管理、餐厅系统的维护四大功能模块,每个功能模块又分别对应一些不同操作子模块,从而完成一个餐厅信息管理信息系统。2.可以使用三种不同的结构体来分别存储餐桌、菜以及订单信息。3.使用文本文件完成数据的存储与读取,完成账单的管理。 界面要求 学 号 2014014083 姓 名 汪明 课程设计题目 通讯录的制作 2016 年 1 月 目 录 需求分析 1.1 功能与数据需求 1.1.1 题目要求的功能 1.1.2 扩展功能 1.2 界面需求 1.3 开发环境与运行需求 2 概要设计 2.1主要数据结构 2.2程序总体结构 2.3各模块函数说明 3 详细设计 3.1算法分析与设计 3.2主要程序段设计 4 测试 5 使用说明 5.1应用程序功能的详细说明 5.2应用程序运行环境要求 5.5输入数据类型、格式和内容限制 6 总结提高 6.1课程设计总结 6.2开发中遇到的问题和解决方法 6.3 对自己完成课设完成情况的评价 6.4《C语言与数据结构课程设计》课程的意见与建议 附录:程序源代码 需求分析 1.1 功能与数据需求 1)输入信息--enter();2)显示信息---display();3)查找以姓名作为关键字---search();4)删除信息---delete();5)存盘---save();6)装入---load(); 1.2 界面需求 1)每条信息至包含 :姓名(NAME)街道(STREET)城市(CITY)邮编(EIP)国家(STATE)几项;电话号码(TEL); 2)作为一个完整的系统,应具有友好的界面和较强的容错能力; 3)需要链表实现; 4)上机能正常运行。 1.3 开发环境 开发环境: 测试系统:Windows7,开发工具:Dev-C++ 概要设计 2.1主要数据结构 //构建链表的结构体 typedef struct CLUB { char NAME[20];//姓名 char STREET[20];//街道 char CITY[20];//城市 char STATE[20];//国家 char PHONE[20];//电话号码 char EIP[10];//邮编 struct CLUB *next;}CLUB;CLUB *headLink; 2.2程序总体结构 //主要函数 void Enter(CLUB *t);//录入 void Search(void);//查找 void Display(void);//输出输入的所有信息 void Delete(void);//删除信息 void Save(void);//保存 void Load(void);//从文件中的内容 //界面函数 void Menu(void);//显示菜单 2.2各模块函数说明 void CreateHeadLink(void);//创建 void Load(void);//从文件中的内容 void Menu(void);//显示菜单 void InsertOneNode(CLUB *t);//增加新结点 CLUB *MallocNode(void);//申请一个新结点,并将其初始化 void Enter(CLUB *t);//输入 void InsertOneNode(CLUB *t);//在链表的结尾处增加一个结点 void Search(void);//查找 void DesplayOneNode(CLUB *t);//输出一个结点的信息 void Display(void);//输出输入的所有信息 void Delete(void);//删除信息 void ChangeInforByName(void);//修改信息 void Save(void);//保存 详细设计 3.1算法分析与设计 Enter函数:从键盘中获得数据,通过scanf将各数据放入对应的链表中 Display函数:将链表中的数据输出 3.2主要程序段设计测试 使用说明 5.1应用程序功能的详细说明 先输入联系人的基本信息,可以显示录入的所有联系人的信息,可以将联系人的信息保存到CLUB.txt,当第二次运行时可以直接从CLUB.txt文件中调用 5.2应用程序运行环境要求 5.5输入数据类型、格式和内容限制 6 总结提高 6.1课程设计总结 6.2开发中遇到的问题和解决方法 6.3 对自己课程设计完成情况的评价 附录:程序源代码 #include char STREET[20];//街道 char CITY[20];//城市 char STATE[20];//国家 char PHONE[20];//电话号码 char EIP[10];//邮编 struct CLUB *next;}CLUB;CLUB *headLink;//链表表头指针 void CreateHeadLink(void);//创建 void Load(void);//从文件中的内容 void Menu(void);//显示菜单 void InsertOneNode(CLUB *t);//增加新结点 CLUB *MallocNode(void);//申请一个新结点,并将其初始化 void Enter(CLUB *t);//输入 void InsertOneNode(CLUB *t);//在链表的结尾处增加一个结点 void Search(void);//查找 void DesplayOneNode(CLUB *t);//输出一个结点的信息 void Display(void);//输出输入的所有信息 void Delete(void);//删除信息 void ChangeInforByName(void);//修改信息 void Save(void);//保存 int choose;//用于接收用户的选择 //主函数 int main(){ int j;system(“color 3E”);printf(“nnnnnnnnnn”);printf(“ttt %c ”,1);printf(“欢迎进入通信录!nn”);printf(“正在进入,请等候”);for(j=0;j<6;j++){ Sleep(300);printf(“.”);} system(“cls”); CreateHeadLink();Menu();} //函数功能:从文件中读信息 void Load(void){ FILE *fp;CLUB *p;p=(CLUB *)malloc(sizeof(CLUB));headLink=p;p->next=NULL;fp=fopen(“CLUB.txt”,“r”);if(!fp){ printf(“文件不存在n”);return;} p=MallocNode();while(fscanf(fp,“%s%s%s%s%s%sn”,p->NAME,p->STREET,p-> CITY,p->STATE,p->PHONE ,p->EIP)>0){ InsertOneNode(p);p=MallocNode();} fclose(fp);} //函数功能:显示菜单,根据用户的输入完成相应的功能 void Menu(void){ CLUB *p;printf(“nt|***********欢迎使用通信录信息管理系统****************|n”);printf(“t提示:为保证您的操作得到保存,请按正常顺序退出系统^_^n”);printf(“tt+------------主菜单---------------+n”);printf(“tt+ [1]******显示电话簿信息 +n”);printf(“tt+ [2]按姓名查找电话簿信息 +n”);printf(“tt+ [3]******录入电话簿信息 +n”);printf(“tt+ [4]******删除电话簿信息 +n”);printf(“tt+ [5]按姓名修改电话簿信息 +n”);printf(“tt+ [6]**保存所有电话簿信息 +n”);printf(“tt+ [7]装入文件中电话簿信息 +n”);printf(“tt+ [0]****************退出 +nn”);printf(“请输入指令:”);scanf(“%d”,&choose);//取得用户的选择 switch(choose){ case 1: Display();//显示所有电话簿的信息 Sleep(2000);system(“cls”);break;case 2: Search();//按姓名查找信息 Sleep(2000);system(“cls”);break;case 3: //录入新信息 p=MallocNode();//先申请一个新结点 Enter(p);//要求用户输入信息到新结点中 InsertOneNode(p);//将新结点加到链表中 Sleep(2000);system(“cls”);break;case 4: Delete();//删除电话簿信息 Sleep(2000);system(“cls”);break;case 5: ChangeInforByName();//按姓名修改电话簿信息 Sleep(2000);system(“cls”);break;case 6: Save();//保存 Sleep(2000);system(“cls”);break;case 7: Load();//装入 Display();Sleep(2000);system(“cls”);break;case 0: Save();//保存数据后再退出 free(headLink);exit(1);break;default: } break;} Menu();//递归调用 // 函数功能:建立链表表头 void CreateHeadLink(void){ CLUB *p;p=(CLUB *)malloc(sizeof(CLUB));headLink=p;p->next=NULL;} // 函数功能:增加新结点 void InsertOneNode(CLUB *t){ CLUB *p;p=headLink;while(p->next){ p=p->next;} p->next=t;} //函数功能:申请一个新结点,并将其初始化 CLUB *MallocNode(void){ CLUB *p;int i;p=(CLUB*)malloc(sizeof(CLUB));if(p==NULL)return NULL;for(i=0;i<20;i++)p->NAME[i]='; for(i=0;i<20;i++)p->STREET[i]='; for(i=0;i<10;i++)p->CITY[i]='; for(i=0;i<20;i++)p->STATE[i]='; for(i=0;i<20;i++)p->PHONE[i]='; for(i=0;i<20;i++)p->EIP[i]='; p->next=NULL;} return p;//函数功能:录入电话簿信息 void Enter(CLUB *t){ } printf(“请输入姓名: n”);scanf(“%s”,t->NAME);printf(“请输入街道信息:n”);scanf(“%s”,t->STREET);printf(“请输入城市信息:n”);scanf(“%s”,t->CITY);printf(“请输入国家信息:n”);scanf(“%s”,t->STATE);printf(“请输入电话号码:n”);scanf(“%s”,t->PHONE);printf(“请输入邮编信息:n”);scanf(“%s”,t->EIP);//函数功能:在链表的结尾处增加一个结点 void InsertOneNode(void){ CLUB *p;p=headLink;while(p->next){ p=p->next;} p->next=p;} //函数功能:根据用户输入的姓名显示电话簿的信息 void Search(void){ CLUB *p;char NAME[20];char flag=0;p=headLink->next;printf(“请输入要查询的姓名信息:n”);scanf(“%s”,NAME);while(p){ if(strcmp(p->NAME,NAME)==0){ printf(“n 姓名t街道t城市t国家t电话号码t邮编n”);DesplayOneNode(p);flag=1;break;} p=p->next;} if(!flag)} printf(“对不起,不存在姓名为 %s 的电话簿信息n”,NAME);//函数功能:输出一个结点的信息 void DesplayOneNode(CLUB *t){ printf(“%st”,t->NAME);printf(“%st”,t->STREET);printf(“%st”,t->CITY);printf(“%st”,t->STATE);printf(“%st”,t->PHONE);printf(“%st”,t->EIP);printf(“nt”);} //函数功能:显示所有电话簿的信息 void Display(void){ CLUB *p;p=headLink->next;if(p==NULL){ printf(“现在没有电话簿信息,请先输入电话簿信息nn”);return;} printf(“n”);printf(“nt姓名t街道t城市t国家t电话号码t邮编ntnt”);while(p){ DesplayOneNode(p);p=p->next;} p=NULL;} //函数功能:根据用户输入的姓名删除 void Delete(void){ char NAME[20];CLUB *p,*q;char flag=0;printf(“请输入要删除的姓名信息:”);scanf(“%s”,NAME);p=headLink;q=headLink->next;while(q){ if(strcmp(q->NAME,NAME)==0){ p->next=q->next;free(q);flag=1;break;} p=p->next;q=q->next;} if(!flag){ } printf(“不存在该姓名的信息n”);return;} printf(“成功删除n”);//函数功能:根据输入的姓名修改电话簿信息 void ChangeInforByName(void){ CLUB *p;char NAME[20];char flag=0;p=headLink->next;printf(“请输入姓名:n”);scanf(“%s”,NAME);while(p){ if(strcmp(p->NAME,NAME)==0){ printf(“请输入新的街道信息:n”);scanf(“%s”,&p->STREET);printf(“请输入新的电话号码:n”);scanf(“%s”,&p->PHONE);printf(“修改成功n”);break;} } p=p->next;} // 函数功能:保存链表数据到文件中 void Save(void){ CLUB *p;FILE *fp;p=headLink->next;if(p==NULL){ 实验日期:2012-10-8 实验目的:掌握超链接的创建; 实验内容: 超链接创建; 实验作业:在“我的足球网”首页“足球新闻”添加超链接至news文件夹中news.html;“首页”中“我与足球”添加超链接至:aboutme/me.html网页文件。 实验步骤: 1、选中“足球新闻”四个字,单击“属性”面板中“HTML”,在“链接”对话框单 击“浏览文件”按钮,查找d:jcwwwnewsnews.html; 2、选中news.html网页文件,单击“确定”按钮; 3、按ctrl+s保存index页面,并测试超链接; 4、在首页中选中“我与足球”行,单击“属性”面板中“HTML”,在“链接”对话 框单击“指向文件”按钮,并按住鼠标左键,拖到至右侧站点面板中“文件”中:aboutme/me.html; 5、按ctrl+s保存index页面,并测试超链接; 摘 要:C语言语法灵活,执行效率高,移植性强,在业界应用广泛。高职院校C语言程序设计课程教学强调面向实际岗位群,教学难度较大。本文针对C语言特点,结合自身教学实践,从各个教学环节探讨了提高课程教学质量的方法和实施手段。 关键词:C语言 实际岗位群 教学实践 教学方法 C语言程序设计课程是高职院校计算机专业核心课程。本门课程对于学生而言,是一门比较抽象难学的课程。下面从高职C语言程序设计课程教学实践入手,谈谈提高本门课程教学质量的方法与实施手段。 一、明确课程定位 C语言在软件开发领域具有重要地位,尤其在嵌入式系统、工业控制等行业有着广泛应用。C语言程序设计课程是计算机及电子信息类专业的专业基础课程,是学习单片机开发、计算机接口技术等课程的必修先导课。 二、科学配置教学资源 1.精选教材 高职C语言程序设计课程教材选择方面应该注重以下几个方面。 第一,教材教学任务实践性,理论知识尽量简洁,满足够用即可。 第二,知识安排从易到难,符合高职学生学习规律。 第三,编写与指定教材相配套的实践上机校本教材,内容围绕教材理论知识,设计面向实际岗位需求的实践点。 2.建设精品课程资源 (1)组建专业能力强、学历年龄结构合理的师资队伍。 (2)录制精品微课程,按照教学计划将教学视频进行融合。 (3)制作课程题库,提高编程能力需要大量的实践训练,制作质量高的题库,让学生可以反复练习,不断提高动手能力。 (4)发挥移动互联优势,开发基于移动设备的课程网站,使学生可以在任何时间地点学习知识,充分激发学习兴趣。 三、合理优化教学方法 高职C语言程序设计课程理论性强,因此,在教学中要注重多种教学方法相结合,理论与实际相结合。选取教学方法应始终围绕以下要点:以突出课程实践能力为重点;以激发学生学习积极性为主导;注重实践性环节,做到“教、学、做”相统一。 1.启发式教学法 启发式教学也称引导式教学。它要求教师依据学生学习规律,引导学生积极、主动思考问题,掌握知识。这种教学方法突出了以学生为主体,教师为引导的教学思想。 例如,在讲解顺序结构时,引导学生思考烧菜这件事情。有些步骤是不能颠倒的,比如洗菜和炒菜,否则就无法食用了,从而进一步指出解决问题要遵循一定步骤。编写顺序结构程序时,也一定要按照逻辑顺序进行。 在讲解选择结构时,我们展示交通红绿灯图片,引导学生思考,按照交通法规行人通过红绿灯如何进行选择,才能确保交通安全。因此,得出结论是满足绿灯亮这个条件就通行,红灯亮则等候。在此基础上引出我们讲解的条件表达式,以及用if…else…条件语句编写选择结构的C程序。 在讲解循环结构时,引导学生思考统计班级期末考试5门课程成绩的步骤。几个同学容易计算,但如果几百名同学计算量就大。其实每个人计算方法是一样的,此处存在重复的操作和人数的有限性。引出C语言实现重复操作的方法:循环结构,可利用while,for,do while语句实现该结构。 引导学生主动思考,让他们把抽象的理论和现实生活中的事例相结合,激发学习兴趣,提高学习主动性。 2.项目教学法 为了提高学生编程能力,项目教学法必不可少。笔者采用常见的LED字幕滚动屏作为项目选题,要求在屏幕上模拟实现字幕一边滚动一边闪烁。 项目教学过程为:首先对班级进行分组(2~3人为单位),要求分工协作,共同完成;然后,学生在小组内互相讨论,教师巡回查看,发现某组学生碰到困难,参与讨论,指导答疑;最后,在教师的指导下,学生以小组为单位完成模拟软件开发演练,培养和提高学生编程能力。 四、大力改进教学实施 为了使教学方法能在课堂中发挥最大效果,教师必须改进实施手段。结合高职C语言教学目标和实际岗位群的需求,理论教学坚持知识必需、够用的原则,将多种教学方法相结合;上机前人人动手编程,上机直接调试,综合性项目合作完成,撰写实验报告,找出问题,总结方法。 五、完善考核评价体系 采用多元化考核评价体系,过程性考核和结论性考核相结合,理论考核和实践考核相结合。合理分配各个指标的考核比重,使考核更加全面科学。其中过程性学习和实践考核占比20%,单项技能考核占比20%,项目设计技能考核25%,试卷考核35%。 六、小结 笔者分析了C语言在计算机语言中的重要地位及教学难度大等问题,结合自身C语言教学目标和自身教学实践,对提高C语言程序设计课程教学质量进行了探讨。 参考文献: [1]孙静.C语言精品资源共享课程建设规划[J].吉林省教育学院学报,2015(1). [2]张义.启发式教学法在C语言程序设计教学中的应用[J].电脑知识与技术,2013(19). (作者单位:潘山,江西冶金职业技术学院机电工程系; 报告人情况: 班级:自控1102姓名:赵铎学号:2011010807理论课老师姓名:李文杰实验课老师姓名:张红霞 学习到了以下内容:1、2、3、4、5、6、7、8、9、掌握C语言中,基本的输入输出函数的使用方法。掌握printf中转义字符’t’,’n’的用法。掌握赋值语句的用法。掌握算术表达式、赋值表达式的计算。掌握数学函数的使用。掌握关系运算及其表达式。掌握逻辑运算及其表达式。掌握条件运算符。掌握if语句。 10、掌握switch语句。 11、掌握for,while语句的使用方法。 12、掌握直到型循环do-while的用法。 13、掌握break,continue的用法。 14、掌握函数的分类。 15、掌握自定义函数的方法。 16、掌握自定义函数的调用用法。 17、掌握函数参数的传递。 18、掌握全局变量,局部变量,静态变量的使用。 19、掌握数组的定义。 20、掌握数组的引用,使用方法。 21、掌握字符串的储存与操作。 22、掌握字符串作为特殊的一维数组。 23、更加娴熟使用数组解决问题。 24、掌握二维数组的使用方法。 25、更加熟悉字符串解决问题的方法。 26、增强了数组中排列顺序的逻辑关系。 27、掌握指针的概念。 28、掌握指针定义,赋值,引用的方法。 29、掌握指针访问一维数组的方法。 30、掌握指针作为参数的使用。 31、掌握指向数组的指针作为函数参数。 掌握了以下: 1、掌握C语言中,基本的输入输出函数的使用方法。 2、掌握printf中转义字符’t’,’n’的用法。 3、掌握赋值语句的用法。 4、掌握算术表达式、赋值表达式的计算。 5、掌握数学函数的使用。 6、掌握关系运算及其表达式。 7、掌握逻辑运算及其表达式。 8、掌握条件运算符。 9、掌握if语句。 10、掌握switch语句。 11、掌握for,while语句的使用方法。 12、掌握直到型循环do-while的用法。 13、掌握指针的概念。 14、掌握指针定义,赋值,引用的方法。 15、掌握指针访问一维数组的方法。 自己的经验 学习C语言绝不是听懂就可以的,而是必须自己动手去实践,从自己的实践中找到不足和缺点,及时发现和改正能使自己记得更加牢固,使以后编写程序更加流畅和严谨! 对老师的意见 关键词:C语言程序设计;项目教学模式;应用能力 中图分类号:G642 文献标识码:A文章编号:1007-9599 (2011) 15-0000-02 C Language Programming Course Project Teaching Mode Luan Guifen (Taizhou Higher Vocational School of Mechanical&Electrical Technology,Taizhou225300,China) Abstract:C language programming course using the project to improve the teaching ability of students to apply,set project goals and prepare for the teaching project teaching the theoretical and experimental materials,select the appropriate teaching project library construction project cases,in addition to theoretical and experimental courses in teaching,effective implementation of the project,the project should also be extended to extra-curricular teaching in the classroom network. Keywords:C language programming;Project teaching mode;Application ability 在职校教学中,传统教学法很难满足信息化社会应用型人才的能力培养要求。C语言程序设计课程是一门实践性较强的课程,应更加重视应用能力与实践能力的培养,而非计算机专业的C语言程序设计教学多用传统教学法,导致学生的理论学习与实践脱节,很大程度上影响了教学效果。因此,迫切需要采用新的教育教学法或教学模式来改变这种现状。以培养应用能力为核心的“项目教学模式”,它把学习知识、训练技能、培养能力贯穿于整个教学过程之中,能够充分发掘学生的创造潜能,提高学生的动手能力。 一、项目教学模式 项目教学模式是在建构主义理论[1]指导下,以基于项目的教学方式完成课程教学任务的教学方法体系。教师在授课过程中,以一个贯穿课程始终的,来源于生活和生产实际的成功项目案例为线索组织教学,进行知识传授和技能培训[2]。它实质上就是一种基于建构主义学习理论的探究性学习模式,强调知识意义和能力建构性,强调协作学习,在不断解决问题、实现阶段任务中完成对知识的意义建构。基于建构主义的项目教学法与传统的教学法相比,将以教师、课本、课堂为中心转变为以学生、项目、实践为中心,能够使理论知识与应用能力的培养有机结合[3]。 在项目教学的实施过程中,经常遇到以下一些实际问题:项目教学是从应用的角度出发,与传统的教学方式有很大的区别,教学目标该如何制定才能体现项目教学的实施效果。传统的教材对于知识模块的划分不适合项目教学的实施,需要编制适合项目教学的理论教材和实验教材来配合项目教学。因为篇幅有限,教材中只能涉及到几个项目案例,使得教学背景比较单调,而且项目案例通常是比较大的程序,如何根据知识模块将项目案例合理分解为较小的项目子例,使其能够更好地配合理论和实验课也是需要解决的问题。在项目教学中,教师应该采用怎样的教学方法,才能有效地实施项目教学并监控和指导学生的项目学习。 二、C语言程序设计课程中的项目教学模式 (一)根据实际情况,設定教学目标 结合C语言程序设计课程特点和项目教学从应用出发的特点,对C语言程序设计课程进行教学设计,制定技能训练和应用培养教学目标,采用“语句、代码、程序、应用”四个教学目标层次分类,同时采用“熟练使用基本知识点,练习设计编写小程序,综合项目设计应用”的实践教学层次,使项目教与学的衡量标准成为一种可具体追求和实现的目标[4]。具体的项目教学目标分别从知识点目标、技能目标和应用目标三个层次进行描述。 知识点目标是对课程理论知识点的教学要求进行描述,例如,写出伪代码描述具体问题的算法、应用“自顶向下、逐步求精”的方法求解问题、解释一维数组在内存中的存储、比较字符数组作为字符串和指针指向字符串等。技能目标分为熟练使用基本知识点和练习设计编写小程序两个层次。例如,练习C源程序文件的创建(编辑输入、存储编译、简单运行调试)过程,掌握使用VC集成开发环境处理一个C语言程序的步骤:编辑、编译、连接和运行;编程实现对多个数据的处理,要求练习加、减、乘、除、求余的运算等。应用目标是指“综合项目设计应用”,分为两个层次:(1)开发学习者发现问题,总结问题的能力,让学习者结合身边事,自找题目,写出编程实现步骤;(2)软件项目应用设计训练。培养学生应用能力,实施项目教学,需要学习者独立或合作完成项目训练,达到应用目标要求的标准。例如:结合自己专业或生活经验,寻找需要或可以分解为多个函数实现的实际问题,自编一个题目,利用自定义函数和函数调用实现问题求解过程;软件功能模块划分,应用模块化编程思想,综合分析系统功能,设计划分并画出系统模块结构图,总结出系统数据字典,并详细描述各模块功能及函数功能等。 (二)编制适合项目教学的理论教材和实验教材 为了配合项目教学顺利的进行,需要编制适合项目教学的理论教材和实验教材。理论教材中,首先要对传统教材中的理论知识模块进行重新整合,与项目设计的进展相结合,分为三个层次模块。初级阶段的知识模块主要是结构化程序设计基础,包含C语言程序设计课程的基本知识、基本数据类型及其定义与操作、程序的基本结构。中级阶段的知识模块主要是模块化程序设计基础,包含函数的编写和调用、变量的作用域与生存期的运用。高级阶段的知识模块主要是复杂数据结构和程序设计方法,包含数组、指针、结构体、文件的操作和应用。理论教材中的例子分为项目子例和教学辅例。项目子例是将整个项目分解为小的例子配合理论知识的讲解,教学辅例是与项目子例背景相似、题型相似的传统例题。 实验教材是对理论教材的实践和扩展。项目教学的关键就是对项目的实践,学生通过理论教材学习项目设计的方法,在实验教材中提供给学生更多的项目参考子例和具体的实践步骤,指导学生独立完成项目的实践。 (三)选择合适的项目案例,建设教学项目库 在实际的生产生活中,选择具有真实性、典型性等特点的项目。要强调的是项目的应用性,而不是专业性,让大部分学生能够理解和接受。项目的内容应符合课程教学目标的要求,能够容纳和体现更多数据结构、算法和知识点的应用,尽量能够贯穿课程。项目应难易适宜、大小适中,让学生在课程的学习过程中有能力完成项目内容,达到更好地掌握课程知识的效果。教师往往在课堂上只能讲解有限的几个项目案例,导致教学项目用例背景单调,不利于拓展学生的思维,因此应建设教学项目案例库,选择大量的项目案例供学生课下学习和参考。项目案例库中除了包含大量完整的项目案例,还应将项目案例分解为课堂教学用例系列、实验教学用例和学生项目实践用题系列等。 在项目教学中,将项目与课程的内容结合,根据各层次知识模块,选择某些项目分解为与每节理论课的知识点结合的项目教学课堂用例系列,要求在难度、复杂度、模块大小等方面要适合课堂讲解和学生学习。在实验课上,选择适合的项目分解为学生可以在有限课时内独立完成的实验教学用例系列,配合理论课的课堂用例进行项目实践。为了拓展学生的思维,设计学生项目用题系列作为学生课下学习的补充。 (四)理论课中教师实施项目教学 结合项目教学,采用小组合作学习方式[5],让学生分组实践项目。建议4-7人自由组合为一个小组,每组推选一个组长组织组内的学习,并将学习的过程记录下来。具体的教学过程如下:(1)教师用项目课堂用例提出需要解决的问题,引入本节课要学习的问题。(2)教师结合要实现的项目问题,讲解知识点。(3)教师选择项目辅助用例,运用知识点。(4)教师和学生一起讨论如何运用知识点,解决项目问题。(5)教师对项目内容进行扩展,提出小组讨论问题。 (五)实验课中学生实践项目教学 在实验课上,以小组为单位进行项目实践,并写下实验报告。具体的教学过程如下:(1)教师课前布置实验课的项目内容,课前小组讨论出可执行的步骤。(2)学生模仿课堂项目用例的方法,实施实验项目用例的内容。(3)各小组讨论项目实验结果,并将结果合并实现综合项目。教师参与到小组的讨论中,给予指导意见。(4)小组总结实验课内容,写出小组实验报告。实验报告中要详细记录每个组员的参与情况,包括发言、上机实践、帮助其他组员等具体的过程,这样教师可以通过查看实验报告的情况了解每个学生的学习情况,起到监控和指导的作用。 (六)课外的网络课堂交流补充 教学课时数是有限的,教师不可能跟每一位学生进行很好的交流。而且学生之间的大多数交流也仅限于小组内部,各小组间的交流很少。因此,需要建立課外的网络课堂作为教学的补充,例如,教师建立教师教学博客,学生可以建立班级博客、小组博客等。教师可以提前将教学内容发布在教学博客上供学生提前预习,并提出问题供学生讨论,学生通过回复与教师和其他同学交流。学生可以给教师留言,与教师交流学习中的问题,其他学生也可以看到这个交流的过程,启发自己的思维。每个小组可以通过博客展示自己的实验成果,各小组可以通过博客交流学习心得。教师可以通过博客中的交流监控到所有学生的学习情况、思想动态,适时的调整教学进度和教学内容。 在项目教学模式中,设定项目教学目标并编制适用于项目教学的理论和实验教材是有效实施项目教学的前提,选择合适的项目案例建设教学项目库是项目教学的关键因素。在具体的项目教学过程中,每个教师应根据实际的教学情况适当地调整教学模式,选择有效可行的方法以保证教学效果。 参考文献: [1]陈越.建构主义与建构主义学习理论综述. http://www.being.org.cn/theory/constructivisom.htm [2]孟朝霞.基于项目的程序设计实践课程教学流程设计[J].高等理科教育,2008,5 [3]徐涵.项目教学的理论基础,基本特征及对教师的要求[J].职教论坛,2007,3 [4]孟朝霞.C语言课程的应用性目标模型[J].运城学院,2009,1 【c课程设计实训报告】推荐阅读: c课程设计设计报告10-10 c语言课程设计设计报告10-29 C语言socket课程设计报告11-05 c语言课程设计题目09-25 C语言课程设计与评价学习总结09-12 C语言课程设计任务书新——刘阳10-01 C语言课程设计——飞机订票系统源代码10-30 课程设计实验报告06-19 校验码设计-数字电路课程设计报告06-16 yivb课程设计报告07-242.C程序设计课程教法探究 篇二
3.c课程设计实训报告 篇三
4.c课程设计实训报告 篇四
5.c课程设计实训报告 篇五
6.c课程设计实训报告 篇六
7.期末C语言课程总结报告 篇七
8.c课程设计实训报告 篇八