C语言课程设计实验报告4340106

合集下载

C语言程序设计实训报告

C语言程序设计实训报告

C语言程序设计实训报告一、实训背景介绍本次实训是为了提高学生的C语言编程能力,培养学生解决实际问题的能力,加强学生的动手能力和团队合作能力。

实训内容主要包括C语言的基础知识和常用库函数的使用,以及通过编写实际的小项目来巩固所学知识。

二、实训过程及成果1.实训过程本次实训总共经历了三个阶段:知识学习、编程实践和项目开发。

(1)知识学习阶段:在这个阶段,我们通过教材和课堂上的讲解学习了C语言的基本语法、数据类型、运算符、流程控制语句等基础知识,并学习了常用库函数的使用。

(2)编程实践阶段:在这个阶段,我们通过一系列的编程练习来巩固所学知识。

通过编写简单的程序,我们学会了如何使用C语言的基本语法和常用库函数来解决实际问题。

(3)项目开发阶段:在这个阶段,我们分小组进行项目开发。

每个小组由3-5名学生组成,负责编写一个小型的C语言项目。

项目的内容可以是游戏、学生管理系统、图书管理系统等等。

我们需要在规定的时间内完成项目的需求分析、设计、编码和测试工作,并提交最终的项目成果。

2.实训成果通过本次实训,我掌握了C语言的基本语法和常用库函数的使用,并且通过实际的编程练习和项目开发锻炼了自己的编程能力和解决实际问题的能力。

在项目开发的过程中,我学会了如何进行需求分析和设计,并能够合理地组织代码结构和调试程序。

三、实训心得体会通过这次实训,我深刻地认识到了编程是一项需要耐心和毅力的工作。

在编写代码的过程中,经常会遇到各种各样的问题,需要不断地调试和修改。

同时,编程还需要良好的团队合作能力,只有团队成员之间的密切配合和良好的沟通,才能顺利地完成项目。

通过这次实训,我不仅提高了自己的编程能力,还锻炼了自己的动手能力和团队合作能力。

在以后的学习和工作中,这些经验和能力无疑会给我带来很大的帮助。

我相信,只要持之以恒地继续努力,我一定能够在C语言编程方面有所突破。

四、总结与展望通过这次实训,我对C语言的掌握更加深入,掌握了一些常用的编程技巧和方法。

C语言程序设计实验报告(实验大纲+过程)

C语言程序设计实验报告(实验大纲+过程)

C语言程序设计实验报告(实验大纲+过程)C语言程序设计实验报告(实验大纲+过程)一、实验目的本实验旨在通过实际的C语言程序设计任务,培养学生的编程思维、动手能力,加深对C语言程序设计的理解和掌握。

二、实验内容1. 实验环境的搭建在计算机上安装C语言编程环境,如C语言编译器。

2. 实验材料准备根据给定的实验题目和要求,准备相应的实验材料,包括输入输出测试数据、参考文档等。

3. 实验任务根据实验题目,编写C语言程序,实现特定的功能要求。

程序需包括输入部分、处理部分和输出部分。

4. 程序调试与测试对编写完成的程序进行调试,确保程序的正确性。

使用多组测试数据进行测试,验证程序的功能是否符合要求。

5. 实验总结与思考对实验过程中遇到的问题进行总结,并提出改进建议。

思考课程的重点和关键,深化对C语言程序设计的理解。

三、实验步骤1. 实验环境的搭建在计算机上下载并安装C语言编译器,如Dev-C++或Code::Blocks等。

2. 实验材料准备根据实验题目要求,准备好实验所需的输入测试数据和输出要求。

3. 编写C语言程序根据实验题目,使用C语言编写程序。

在程序的开头部分添加必要的注释,说明程序的功能和使用方法。

4. 程序调试与测试编译并运行程序,查看是否存在语法错误。

使用给定的测试数据,验证程序的输出是否符合要求。

5. 实验总结与思考对实验过程中遇到的问题进行总结,并提出改进建议。

思考课程的重点和关键,深化对C语言程序设计的理解。

四、实验结果与分析根据实验题目要求,给出实验编写的C语言程序的详细代码,并解释程序的设计思路和实现方法。

同时,给出实验所得的输出结果,并分析结果是否符合预期。

五、实验心得体会通过完成本次实验,我对C语言程序设计的基本语法和思维方式有了更深入的理解。

在编写程序的过程中,我遇到了一些问题,但通过不断尝试和调试,最终顺利完成了实验任务。

在今后的学习中,我将进一步加强对C语言的理解和应用能力,提高程序设计的质量和效率。

c语言课程设计实验报告

c语言课程设计实验报告

c语言课程设计实验报告一、教学目标本课程的目标是让学生掌握C语言的基本语法、数据结构、算法和编程技巧,培养学生独立编程和解决问题的能力。

具体目标如下:1.知识目标:–掌握C语言的基本语法和关键字。

–理解数据类型、变量、常量的概念及使用。

–熟悉运算符、表达式、语句的结构。

–学习函数的定义、声明和调用。

–掌握数组、指针、字符串的基本操作。

–了解结构体、共用体、枚举类型等数据结构。

–学习基本算法和排序、查找等常用算法。

2.技能目标:–能够使用C语言编写简单的程序,解决实际问题。

–熟练使用集成开发环境(IDE)进行程序调试和运行。

–掌握编程规范和代码注释,编写可读性强的代码。

–学会使用函数模块化编程,提高代码重用性。

3.情感态度价值观目标:–培养学生对计算机科学的兴趣,激发创新意识。

–培养学生的团队合作精神和自主学习能力。

–强化学生的编程实践能力,提高解决实际问题的能力。

二、教学内容根据课程目标,本课程的教学内容主要包括以下几个部分:1.C语言基本语法和关键字。

2.数据类型、变量、常量的使用和声明。

3.运算符、表达式、语句的结构和用法。

4.函数的定义、声明和调用。

5.数组、指针、字符串的基本操作和应用。

6.结构体、共用体、枚举类型等数据结构的概念和使用。

7.基本算法和排序、查找等常用算法。

8.第一周:C语言基本语法和关键字。

9.第二周:数据类型、变量、常量的使用和声明。

10.第三周:运算符、表达式、语句的结构和用法。

11.第四周:函数的定义、声明和调用。

12.第五周:数组、指针、字符串的基本操作和应用。

13.第六周:结构体、共用体、枚举类型等数据结构的概念和使用。

14.第七周:基本算法和排序、查找等常用算法。

三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式,包括:1.讲授法:教师通过讲解、示例等方式,向学生传授C语言的基本知识和编程技巧。

2.讨论法:教师引导学生进行问题讨论,培养学生的编程思维和解决问题的能力。

c语言实习报告3篇

c语言实习报告3篇

c语言实习报告3篇c语言实习报告1在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。

在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,更多的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。

由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。

包括了程序模块处理.简单界面程序.高级界面程序.程序的添加修改.用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。

上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。

对于程序设计语言的.学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。

学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。

因为学时所限,课程不能安排过多的上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。

为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。

课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:1.加深对课堂讲授内容的理解课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。

然而要使用c语言这个工具解决实际问题,又必须掌握它。

通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。

对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。

学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。

c语言课程设计实习报告

c语言课程设计实习报告

c语言课程设计实习报告一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、数据结构、算法和编程思想,培养学生运用C语言解决实际问题的能力。

具体分为以下三个层面:1.知识目标:学生需要掌握C语言的基本语法、关键字、数据类型、运算符、控制结构、函数、数组、指针、结构体等基本概念。

