c语言实验报告
C语言实训总结报告范文(通用5篇)

C语言实训总结报告范文(通用5篇)在经济飞速发展的今天,报告的适用范围越来越广泛,报告包含标题、正文、结尾等。
一听到写报告马上头昏脑涨?以下是小编整理的C语言实训总结报告范文,仅供参考,希望能够帮助到大家。
C语言实训总结报告篇1这个星期,我们迎来了C语言实训——一次至为重要的实训。
在这个星期里,同学们都很认真的做着那20多道实训题目,遇到不懂的互相请教,或请问老师。
非常感谢老师对我们的帮助,这次实训使我受益匪浅,收获了很多。
通过C语言实训,让我加深了对C语言的了解,而不只是单单的在课本中学到的那些理论,平时乏味的课程,通过自己动手亲自编写,变的生动有趣,而在自己动手的过程中,出现的问题很多,比理论要难的多,当一个程序写完以后,经常会有很多错误而没法解决。
不过,通过几天的实训,逐渐积攒了一些经验,有些错误可以很快就看出来。
这次实训有很大的收获,让我对C语言有了更深的认识,平时在课堂上学到的东西可以自己动手编写,将其转化成一些实用的技能。
如果是一个程序写完一处错误也没有,会有种成就感,于是兴趣就来了,兴趣来了,自然学的东西也就多了,能把理论变成实际的技能,让我对C语言有了浓厚的兴趣和更深层的认识。
C语言是一个有序的学习,学了最基本的替换,然后扩展到循环,嵌套,条理很清楚,不是一个零散的知识,实际上所有的课程都如此,不过通过实训我也知道了自己的不足,存在的很多问题。
比如自己写的写的小程序出了问题,不会解决了就叫老师帮忙,虽然说一定意义上增加了师生之间的感情,但是会养成一种依赖的心理,碰到问题了第一个想到的是求助而不是自己独立解决,所以以后要多多锻炼自己的信心和增加自己的能力,争取做到老师不在身边的时候也可以完成一些简单的程序编写与错误排除。
还有自己的基础知识不扎实,遇到的问题,没有很好的逻辑思维,亲自编写一个陌生的程序的时候会有种无法下手的感觉,找不到突破口。
通过实训,逐渐理清了顺序,对于简单的程序和一些相对比较繁琐的嵌套,循环,不在是看着一头雾水。
C语言程序设计实验实验报告

C语⾔程序设计实验实验报告《C语⾔程序设计实验》实验报告实验九⽂件编程(⼀)班级:_07某某专业1班_学号:______姓名:___实验样例_____⽇期:___2008.6.10_____台州学院数信学院计算机系制作⼀、实验⽬的和要求综合使⽤基本结构、基本算法、函数、指针、结构体、链表等知识设计程序。
⼆、实验指导1、注意:本次实验为综合性实验,需要综合本课程以前所学内容,完成编制⼀个⼩型应⽤程序。
需要复习课本以前所学内容,浏览上课讲解的相关内容。
2、实验时间安排:准备实验⽅案,上课时上机编程,课余完成整个设计并完成实验报告。
3、实验具体要求:以⼀张假想的学⽣期中成绩表为实验对象,编制⼀个⼩型应⽤程序,可以考虑实现以下功能:(1)成绩修改;(2)成绩查询;(3)成绩统计;(4)成绩输⼊。
也可以实现其他⾃定义的功能。
界⾯采⽤简易菜单形式,可以分级显⽰。
实验需要进⾏以下步骤:需求分析、程序设计、程序调试、程序运⾏,并对程序运⾏效果进⾏分析,提出改进⽅案。
初步锻炼学⽣的程序设计能⼒、程序调试能⼒、对实验结果进⾏综合分析的能⼒。
4、实验成绩评价标准:参见成绩评定表。
四、实验报告内容(参见样本,请另附页)实验报告必须包含以下内容:1、对你设计的程序功能进⾏的较详细描述。
2、画出程序测试⽤的学⽣期中成绩表(包含:表头、若⼲⾏包含学⽣成绩等信息的数据⾏)。
3、给出程序清单(包含结构体的声明与定义、所有的函数声明、所有的全局变量、所有的函数定义、必要的注释。
注:如果程序过长,可以不⽤给出所有的函数定义,只给出主要的函数定义)。
4、运⾏结果(写出运⾏时的主界⾯、各模块的实现界⾯等,不作具体要求,但要求能清晰地体现出程序的功能)。
5、对你的设计作⼀个评价(可以包含你所花的时间、精⼒,你遇到的困难及如何解决的,你的设计过程所遇到的其他事情;必须包含你对设计的客观评价,以及提出的改进⽅案)。
1、程序功能描述:(略)2、成绩表样表:3、程序清单:(红⾊部分是和上⼀个程序的区别之处)#includestruct student /*期中成绩表的结构声明*/{int num;char name[20];char sex;float YuWen;float ShuXue;float YingYu;float totle;};#define MAX_STU_NUMBER 100 /*宏定义最⼤学⽣数为100⼈*/struct student Stu[MAX_STU_NUMBER]; /*⼀次性定义100个学⽣的存储空间*/int STU_NUMBER; /*存放学⽣数*/char *FileName = "chengji.txt"; /*成绩存放的⽂件*//*所有的函数声明:*/int SelectMainMenu(); /*显⽰并选择主菜单。
c语言程序设计_实验一实验报告

