C语言课程设计实验报告
c程序课程设计实验报告
c程序课程设计实验报告一、教学目标本课程的教学目标是使学生掌握C程序设计的基本概念、语法和编程技巧,培养学生具备基本的程序设计能力和良好的编程习惯。
具体分解为以下三个方面的目标:1.知识目标:使学生了解C程序设计的基本概念,掌握C语言的基本语法和编程方法,包括变量、数据类型、运算符、控制结构、函数等。
2.技能目标:培养学生具备编写和调试C程序的能力,能运用C语言解决简单的实际问题,培养学生的创新能力和实践能力。
3.情感态度价值观目标:培养学生对计算机科学的兴趣和热情,培养学生良好的编程习惯和团队协作精神,提高学生的自主学习和问题解决能力。
二、教学内容本课程的教学内容主要包括C程序设计的基本概念、语法和编程方法。
具体安排如下:1.C程序设计基本概念:介绍计算机编程的基本概念,使学生了解C语言的特点和应用领域。
2.C语言语法:讲解C语言的基本语法,包括变量、数据类型、运算符、控制结构等。
3.C程序设计方法:教授编程方法,包括函数、数组、指针等,并通过实例使学生掌握编程技巧。
4.编程实践:安排一定的实验课时,使学生动手实践,培养学生的编程能力和问题解决能力。
三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性,提高教学效果。
具体方法如下:1.讲授法:讲解C程序设计的基本概念、语法和编程方法,使学生掌握理论知识。
2.案例分析法:通过分析典型案例,使学生了解编程技巧和方法,提高学生的实践能力。
3.实验法:安排实验课,使学生动手实践,培养学生的编程能力和问题解决能力。
4.讨论法:学生进行小组讨论,分享学习心得和经验,提高学生的团队协作能力。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。
具体如下:1.教材:选用权威、实用的教材,为学生提供系统的学习资源。
2.参考书:推荐学生阅读适量的参考书,丰富学生的知识体系。
3.多媒体资料:制作课件、教学视频等多媒体资料,提高教学的趣味性和直观性。
(完整版)c实验报告
(完整版)c实验报告实验名称: C语言实验报告实验内容:本次实验主要针对C语言编程进行实验。
通过实验的设计和完成,检验和加深对C语言的理解和应用能力。
实验步骤:1. 实验准备在开始实验之前,需要准备好以下必要的工具和材料:- 计算机- C语言编译器(比如GCC、Clang等)- 文本编辑器(比如Notepad++、Sublime Text等)2. 实验环境搭建在计算机上安装C语言编译器,并配置好相应的环境变量。
这样可以在终端或命令提示符中执行相关的C程序。
3. 编写实验代码根据实验要求,使用文本编辑器编写C语言代码。
根据实验的要求和功能需求,合理设计和组织代码结构,包括头文件的引用、变量的定义、函数的声明和定义等。
4. 编译和运行代码在命令行或终端中使用编译器对编写好的C语言代码进行编译,并生成可执行文件。
编译命令的具体格式根据不同的编译器而有所差异,但一般形式如下:```gcc -o output_file input_file.c```其中,"output_file"表示生成的可执行文件名,"input_file.c"表示待编译的C源代码文件名。
编译成功后,通过命令行或终端执行生成的可执行文件,检查程序的运行结果是否符合预期。
5. 实验结果分析根据实际运行结果,对实验数据进行分析和归纳。
可以通过输出结果、打印特定信息或观察程序的行为来判断程序是否正确地实现了预期的功能。
6. 实验总结在实验报告中对本次实验的过程、方法、结果进行总结,并提出实验中遇到的问题和解决方法。
同时,对所学习的C语言相关知识点进行总结和归纳,以加深对相关知识的理解和记忆。
实验结果:通过本次实验的设计和实现,我成功完成了对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语言课程设计实验报告第一章基础掌握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语言的各种数据类型、运算符、控制语句和函数等基础知识,进一步提高编程能力和解决实际问题的能力。
三、实验内容及过程1. 实验一:C语言基本语法的学习和应用在实验一中,我通过学习C语言的基本语法,掌握了变量的声明与定义、数据类型的使用、输入输出函数的运用等基础知识。
通过编写简单的程序,如计算两个数的和、差、积和商等,我逐渐熟悉了C语言的语法和编程风格。
2. 实验二:C语言的控制语句和循环结构实验二主要涉及C语言的控制语句和循环结构的学习和应用。
通过编写程序,如判断一个数的正负性、计算一个数的阶乘、求两个数的最大公约数等,我深入理解了C语言中的条件语句和循环结构,并能够熟练运用它们解决实际问题。
3. 实验三:C语言的函数和数组实验三主要介绍C语言中函数和数组的使用。
我通过编写程序,如计算一个数列的和、找出一个数组中的最大值和最小值等,加深了对函数和数组的理解和应用。
同时,我也学会了如何使用函数和数组提高程序的模块化和代码的重用性。
四、实验结果与分析通过完成以上三个实验,我对C语言的基本语法和程序设计方法有了更深入的了解。
我能够独立设计和实现简单的C程序,并能够解决一些实际问题。
在实验中,我遇到了一些困难和挑战,如程序逻辑的设计、语法错误的排查等,但通过不断的实践和调试,我逐渐克服了这些问题。
实验结果的分析表明,我在C语言的学习和实践中取得了一定的进步。
我能够熟练运用C语言的各种语法和编程技巧,具备了一定的程序设计能力。
c语言实验报告详细设计
实验报告:C语言程序设计
一、实验目的
通过本次实验,使学生掌握C语言的基本语法和程序设计思想,培养学生的编程能力和解决问题的能力。
二、实验内容
1. C语言程序的组成和结构
2. 数据类型、运算符和表达式
3. 输入输出函数
4. 控制结构(选择结构和循环结构)
5. 数组和字符串
6. 函数和程序结构
7. 指针和内存管理
三、实验步骤
1. 准备阶段:了解实验内容和要求,准备好所需的资料和工具。
2. 设计阶段:根据实验内容,设计程序结构和算法,编写代码。
3. 调试阶段:运行程序,调试代码,确保程序的正确性和可靠性。
4. 测试阶段:对程序进行各种测试,确保程序的正确性和性能。
5. 总结阶段:总结实验过程和结果,撰写实验报告。
四、实验结果与分析
1. 实验结果:通过本次实验,学生掌握了C语言的基本语法和程序设计思想,能够编写简单的C程序,解决了一些实际问题。
2. 结果分析:在实验过程中,学生遇到了一些问题,如语法错误、逻辑错误等。
通过调试和测试,学生逐渐掌握了C语言的编程技巧和方法,提高了编程能力和解决问题的能力。
五、结论与建议
1. 结论:通过本次实验,学生掌握了C语言的基本语法和程序设计思想,能够编写简单的C程序,解决了一些实际问题。
同时,学生也提高了编程能力和解决问题的能力。
2. 建议:在今后的实验中,应该更加注重学生的实践能力和创新能力的培养,加强实验内容的深度和广度,提高学生的编程能力和解决问题的能力。
同时,应该注重实验过程的规范化和科学化,确保实验结果的准确性和可靠性。
(完整版)C语言课程设计实验报告
}
while(!ch);
system("cls");
/*一下为功能选择模块*/
说明:进入欢迎页面。
1.2
do
{
printf("\n\t\t\t\t1.录入球队信息\n\t\t\t\t2.显示积分排行榜\n\t\t\t\t3.保存积分\n\t\t\t\t4.退出\n");
printf("\t\t\t\t选择功能选项(输入所选功能前的数字):");
int i=0,j,n;
for(i=0;i<9;i++)
{
for(j=0;j<9;j++)
{
for(n=j+1;n<10;n++)
{
if(Match[i][j]总积分等于Match[i][n]的总积分)
{
if(Match[i][j]总净胜球小于Match[i][n].总净胜球)
{
Match[i][j]结构体与Match[i][n]结构体调换
}
}
}
}
}
}Байду номын сангаас
void sort2()/*排序数据函数*/
{
struct MatchInfo match;
int i=0,j,n;
for(i=0;i<9;i++)
{
for(j=0;j<9;j++)
{
for(n=j+1;n<10;n++)
{
if(Match[i][j]总积分等于Match[i][n]的总积分)
c课程设计的实验报告
c课程设计的实验报告C课程设计的实验报告引言:在计算机科学领域,C语言是一门广泛应用的编程语言,被广泛用于软件开发、嵌入式系统和操作系统等领域。
为了更好地掌握C语言的应用,我们进行了一项C课程设计的实验。
本实验报告旨在总结实验过程中的设计思路、方法和结果,并对实验的意义进行探讨。
实验目的:本次实验的目的是通过设计一个简单的学生成绩管理系统,来加深对C语言的理解和掌握。
通过实践,我们可以更好地熟悉C语言的语法和编程技巧,提高问题解决和代码调试的能力。
实验过程:1. 需求分析在开始编写代码之前,我们首先进行了需求分析。
我们需要设计一个学生成绩管理系统,能够实现学生信息录入、成绩查询、成绩统计和成绩排序等功能。
根据这些需求,我们确定了系统的基本功能和界面设计。
2. 系统设计在系统设计阶段,我们使用了结构化程序设计的方法。
我们将整个系统划分为多个模块,每个模块负责不同的功能。
我们使用了结构体来定义学生的信息,使用数组来存储多个学生的信息。
通过函数的调用和参数传递,实现了不同模块之间的交互。
3. 编码实现在编码实现阶段,我们按照设计的思路,逐步编写代码。
我们使用了C语言提供的基本语法和库函数,如输入输出函数、数组操作函数等。
我们注重代码的可读性和可维护性,使用了有意义的变量名和注释,使代码更易于理解和修改。
4. 调试测试在编写完代码后,我们进行了调试和测试。
我们逐行检查代码的逻辑,查找潜在的错误和漏洞。
我们使用了测试用例来验证代码的正确性,包括正常输入和异常输入的情况。
通过不断调试和修改,我们最终得到了一个稳定可靠的学生成绩管理系统。
实验结果:通过本次实验,我们成功地设计并实现了一个学生成绩管理系统。
该系统能够实现学生信息的录入、成绩查询、成绩统计和成绩排序等功能。
我们通过测试用例的验证,确保系统的正确性和稳定性。
该系统具有良好的用户界面和友好的交互方式,能够满足用户的基本需求。
实验总结:本次实验为我们提供了一个宝贵的机会,通过实践来巩固和拓展我们在C语言方面的知识和技能。
c语言课程实验报告
c语言课程实验报告C语言课程实验报告引言:C语言作为一门广泛应用于计算机科学领域的编程语言,具有简洁高效的特点,被广泛用于系统软件、嵌入式设备等领域。
在C语言课程中,我们进行了一系列的实验,旨在通过实践提升我们的编程能力和理解C语言的各种特性。
本报告将对我们进行的实验进行总结和分析。
实验一:基本语法和数据类型在第一次实验中,我们学习了C语言的基本语法和数据类型。
通过编写简单的程序,我们熟悉了C语言的变量定义、运算符、控制语句等基本概念。
同时,我们也了解了C语言中常用的数据类型,如整型、浮点型、字符型等,并学会了如何进行类型转换和输入输出操作。
实验二:数组和字符串处理在第二次实验中,我们深入学习了C语言中的数组和字符串处理。
通过编写程序,我们掌握了数组的定义、初始化和访问方法,了解了一维数组和多维数组的特点。
同时,我们也学会了使用C语言提供的字符串处理函数,如strlen、strcpy、strcat等,实现字符串的复制、连接和比较等操作。
实验三:函数和指针第三次实验是函数和指针的学习。
我们学习了如何定义和调用函数,了解了函数的参数传递和返回值的相关知识。
同时,我们也深入研究了指针的概念和用法,掌握了指针的声明、初始化和使用方法。
通过实验,我们发现指针在C语言中具有重要的作用,可以提高程序的效率和灵活性。
实验四:文件操作和结构体在第四次实验中,我们学习了C语言中的文件操作和结构体。
通过使用文件读写函数,我们能够实现对文件的读取和写入操作,实现数据的永久存储。
同时,我们也学会了定义和使用结构体,实现对复杂数据的封装和处理。
这些知识对于实际项目的开发非常重要。
实验五:动态内存分配和链表在第五次实验中,我们学习了动态内存分配和链表的使用。
通过使用malloc和free函数,我们能够在程序运行时动态分配和释放内存,提高了内存的利用效率。
同时,我们也学会了使用链表数据结构,实现对数据的动态存储和管理。
链表在数据结构和算法中有着广泛的应用,对于解决实际问题非常有帮助。
C语言实验报告9篇
C语言实验报告C语言实验报告9篇随着个人素质的提升,报告的适用范围越来越广泛,我们在写报告的时候要注意语言要准确、简洁。
写起报告来就毫无头绪?以下是小编为大家整理的C语言实验报告,仅供参考,欢迎大家阅读。
C语言实验报告1一、实习目的1.掌握在集成环境中编辑、编译、连接和运行C程序的方法。
(1)运行TC(2)启动TC集成环境,输入一个源程序,编译并运行。
2.掌握单步执行、设置/去除断点,观察变量或表达式的值。
(3)在该程序中按CTRL+F7单步招待并在观察窗口中查看变量和表达式的值。
(4)设置/去除断点,继续调试。
1、熟练掌握if.switch分支语句的使用。
2、熟练掌握for.while.do.while循环语句的使用。
3、熟练掌握函数的定义、说明、参数传递及嵌套和递归调用方法。
4、熟练掌握一维数组、二维数组、字符数组的定义、说明和使用方法。
熟练掌握结构体和指针的综合应用链表的操作二、实习地点北京交通干部管理学院计算机系机房十三号.三、实习成果熟练掌握TC集成环境的使用方法。
认真编写实习报告和实习总结,描述实习操作和心得体会,总结在这次实习中的业务收获,作出自我评价。
熟练掌握并应用TC程序设计的各个知识点。
掌握结构体和指针的联合使用,学会链表的构造和常用操作方法,认真编写实习日志和实习体会。
并通过各种途径查找所需资料,拓宽视野,培养自学能力。
四、实习心得在短短一周的实习期间使我获取了不少新知识也巩固了许多老知识。
我体会到了老师和同学们的热心帮助,无论面对学习中多大的困难,同学们都会帮助你,老师也会帮助你,大家就像兄弟姐妹一样。
老师安排我们有具有的分工:首先,在计算机机房里同学们积极的对C语言进行巩固与实习,老师热心的讲解同学们提出的问题和实习过程中应该注意的事项和同学们的任何。
老师把我们分为几组,每一组十一个人,并且分配了具体的任务,在我们实习结束后每一组的同学都把自己组里的成果展示给大家一起分享,告诉大家编程的原理、方法等,使同学们既有动手能力,又能提高语言表达能力。
C语言程序设计实验报告
C语言程序设计实验报告一、实验目的本次 C 语言程序设计实验的主要目的是通过实际编写和调试 C 语言程序,加深对 C 语言语法、数据类型、控制结构、数组、指针、函数等核心概念的理解和掌握,提高编程能力和问题解决能力。
二、实验环境本次实验使用的编程环境是 Visual Studio Code,编译器为 GCC。
操作系统为 Windows 10。
三、实验内容及步骤(一)简单数据类型与运算1、定义并初始化不同类型的变量,如整型、浮点型、字符型等。
2、进行基本的算术运算、关系运算和逻辑运算,并输出结果。
(二)控制结构1、编写使用 ifelse 语句进行条件判断的程序,根据不同的条件执行不同的操作。
2、运用 for 循环和 while 循环实现特定次数的重复操作,例如计算1 到 100 的和。
(三)数组1、定义并初始化一维数组和二维数组。
2、实现数组元素的遍历和操作,如查找最大值、最小值等。
(四)指针1、理解指针的概念,定义指针变量并进行赋值。
2、通过指针访问变量和数组元素。
(五)函数1、定义和调用具有不同参数类型和返回值类型的函数。
2、理解函数的参数传递机制,包括值传递和指针传递。
四、实验过程中的问题及解决方法(一)语法错误在编写程序的过程中,经常会出现语法错误,如遗漏分号、括号不匹配等。
通过仔细检查代码,对照 C 语言的语法规则,能够及时发现并修正这些错误。
(二)逻辑错误逻辑错误是比较难以发现和解决的问题。
例如,在循环中可能会出现错误的边界条件,导致结果不正确。
通过打印中间结果和逐步调试,能够帮助找出逻辑错误的所在,并进行修正。
(三)运行时错误运行时错误可能是由于内存访问越界、除数为零等原因引起的。
使用调试工具和异常处理机制,能够有效地处理运行时错误,保证程序的稳定性。
五、实验结果与分析(一)简单数据类型与运算通过实验,对不同数据类型的取值范围、精度以及运算规则有了更清晰的认识。
例如,整型数据在不同的平台上可能具有不同的取值范围,浮点型数据在进行运算时可能会存在精度损失。
《c语言程序设计》实验报告
《c语言程序设计》实验报告《C语言程序设计》实验报告一、引言C语言是一种广泛应用于计算机编程的高级编程语言,具有灵活性和高效性的特点。
在《C语言程序设计》课程中,我们通过实验来巩固和应用所学的知识,提高我们的编程能力和解决问题的能力。
本实验报告将对我们在课程中进行的实验进行总结和分析。
二、实验一:Hello World程序实验一是我们在学习任何编程语言时的传统开始,即编写一个简单的Hello World程序。
这个程序的目的是在屏幕上显示出"Hello World"这个字符串。
通过这个实验,我们学会了如何编写基本的C语言程序,并且了解了程序的编译和运行过程。
三、实验二:计算圆的面积实验二要求我们编写一个程序,通过输入圆的半径,计算并输出圆的面积。
在这个实验中,我们学会了如何使用变量、常量和运算符来进行数学计算,并且学会了如何使用C语言的输入输出函数。
四、实验三:判断闰年实验三要求我们编写一个程序,判断输入的年份是否为闰年。
通过这个实验,我们学会了如何使用条件语句来进行逻辑判断,并且学会了如何使用布尔运算符和关系运算符。
五、实验四:字符串处理实验四要求我们编写一个程序,实现对字符串的基本操作,包括字符串的长度计算、字符串的复制和字符串的连接。
通过这个实验,我们进一步熟悉了C语言中的字符串处理函数,并且学会了如何使用循环和数组来处理字符串。
六、实验五:排序算法实验五要求我们编写一个程序,实现对一组数字的排序。
通过这个实验,我们学会了如何使用数组和循环来进行排序算法的实现,并且学会了如何评估和比较不同排序算法的效率。
七、实验六:文件操作实验六要求我们编写一个程序,实现对文件的读写操作。
通过这个实验,我们学会了如何使用C语言的文件处理函数来进行文件的打开、读取和写入,并且学会了如何处理文件指针和文件的结束标志。
八、实验七:数据结构实验七要求我们编写一个程序,实现对链表数据结构的基本操作,包括链表的插入、删除和查找等。
c语言课程设计报告书3篇
c语言课程设计报告书3篇c语言课程设计报告书1我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。
在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。
在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。
由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。
包括了程序模块处理。
简单界面程序。
高级界面程序。
程序的添加修改。
用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。
上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。
对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。
学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。
因为学时所限,课程不能安排过多的上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。
为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。
课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:1、加深对课堂讲授内容的理解课堂上要讲授许多关于c语言的.语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。
然而要使用c语言这个工具解决实际问题,又必须掌握它。
通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握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语言实训报告(精选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语言程序设计实验报告篇一一、实验目的:1、掌握C语言的`数据类型和变量的声明。
2、掌握不同类型数据之间赋值的规律。
3、掌握C语言的运算符和表达式的使用。
4、熟悉C程序的编辑、编译、连接和运行的过程。
二、实验内容:①输人程序: includevoid main() { int a, b; float d,e; charc1,c2; double f, g; long m, n; unsigned int p,q; a=61;b=62; c1='a';c2='b'; d=3.56;e=-6.87; f=3157.;g=0.; m=50000;n=-60000;p=32768;q=40000; printf("a=%d,b=%d c1=%c,c2=%c d=%6.2f,e=%6.2f ",a,b,c1,c2,d,e); printf("f=%15.6f,g=%15.6f m=%ld,n=%ld p=%u,q=%u ",f,g,m,n,p,q); }②运行此程序并分析结果按习题4. 8要求编写程序题目为: 设圆半径r=l. 5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。
用scanf输人数据,输出计算结果口输出时要有文字说明,取小数点后两位数字。
程序:三、实验步骤:①输人程序:includevoid main() { int a, b; float d,e; char c1,c2; double f, g; long m, n; unsigned int p,q; a=61;b=62; c1='a';c2='b'; d=3.56;e=-6.87; f=3157.;g=0.; m=50000;n=-60000; p=32768;q=40000; printf("a=%d,b=%dc1=%c,c2=%c d=%6.2f,e=%6.2f ",a,b,c1,c2,d,e); printf("f=%15.6f,g=%15.6f m=%ld,n=%ld p=%u,q=%u ",f,g,m,n,p,q); }②运行此程序并分析结果。
c语言实验报告实验
c语言实验报告实验C 语言实验报告实验一、实验目的本次 C 语言实验的主要目的是通过实际编程操作,加深对 C 语言基本语法、数据类型、控制结构、函数等知识的理解和运用,提高编程能力和解决实际问题的能力。
二、实验环境操作系统:Windows 10编译器:DevC++ 511三、实验内容(一)基本数据类型与运算1、定义不同类型的变量,如整型(int)、浮点型(float、double)、字符型(char)等,并进行赋值和基本运算。
2、观察不同数据类型在内存中的存储方式和取值范围。
(二)控制结构1、编写使用 ifelse 语句实现条件判断的程序,根据输入的数值输出不同的结果。
2、运用 for 循环和 while 循环结构,实现计算指定范围内的整数和、平均值等。
(三)数组与字符串1、定义数组并进行初始化,实现数组元素的遍历和操作。
2、处理字符串的输入、输出和基本操作,如字符串的连接、比较等。
(四)函数1、定义和调用自定义函数,实现特定功能,如计算阶乘、判断素数等。
2、理解函数的参数传递方式(值传递和地址传递)。
四、实验步骤及代码实现(一)基本数据类型与运算```cinclude <stdioh>int main(){int num1 = 10;float num2 = 314;char ch ='A';printf("整型变量 num1 的值为:%d\n", num1);printf("浮点型变量 num2 的值为:%f\n", num2);printf("字符型变量 ch 的值为:%c\n", ch);int sum = num1 +(int)num2;printf("num1 和num2 的和(强制转换为整型)为:%d\n",sum);return 0;}```(二)控制结构1、 ifelse 语句```cinclude <stdioh>int main(){int num = 5;if (num > 10) {printf("数字大于 10\n");} else {printf("数字小于或等于 10\n");}return 0;}```2、 for 循环```cinclude <stdioh>int main(){int sum = 0;for (int i = 1; i <= 10; i++){sum += i;}printf("1 到 10 的整数和为:%d\n", sum);return 0;}```3、 while 循环```cinclude <stdioh>int main(){int num = 1;int product = 1;while (num <= 5) {product = num;num++;}printf("1 到 5 的乘积为:%d\n", product);return 0;}```(三)数组与字符串1、数组```cinclude <stdioh>int main(){int arr ={1, 2, 3, 4, 5};for (int i = 0; i < 5; i++){printf("数组元素 arr%d 的值为:%d\n", i, arri);}return 0;}```2、字符串```cinclude <stdioh>include <stringh>int main(){char str1 ="Hello, ";char str2 ="World!";char str320;strcpy(str3, str1);strcat(str3, str2);printf("连接后的字符串为:%s\n", str3);int result = strcmp(str1, str2);if (result == 0) {printf("两个字符串相等\n");} else if (result < 0) {printf("str1 小于 str2\n");} else {printf("str1 大于 str2\n");}return 0;}```(四)函数1、计算阶乘```cinclude <stdioh>int factorial(int n) {if (n == 0 || n == 1) {return 1;} else {return n factorial(n 1);}}int main(){int num = 5;int fact = factorial(num);printf("%d 的阶乘为:%d\n", num, fact);return 0;}```2、判断素数```cinclude <stdioh>int isPrime(int n) {if (n <= 1) {}for (int i = 2; i i <= n; i++){if (n % i == 0) {return 0;}}return 1;}int main(){int num = 7;if (isPrime(num)){printf("%d 是素数\n", num);} else {printf("%d 不是素数\n", num);}return 0;}五、实验结果与分析(一)基本数据类型与运算程序运行结果符合预期,不同数据类型的变量能够正确存储和运算,对浮点型数据的强制类型转换也能得到正确的结果。
c课程设计实验报告
c 课程设计实验报告一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、编程思想和编程方法,培养学生具备基本的程序设计能力。
具体目标如下:1.知识目标:学生能理解C语言的基本语法规则、数据类型、运算符、控制结构、函数等基本概念。
学生能掌握常用的标准库函数,了解C语言的输入输出、文件操作、动态内存分配等基本操作。
2.技能目标:学生能运用C语言编写简单的程序,解决实际问题。
学生能熟练使用C语言的集成开发环境(IDE),进行代码的编写、调试和运行。
3.情感态度价值观目标:学生通过学习C语言,培养逻辑思维能力、问题解决能力和创新意识。
学生能够体验到编程的乐趣,激发对计算机科学的兴趣。
二、教学内容根据课程目标,教学内容主要包括以下几个方面:1.C语言的基本语法和数据类型:变量、常量、数据类型、运算符、表达式等。
2.控制结构:顺序结构、选择结构、循环结构等。
3.函数:函数的定义、声明、调用、参数传递、返回值等。
4.数组和字符串:一维数组、多维数组、字符串的基本操作等。
5.指针:指针的基本概念、指针的运算、指针与数组、指针与函数等。
6.动态内存分配:malloc、calloc、realloc、free等函数的使用。
7.文件操作:文件的打开、关闭、读写、定位等操作。
8.标准库函数:常用标准库函数的功能和用法。
三、教学方法为了达到课程目标,我们将采用以下教学方法:1.讲授法:通过讲解C语言的基本概念、语法规则和编程方法,使学生掌握C语言的基本知识。
2.案例分析法:通过分析典型的编程案例,使学生理解编程思想和方法,提高编程能力。
3.实验法:通过上机实验,使学生亲自动手编写程序,巩固所学知识,培养编程能力。
4.讨论法:通过分组讨论和课堂讨论,激发学生的思考,培养学生的创新意识和问题解决能力。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《C程序设计语言》(K&R)或《C Primer Plus》。
c语言程序设计实验报告
c语言程序设计实验报告C语言程序设计实验报告一、实验目的1. 熟悉C语言的基本语法和程序结构。
2. 掌握C语言的基本输入输出操作。
3. 学会使用C语言进行简单的数据处理。
二、实验环境- 操作系统:Windows 10- 编译器:Visual Studio 2019- 开发工具:Visual Studio Code三、实验内容本次实验主要包括以下几个部分:1. 编写一个C语言程序,实现基本的输入输出功能。
2. 编写一个C语言程序,实现简单的数学运算。
3. 编写一个C语言程序,实现数组的基本操作。
四、实验步骤4.1 实验一:基本输入输出编写一个程序,要求用户输入一个整数和一个浮点数,然后输出这两个数的和。
```c#include <stdio.h>int main() {int num1;float num2;printf("请输入一个整数和一个浮点数:");scanf("%d %f", &num1, &num2);printf("整数和浮点数的和是:%f\n", num1 + num2);return 0;}```4.2 实验二:数学运算编写一个程序,实现两个整数的加、减、乘、除运算,并输出结果。
```c#include <stdio.h>int main() {int a, b;printf("请输入两个整数:");scanf("%d %d", &a, &b);printf("加法结果:%d\n", a + b);printf("减法结果:%d\n", a - b);printf("乘法结果:%d\n", a * b);printf("除法结果:%d\n", a / b);return 0;}```4.3 实验三:数组操作编写一个程序,实现对整型数组的初始化、遍历和求和。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计课程名称程序设计课程设计设计题目高校在职职工管理软件班级及班级代码专业指导教师:学号:姓名:提交日期:姓名课程设计成绩评语:指导教师(签名)年月日1 系统功能要求(需求分析):采用结构体数组或文件形式存储职工的信息,每个职工应包含如下几方面的信息:职工号、姓名、性别、所属二级单位、所学专业、职称、月工资,电话号码。
软件由主函数(含欢迎界面)和下列6个功能模块组成:(1)减少一个职工(需指定要删除职工的职工号);(2)增加一个职工号(需输入要增加职工号的所有信息);(3)查找一个职工号的信息(需指定职工号或电话号码);(4)统计指定二级单位的职工人数、工资总额;(5)按职工的工资多少对职工排序(6)退出程序的运行。
(正文宋体4号,行距固定为20英镑)2 系统总体(概要)设计思想(1)开发及设计的总体思想高校在职职工管理软件设计算法说明:STEP1 预处理,定义结构体STEP2 进入欢迎界面STEP3 选择某一种功能STEP4 根据提示输入一个字母STEP5 对于输入的字母编辑关于删除、增加、排序、查找、统计功能的函数STEP6 如果输入的字母表示退出,退出系统(2)系体模块结构图(3)系统文件及函数组成、功能(参考P154的表12-1)3 系统详细设计(1)函数的描述a.本程序总共有8个文件:workers.hworkers.cadd_disp.csav_load.cque_remv.csort_tongji.chandle_menu.cmenu_select.cb.所涉及到的函数如下:(1).菜单处理函数函数原型:void handle_menu(void);//菜单处理功能:处理选择的菜单命令参数:void返回值:void工作方式:根据命令,调用相应函数要求:给出结束信息(2).菜单选择函数函数原型:int menu_select(void);//菜单选择功能:接受用户选择的命令代码返回值:int工作方式:返回命令代码的整数值要求:只允许选择规定键,如果输入不合要求,则提醒用户重新输入 (3). 删除记录函数函数原型:void removeRecord(void);//删除指定的记录功能:删除内存数组内存数组中的指定记录参数:void返回值:void工作方式:根据给定的关键字,查找符合的记录并删除之。
要求:将后面的记录前移,同时改变名次并给出相关信息(4).增加信息函数函数原型:void addRecord(void);//在表尾追加职工信息功能:增加记录参数:void返回值:void工作方式:从尾部开始逐个追加记录要求:将新的记录追加在记录尾部,并对记录进行计数(5). 显示所有学生信息函数函数原型:void display(void);//显示信息功能:显示内存里的记录信息参数:void工作方式:从头部开始逐个显示记录内容要求:报告是否有记录及记录条数和内容(6).查询指定职工信息函数函数原型:void queryInfo(void);//查询指定的职工信息功能:将一个文件的内容追加到另一个文件的尾部参数:void返回值:void工作方式:可以按照职工号或电话号码来查询要求:打印查询到的学生的信息或给出相关信息。
(7). 对职工信息进行排序函数原型:void sort(void);//对职工进行排序功能:对职工信息进行排序参数:void返回值:void工作方式:按职工工资多少对职工进行排序要求:打印排序结果(8). 统计二级单位人数和工资总额函数原型:void tongji(void);//统计函数功能:统计二级单位人数和工资总额参数:void返回值:void工作方式:指定二级单位,然后再进行统计要求:统计后打印(9). 文件存储操作函数函数原型:int saveRecords(void);//文件存储功能:将记录存入默认文件wor_info或者指定文件参数:void返回值:成功0,失败-1工作方式:数组records被保存至指定文件要求:报告是否有记录可存,是否能正常建立或打开文件,根据要求执行存入操作并报告存入记录的条数(10).文件读取操作函数函数原型:int loadRecords(void);//文件读取功能:默认文件wor_info或者指定文件的记录取入内存参数:void返回值:成功0,失败-1工作方式: records为从指定文件中读取出的记录要求:报告是否有记录可存,是否能够正常打开文件,是否覆盖已有记录以及读取记录的条数(11). 结束程序运行函数函数原型:void quit(void);//结束运行功能:结束程序运行参数:void返回值:void工作方式:根据要求决定在退出前是否将修改的记录存入文件要求:结束运行之前,询问是否对修改的记录进行存储(12). 输出表头函数函数原型:void showTable(void);//输出表头功能:输出表头信息参数:void返回值:void工作方式:输出一行表头信息要求:输出一行表头信息(13). 查找指定记录函数原型函数原型: int findRecord(char* target, int targetType, int from);功能:查找指定的记录参数:char* target欲查找记录的某一项及target相同;int targetType通过什么来查找;int from从第from个记录开始查找返回值:int(找到的记录的序号),若找不到则返回-1工作方式:根据给定的关键字,查找符合记录的序号要求:找不到则返回-1(2)主要函数流程图(2个以上,可参考材P148的写法)addRecord quit(3)编码(附后)4 系统测试内容包括:程序调试情况(8幅以上测试结果截图);5、总结:本人C语言程序设计基础较差,因此,在写这个程序的时候遇到了诸多困难,多亏同学的帮忙我的程序才可以成功地运行,真的是自己之前不够刻苦,用功,写代码这种东西还是要多练,多做题才能有收获,在写那个登陆账号和密码的函数的时候,我调试了好久都没发现错误,最后。
在同学的帮助下,成功发现是数组那里除了问题,居然少打了个中括号。
所以本人数组和指针方面的知识点欠缺,还需要多多练习。
虽然这份程序是参考学生成绩那份来找灵感的,还是出现了好多错误,最大的收货就是看到程序成功运行的那一刻。
6 结束语感谢李惠坤同学和林柔佳同学热心帮助。
参考文献[1] 谭浩强,C程序设计(第二版),北京:清华大学出版社,2001.1 (左对齐,宋体,五号)[2] 陈朔鹰,C语言程序设计习题集,北京:人民邮电出版社,2003.67 附录(代码)#include <stdio.h>#include <stdlib.h>//#include <iostream>#include <conio.h>//conio是Console Input/Output(控制台输入输出)的简写,其中定义了通过控制台进行数据输入和数据输出的函数,主要是一些用户通过按键盘产生的对应操作,比如getch()函数等等。
#include <string.h>#define INITIAL_SIZE 100 //数组初始大小#define INCR_SIZE 50 //数组每次增加的大小struct workers_info{//每个职工包含的信息char num[10];//职工号char name[10];//姓名char sex[3];//性别char post[10];//所属二级单位char major[10];//所学专业char jobname[10];//职称float salary;//月工资char phonenum[11];//电话号码}wk[10];typedef struct workers_info WrkInfo;extern int numWrks; //记录职工数extern WrkInfo* records;//记录职工信息的数组extern char savedTag;//信息是否已保存的标志,0为已保存,1为未保存extern int arraySize;//数组大小void handle_menu(void);//菜单处理int menu_select(void);//菜单选择void removeRecord(void);//删除指定的记录void addRecord(void);//在表尾追加职工信息void display(void);//显示信息void queryInfo(void);//查询指定的职工信息void sortInfo(void);//对职工进行排序void Tongji(void);//统计函数int saveRecords(void);//文件存储int loadRecords(void);//文件读取void quit(void);//结束运行void showTable(void);//输出表头int findRecord(char* target, int targetType, int from);//char* target欲查找记录的某一项及target相同;int targetType通过什么来查找;int from从第from个记录开始查找#include "workers.h"/**************************初始化*************************/int numWrks=0;//记录的职工数WrkInfo *records=NULL;//记录职工信息的数据char savedTag=0;//信息是否已保存的标志,1为未保存,0为保存int arraySize;//数组大小/**********************主函数********************/void main(){//初始化数组char a[20]="14251102104",b[20]="0808", str[20]; records=(WrkInfo*)malloc(sizeof(WrkInfo)*INITIAL_SIZE); system("color 5A");if(records==NULL){printf("memory fail!");exit(-1);}arraySize=INITIAL_SIZE;//printf("\n");printf("\t**********************************\n");printf("\t* 这是一个 *\n");printf("\t* 高校在职职工简单管理程序 *\n"); printf("\t* 可以对职工信息进行管理 *\n"); printf("\t* 欢迎使用管理程序 *\n"); printf("\t**********************************\n"); printf("\n");printf("\n");printf("请输入用户名<14251102104>和密码<0808>"); while(1){scanf("%s",str);if (!strcmp(str,a)){scanf("%s",str);if(!strcmp(str,b)){printf("登陆成功");handle_menu();}else printf("登陆失败");}}}void copyRecord(WrkInfo* src,WrkInfo*dest); /**********************菜单处理函数********************/#include"workers.h"void handle_menu(void){for(;;){switch(menu_select()){case 1:removeRecord();break;case 2:addRecord();break;case 3:queryInfo();break;case 4:Tongji();break;case 5:sortInfo();break;case 6:display();break;case 7: saveRecords(); break;case 8: loadRecords(); break;case 9:quit();}}}#include"workers.h"/**********************菜单选择函数menu_select********************/int menu_select(){char s[2];int cn=0;printf("\n");printf("\t1.删除职工信息 \n");printf("\t2.增加职工信息\n");printf("\t3.查询职工信息\n");printf("\t4.统计职工信息\n");printf("\t5.对职工信息进行排序\n");printf("\t6.显示职工信息\n");printf("\t7.保存学生信息至记录文件\n");printf("\t8.从记录文件读取学生信息\n");printf("\t9.结束运行\n");printf("\n\t左边数字对应功能选择,请选1-9:\n\n"); for(;;){gets(s);cn=atoi(s);if(cn<1||cn>9)printf("\n\t输入错误,重选1-9:\n\n"); else break;}return cn;}/**********************结束运行,退出*参数void********************/void quit(void){char str[5];if(savedTag==1){printf("是否保存原来的记录? (Y/n)");gets(str);if(str[0]!='n'&&str[0]!='N')saveRecords();}free(records);exit(0);}#include "workers.h"/**********************输出表头********************/void showTable(void){printf("职工号\t 姓名\t 性别\t 所属二级单位\t 所学专业\t 职称\t 月工资\t 电话号码\n");}/**********************显示所有职工信息函数********************/void display(void){int i;if(numWrks==0)printf("没有可供显示的记录!");return;}showTable();for(i=0;i<numWrks;i++){//打印职工信息printf("%s \t %s \ t %s \ t %s \t ",records[i].num,records[i].name,records[i].sex,records[i].post ,records[i].major);printf("%s \t %s \ t %f \ t %s \t ",records[i].jobname,records[i].salary,records[i].phonenum);//打印满10个记录后停下来if(i%9==0&&i!=0){printf("输入任一字符后继续...\n");getch();printf("\n\n");showTable();}}/*****************************************在当前表的末尾增加新的信息结果:*records中将记录的信息,如果数组*大小不够,会重新申请数组空间****************************************/void addRecord(void){//records=realloc(records,(arraySize+INCR_SIZE)*sizeof(WrkIn fo));char str[10];int j;float mark,sum;if(numWrks==0)printf("原来没有记录,现在建立新表\n");elseprintf("下面在当前表的末尾增加新的信息\n");while(1)//()中为1表示无条件反复循环{printf("您将要添加一组信息,确定吗?(Y/n)");gets(str);if (str[0]=='n' || str[0]=='N') // 不再添加新的信息break;if (numWrks >= arraySize) // 现在的数组空间不足,需要重新申请空间{records = realloc(records,(arraySize+INCR_SIZE)*sizeof(WrkInfo));//新空间大小变为(arraySize+INCR_SIZE)记录大小,即在原来基础上增加INCR_SIZE个记录大小if (records == NULL){printf("memory failed!");exit(-1);}arraySize = arraySize+INCR_SIZE; //arraySize修改为新空间可保存的记录数}printf("请输入职工号:");gets(records[numWrks].num);printf("请输入姓名:");gets(records[numWrks].name);printf("请输入性别(0为女,1为男):");gets(str);if(str[0]=='0')strcpy(records[numWrks].sex,"女");elsestrcpy(records[numWrks].sex,"男");printf("请输入所属二级单位:");gets(records[numWrks].post);printf("请输入所学专业:");gets(records[numWrks].major);printf("请输入职称:");gets(records[numWrks].jobname);printf("请输入月工资:");gets(str);records[numWrks].salary=(float)atof(str); printf("请输入电话号码:");gets(records[numWrks].phonenum); numWrks++;}printf("现在一共有%d条信息\n",numWrks);savedTag=1;}#include"workers.h"/**********************************************查找指定记录函数*参数: target:欲查找记录的某一项及target相同*targetType:表明通过那一项来查找,0为学号,1为姓名,2为名次*from:从第from个记录开始找*返回:找到的记录的序号,若找不到则返回-1*********************************************/int findRecord(char*target, int targetType, int from){int i;for(i=from;i<=numWrks;i++){if((targetType==0&&strcmp(target,records[i].num)==0)||(targetTy pe==1&&strcmp(target,records[i].name)==0)||(targetType==2&&strc mp(target,records[i].post)==0))return i;}return -1;}void queryInfo(void){char str[5];char target[20];int type;int count;int i;if(numWrks==0){printf("没有可供查询的记录");return;}while(1){printf("请输入查询的方式:(直接输入回车则结束查询)\n"); printf("1.按职工号\n");printf("2.按电话号码\n");gets(str);if(strlen(str)==0)break;if(str[0]=='1'){printf("请输入欲查询的职工的职工号:"); gets(target);type=0;}else{printf("请输入欲查询的职工的电话号码:"); gets(target);type=1;}i=findRecord(target,type,0);if(i==1){//打印查询到的职工信息showTable();}count=0;while(i!=-1){count++;printf("%s\t%s\t%s\t%s\t%s\t%s\t%f\t%s",records[i].num,records[ i].name,records[i].sex,records[i].post,records[i].major,records [i].jobname,records[i].salary,records[i].phonenum);i=findRecord(target,type,i+1);}if(count==0)printf("没有符合条件的职工!\n");elseprintf("一共找到了%d名职工的信息\n\n",count);}}/******************************删除记录函数***************************/void removeRecord(void)char str[5];char target[20];int type;int i,j;if(numWrks==0){printf("没有可供删除的记录\n\n"); return;}while(1){printf("直接输入回车则结束移除操作)\n"); printf("请输入欲删除的记录的职工号:\n"); gets(target);type=0;i=findRecord(target,type,0);if(i==-1)printf("没有符合条件的职工!\n");while(i!=-1){showTable();printf("%s\t%s\t%s\t%s\t%s\t%s\t%f\t%s",records[i].num,records[ i].name,records[i].sex,records[i].post,records[i].major,records [i].jobname,records[i].salary,records[i].phonenum);printf("确定要删除这个职工的信息吗?(y/N)");gets(str);if(str[0]=='y'||str[0]=='Y'){numWrks--;printf("该职工信息已经删除.\n");return;//将后面的记录前移for(j=i;j<numWrks;j++){copyRecord(&records[j+1],&records[j]);}}//取下一个符合条件的记录i=findRecord(target,type,i+1);}}savedTag=1;}/***************************************** *将src指向的一条记录复制给dest指向的记录*****************************************/ void copyRecord(WrkInfo*src,WrkInfo*dest) {strcpy(dest->num,src->num);strcpy(dest->name,src->name);strcpy(dest->sex,src->sex);strcpy(dest->post,src->post);strcpy(dest->major,src->major);strcpy(dest->jobname,src->jobname);dest->salary=src->salary;strcpy(dest->phonenum,src->phonenum);#include"workers.h"/**********************************************查找指定记录函数*参数: target:欲查找记录的某一项及target相同*targetType:表明通过那一项来查找,0为学号,1为姓名,2为名次*from:从第from个记录开始找*返回:找到的记录的序号,若找不到则返回-1*********************************************/int findRecord(char*target, int targetType, int from){int i;for(i=from;i<=numWrks;i++){if((targetType==0&&strcmp(target,records[i].num)==0)||(targetTy pe==1&&strcmp(target,records[i].name)==0)||(targetType==2&&strc mp(target,records[i].post)==0))return i;}return -1;}void queryInfo(void){char str[5];char target[20];int type;int count;int i;if(numWrks==0){printf("没有可供查询的记录");return;}while(1){printf("请输入查询的方式:(直接输入回车则结束查询)\n"); printf("1.按职工号\n");printf("2.按电话号码\n");gets(str);if(strlen(str)==0)break;if(str[0]=='1'){printf("请输入欲查询的职工的职工号:"); gets(target);type=0;}else{printf("请输入欲查询的职工的电话号码:"); gets(target);type=1;}i=findRecord(target,type,0);if(i==1){//打印查询到的职工信息showTable();}count=0;while(i!=-1){count++;printf("%s\t%s\t%s\t%s\t%s\t%s\t%f\t%s",records[i].num,records[ i].name,records[i].sex,records[i].post,records[i].major,records [i].jobname,records[i].salary,records[i].phonenum);i=findRecord(target,type,i+1);}if(count==0)printf("没有符合条件的职工!\n");elseprintf("一共找到了%d名职工的信息\n\n",count);}}/******************************删除记录函数***************************/void removeRecord(void){char str[5];char target[20];int type;int i,j;if(numWrks==0){printf("没有可供删除的记录\n\n"); return;}while(1){printf("直接输入回车则结束移除操作)\n"); printf("请输入欲删除的记录的职工号:\n"); gets(target);type=0;i=findRecord(target,type,0);if(i==-1)printf("没有符合条件的职工!\n"); while(i!=-1)showTable();printf("%s\t%s\t%s\t%s\t%s\t%s\t%f\t%s",records[i].num,records[ i].name,records[i].sex,records[i].post,records[i].major,records [i].jobname,records[i].salary,records[i].phonenum);printf("确定要删除这个职工的信息吗?(y/N)");gets(str);if(str[0]=='y'||str[0]=='Y'){numWrks--;printf("该职工信息已经删除.\n");return;//将后面的记录前移for(j=i;j<numWrks;j++){copyRecord(&records[j+1],&records[j]);}}//取下一个符合条件的记录i=findRecord(target,type,i+1);}savedTag=1;}/***************************************** *将src指向的一条记录复制给dest指向的记录*****************************************/ void copyRecord(WrkInfo*src,WrkInfo*dest) {strcpy(dest->num,src->num);strcpy(dest->name,src->name);strcpy(dest->sex,src->sex);strcpy(dest->post,src->post);strcpy(dest->major,src->major);strcpy(dest->jobname,src->jobname);dest->salary=src->salary;strcpy(dest->phonenum,src->phonenum);}#include"workers.h"/***********************************文件存储操作函数*结果:数组records 被保存至指定文件返回:成功0,失败-1*************************************/int saveRecords(){FILE *fp;char fname[30];if(numWrks==0){printf("没有记录可存!");return -1;}printf("请输入要存入的文件名(直接回车选择文件wrk_info):"); gets(fname);if(strlen(fname)==0)strcpy(fname,"wrk_info");if((fp=fopen(fname,"wb"))==NULL){printf("不能存入文件!\n");return -1;}printf("\n存文件...\n");fwrite(records,sizeof(WrkInfo)*numWrks,1,fp);fclose(fp);printf("%d条记录已经存入文件,请继续操作.\n",numWrks); savedTag=0;//更新是否已保存的标记return 0;}/*********************************************文件读取操作函数*结果:records为从指定文件中读取出的记录*返回:成功0,失败-1**********************************************/int loadRecords(void){FILE *fp;char fname[30];char str[5];if(numWrks!=0&&savedTag==0){printf("请选择您是要覆盖现有的记录(Y),还是要将"); printf("读取的记录添加到现有记录之后(n)?\n"); printf("直接回车则覆盖现有记录\n");gets(str);if(str[0]=='n'||str[0]=='N'){//将读取的记录添加到现有记录之后savedTag=1;}else{if(savedTag==1){//覆盖现有记录printf("读取文件将会更改原来的记录,");printf("是否保存原来的记录?(Y/n)");gets(str);if(str[0]!='n'&& str[0]!='N')saveRecords();}numWrks=0;}}printf("请输入要读取的文件名(直接回车选择文件wrk_info):");gets(fname);if(strlen(fname)==0)strcpy(fname,"wrk_info");if((fp=fopen(fname,"rb"))==NULL){printf("打不开文件!请重新选择\n");return -1;}printf("\n取文件...\n");while(!feof(fp)){//现在的数组空间不足,需要重新申请空间if(numWrks>=arraySize){records=realloc(records,(arraySize+INCR_SIZE)*sizeof(WrkInfo)); if(records==NULL){printf("memory failed!");exit(-1);}arraySize=arraySize+INCR_SIZE;}if(fread(&records[numWrks],sizeof(WrkInfo),1,fp)!=1)break; numWrks++;}fclose(fp);printf("现在共有%d条记录.",numWrks);return 0;}#include"workers.h"void display();void Tongji(void) //统计员工资料{int num;//统计的职工数float sum;//总工资char target[20];int type;int count=0;if(numWrks==0){printf("\n提示:没有资料可以统计!\n");return ;}while(1){printf("请输入指定的二级单位\n");printf("(直接输入回车则结束统计操作)\n");gets(target);if(strlen(target)==0)break;type=2;num=findRecord(target,type,0);/* if(num!=-1){//打印统计二级单位的职工人数和工资总额。