2.技能目标:学生需要能够运用C语言进行程序设计,熟练使用C语言编写和调试程序,掌握常用的调试技巧。

3.情感态度价值观目标:培养学生对计算机科学的兴趣和热情,提高学生独立思考、解决问题的能力,培养学生的团队协作精神和创新意识。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、算法和编程思想。

具体安排如下:1.C语言的基本语法:介绍C语言的基本规则,包括关键字、数据类型、运算符、控制结构等。

2.数据结构:讲解常用的数据结构,如数组、链表、栈、队列、树等。

3.算法:介绍常见的排序算法、查找算法、递归算法等。

4.编程思想:培养学生面向对象编程的思想,讲解面向对象编程的基本概念,如类、对象、封装、继承、多态等。

三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性。

具体方法如下:1.讲授法:教师讲解C语言的基本语法、数据结构、算法和编程思想,帮助学生建立知识体系。

2.案例分析法:通过分析实际案例,让学生了解C语言在实际应用中的优势和局限。

3.实验法:安排上机实验,让学生动手编写C语言程序,培养学生的编程能力。

4.讨论法:学生进行小组讨论,分享学习心得,互相促进,提高学习效果。

四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。

具体如下:1.教材:选用权威、实用的C语言教材,如《C程序设计语言》、《CPrimer Plus》等。

2.参考书:提供丰富的参考书籍,如《C语言入门教程》、《C语言编程实践》等。

3.多媒体资料:制作精美的PPT,提供视频教程、在线编程练习等资源,帮助学生更好地理解和掌握C语言。

c课程设计试验报告

c课程设计试验报告

c 课程设计试验报告一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、数据结构和算法,培养学生编写简单程序的能力,使学生了解计算机编程的基本思想和方法。

具体来说,知识目标包括:了解C语言的基本语法、数据结构和算法;掌握C语言程序设计的基本思想和方法。

技能目标包括:能够使用C语言编写简单的程序;能够运用C语言解决一些实际问题。

情感态度价值观目标包括:培养学生对计算机编程的兴趣和热情;培养学生独立思考、解决问题的能力。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构和算法。

具体安排如下:1.第一章:C语言概述,主要介绍C语言的基本概念、特点和应用范围。

2.第二章:数据类型和运算符,主要介绍C语言的数据类型、运算符和表达式。

3.第三章:控制语句,主要介绍C语言的控制语句,如条件语句、循环语句等。

4.第四章:函数,主要介绍C语言的函数定义、函数调用和函数返回值。

5.第五章:数组和字符串,主要介绍C语言的数组和字符串的基本操作。

6.第六章:指针,主要介绍C语言的指针的概念和运用。

7.第七章:结构体和联合体,主要介绍C语言的结构体和联合体的概念和运用。

8.第八章:文件操作,主要介绍C语言的文件操作的基本方法。

三、教学方法为了达到本课程的教学目标,我们将采用多种教学方法,如讲授法、讨论法、案例分析法、实验法等。

通过这些方法的综合运用,激发学生的学习兴趣,提高学生的编程能力。

1.讲授法:通过讲解C语言的基本概念、语法和算法,使学生掌握C语言的基本知识。

2.讨论法:通过学生进行课堂讨论,培养学生的独立思考和问题解决能力。

3.案例分析法:通过分析典型的编程案例,使学生了解C语言在实际应用中的基本方法。

4.实验法:通过上机实验,使学生掌握C语言的编程技巧,培养学生的实际编程能力。

四、教学资源为了支持本课程的教学内容和教学方法的实施,我们将选择和准备以下教学资源:1.教材:《C程序设计语言》(K&R著)2.参考书:《C Primer Plus》(Stephen Prata著)3.多媒体资料:教学PPT、视频教程等4.实验设备:计算机、编程环境(如Visual Studio、Code::Blocks等)通过以上教学资源的综合运用,丰富学生的学习体验,提高学生的学习效果。

c语言课程设计设计报告

c语言课程设计设计报告

c语言课程设计设计报告c语言课程设计设计报告「篇一」c语言课程设计实验报告第一章基础掌握1.1 实验目的掌握C程序设计编程环境Visual C++,掌握运行一个C程序的基本步骤,包括编辑、编译、链接和运行。

(]1.2 实验要求在报告中记录建立、保存C程序实习过程。

1.3 实验基本内容编写程序,在屏幕上显示一个短句“Hello World”(1)程序:1)编译如下程序:#includeVoid 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)编译如下程序: #includevoid main{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)编译如下程序: #includevoid main{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)链接。

c语言课程实验报告

c语言课程实验报告

c语言课程实验报告C语言课程实验报告引言:C语言作为一门广泛应用于计算机科学领域的编程语言,具有简洁高效的特点,被广泛用于系统软件、嵌入式设备等领域。

在C语言课程中,我们进行了一系列的实验,旨在通过实践提升我们的编程能力和理解C语言的各种特性。

本报告将对我们进行的实验进行总结和分析。

实验一:基本语法和数据类型在第一次实验中,我们学习了C语言的基本语法和数据类型。

通过编写简单的程序,我们熟悉了C语言的变量定义、运算符、控制语句等基本概念。

同时,我们也了解了C语言中常用的数据类型,如整型、浮点型、字符型等,并学会了如何进行类型转换和输入输出操作。

实验二:数组和字符串处理在第二次实验中,我们深入学习了C语言中的数组和字符串处理。

通过编写程序,我们掌握了数组的定义、初始化和访问方法,了解了一维数组和多维数组的特点。

同时,我们也学会了使用C语言提供的字符串处理函数,如strlen、strcpy、strcat等,实现字符串的复制、连接和比较等操作。

实验三:函数和指针第三次实验是函数和指针的学习。

我们学习了如何定义和调用函数,了解了函数的参数传递和返回值的相关知识。

同时,我们也深入研究了指针的概念和用法,掌握了指针的声明、初始化和使用方法。

通过实验,我们发现指针在C语言中具有重要的作用,可以提高程序的效率和灵活性。

实验四:文件操作和结构体在第四次实验中,我们学习了C语言中的文件操作和结构体。

通过使用文件读写函数,我们能够实现对文件的读取和写入操作,实现数据的永久存储。

同时,我们也学会了定义和使用结构体,实现对复杂数据的封装和处理。

这些知识对于实际项目的开发非常重要。

实验五:动态内存分配和链表在第五次实验中,我们学习了动态内存分配和链表的使用。

通过使用malloc和free函数,我们能够在程序运行时动态分配和释放内存,提高了内存的利用效率。

同时,我们也学会了使用链表数据结构,实现对数据的动态存储和管理。

链表在数据结构和算法中有着广泛的应用,对于解决实际问题非常有帮助。

C语言程序设计上机实验报告(精选5篇)

C语言程序设计上机实验报告(精选5篇)

C语言程序设计上机实验报告(精选5篇)第一篇:C语言程序设计上机实验报告黔南民族师范学院 C语言程序设计上机实验报告系部:计算机科学系年级:2013 级班级:姓名:学号:实验时间:实验成绩:2013年月日实验三顺序结构程序的设计一实验名称:顺序结构程序的设计二.实验环境:windows XP系统,VC++6.0软件三.实验目的:四.实验内容:五.算法描述流程图六.源程序七.测试数据及运行结果八.实验心得实验成绩评分要求1、原创性发现抄袭或雷同成绩为0分2、正确性程序正确60分3、可读性格式清楚,有注释,变量命名规范20分4、健壮性对特殊测试数据有考虑有测试10分5、效率程序运行效率高10分第二篇:《c语言程序设计》上机实验报告要求《c语言程序设计》上机实验报告要求1.实验环境:软件系统:使用的软件环境硬件系统:机型说明2.实验目的:掌握如何编辑、编译、链接调试运行c程序3.实验内容:(1)掌握顺序结构程序设计.P26 ,p49,p62 3.2~3.7(2)掌握选择结构程序设计(if 和switch语句的用法)p4.2~(3)循环结构程序设计(while, dowhile,for语句的用法)。