实验项目名称:实验一C 语言的运行环境的使用实验目的及要求:1. 了解 Windows 系统下 C 语言的运行环境,熟悉 C 程序编辑、调试、运行的基本操作方法。
2. 熟练掌握编辑、编译、连接和运行 C 程序的方法。
3. 通过运行简单的 C 程序,初步了解 C 源程序的特点。
4. 初步理解 C 语言的数据类型,了解变量定义、变量赋值以及简单运算方法,了解程序运行结果的基本输出方法。
实验内容(方法和步骤):1、编程实现在屏幕上显示如下三行文字Hello, world !Wolcome to the C language world!Everyone has been waiting for程序代码:#include <stdio.h>int main(){printf("Hello,World!\n");printf("Welcome to the C language world!\n");printf(Everyone has been waiting for.\n");return 0;}运行结果:2、编写程序,将两个整数相加,并输出结果。
程序代码:#include <stdio.h>int main(){int a,b,c;a=12;b=26;c=a+b;printf("c=%d\n",c);return 0";}运行结果:3. 编写程序,要求从键盘输入2 个整数,输出其中较大的数程序代码:#include <stdio.h>int main(){int max(int x,int y);int a,b,c;scanf("%d,%d",&a,&b);c=max(a,b);pintf("max=%d",c);return 0;}int max(int x,int y){ int z;if (x>y) z=x;else z=y;return(z);}运行结果:4.输入并运行下程序,观察运行结果。
c语言实训报告

c语言实训报告一、实训介绍作为计算机专业学生,我们需要熟练掌握各种编程语言,其中C语言是所有计算机专业学生必须学会的语言之一。
为了更好地掌握C语言的使用,我们参加了C语言实训。
本次实训分为理论学习和实践操作两部分,理论学习主要涵盖C语言的基本语法、数据类型、运算符、流程控制等内容,实践操作部分则要求我们通过编写各种程序来巩固所学知识并提高编程能力。
二、实训过程1. 理论学习在理论学习阶段,我们通过老师讲解和课堂互动的方式掌握了C语言的基本概念和语法规则,并进行了主要控制语句的讲解和练习。
同时,我们通过一些实例掌握了C语言的运算符和数据类型,并学会如何使用它们来编写程序。
2. 实践操作实践操作阶段是整个实训的重点和难点,主要包括以下几个方面的内容:(1)程序编写在实践操作过程中,老师为我们提供了多个练习题目,包括简单的判断语句、循环语句、数组等等。
我们需要通过编写代码来实现这些题目的要求,并进行调试修改,直到程序执行无误为止。
(2)实验报告为了让我们更好地掌握C语言的应用,老师还要求我们编写实验报告,记录我们在实践过程中遇到的问题和解决方案,以及程序设计的思路和实现过程。
通过编写实验报告,我们不仅可以更好地回顾和总结实践操作,还能提高我们的文字表达能力。
三、实训体会通过参加C语言实训,我对C语言的掌握更加深刻,不仅能灵活运用其语法和控制语句,还能熟练使用其常用函数和数据类型。
在实践操作中,我也锻炼了自己的程序设计和调试能力,并学会了一些解决问题的方法和技巧。
同时,我也认识到了C语言编程并不是简单的代码拼接,要求我们具备较强的逻辑思维能力和耐心,只有不断地进行练习和思考,才能在C语言编程中达到自己的目标。
四、总结通过C语言实训,我不仅掌握了C语言的基础知识和应用技巧,还培养了自己的创新思维和问题解决能力。
在未来的学习和工作中,我会继续学习和应用C语言,不断提升自己的编程水平,并为计算机行业的发展做出自己的贡献。
c语言函数实验报告

