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函数,我们能够在程序运行时动态分配和释放内存,提高了内存的利用效率。

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

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

  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;}}。

相关文档
最新文档