(4)掌握数组的定义、输入和输出的方法,字符数组、字符串函数的使用。

(5)了解函数的定义,熟悉函数实参与形参的“值传递”方式,掌握函数的嵌套调用和递归调用方法。

(6)熟悉指针含义及其使用。

(7)熟悉结构体和共用体的使用。

(8)熟悉文件的使用。

4.实验要求:(1)输入编写的源程序,检查程序有无错误(语法和逻辑错误),有则改之。

(2)编译和连接,仔细分析编译信息,如有错误应找出原因并改正。

(3)运行程序,输入数据,分析结果。

5.实验结果:输出程序清单和运行结果。

(要求把原题内容,调试好的程序和其结果一并打印),6.实验体会分析运行结果,本次调试程序取得的经验(遇到的问题,解决的方法等)。

第三篇:C程序设计上机实验报告10C程序设计实验报告实验名称:指针与数组学时安排:2课时实验类别:上机操作型实验要求:1人1组 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄一、实验目的1.理解指针、地址和数组间的关系;2.掌握通过指针操作数组元素的方法;3.掌握数组名作为参数的编程方式。

《c语言程序设计》实验报告

《c语言程序设计》实验报告

《c语言程序设计》实验报告《C语言程序设计》实验报告一、引言C语言是一种广泛应用于计算机编程的高级编程语言,具有灵活性和高效性的特点。

在《C语言程序设计》课程中,我们通过实验来巩固和应用所学的知识,提高我们的编程能力和解决问题的能力。

本实验报告将对我们在课程中进行的实验进行总结和分析。

二、实验一:Hello World程序实验一是我们在学习任何编程语言时的传统开始,即编写一个简单的Hello World程序。

这个程序的目的是在屏幕上显示出"Hello World"这个字符串。

通过这个实验,我们学会了如何编写基本的C语言程序,并且了解了程序的编译和运行过程。

三、实验二:计算圆的面积实验二要求我们编写一个程序,通过输入圆的半径,计算并输出圆的面积。

在这个实验中,我们学会了如何使用变量、常量和运算符来进行数学计算,并且学会了如何使用C语言的输入输出函数。

四、实验三:判断闰年实验三要求我们编写一个程序,判断输入的年份是否为闰年。

通过这个实验,我们学会了如何使用条件语句来进行逻辑判断,并且学会了如何使用布尔运算符和关系运算符。

五、实验四:字符串处理实验四要求我们编写一个程序,实现对字符串的基本操作,包括字符串的长度计算、字符串的复制和字符串的连接。

通过这个实验,我们进一步熟悉了C语言中的字符串处理函数,并且学会了如何使用循环和数组来处理字符串。

六、实验五:排序算法实验五要求我们编写一个程序,实现对一组数字的排序。

通过这个实验,我们学会了如何使用数组和循环来进行排序算法的实现,并且学会了如何评估和比较不同排序算法的效率。

七、实验六:文件操作实验六要求我们编写一个程序,实现对文件的读写操作。

通过这个实验,我们学会了如何使用C语言的文件处理函数来进行文件的打开、读取和写入,并且学会了如何处理文件指针和文件的结束标志。

八、实验七:数据结构实验七要求我们编写一个程序,实现对链表数据结构的基本操作,包括链表的插入、删除和查找等。

c语言课程设计实验报告

c语言课程设计实验报告

课程设计报告课程C语言课程设计课程设计名称备忘录学生姓名学号3133102专业班级31331指导教师张重阳1 设计内容及要求1.1设计内容《备忘录》主要根据课程设计要求进行设计,能够进行个人的事件记录,可以将程序使用者的时间安排,重要事件,以及个人行程等事件做出具体详细的记述,并能够使使用者在程序上完成查看时间的功能,足以使得使用者避免忘记一些重要事件,也可以为使用者带来一些便利,帮助使用者节省了时间。

电子备忘录相较于笔记本,其最大的好处在于可以不受纸张的限制,并切实的使用者可以在短时间内记述大量事件;查询时也可以节省大量的时间,使得使用者可以减短查询时间,方便快捷。

同时,使用电子备忘录也是一种现代化的代表,将电子科技应用与人们的日常生活中,达到现代实惠的先进水平。

该系统功能主要包括三大模块:1)备忘录的信息录入2)备忘录信息的查看3)进出备忘录系统1.2设计任务及具体要求主要利用C语言的文件操作能力设计开发一个小型的备忘录系统,至少具有如下功能:备忘录的信息录入,备忘录的信息查询和退出备忘录系统。

操作界面要符合用户的一般习惯,图形或文本界面都可以。

要求:利用C语言编写一个备忘录程序,能实现一些基本的操作,达到一些基本的信息录入,查询,提醒以及编写等功能,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识;提高自身用高级语言进行程序设计的能力,重点提高用C语言进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤;提高撰写技术文档的能力。

并且对C语言的一些基本语句以及功能有一些更加深刻的认识和理解。

能够利用C语言解决一些生活中的基本问题。

2 概要设计2.1系统的功能简介该系统的主要功能是实现重要信息的录入,包括录入的当前时间,事件的重要性以及提醒时间。

能够在设定时间内对使用者提醒,避免使用者忘记重要事件,造成不必要的麻烦。

2.2 总体程序框图图2.12.3各个模块之间的主要关系该程序的功能主要是实现备忘录的录入,能在系统内对录入的信息进行查询,并对相对重要的相应信息进行提醒。

c语言课程设计实践报告

c语言课程设计实践报告

c语言课程设计实践报告一、教学目标本课程旨在通过C语言的学习,让学生掌握C语言的基本语法、数据结构、算法和编程思想,培养学生独立思考、解决问题的能力。

具体目标如下:1.理解C语言的基本语法和编程规则。

2.掌握常用的数据类型、运算符和表达式。

3.熟悉函数的定义和调用。

4.了解常用的数据结构和算法。

5.理解程序的设计思想和方法。

6.能够使用C语言编写简单的程序。

7.能够阅读和理解C语言程序。

8.能够使用C语言进行基本的算法实现。

9.能够使用C语言进行简单的项目开发。

情感态度价值观目标:1.培养学生的编程兴趣,提高学生的自主学习能力。

2.培养学生解决问题的能力,增强学生的自信心。

3.培养学生团队合作的精神,提高学生的沟通表达能力。

二、教学内容根据课程目标,教学内容主要包括以下几个方面:1.C语言的基本语法和编程规则。

2.常用的数据类型、运算符和表达式。

3.函数的定义和调用。

4.常用的数据结构和算法。

5.程序的设计思想和方法。

具体的教学大纲如下:第一周:C语言的基本语法和编程规则。

第二周:常用的数据类型、运算符和表达式。

第三周:函数的定义和调用。

第四周:常用的数据结构和算法。

第五周:程序的设计思想和方法。

三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,包括:1.讲授法:通过讲解C语言的基本语法、数据结构、算法和编程思想,使学生掌握相关知识。

2.案例分析法:通过分析实际案例,使学生了解C语言在实际项目中的应用。