c语言函数实验报告C 语言函数实验报告一、实验目的1、深入理解 C 语言中函数的概念、定义和使用方法。
2、掌握函数的参数传递机制,包括值传递和地址传递。
3、学会使用函数来实现程序的模块化设计,提高代码的可读性、可维护性和可重用性。
4、通过实验,熟练掌握函数的调用、返回值的处理以及函数之间的相互协作。
二、实验环境1、操作系统:Windows 102、编译环境:Visual Studio 2019三、实验内容(一)函数的定义与声明1、定义一个名为`add` 的函数,用于计算两个整数的和,并返回结果。
```cint add(int a, int b) {return a + b;}```2、在主函数之前对`add` 函数进行声明。
```cint add(int, int);```(二)函数的调用1、在主函数中调用`add` 函数,计算 5 和 10 的和,并输出结果。
```cint main(){int result = add(5, 10);printf("5 + 10 =%d\n", result);return 0;}```(三)值传递与地址传递1、定义一个函数`swap`,通过值传递方式交换两个整数的值。
```cvoid swapValue(int a, int b) {int temp = a;a = b;b = temp;}```2、定义一个函数`swapPointer`,通过地址传递方式交换两个整数的值。
```cvoid swapPointer(int a, int b) {int temp = a;a = b;b = temp;}```3、在主函数中分别调用这两个函数,观察交换结果。
(四)函数的递归调用1、定义一个递归函数`factorial`,计算一个整数的阶乘。
```cint factorial(int n) {if (n == 0 || n == 1) {return 1;} else {return n factorial(n 1);}}```2、在主函数中调用`factorial` 函数,计算 5 的阶乘,并输出结果。
c语言实验报告