3.实验法:通过上机实验,让学生亲手编写C语言程序,加深对知识的理解和运用。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:《C语言程序设计》。

2.参考书:《C语言编程思想》。

3.多媒体资料:C语言编程教程视频。

4.实验设备:计算机实验室。

五、教学评估为了全面、客观、公正地评估学生的学习成果,本课程将采用多种评估方式,包括:1.平时表现:通过课堂参与、提问、讨论等方式,评估学生的学习态度和积极性。

c语言课程设计实验报告

c语言课程设计实验报告

c语言课程设计实验报告一、课程目标知识目标:1. 理解C语言编程的基本概念,包括变量、数据类型、运算符、表达式等;2. 学会使用C语言控制结构,如顺序结构、分支结构和循环结构;3. 掌握C语言数组和字符串的基本操作;4. 了解C语言函数的定义和调用方法;5. 掌握C语言指针的基本概念和使用方法。

技能目标:1. 能够独立编写简单的C程序,实现基本的计算和控制功能;2. 能够运用所学知识解决实际问题,具备一定的编程调试能力;3. 能够阅读和分析C程序,理解程序的设计思路和逻辑结构;4. 能够通过团队协作,共同完成复杂的编程任务。

情感态度价值观目标:1. 培养学生对计算机编程的兴趣,激发学习热情;2. 培养学生的逻辑思维能力,提高问题分析能力;3. 培养学生良好的编程习惯,注重代码规范和可读性;4. 培养学生团队协作精神,提高沟通与表达能力;5. 培养学生面对困难敢于挑战、勇于探索的精神。

课程性质:本课程为C语言编程入门课程,以实践为主,注重培养学生的动手能力和编程思维。

学生特点:学生为初中生,具备一定的计算机操作基础,但对编程知识了解较少,好奇心强,学习积极性高。

教学要求:教师应结合学生特点,采用案例教学、任务驱动等方法,引导学生主动参与,注重实践操作,提高编程技能。

在教学过程中,关注学生的个体差异,给予个性化指导,确保每位学生都能达到课程目标。

通过课程学习,使学生能够掌握基本的C语言编程知识,为后续学习打下坚实基础。

二、教学内容1. C语言基础知识:变量定义、数据类型、常量与变量、运算符、表达式;教材章节:第一章《C语言概述》及第二章《数据类型与表达式》。

2. 控制结构:顺序结构、if语句、switch语句、循环结构(for、while、do-while);教材章节:第三章《控制结构》。

3. 数组与字符串:一维数组、二维数组、字符串的基本操作;教材章节:第四章《数组和字符串》。

4. 函数:函数定义、函数调用、局部变量与全局变量、递归函数;教材章节:第五章《函数》。

C语言课程设计实习报告

C语言课程设计实习报告

C语言课程设计实习报告班级:地信10801班学生姓名:杨宝刚学号: 200801562 序号:01指导老师:蔡永香何贞铭日期: 2010年3月12日目录一、程序分析与设计 (1)二、流程图 (1)三、源程序清单 (1)四、调试过程 (2)五、程序有待改进的地方 (2)六、本次实习的收获和建议 (3)附录 (3)C语言课程设计实习报告一、程序分析与设计(标题四号宋体加黑,正文五号宋体,行间距-固定值18,首行缩进2字符)1、先用记事本编辑文件stu1.dat存储一个班学习成绩。

然后在C环境下,建立一个学生信息的结构体,用r方式打开上述文件,再用fscanf读入、用printf在屏幕上显示文件内容。

2、利用循环使每个学生的三门功课的成绩相加,然后再把和除以三就得到了平均成绩。

接着用冒泡法利用平均分的高低排出名次。

最后用fprintf将每个学生的信息写入到stu2.dat文件。

二、流程图。

三、源程序清单(此部分采用小五号宋体,行间距-固定值14)#include<stdio.h>struct ave_cou{float ave_couM;float ave_couE;float ave_couC;}ave_c;地信10801 杨宝刚四、调试过程在程序运行的过程中,出现了很多的错误。

有很复杂的问题,也不乏许多低级的错误。

在写入文件的时候,首先我用的是fwrite,而在读入文件的时候用的是fread,后来才发现这两个语句都只是对二进制的文件进行操作,实际上我们要用到的fscanf、fprintf这两个语句。

五、程序有待改进的地方C语言课程设计实习报告六、本次实习的收获和建议附录(此部分采用小五号宋体,行间距-固定值14)1、原始数据stu1.dat1 冯强85 90 1002 冯炼98 85 93。

2、生成文件stu2.dat1 冯强85.000000 90.000000 100.000000 91.666664 22 冯炼98.000000 85.000000 93.000000 92.000000 1 。

计算机c语言实训报告(精选5篇)

计算机c语言实训报告(精选5篇)

计算机c语言实训报告(精选5篇)计算机c语言实训报告篇1一、课题名称:简单计算器设计一个简单的程序来模拟计算器的功能。

二、设计目的:1、通过理论知识与实际需求相结合,编辑解决一些日常中的实际问题,培养初步的独立分析和设计能力。

2、了解应用程序设计解决实际问题的具体过程和实现方法,掌握应用C语言进行程序设计的基本规范;3、重点掌握C语言的程序编写、函数设计、算法设计和程序调试方法;4、初步掌握系统开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。

三、设计任务:1、通过结构体数组和共用体数组来存放输入的每一数字或运算符号的记录(包括1、2、3等数字,+、--、_、等运算符号),然后将其信息存入文件中。

输入一个算术计算式,就在屏幕上显示结果。

2、输入简单的加减乘除算术计算式,并在屏幕上显示计算结果;四、设计要求:1、用C语言实现程序设计并进行调试;2、画出查询模块的流程图;3、系统的各个功能模块要求用函数的形式实现;4、界面友好(良好的人机互交)。

5、完成设计(A4)。

五、代码设计:#include "stdio.h" main { float x,y;char operator;printf("x,yun suan fu ,y: "); scanf("%f%c%f",&x,&operator,&y); switch(operator){case '+': printf("%.2f+%.2f=%.2f",x,y,x+y); break; case '-':printf("%.2f-%.2f=%.2f",x,y,x-y); break; case '_':printf("%.2f_%.2f=%.2f",x,y,x_y); break; case '/': if(y==0) printf("chushushilingwuyiyi"); elseprintf("%.2f/%.2f=%.2f",x,y,x/y); break;default: printf("yunsunfuwuxiao"); } }?七、设计总结:学习C程序这门课一个学期了,这是我们学的第一门专业课,所以作为我这个计算机系的学生来说当然十分重要,老师在第一节课说过,C语言是计算机的基础,大多数软件都需要用C语言来编写,通过一个学期的学习,使我初步掌握了一些关于这门课的知识这次的课程设计是对我们一个学期来所学的知识的综合考察,里面涉及到了我们大多数所学知识。

《c语言程序设计》实验报告

《c语言程序设计》实验报告

《c语言程序设计》实验报告《C语言程序设计》实验报告一、引言C语言是一种广泛应用于软件开发领域的高级编程语言。

作为计算机科学专业的学生,学习和掌握C语言程序设计是非常重要的一项基础技能。

本实验报告将对我们在学习过程中进行的一系列实验进行总结和分析,以便更好地理解和应用C语言。

二、实验一:基本语法和数据类型在第一次实验中,我们学习了C语言的基本语法和数据类型。

通过编写简单的程序,我们掌握了变量的声明和定义、输入输出函数的使用以及基本的运算符和控制语句。

这些基础知识为我们后续实验的进行奠定了坚实的基础。

三、实验二:数组和字符串在第二次实验中,我们学习了C语言中数组和字符串的使用。

通过编写程序,我们掌握了数组的声明和初始化、数组元素的访问以及字符串的输入输出和处理。

这些知识使我们能够更好地处理和操作大量数据,提高程序的效率和可读性。

四、实验三:函数和指针第三次实验中,我们深入学习了C语言中函数和指针的使用。

通过编写程序,我们理解了函数的定义和调用、参数传递的方式以及函数的返回值。

同时,我们也学习了指针的概念和使用方法,掌握了指针的声明和初始化、指针与数组的关系以及指针的运算。

这些知识使我们能够更好地组织和管理程序的代码,提高程序的可维护性和可扩展性。

五、实验四:文件操作在第四次实验中,我们学习了C语言中文件操作的相关知识。

通过编写程序,我们掌握了文件的打开和关闭、读写文件以及文件指针的操作。

这些知识使我们能够更好地处理和管理大量的数据,实现数据的持久化和共享。

六、实验五:结构体和链表在第五次实验中,我们学习了C语言中结构体和链表的使用。

通过编写程序,我们理解了结构体的定义和使用、结构体数组的操作以及链表的创建和遍历。

这些知识使我们能够更好地组织和管理复杂的数据结构,实现更加灵活和高效的程序设计。

七、实验六:综合实验在最后一次实验中,我们将前面所学的知识进行综合运用,完成一个综合性的实验项目。

通过实践,我们巩固了前面所学的知识,并提高了解决问题的能力和思维方式。

C语言课设实习报告

C语言课设实习报告

C语言课程设计实习报告班级:学生姓名:学号:指导老师:日期:目录一、程序分析与设计 (1)二、流程图 (1)三、源程序清单 (6)四、调试过程 (10)五、程序有待改进的地方 (10)六、本次实习的收获和建议 (11)附录 (11)C语言课程设计实习报告一、程序分析与设计1、先用记事本编辑文件stu.txt存储一个班学习成绩。

然后在C环境下,建立一个学生信息的结构体,用r方式打开上述文件,再用fscanf读入、用printf在屏幕上显示文件内容。

2、利用循环使每个学生的三门功课的成绩相加,然后再把和除以三就得到了平均成绩。

将每个学生的平均成绩与其他学生进行比较排出名次。

最后用fprintf将每个学生的信息写入到stu1.txt文件。

3、用for循环使全班同学的英语成绩相加,然后再把和除以总人数,得到全班英语平均成绩,类似的可以求出全班同学的C语言和数学的平均成绩。

4、用if语句各for循环求出各分数段的人数,并统计结果写入文件中。

用fprintf将各分数段的统计结果及各门的平均成绩写入stu1.txt文件中。

5、编写一个函数用for循环在屏幕上逐个打印出所有学生的成绩条。

6、用for循环对每个学生用if语句进行判断是否有不及格的科目,如果有就打打出该学生的学号和姓名,再用if语句判断各科是否不及格,如果不及格就打出该不及格科目的名称和分数。

7、用for循环对每个学生用if语句进行判断该学生的各科成绩、平均分以及排名是否满足优等生的条件,如果满足就打出该学生的学号、姓名、各科成绩、平均分及在班级的排名。

二、流程图地信10902void readFromTxtFile()N 判断是否为空 读文件函数流程图图3定义变量进行循环求出总分总分除以总人数得平均分图4 计算三科平均分的函数流程图平均分=总分/SIZEC 语言课程设计实习报告打开文件定义变量进行循环求出每人的总分总分除以3得平均分平均分写入文件图5打开文件统计各分数段人数结果写入文件中 图6 统计全班学生的各分数段的人数的函数流程图地信10902定义两个变量进行循环将一个人的平均分与每一个人进行比较,得出排名图7 按平均分对班级的每一位学生进行排名的函数流程图定义变量进行循环逐个打印每个学生的成绩图8 在屏幕上打印各学生的成绩条函数流程图C 语言课程设计实习报告void PrintFailIformation();定义变量进行循环判断是否有不及格的课程打出不及格学生的 信息图9void PrintExcellentStudent();定义变量进行循环判断是否满足优等生条件并打出优等生图10地信10902三、源程序清单#include<stdio.h>#include<stdlib.h>#define SIZE 17struct student{int num;char name[10];int score[3];float average;int Rank;}stu[SIZE];void readFromTxtFile();void writeToTxtFile();void CalculateAverageScore();void CalculateAverageScoreOfEveryCourse();void RankEveryStudent();void CalculateScoreOfBank();void Print();void PrintFailIformation();void PrintExcellentStudent();void main(){printf(" 菜单\n");printf(" 打印各学生成绩条请按1并回车\n");printf(" 打印不及格学生信息请按2并回车\n");printf(" 打印优等生信息请按3并回车\n");printf(" 退出请按0并回车\n");int c;readFromTxtFile();//读文件CalculateAverageScore();//各学生平均分RankEveryStudent();//排名writeToTxtFile();//写文件CalculateScoreOfBank();//算分数段CalculateAverageScoreOfEveryCourse();//各门平均分loop: while(1){printf(" 请输入选择");scanf("%d",&c);if(c==1)Print();//屏幕上打印成绩条else if(c==2)PrintFailIformation();//打印不及格信息else if(c==3)PrintExcellentStudent();//打印优等生信息else if(c==0){printf(" 结束\n"); break;} else{printf("输入错误,请重新输入");goto loop;}}C语言课程设计实习报告}void readFromTxtFile()//读文件{FILE *fp;int i;if((fp=fopen("F:\\stu.txt","r"))==NULL){printf("can not open the file!\n");exit(0);}for(i=0;i<SIZE;i++){fscanf(fp,"%d%s%d%d%d",&stu[i].num ,stu[i].name ,&stu[i].score[0],&stu[i].score[1],&stu [i].score[2] );}fclose(fp);}void writeToTxtFile()//写文件{FILE *fp;int i;if((fp=fopen("stu1.txt","w"))==NULL){printf("can not open the file!\n");exit(0);}fprintf(fp,"学号姓名英语 C语言数学平均分排名\n");for(i=0;i<SIZE;i++){fprintf(fp,"%d\t%s\t%d\t%d\t%d\t%5.2f\t%d\n",stu[i].num ,stu[i].name ,stu[i].score[0],s tu[i].score[1],stu[i].score[2],stu[i].average,stu[i].Rank );}fprintf(fp,"\n");fclose(fp);}void CalculateAverageScore()//计算各学生平均分{int i;for(i=0;i<SIZE;i++)stu[i].average=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0 ;}void CalculateAverageScoreOfEveryCourse()//计算各门平均分地信10902{FILE *fp;if((fp=fopen("stu1.txt","a"))==NULL){printf("can not open the file!\n");exit(0);}int i;float AVEREglish=0,AVERClanguage=0,AVERMath=0;for(i=0;i<SIZE;i++){AVEREglish=stu[i].score[0]+AVEREglish;AVERClanguage=stu[i].score[1]+AVERClanguage;AVERMath=stu[i].score[2]+AVERMath;}AVEREglish=AVEREglish/SIZE;AVERClanguage=AVERClanguage/SIZE;AVERMath=AVERMath/SIZE;fprintf(fp,"平均分 %5.3f\t%5.3f\t%5.3f\n",AVEREglish,AVERClanguage,AVERMath); fclose(fp);}void CalculateScoreOfBank()//统计分数段{FILE *fp;if((fp=fopen("stu1.txt","a"))==NULL){printf("can not open the file!\n");exit(0);}int i,E1=0,E2=0,E3=0,E4=0,E5=0,C1=0,C2=0,C3=0,C4=0,C5=0,M1=0,M2=0,M3=0,M4=0,M5=0; for(i=0;i<SIZE;i++){if(stu[i].score[0]<60) E1++;if(stu[i].score[0]<70&&stu[i].score[0]>59)E2++;if(stu[i].score[0]<80&&stu[i].score[0]>69)E3++;if(stu[i].score[0]<90&&stu[i].score[0]>79)E4++;if(stu[i].score[0]>90) E5++;if(stu[i].score[1]<60) C1++;if(stu[i].score[1]<70&&stu[i].score[1]>59)C2++;if(stu[i].score[1]<80&&stu[i].score[1]>69)C3++;if(stu[i].score[1]<90&&stu[i].score[1]>79)C4++;if(stu[i].score[1]>90) C5++;if(stu[i].score[2]<60) M1++;if(stu[i].score[2]<70&&stu[i].score[2]>59)M2++;if(stu[i].score[2]<80&&stu[i].score[2]>69)M3++;if(stu[i].score[2]<90&&stu[i].score[2]>79)M4++;if(stu[i].score[2]>90) M5++;}fprintf(fp,"分数段\t英语\tC语言\t数学\n");fprintf(fp,"<60\t%d\t%d\t%d\n",E1,C1,M1);fprintf(fp,"60~69\t%d\t%d\t%d\n",E2,C2,M2);fprintf(fp,"70~79\t%d\t%d\t%d\n",E3,C3,M3);fprintf(fp,"80~89\t%d\t%d\t%d\n",E4,C4,M4);fprintf(fp,">90\t%d\t%d\t%d\n",E5,C5,M5);fclose(fp);}void RankEveryStudent()//排名{int i,j;for(i=0;i<SIZE;i++){stu[i].Rank=1;for(j=0;j<SIZE;j++){if(stu[i].average<stu[j].average)stu[i].Rank++;}}}void Print()//屏幕上打印成绩条{int i;printf("每名学生的成绩条:\n");for(i=0;i<SIZE;i++)printf("学号%5d\t姓名%s\t英语%3d \tC语言%3d \t数学%3d\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);}void PrintFailIformation()//打印不及格信息{int i;printf("不及格学生信息:\n");for(i=0;i<SIZE;i++){if(stu[i].score[0]<60||stu[i].score[1]<60||stu[i].score[2]<60 ){printf("学号%5d\t姓名 %s\t不及格课程及成绩: ",stu[i].num,stu[i].name);if(stu[i].score[0]<60)printf(" 英语%d\t",stu[i].score[0]);if(stu[i].score[1]<60)printf("C语言%d\t",stu[i].score[1]);if(stu[i].score[2]<60)printf(" 数学%d\t",stu[i].score[2]);printf("\n");}}}void PrintExcellentStudent()//打印优等生信息{printf("优等生的信息:\n");int i;for(i=0;i<SIZE;i++){int flag1=0,flag2=0;if(stu[i].average>90||((stu[i].average>85&&(stu[i].score[0]==100||stu[i].score[1]==100| |stu[i].score[2]==100))))flag1=1;if(stu[i].average>85&&((stu[i].score[0]>95&&stu[i].score[1]>95)||(stu[i].score[0]>95&&s tu[i].score[2]>95)||(stu[i].score[1]>95&&stu[i].score[2]>95)))flag2=1;if(flag1||flag2)if(stu[i].Rank<=3)if(stu[i].score[0]>59&&stu[i].score[1]>59&&stu[i].score[2]>59)printf("学号%5d 姓名%s 英语%3d C语言%3d 数学%3d 平均成绩%5.2f 排名%d\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].average,s tu[i].Rank);}}四、调试过程在程序运行的过程中,出现了很多的错误。