计算机软件技术基础实验报告实验一:线性表的排序与查找一.实验内容a)键盘输入一组无序数据,添加到线性表中;b)排序线性表并输出排序结果;c)键盘输入一个数,并插入到排好序的线性表中(要求插入后的表仍为有序表),输出结果;d)键盘输入一个数,并从线性表中删除相应的数据,输出结果。
二,源程序// Experiment1。
cpp :定义控制台应用程序的入口点。
//#include "stdafx.h”#include "iostream”#include 〈conio。
h〉// 程序实现有各种方法,这里给出一个实例。
// 定义一个线性表const int nMaxSize = 15;// 最大值int nLen = 0; // 表中元素个数int nLinearList[nMaxSize];// 定义操作void LSort();void LOut();void LInsert(int n);void LDelete(int n);int main(int argc,TCHAR*argv[]){// 输入数据并放入线性表中printf(”Pleas e input data\n"); // std::cout 〈< "Please input data\n”;int nIn = 0;for (int i = 1; i <= 10;i++){scanf(”%d”,&nIn);// std::cin >〉nIn;nLinearList[i] = nIn;nLen++;}LSort();// 排序线性表LOut();// 输出结果printf(”Please input a data to i nsert \n”);scanf(”%d”,&nIn);LInsert(nIn);// 输入一个数字,并插入到线性表中LOut();printf(”Please input a data to delete \n");scanf("%d”,&nIn);LDelete(nIn);// 输入一个数字,并从线性表中删除LOut();char chTmp;printf(”Please input a char to finish this program.");chTmp = getch();return 0;}void LSort()// 冒泡排序,由大到小{int j,F,k,M;F=nLen;while(F〉0){k=F-1;F=0;for(j=1;j<=k;j++){if(nLinearList[j]〈nLinearList[j+1]){M=nLinearList[j];nLinearList[j]=nLinearList[j+1];nLinearList[j+1]=M;F=j;}}}}void LOut(){printf("\n”);for (int i = 1;i 〈= nLen;i++){printf( "%d, ", nLinearList[i]);}printf(”\n”);}void LInsert(int n){int i,j;i=1;while (i<nLen){ if(nLinearList[i]〈=n){nLen++;for(j=nLen;j>=i;j—-)nLinearList[j+1]=nLinearList[j];nLinearList[i]=n;break;}i++;}}void LDelete(int n){int i,j;for(i=1;i<=nLen;i++){if(nLinearList[i]==n){for(j=i;j〈=(nLen—1);j++)nLinearList[j]=nLinearList[j+1];nLen—-;break;}}}三运行结果实验2:栈与队列的应用一.实验内容a)键盘输入算数表达式,并放入队列当中;b)应用栈的概念设计表达式求值算法;输出表达式求值结果二.源程序// Experiment2。
c语言实验报告结果及分析
c语言实验报告结果及分析#### 一、实验目的1. 学习如何使用函数;2. 了解函数的作用;3. 掌握C语言程序中函数的实现方法;4. 深入理解函数调用和参数传递。
#### 二、实验内容本次实验完成了一个函数factorial,它的作用是计算一个整数的阶乘。
实验代码:```c#include <stdio.h>int factorial(int n) //函数声明{int i; //定义变量int product = 1; //初始化变量for(i = 1; i<=n; i++) //循环语句{product *=i;}return product; //返回结果}int main(){int num;scanf("%d",&num); //输入变量printf("%d\n",factorial(num)); //调用函数return 0;}```#### 三、实验结果实验运行结果:实验结果验证了函数factorial的功能,它计算出了正确的结果:输入5,计算出120;输入4,计算出24。
#### 四、实验分析1. 在实验代码中,我们首先定义了一个函数factorial,并给出了它的参数n和返回值product。
然后,运用循环语句把参数n的各个数相乘,取得最终结果product,并用return语句把结果返回。
2. 然后,在进入main函数时,我们用scanf传入变量num,然后调用factorial函数计算num的阶乘,将结果用printf输出,这就完成了整个程序的工作。
3. 本实验验证了函数factorial的功能,完成了整数的阶乘计算任务,并且符合了性能要求,每次输入及计算结果都符合预期,可以满足实际使用需求。
c语言实验报告总结
c语言实验报告总结在大学的计算机科学与技术专业中,学习C语言是一个非常重要的环节。
通过实验的方式,我们可以更好地理解和掌握这门编程语言。
在此次实验中,我对C语言的基本语法、数据类型、控制结构以及函数等方面进行了深入学习和实践,并取得了一定的成果。
首先,在实验中我通过编写简单的程序,掌握了C语言的基本语法规则。
C语言是一门结构化的编程语言,具有严格的语法要求。
通过实验,我深刻理解了C语言的语法规则对编写正确程序的重要性。
在每个实验环节中,我都会根据实验要求,遵循正确的语法结构,确保程序能够顺利运行。
其次,在实验过程中,我掌握了C语言的各种数据类型。
C语言中的数据类型包括整型、浮点型、字符型等多种类型,每一种类型都有其特定的用途和限制。
通过实验,我学会了如何定义不同类型的变量,并能够利用这些变量进行各种运算和操作。
这为我后续的程序设计提供了基础。
另外,在实验中我学习了C语言的控制结构。
控制结构在程序设计中起到了重要的作用,可以通过条件判断和循环控制实现不同的功能。
在实验中,我通过编写程序,学会了使用if语句、switch语句以及for、while、do-while等循环语句。
这些控制结构的灵活运用使我的程序更加健壮和实用。
在实验的过程中,我还学习了C语言中的函数。
函数是C语言中的一种代码模块,可以将一段具有特定功能的代码封装起来,提高代码复用性和可维护性。
通过实验,我了解了函数的定义、声明和调用等基本概念,并学会了如何自己编写函数,并在主程序中调用这些函数。
函数的使用使我的程序模块更加清晰,减少了代码的重复性,提高了代码的可读性和可维护性。
总的来说,这次C语言的实验让我受益匪浅。
通过实际动手编写程序,我不仅巩固了对C语言基础知识的理解,还掌握了更多实际应用的技巧。
同时,实验还培养了我的分析和解决问题的能力,使我在编写程序时可以更加深入地思考和分析。
在未来的学习和工作中,C语言将成为我必不可少的工具。
c语言实验报告分析总结
c语言实验报告分析总结实验是科学研究和学习的重要手段之一,通过实验可以验证理论,探索问题的解决方案,并提取实验数据进行分析和总结。
本次实验是关于C语言的,以下是对这次实验进行分析和总结的报告。
一、实验目的及原理:本次实验的目的是通过编写C语言程序来实现特定的功能,进一步了解和掌握C语言的基本语法和编程思想。
具体的实验内容包括:实现简单的算术运算、条件判断、循环结构以及函数调用等基本操作。
C语言是一种广泛应用的程序设计语言,具有简单、高效、灵活的特点。
它使用结构化编程方法,支持面向过程和面向对象的编程风格。
C语言的核心思想是利用变量、表达式、控制流结构和函数等基本元素来构建程序。
二、实验过程和方法:1. 编写算术运算的C程序。
2. 编写条件判断的C程序。
3. 编写循环结构的C程序。
4. 编写函数调用的C程序。
5. 运行程序,观察输出结果。
三、实验结果分析与讨论:通过对实验所编写的C程序进行运行,可以得到相应的输出结果。
下面对实验结果进行分析和讨论。
1. 算术运算的C程序算术运算是C语言的基本操作之一,可以实现加、减、乘、除等数学运算。
在实验中,我们编写了一段简单的算术运算的C 程序,实现了两个数的加法、减法、乘法和除法运算,并输出相应的结果。
通过运行实验程序,可以观察到加法、减法、乘法和除法运算的结果是正确的,符合数学运算规则。
这说明我们编写的算术运算的C程序是正确的。
2. 条件判断的C程序条件判断是C语言中一种重要的控制结构,可以根据特定条件的成立与否来执行不同的操作。
在实验中,我们编写了一段简单的条件判断的C程序,根据输入的数字判断其正负性,并输出相应的结果。
通过运行实验程序,可以观察到当输入的数字为正数时,程序输出“正数”,当输入的数字为负数时,程序输出“负数”,当输入的数字为0时,程序输出“零”。
这符合我们编写程序时设定的条件判断逻辑,说明我们编写的条件判断的C程序是正确的。
3. 循环结构的C程序循环结构是C语言中一种常用的控制结构,可以重复执行特定的操作。
c语言实验报告分析总结3篇
c语言实验报告分析总结3篇c语言实验报告分析总结1在科技高度发展的今天,计算机在人们之中的作用越来越突出。
而c语言作为一种计算机的语言,我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。
在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。
在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。
由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。
包括了程序模块处理.简单界面程序.高级界面程序.程序的添加修改.用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。
上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。
对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。
学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。
因为学时所限,课程不能安排过多的上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。
为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。
课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:1.加深对课堂讲授内容的'理解课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。
然而要使用c语言这个工具解决实际问题,又必须掌握它。
通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《程序设计基础(下)》大作业报 告学院名称: 计算机工程学院 专 业: 数字媒体技术 题 目: 员工工资管理系统 学期: 13-14-2 班 级: 13媒体1 学号: 2013145106 姓 名: 张豪可报告成绩: 答辩成绩: 教师姓名: 蒋红芬2014年6月目录一.课程设计目的 (3)二.课题设计内容、具备的功能 (3)功能介绍 (3)三.模块(函数)的划分、各模块的功能 (4)(1)求平均值流程图 (5)(2) 查询模块功能流程图 (5)四.采用的自定义的数据类型 (6)五. 1.程序设计过程中、调试过程中所用的测试用例、程序运行结果 (6)2.在课程设计中遇到的问题和解决的方法,还没有解决的问题 (12)六.通过课程设计的体会、收获 (12)七.程序清单 (13)一.课程设计目的在本学期的学习中,我初步接触到了C语言,学会了用C语言编写一些小型的程序。
然而这这些程序大都功能单一,实用价值不大。
本次的C语言大作业就弥补了这些缺憾,为了做好这个C语言大作业,我使用了结构体、指针、文件等知识,做了一个功能较为完备的员工信息管理系统,让自己对C语言的理解和掌握又提升了一个层次。
二.课题设计内容、具备的功能从对员工信息管理系统的特点入手,可以得出基本的系统需求分析情况。
本系统主要实现对员工工资信息的管理,主要功能为员工信息管理和员工信息查找等。
本系统分为员工信息输出模块、员工信息增删模块、员工信息处理模块和员工信息查找模块等。
具体如图所示:功能介绍:运行程序,出现一个“员工工资管理系统的主界面”,其中有8个数字代表的选项,可以按相关的数字进行操作。
每一条记录包括员工姓名、员工号、员工年龄、员工工资。
0)退出:无论在哪个界面,均可退出系统。
1)员工信息输出:输出全部员工的信息。
2)插入员工信息:学生可以插入一个或多个员工的信息,包括姓名、员工号、年龄、工资等。
员工3)删除信息:可以按员工姓名删除职工信息。
4求平均值:可以求出员工的平均工资。
5)员工信息排序:可以按照员工工资对员工信息进行排序。
6)求最值可以求出员工中工资最少者和工资最多者。
改管理系统具有以下特点:员工(1)可以多次增加或删除信息。
(2)系统操作方便,提示信息恰当。
(3)能够永久保存信息。
(文件操作)(4)自己根据常识设计数据结构。
(5)用结构化、模块化程序设计方法,尽量写成函数。
二.模块(函数)的划分、各模块的功能该图书馆信息管理系统共有8个功能,分别为信息输出、信息插入、信息删除、求平均值、信息排序、求最值和退出系统;现在用Visio流程图展示出求平均值和查询功能模块,如图所示:四.采用的自定义的数据类型1.结构体类型struct staff{char name[10];//员工姓名为字符型int num;//员工号为整形int age;//员工年龄为整形int wage;//员工工资为整形}sta[10];(2)整型i,j,flag;(3)字符型数组name[10];(4)自定义函数void print()输出函数;void insert()插入函数;void delete()删除函数;void average()求平均值函数;void sort()排序函数;void zuizhi()求最值函数;void search()查询函数;五、(1)程序设计过程中、调试过程中所用的测试用例、程序运行结果1.测试用例:sun 111 27 7000函数的主界面如下图所示:(1)输入数字“1”,即可得到如下运行结果:(2)输入数字“2”,即可得到如下运行结果:(3)依次输入“sun 111 27 7000”,即可得到以下运行结果:(4)输入数字3,即可得到以下运行结果:(5)输入“sun”,即可得到以下运行结果:(6)输入数字“4”,即可得到以下运行结果:(7)输入数字“5”,即可得到以下运行结果:(8)输入数字“6”,即可得到以下运行结果:(9)输入数字“7”,即可得到以下运行结果:(10)输入“zhang”,即可得到以下运行结果:(11)输入数字“8”,即可得到以下运行结果:此步骤为空操作,再按“enter”即可退出程序。
2.在课程设计中遇到的问题和解决的方法,还没有解决的问题在课程设计中,我遇到了很多问题,比如输出信息的不规范、增删信息的未显示、排序失败和文件的保存有误等。
后来通过查阅课本和上网浏览相关问题的解决方法,最终成功地独自解决了这些问题。
六.通过课程设计的体会、收获在这次的课程设计中,我发现了自己在C语言学习中还存在着许多的不足之处,先前书本上学习的知识点没法完全投入到现在的实际操作运用中去。
在文件的设计与使用方面自己还有很多的欠缺,无法更好的将其运用到程序设计中去,还有很多的知识点都只限于书本知识的学习了。
通过此次的课程设计我学会了很多东西,不只是仅限于自己在C语言知识上的提升,更多的是在编程的过程中遇到好多自己无法解决的问题,自己变得更加主动去学习,积极去查看课本,自己上网查找相关知识点,然后不断思考。
虽然做好这次大作业花费了好长时间,但通过不断的努力,我还是成功地完成了此次的期末的课程大作业。
回顾起此次课程设计,至今我仍感慨颇多,从理论到实践,整整三天的废寝忘食,我学到很多很多的东西,不仅巩固了以前所学过的知识,而且学到了如何自己去克服困难。
通过这次课程设计,我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才是真正的知识,才能提高自己的实际动手能力和独立思考的能力。
在设计的过程遇到了各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计,把以前所学过的知识重新温故,巩固了所学的知识。
七.程序清单/*工资管理系统一个员工工资管理程序,有输入、输出、插入、删除、排序、查询、数据保存、能查询最高、最低工资、统计平均工资等功能。
*/#include<stdio.h>#include<string.h>struct staff{char name[10];int num;int age;int wage;}sta[10],t;void print();void insert();void delete();void average();void sort();void zuizhi();void search();int main(){int n;printf(" **************************欢迎进入工资管理系统**************************\n");do{printf(" 1:输出(print)\n");printf(" 2:插入(insert)\n");printf(" 3:删除(delete)\n");printf(" 4:求平均值(average)\n");printf(" 5:排序(sort)\n");printf(" 6:求最值(zuizhi)\n");printf(" 7:查询(search)\n");printf(" 0:退出(exit)\n");printf("请输入你要进行操作所对应的序号:\n");scanf("%d",&n);switch(n){case 1: print();break;case 2:insert();break;case 3:delete();break;case 4:average();break;case 5:sort();break;case 6:zuizhi();break;case 7:search();break;case 0:;break;default:printf("错误选择!请重选");break;}}while(n!=0);return 0;}void print(){int i;FILE * fp;if((fp=fopen("sta.dat","rb"))==NULL){printf("文件不能打开\n");return;}for(i=0;i<10;i++){fread(&sta[i],sizeof(struct staff),10,fp);printf("%-10s%4d%4d%8d\n",sta[i].name,sta[i].num,sta[i].age,sta[i].wage);}fclose(fp);}void insert(){struct staff s;FILE * fp;int i,t,n;printf("\n请输入姓名:");scanf("%s",);printf("请输入员工号:");scanf("%d",&s.num);printf("请输入年龄:");scanf("%d",&s.age);printf("请输入工资:");scanf("%d",&s.wage);if((fp=fopen("sta.dat","rb"))==NULL){printf("不能打开文件.\n");return;}printf("原来的数据是:\n");for(i=0;fread(&sta[i],sizeof(struct staff),1,fp)!=0;i++)printf("\n%-10s%4d%4d%8d",sta[i].name,sta[i].num,sta[i]. age,sta[i].wage);n=i;printf("\n现在的员工工资情况是:\n");for(t=0;sta[t].wage>s.age&&t<n;t++);fp=fopen("sta.dat","wb");for(i=0;i<t;i++){fwrite(&sta[i],sizeof(struct staff),1,fp);printf("\n%-10s%4d%4d%8d",sta[i].name,sta[i].num,sta[i].age,sta [i].wage);}fwrite(&s,sizeof(struct staff),1,fp);printf("\n%-10s%4d%4d%8d",,s.num,s.age,s.wage);for(i=t;i<n;i++){fwrite(&sta[i],sizeof(struct staff),1,fp);printf("%-10s%4d%4d%8d",sta[i].name,sta[i].num,sta[i].age,sta[i ].wage);}printf("\n");fclose(fp);fclose(fp);}void delete(){FILE * fp;int i,j,n,flag;char name[10];if((fp=fopen("sta.dat","rb"))==NULL){printf("文件不能打开.\n");return;}printf("现在的员工信息:\n");for(i=0;fread(&sta[i],sizeof(struct staff),1,fp)!=0;i++)printf("\n%-10s%4d%4d%8d",sta[i].name,sta[i].num,sta[i].age,sta [i].wage);fclose(fp);n=i;printf("\n请输入要删除员工的姓名:\n");scanf("%s",name);for(flag=1,i=0;flag&&i<n;i++){if(strcmp(name,sta[i].name)==0){for(j=i;j<n-1;j++){strcpy(sta[j].name,sta[j+1].name);sta[j].num=sta[j+1].num;sta[j].age=sta[j+1].age;sta[j].wage=sta[j+1].wage;}flag=0;}}if(!flag)n=n-1;elseprintf("不能找到");printf("\n删除后的文件内容:\n");if((fp=fopen("sta.dat","wb"))==NULL){printf("不能打开文件:\n");return;}for(i=0;i<n;i++)fwrite(&sta[i],sizeof(struct staff),1,fp);fclose(fp);fp=fopen("sta.dat","rb");for(i=0;fread(&sta[i],sizeof(struct staff),1,fp)!=0;i++)printf("\n%-10s%4d%4d%8d",sta[i].name,sta[i].num,sta[i].age,sta [i].wage);printf("\n");fclose(fp);}void average(){FILE * fp;int i;float sum=0.0,aver;if((fp=fopen("sta.dat","rb"))==NULL){printf("文件不能打开.\n");return;}for(i=0;fread(&sta[i],sizeof(struct staff),1,fp)!=0;i++)printf("\n%-10s%4d%4d%8d",sta[i].name,sta[i].num,sta[i].age,sta [i].wage);printf("\n");fclose(fp);for(i=0;i<10;i++)sum=sum+sta[i].wage;aver=sum/10;printf("平均工资是%10.2f\n",aver);}void sort(){FILE * fp;int i,j;if((fp=fopen("sta.dat","rb"))==NULL){printf("文件不能打开.\n");return;}printf("排序前的员工情况为:\n");for(i=0;fread(&sta[i],sizeof(struct staff),1,fp)!=0;i++)printf("\n%-10s%4d%4d%8d",sta[i].name,sta[i].num,sta[i].age,sta [i].wage);printf("\n");fclose(fp);for(i=0;i<10;i++){for(j=i+1;j<10;j++)if(sta[i].wage<sta[j].wage){t=sta[i];sta[i]=sta[j];sta[j]=t;}}printf("排序后的员工情况为:\n");fp=fopen("sta.dat","wb");for(i=0;i<10;i++){fwrite(&sta[i],sizeof(struct staff),1,fp);printf("\n%-10s%4d%4d%8d",sta[i].name,sta[i].num,sta[i].age,sta [i].wage);}printf("\n");fclose(fp);}void zuizhi(){FILE * fp;int i,j;if((fp=fopen("sta.dat","rb"))==NULL){printf("文件不能打开.\n");return;}for(i=0;fread(&sta[i],sizeof(struct staff),1,fp)!=0;i++)printf("\n%-10s%4d%4d%8d",sta[i].name,sta[i].num,sta[i].age,sta [i].wage);printf("\n");fclose(fp);for(j=0;j<9;j++)for(i=0;i<9-j;i++)if(sta[i].wage<sta[i+1].wage){t=sta[i];sta[i]=sta[i+1];sta[i+1]=t;}printf("排序后的员工信息是:\n");fp=fopen("sta.dat","wb");for(i=0;i<10;i++){fwrite(&sta[i],sizeof(struct staff),1,fp);printf("\n%-10s%4d%4d%8d",sta[i].name,sta[i].num,sta[i].age,sta [i].wage);}printf("\n工资最低的员工的信息是%-10s%4d%4d%8d",sta[9].name,sta[9].num,sta[9].age,sta[9].wage);printf("\n工资最高的员工的信息是%-10s%4d%4d%8d\n\n",sta[0].name,sta[0].num,sta[0].age,sta[0].wage);fclose(fp);}void search(){FILE * fp;int i,flag=1;char name[10];if((fp=fopen("sta.dat","rb"))==NULL){printf("文件不能打开.\n");return;}for(i=0;fread(&sta[i],sizeof(struct staff),1,fp)!=0;i++)printf("\n%-10s%4d%4d%8d",sta[i].name,sta[i].num,sta[i].age,sta[i].wage);printf("\n");fclose(fp);printf("请输入要查询的员工的姓名:");scanf("%s",&name);for(i=0,flag=1;i<10&&flag!=0;i++){if(strcmp(name,sta[i].name)==0){printf("该员工的信息为:\n%-10s%4d%4d%8d\n",sta[i].name,sta[i].num,sta[i].age,sta[i].wage);flag=0;}elseprintf("无此员工.\n");}}。