C语言课程设计报告

C语言课程设计报告

C语言课程设计报告一、设计目的本次课程设计旨在帮助学生熟悉C语言的基本语法和编程思想,通过设计一个简单的C语言程序,掌握C语言的基本编写技巧和调试方法,加深对C语言的理解。

二、设计内容本次C语言课程设计要求学生设计一个简易的学生信息管理系统,包括学生的基本信息录入、查询、修改和删除功能。

三、设计思路1. 需要定义一个学生信息的结构体,包括学号、姓名、年龄等基本信息。

2. 定义一个学生信息数组,用于存储学生信息。

3. 实现录入学生信息的功能,通过用户输入学生的学号、姓名、年龄等信息,并将其存储到学生信息数组中。

4. 实现查询学生信息的功能,用户输入要查询的学生学号,系统通过遍历学生信息数组找到对应的学生信息并输出。

5. 实现修改学生信息的功能,用户输入要修改的学生学号,系统通过遍历学生信息数组找到对应的学生信息,并提示用户输入新的学生姓名、年龄等信息,并将其更新到学生信息数组中。

6. 实现删除学生信息的功能,用户输入要删除的学生学号,系统通过遍历学生信息数组找到对应的学生信息,并将其从学生信息数组中删除。

四、设计步骤1. 定义一个学生信息的结构体,并在主函数中定义一个学生信息数组。

2. 实现录入学生信息的功能,通过用户输入学生的学号、姓名、年龄等信息,并将其存储到学生信息数组中。

3. 实现查询学生信息的功能,用户输入要查询的学生学号,系统通过遍历学生信息数组找到对应的学生信息并输出。

4. 实现修改学生信息的功能,用户输入要修改的学生学号,系统通过遍历学生信息数组找到对应的学生信息,并提示用户输入新的学生姓名、年龄等信息,并将其更新到学生信息数组中。

5. 实现删除学生信息的功能,用户输入要删除的学生学号,系统通过遍历学生信息数组找到对应的学生信息,并将其从学生信息数组中删除。

6. 编写主函数,实现菜单选择功能,用户可以通过选择不同的菜单选项进行录入、查询、修改和删除学生信息的操作。

五、实验成果经过设计和编码,最终实现了一个简易的学生信息管理系统,能够完成学生信息的录入、查询、修改和删除功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《C语言课程设计》课程设计报告专业:网络工程班级:网络10601姓名:缪军指导教师:汪北阳余法红二00八年元月十五日目录系统摘要 (3)系统设计 (4)系统实现 (7)系统使用说明 (11)测试数据 (15)结论 (18)附录 (19)(一)系统摘要1.功能要求在主函数中读入两个原始数据文件的内容,保存在对应的结构体数组中,并根据以上内容计算每个学生5门课的加权平均分(保留1位小数,4舍5入),并按平均分排列名次,平均分相同则名次并列。

然后显示菜单,利用菜单调用每个函数,完成如下功能:1)用C语言创建一个数据文件,文件名为:“MC0116”。

用来存放班级排名后的成绩,2)分别统计全班每门课的平均分和标准差,并计算个分数段的学生人数;课程标准差的计算公式为:Y= s^2=1/n[(x1-m)^2+(x2-m)^2+...+(xn-m)^2]3)用C语言创建一个数据文件,文件名为:“KC0116”。

将文件中存放的数据以如下形式存放4)打印每名学生成绩条,结果存放到用C语言创建的一个数据文件中,文件名为:“cj0116”。

成绩条格式自定。

5)屏幕上显示所有存在不及格的课程的学生的名单(含学号、不及格的课程名称、课程的学分及成绩)。

6)屏幕上显示优等生名单(含学号、6门课程成绩、平均分、名次)。

(二)系统设计准备工作:编写两个记事本文件作为原始数据源。

本程序中建立两个文件,第一个中的内容是全班同学的5功课的成绩(英语,C语言,数学,大学物理,线性代数),保存在D盘下,其完整的路径名为D: \wl0116.txt.第二个中的内容是所有的五门功课的属性(编号,名称,学分),同样保存在D盘下内,起完整的路径名为D: \wl01kc.txt.1.系统功能模块框架图2.菜单结构图。

3.数据结构说明/* 学生结构体*/struct student{long num; /* 学号*/char name[20]; /* 姓名*/int score[N]; /* 各科分数构成的一维数组*/double ave; /* 每名学生所有科目的加权平均分*/int t; /* 名次*/}st[M];struct subject{int num; /* 课程编号*/int excellent; /* 成绩优秀*/int good; /* 成绩良好*/int mid; /* 成绩中等*/int pass; /* 成绩及格*/int fail; /* 不及格*/char kc[30]; /* 课程名称*/float xuefen; /* 课程学分*/double ave; /* 课程平均分*/double bzc; /* 课程标准差*/}course[N];整个系统的设计,可以将所有数据划分到两个结构体中,一个与学生有关,一个与课程有关。

数据的引入,可以从两个文件中读入,一个是学生成绩表,一个是课程与学分相关。

然后,将数据进行(1)加权平均;(2)标准差处理,排出每个学生在班级的名次。

最后,写出文件。

(三)系统实现(一).部分函数的实现过程:1.读入数据函数ReadDat1()和ReadDat2()用函数打开目标文件,通过文件指针指向目标文件,然后调用库函数(fscanf,fgets)将数据读入到定义的结构体当中。

第一步用fgets函数将文件中的的第一行的字符串读入到数组中,然后用一个for循环控制每个人的变化,将各种数据按照不同的类型规格赋值给结构体。

2.求平均分和标准差:求五门功课的平均分,用一个for循环控制着科目的变化,然后在内部再一个for 循环控制人的变化将全班的人的某门功课的成绩累加起来,再除以总人数即得平均分,类似的即可求的各门课的标准差。

3.求每个人的加权平均成绩:首先用for循环得到五门课程的学分的总和,然后再通过for循环控制每个人的不断变化,把每个人的每门成绩乘以各门课的学分,将其累加起来,再除以学分的和即得各个人的加权平均成绩4.排名次:首先用for循环控制各个人的变化,每一次将其名次赋值为1,然后将其平均成绩通过for循环于其他人进行比较,若小就将其自加1,最终即可得名次。

5.统计各分数段的人数:首先通过两个for循环检查每个人的每门课程,再通过switch语句判断起属于的类型。

6.C语言创建全班同学成绩单的数据文件和全班成绩分析:首先通过函数建立一个新的文件,for循环控制将分数输出到指定的文件中(二)程序调试过程中的要点和难点:在程序调试过程中,经常出现警告,这是因为数据类型不一致导致而成的。

由于不小心输入法的改变,容易造成一些不易发现的问题,比如在英文输入中的引号与在中文输入中的引号就是又区别的,应该保持在英文输入的环境中编辑此程序。

难点是,各个函数运行,要注意先后顺序。

因为一个函数的运行,需要上一个函数运行的结果为数据。

另外,还注意主函数的编写,是各个函数相互联系在一起。

(四) 系统使用说明源代码编写完成后,可以存放在记事本中,保存起来。

然后,选择打开方式为TC 环境,打开运行程序。

在打开的界面上会显示如下菜单界面:A在光标处输入:2 在屏幕上显示未及格学生名单;B在光标处输入:3 在屏幕上显示优等生名单;C在光标处输入:4 显示成绩分布(一个“=”代表一个人);D在光标处输入:5 查询成绩a在光标处输入:1 安学号查寻b在光标处输入:2 按姓名查寻E在光标处输入:0 退出界面;F在光标处输入:1 进入子菜单选项在光标处输入:1 创建班级名次文档到D盘;在光标处输入:2 创建课程成绩文档到D盘;在光标处输入:3 在屏幕上显示每个学生的成绩条;在光标处输入:5 返回主菜单;在光标处输入:0 退出编辑界面;(五)测试数据1. 两个原始数据(1)学生名次表(2)学生个人成绩单(3)不及格学生名单(4)优秀学生名单情况(六)结论1.通过对这一课题的设计和实现,我对TC3.0环境进行了深一步的了解,并逐渐开始熟练tc3.0环境的工作界面,以及对每一个快捷键的熟悉。

并认识到,熟悉这些快捷键,极为便捷编写程序,但是还要更加熟悉。

2.编程时要养成良好的风格,注意相同内容的缩进和对齐。

这样做,可以使程序代码出错的情况下,可以快速并且便捷的查找到错误的行,利于很好的修改。

3.通过这次编程我们深深的感受到对代码的变量命名,代码内注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同人员之间的协作。

4.这个程序设计主要涉及到了C语言中的结构体、指针及文件操作等内容,只有充分掌握了C语言中的结构体、指针及文件操作等内容,才有可能组织好这些代码,使之符合运算逻辑,得到理想的结果。

5.善于总结,也是学习能力的一种体现,每次完成一个编程任务,完成一段代码,都应当有目的的跟踪该程序的应用状况,随时总结,找到自己的不足,这样所编写的程序才能逐步提高,生活就是这样,汗水预示着结果也见证着收获。

劳动是人类生存生活永恒不变的话题。

通过实际动手做,我们才真正领略到“艰苦奋斗”这一词的真正含义,我们想说,编程确实有些辛苦,但苦中也有乐,在这个团队的任务中,一起的工作可以让我们有说有笑,相互帮助,配合默契。

对我们而言,知识上的收获重要,精神上的丰收是可喜的。

挫折是一份财富,经历是一份拥有。

这次实际操作必将成为我们人生旅途上一个非常美好的回忆!6.回顾起此次课程设计,至今仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整半个月的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体,指针……通过这次课程设计之后,我把前面所学过的知识又重新温故了一遍。

同时,在汪老师和余老师的身上我学得到很多实用的知识,在此表示感谢!同时,对给过我帮助的所有同学和指导老师再次表示忠心的感谢!(七)附录程序全部代码:#define M 25#define N 6#include "stdio.h"#include "math.h"#include "stdlib.h"#include "string.h"struct student{long num;char name[20];int score[N];double ave;int t;}st[M];struct subject{int num;int excellent;int good;int mid;int pass;int fail;char kc[30];float xuefen;double ave;double bzc;}course[N];/* 读取\\wl0116.txt */void read1(){int i,j;char str1[100];FILE *fp;if((fp=fopen("d:\\wl0116.txt","r"))==NULL){printf("Cannot open the file!\n");exit(0);}fgets(str1,100,fp);for(i=0;i<M;i++){fscanf(fp,"%ld%s",&st[i].num,st[i].name);for(j=0;j<N;j++){fscanf(fp,"%d",&st[i].score[j]);}}fclose(fp);}/* 读取\\wl01kc.txt */void read2(){FILE *fp=fopen("d:\\wl01kc.txt","r");int k;char str2[100];if(fp==NULL){printf("Cannot open the file !\n");exit(0);}fgets(str2,100,fp);for(k=0;k<N;k++){fscanf(fp,"%d%s%f",&course[k].num,course[k].k c,&course[k].xuefen);}fclose(fp);}void jaquan(){double s=0,sum;int i,j;for(i=0;i<N;i++)s=s+course[i].xuefen;for(i=0;i<M;i++){sum=0;for(j=0;j<N;j++)sum=sum+(st[i].score[j])*(course[j].xuefen);st[i].ave=(int)(sum*10.0/s+0.5)/10.0;}void mingci(){int i,j,t;for(i=0;i<M;i++){t=1;for(j=0;j<M;j++)if(st[i].ave<st[j].ave)t++;st[i].t=t;}}/* 计算课程平均分和优劣分布*/void ave(){double s;int i,j;for(j=0;j<N;j++){s=0;course[j].excellent=0;course[j].good=0;course[j].mid=0;course[j].pass=0;course[j].fail=0;for(i=0;i<M;i++){switch(st[i].score[j]/10){case 10:case 9:course[j].excellent++;break;case 8:course[j].good++;break;case 7:course[j].mid++;break;case 6:course[j].pass++;break;default :course[j].fail++;}s+=st[i].score[j];}course[j].ave=s/M;}}void bzcha(){int i,j;double s;for(j=0;j<N;j++){s=0;for(i=0;i<M;i++)s+=(st[i].score[j]-course[j].ave)*(st[i].score[j]-c ourse[j].ave);course[j].bzc=sqrt(s/N);}}/* 创建班级成绩排名*/void writefile1()FILE *fp;int i,j;if((fp=fopen("d:\\mc0116.txt","w"))==NULL) {printf("fail!\n");exit(0);}fprintf(fp,"名次学号姓名英语C语言离散线性物理密码学***平均成绩\n"); for(i=0;i<M;i++){fprintf(fp,"%3d%10ld%10s",st[i].t,st[i].num,st[i]. name);for(j=0;j<N;j++)fprintf(fp,"%6d",st[i].score[j]);fprintf(fp," ....%4.1f\n",st[i].ave);}fclose(fp);}/* 创建班级课程成绩分布*/writefile3(){FILE *fp;int i;if((fp=fopen("d:\\kc0116.txt","w"))==NULL){printf("Faile to build the file!\n");exit(0);}fprintf(fp,"编号课程名称平均分标准差优秀良好中等及格不及格\n");for(i=0;i<N;i++)fprintf(fp,"%4d%10s%8.1f%8.1f%6d%6d%6d%4d %4d\n",i+1,course[i].kc,course[i].ave,course[i].b zc,course[i].excellent,course[i].good,course[i].mi d,course[i].pass,course[i].fail);fclose(fp);}void writefile4(){FILE *fp=fopen("d:\\cjt0116.txt","w");int i,j;if(fp==NULL){printf("Faile to build a new file !\n");exit(0);}for(i=0;i<M;i++){fprintf(fp,"\n学号姓名英语C语言离散线性物理密码学***平均成绩\n%8ld%8s",st[i].num,st[i].name);printf("\n学号姓名英语C语言离散线性物理密码学***平均成绩\n%8ld%8s",st[i].num,st[i].name);for(j=0;j<N;j++){fprintf(fp,"%6d",st[i].score[j]);printf("%6d",st[i]. score[j]);}fprintf(fp," ....%4.1f\n",st[i].ave);printf(" ....% 4.1f\n",st[i].ave);fprintf(fp,"*****************************");printf("*****************************\n");}fclose(fp);}void read5(){int i,j;printf("未及格学生信息:\n学号课程名称学分成绩\n");for(i=0;i<M;i++)for(j=0;j<N;j++)if(st[i].score[j]<60)printf("%8ld%8s%8.1f%6d\n",st[i].num,course [j].kc,course[j].xuefen,st[i].score[j]);}void read6(){int i,j;printf("优秀学生信息:\n名次学号姓名英语C语言离散线性数物理密码学***平均成绩\n");for(i=0;i<M;i++)for(j=0;j<N;j++)if(st[i].ave>=92||st[i].t<=5||(st[i].ave>=88&& st[i].score[j]>=99)){printf("%3d%10ld%10s",st[i].t,st[i].num,st[i]. name);for(j=0;j<N;j++)printf("%6d",st[i].score[j]);printf(" ....%4.1f\n",st[i].ave);break;}}void pic(){int i,j;printf("##########科目成绩分布图##########\n");for(i=0;i<N;i++){printf("%10s\n优秀",course[i].kc);for(j=0;j<course[i].excellent;j++)printf("=");printf("\n良好");for(j=0;j<course[i].good;j++)printf("=");printf("\n中等");for(j=0;j<course[i].mid;j++)printf("=");printf("\n及格");for(j=0;j<course[i].pass;j++)printf("=");printf("\n不及格");for(j=0;j<course[i].fail;j++)printf("=");printf("\n&&&&&&&&&^^^^^^^^ ^&&&&&&&&&^^^^^^^^^^&&&&&&&&&\n"); }}void searchnum(){long n;int i,j;printf("\n请输入你要查寻的学生学号:");scanf("%ld",&n);for(i=0;i<M;i++)if(st[i].num==n){printf("\n学号姓名英语C语言离散线性大学物理密码学***平均成绩\n%8ld%8s",st[i].num,st[i].name);for(j=0;j<N;j++)printf("%6d",st[i].score[j]);printf(" ....%4.1f\n",st[i].ave);return;}printf("\n抱歉!你的输入有误,或无此学生信息!\n");return;}void searchname(){int i,j;char s[20];printf("\n请输入你要查寻的学生姓名:");scanf("%s",s);for(i=0;i<M;i++)if(strcmp(st[i].name,s)==0){printf("\n学号姓名英语C语言离散线性物理密码学***平均成绩\n%8ld%8s",st[i].num,st[i].name);for(j=0;j<N;j++)printf("%6d",st[i].score[j]);printf(" ....%4.1f\n",st[i].ave);return;}printf("\n抱歉!你的输入有误,或无此学生信息!\n");return;}/* 查寻学生信息主函数*/void search(){int n;printf("\n1.按学号查寻 2.按姓名查寻0.回主菜单");printf("\n请选择:");scanf("%d",&n);if(n==1){searchnum();search();}else if(n==2){searchname();search();}else if(n==0)return;else exit(0);}void menu1(){printf("\n****@@@@@@@@@@@@@@@ @@@@@@@@@@@@@班级成绩管理系统@@@@@@@@@@@@@@@@@@@@@@ @@@@****\n");printf("\n1.显示/创建文档 2.显示未及格 3.显示优秀成绩 4.成绩分布图\n5.查寻成绩0.退出\n");printf("\n******************************* *************************************** ********\n");}void menu2(){printf("\n___________________ 显示创建文档____________________________\n");printf("1.创建班级名次文档(mc0116.txt)\n2.创建课程成绩分布文档(kc0116.txt)\n3.打印并创建成绩条(cjt0116.txt)\n5.回主菜单\n0.退出");printf("\n_______________________________________________________\n");}void main1(){int n;extern void main2();while(1){menu1();printf("\n 请输入:");scanf("%d",&n);switch(n){case 1:main2();break;case 2:read5();break;case 3:read6();break;case 4:pic();break;case 5:search();break;case 0:exit(0);}n=0;}}void main2(){int n;menu2();while(1){printf("\n 请输入:");scanf("%d",&n);switch(n){case 1:writefile1();printf("The file has been created!\n");menu2();break;case 2:writefile3();printf("The file has been created!\n");menu2();break;case 3:writefile4();printf("The file has been created!\n");menu2();break;case 5:main1();case 0:exit(0);}n=0;}}。

相关文档
最新文档