程序设计训练报告

合集下载

程序设计实训实验报告(热门20篇)

程序设计实训实验报告(热门20篇)

程序设计实训实验报告(热门20篇)c语言是在国内外广泛使用的一种计算机语言。

其语言功能丰富、表达能力强、使用灵活方便、既具有高级语言的优点,又具有低级语言的许多特点,适合编写系统软件。

其功能强大,不仅用在计算机上广泛用在电子,机械等方面上,而且,所有的windows,unix,linux,mac,os/2,无一例外,哪一个不是c 语言写的?很多新型的语言如,c++,java,c,j,perl...都是衍生自c语言。

掌握了c语言,可以说你就掌握了很多门语言。

学习c程序这门课一年了,这是我们学的第一门专业课,在大学里c语言不但是计算机专业的必修课程而且也是非计算机专业学习计算机基础的一门必修课程。

所以作为我这个计算机专业的学生来说当然十分重要,老师在第一节课说过,c语言是计算机的基础,大多数软件都需要用c语言来编写,通过一个年的学习,使我由初步掌握简单的应试知识到完成高难度的深入编程,如我们在编写一个较大的程序时应该把它分开成几个小程序来看,这样会容易得多。

同时,我觉得c语言应该是操作和理论相结合的课程,在不断地编写中去思考,两者是不可分割的。

在学习一年c语言的过程中我也在慢慢探索怎样才能学好c语言,并总结了一点经验:要了解c语言就要从语法规为基础来学习起,首先要是要了解它的结构,比如变量,首先要了解变量的定义方式(格式),其意义是什么(定义变量有什么用);其次就是要我要怎么去运用它(我要用什么型式去应用它)。

在c语言的命令行中所有的语句都是有它自己的一定格式和形式出现在我们面前,所以我们在学习某种语句或命令时你首先要了解的就是它的规则是什么、有什么用、怎么实现等。

这些都是语法基础也是c语言的基础如果把它们都了解很好了,那么你编起程序来就很得心应手了。

比如说ifelse和switchcase这两种条件语句都是用来判断执行功能的,那我要什么时侯用if什么时侯用switch呢?如果你很好地了解它们的结构和作用的话那么就知道:若它的条件分支是多个而且条件的值是整数或是一个字符值时就会选switch而不会选if。

程序设计强化训练实践报告

程序设计强化训练实践报告

程序设计强化训练实践报告1. 引言程序设计作为计算机科学的基础课程之一,在培养学生的计算机思维能力和问题解决能力方面起着重要作用。

为了进一步加强自己的程序设计能力,我参加了程序设计强化训练。

该训练通过深入的理论学习与实践编程相结合,提高了我的程序设计水平。

本报告将详细介绍我在训练中所学到的内容和取得的成果。

2. 训练内容2.1 理论学习在训练开始之前,我们进行了一段时间的理论学习。

学习内容包括数据结构、算法设计与分析、程序设计范式等方面的知识。

通过学习这些理论知识,我对程序设计的基本原理和方法有了更加深入的理解。

2.2 编程实践在理论学习之后,我们开始了编程实践环节。

每周我们都会被分配一些编程题目,需要在规定的时间内完成并提交代码。

这些题目涵盖了各个难度级别,从简单的基础题目到复杂的综合题目。

通过反复的编程实践,我不断巩固了所学的理论知识,提高了自己的编程能力。

这些编程题目要求我们独立完成,通过自己的努力进行问题分析和解决。

在解决问题的过程中,我运用了所学的数据结构和算法,采用了适合的程序设计范式。

例如,在解决图相关的问题时,我运用了图的遍历和最短路径算法;在解决字符串处理问题时,我运用了动态规划和回溯算法等。

2.3 实践项目为了更好地将所学知识应用于实践,训练还设置了实践项目,让我们通过开发一个小型应用程序来实践所学的程序设计技巧。

我选择了开发一个简单的任务管理应用。

在这个项目中,我需要设计数据库模型、实现用户界面和交互逻辑,并加入一些高级功能如任务提醒和数据统计等。

通过完成这个实践项目,我深入了解了软件开发的全过程,并提高了自己的软件设计和开发能力。

3. 取得成果3.1 知识储备通过参加程序设计强化训练,我系统地学习了程序设计相关的知识。

我深入理解了数据结构和算法的原理,熟练掌握了常用的数据结构和算法实现。

我还学会了如何进行程序设计范式的选择与应用,提高了编程的效率和质量。

3.2 编程能力通过不断的编程实践,我的编程能力得到了显著提高。

程序设计基础的实训报告

程序设计基础的实训报告

一、实训目的本次实训旨在通过实际编写程序,巩固和加深对程序设计基础知识的理解,提高编程能力和解决问题的能力。

通过实训,使学生能够掌握程序设计的基本流程,熟悉常用编程语言和开发工具,具备独立编写程序、调试和优化程序的能力。

二、实训内容1. 编程语言:C语言2. 开发工具:Visual Studio3. 实训任务:(1)编写一个计算两个整数相加的程序;(2)编写一个计算两个整数相减的程序;(3)编写一个计算两个整数相乘的程序;(4)编写一个计算两个整数相除的程序,要求考虑除数为0的情况;(5)编写一个计算阶乘的程序;(6)编写一个冒泡排序的程序,对一组整数进行排序;(7)编写一个插入排序的程序,对一组整数进行排序;(8)编写一个选择排序的程序,对一组整数进行排序。

三、实训过程1. 编写计算两个整数相加的程序```c#include <stdio.h>int main() {int a, b, sum;printf("请输入两个整数:");scanf("%d %d", &a, &b);sum = a + b;printf("两数之和为:%d\n", sum); return 0;}```2. 编写计算两个整数相减的程序```c#include <stdio.h>int main() {int a, b, sub;printf("请输入两个整数:");scanf("%d %d", &a, &b);sub = a - b;printf("两数之差为:%d\n", sub); return 0;}```3. 编写计算两个整数相乘的程序```c#include <stdio.h>int main() {int a, b, mul;printf("请输入两个整数:");scanf("%d %d", &a, &b);mul = a b;printf("两数之积为:%d\n", mul);return 0;}```4. 编写计算两个整数相除的程序,考虑除数为0的情况```c#include <stdio.h>int main() {int a, b, div;printf("请输入两个整数:");scanf("%d %d", &a, &b);if (b == 0) {printf("除数不能为0\n");} else {div = a / b;printf("两数之商为:%d\n", div);}return 0;}```5. 编写计算阶乘的程序```c#include <stdio.h>int factorial(int n) {if (n == 0) {return 1;} else {return n factorial(n - 1);}}int main() {int n;printf("请输入一个整数:");scanf("%d", &n);printf("%d的阶乘为:%d\n", n, factorial(n)); return 0;}```6. 编写冒泡排序的程序```c#include <stdio.h>void bubbleSort(int arr[], int n) {int i, j, temp;for (i = 0; i < n - 1; i++) {for (j = 0; j < n - i - 1; j++) { if (arr[j] > arr[j + 1]) {temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}}int main() {int arr[] = {5, 3, 8, 6, 2};int n = sizeof(arr) / sizeof(arr[0]); int i;bubbleSort(arr, n);printf("排序后的数组:");for (i = 0; i < n; i++) {printf("%d ", arr[i]);}printf("\n");return 0;}```7. 编写插入排序的程序```c#include <stdio.h>void insertionSort(int arr[], int n) {int i, j, key;for (i = 1; i < n; i++) {key = arr[i];j = i - 1;while (j >= 0 && arr[j] > key) { arr[j + 1] = arr[j];j--;}arr[j + 1] = key;}}int main() {int arr[] = {5, 3, 8, 6, 2};int n = sizeof(arr) / sizeof(arr[0]); int i;insertionSort(arr, n);printf("排序后的数组:");for (i = 0; i < n; i++) {printf("%d ", arr[i]);}printf("\n");return 0;}```8. 编写选择排序的程序```c#include <stdio.h>void selectionSort(int arr[], int n) { int i, j, min_idx, temp;for (i = 0; i < n - 1; i++) {min_idx = i;for (j = i + 1; j < n; j++) {if (arr[j] < arr[min_idx]) { min_idx = j;}}temp = arr[min_idx];arr[min_idx] = arr[i];arr[i] = temp;}}int main() {int arr[] = {5, 3, 8, 6, 2};int n = sizeof(arr) / sizeof(arr[0]);int i;selectionSort(arr, n);printf("排序后的数组:");for (i = 0; i < n; i++) {printf("%d ", arr[i]);}printf("\n");return 0;}```四、实训心得通过本次实训,我深刻体会到了程序设计的重要性。

C语言程序设计实训报告

C语言程序设计实训报告

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

语言程序设计基础实训报告

语言程序设计基础实训报告

一、实训背景随着计算机技术的飞速发展,编程已成为现代科技领域的重要技能。

为了提高自身编程能力,培养良好的编程思维,我参加了本次语言程序设计基础实训。

本次实训主要学习C语言的基本语法、数据类型、控制结构、函数等知识,并通过实际编程练习,提高编程实践能力。

二、实训目的1. 掌握C语言的基本语法和编程规范;2. 熟悉C语言的数据类型、控制结构、函数等基本概念;3. 培养良好的编程习惯,提高编程效率;4. 通过实际编程练习,提高解决实际问题的能力。

三、实训内容1. C语言基本语法:变量定义、数据类型、运算符、表达式等;2. 控制结构:顺序结构、选择结构、循环结构;3. 函数:函数定义、函数调用、递归等;4. 数组、指针、字符串等高级特性;5. 文件操作、动态内存分配等。

四、实训过程1. 理论学习:通过教材、网络资源等途径,学习C语言基础知识,掌握基本语法、数据类型、控制结构、函数等概念;2. 编程练习:结合教材和实际需求,编写简单的C语言程序,如计算器、冒泡排序、学生信息管理系统等;3. 代码调试:对编写的程序进行调试,找出并解决程序中的错误;4. 交流讨论:与同学和老师交流编程心得,共同解决问题。

五、实训成果1. 掌握了C语言的基本语法和编程规范;2. 熟悉了C语言的数据类型、控制结构、函数等基本概念;3. 培养了良好的编程习惯,提高了编程效率;4. 通过实际编程练习,提高了解决实际问题的能力。

六、实训心得1. 编程需要严谨的逻辑思维和良好的编程习惯,从编写简单程序开始,逐步提高编程能力;2. 编程过程中遇到问题,要学会查阅资料、请教他人,不断积累经验;3. 编程是一个反复练习的过程,只有不断实践,才能提高编程水平;4. 编程不仅仅是编写代码,更是一个解决问题的过程,要学会运用所学知识解决实际问题。

七、总结通过本次语言程序设计基础实训,我对C语言有了更深入的了解,编程能力得到了一定程度的提高。

在今后的学习中,我将继续努力,不断提高自己的编程水平,为将来的学习和工作打下坚实的基础。

程序设计综合设计实训报告

程序设计综合设计实训报告

一、实训目的本次程序设计综合设计实训旨在通过实际项目开发,巩固和深化程序设计相关理论知识,提高学生的编程能力、团队协作能力和问题解决能力。

通过实训,使学生能够熟练掌握程序设计的基本方法、技巧和工具,为今后从事软件开发工作打下坚实基础。

二、实训内容本次实训项目为“学生信息管理系统”,主要包括以下功能:1. 学生信息录入:包括姓名、性别、年龄、班级、学号、联系方式等基本信息。

2. 学生信息查询:根据姓名、学号、班级等条件查询学生信息。

3. 学生信息修改:对已录入的学生信息进行修改。

4. 学生信息删除:删除不需要的学生信息。

5. 数据备份与恢复:对系统数据进行备份和恢复,确保数据安全。

6. 用户权限管理:设置不同用户的登录权限,包括管理员、教师、学生等。

三、实训过程1. 项目需求分析在实训开始前,我们对项目进行了详细的需求分析,明确了项目目标、功能模块、性能指标等。

通过与指导老师、团队成员的讨论,明确了以下需求:(1)系统应具备良好的用户界面,操作简单易懂。

(2)系统应具备数据备份与恢复功能,确保数据安全。

(3)系统应具备用户权限管理功能,满足不同用户的需求。

2. 系统设计根据需求分析,我们制定了以下系统设计方案:(1)采用B/S架构,前端使用HTML、CSS、JavaScript等技术,后端使用Java语言和MySQL数据库。

(2)使用MVC设计模式,将系统分为模型(Model)、视图(View)和控制器(Controller)三个部分。

(3)使用Spring框架进行项目开发,简化开发过程。

3. 系统开发在系统开发过程中,我们遵循以下步骤:(1)前端开发:完成页面布局、样式设计、交互逻辑等。

(2)后端开发:完成业务逻辑处理、数据库操作、接口设计等。

(3)测试与调试:对系统进行功能测试、性能测试、安全测试等,确保系统稳定可靠。

4. 团队协作在实训过程中,我们遵循以下团队协作原则:(1)明确分工:根据团队成员的特长,合理分配任务。

程序设计技能实训报告总结

程序设计技能实训报告总结

一、前言随着计算机技术的不断发展,程序设计已成为现代社会不可或缺的一项技能。

为了提高我的程序设计能力,我在本学期参加了程序设计技能实训课程。

通过这段时间的学习和实践,我对程序设计有了更深入的理解,以下是我对本次实训的总结。

二、实训目的与要求本次实训的目的是通过实际操作,使我掌握程序设计的基本原理、方法和技巧,提高我的编程能力。

实训要求如下:1. 熟练掌握编程语言(如C、Java、Python等)的基本语法和编程规范;2. 能够独立完成小型程序设计项目,具备一定的调试和优化能力;3. 了解软件工程的基本概念,掌握需求分析、设计、编码、测试等环节;4. 培养良好的编程习惯,提高代码的可读性和可维护性。

三、实训内容与过程本次实训主要分为以下几个阶段:1. 理论学习:了解程序设计的基本概念、编程语言、开发环境等,掌握程序设计的基本原则和技巧。

2. 编程实践:根据实训要求,独立完成以下项目:(1)使用C语言编写一个计算器程序,实现加、减、乘、除等基本运算功能;(2)使用Java语言编写一个学生管理系统,实现学生信息的录入、查询、修改和删除等功能;(3)使用Python语言编写一个网络爬虫程序,抓取指定网站的信息并存储到数据库中。

3. 项目优化:对已完成的项目进行优化,提高程序的性能和稳定性。

4. 交流与分享:与同学们交流学习心得,分享编程经验和技巧。

四、实训成果与收获1. 编程能力得到显著提高:通过本次实训,我熟练掌握了C、Java、Python等编程语言的基本语法和编程规范,提高了编程能力。

2. 项目实践能力得到锻炼:在完成项目过程中,我学会了如何分析需求、设计算法、编写代码和调试程序,提高了项目实践能力。

3. 团队协作能力得到提升:在实训过程中,我与同学们相互交流、互相帮助,共同完成项目,提高了团队协作能力。

4. 编程思维得到拓展:通过学习程序设计,我学会了如何从实际问题出发,运用编程思维解决问题,拓展了我的思维。

c++程序设计实训报告

c++程序设计实训报告

c++程序设计实训报告
一、实训背景
C++是一种高级编程语言,具有高效、强大、灵活等特点。

本次实训旨在通过C++编程实践,提高学生代码实现能力,培养学生对于算法的实现能力和对于计算机科学的深入理解。

二、实训内容
本次实训共分为三个部分,分别是基础算法、数据结构和面向对象程序设计。

1.基础算法
在基础算法部分,学生需要熟悉基本的算法思想,比如贪心、分治和动态规划等,能够熟练地使用C++语言实现这些算法。

2.数据结构
在数据结构部分,学生需要掌握常见的数据结构,如链表、栈、队列、二叉树等,能够熟练地使用C++语言实现这些数据结构。

3.面向对象程序设计
在面向对象程序设计部分,学生需要掌握C++中的面向对象编程思想,如类、对象、继承、多态等,能够熟练地设计和实现具有复杂功能的程序。

三、实训效果
通过本次实训,学生在代码实现能力、算法实现能力和对于计算机科学的深入理解等方面得到了很好的提高。

同时,本次实训也加深了学生对于C++语言的认识和对于软件开发的认识,为学生未来的学习和工作打下了坚实的基础。

四、实训总结
本次实训不仅是一次代码实现的训练,也是一次对于计算机科学的深入理解。

通过实践,学生更深入地了解了C++语言的特点和优势,对于编程思想和算法实现能力也得到了很好的提高。

同时,本次实训也加深了学生对于软件开发的认识和理解,为学生未来的学习和工作打下了坚实的基础。

在未来的学习和工作中,学生将更加灵活地运用C++语言和算法实现能力,为自己的未来发展打下坚实的基础。

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

程序设计训练报告目录一、设计题目二、开发平台三、需求分析四、信息描述五、总体分析(一)、定义结构体体变量(二)、功能模块(三)、流程图六、运行界面设计七、设计心得八、附录源程序代码一、设计题目:职员管理系统二、开发平台开发平台:vc++6.0 企业版,使用系统,winXP以上三、需求分析1、该程序可用于对企业员工工资情况基本信息的保存、查询等操作,以实现对企业员工工资的管理。

2、其中更新功能包括:添加工资信息、删除工资信息、修改工资信息、可根据需要添加一个或多个员工工资信息,也可对个别员工信息进行适当的删除或修改。

以便随时更新员工工资信息。

3、程序中设计的查询功能可根据需要从若干数据中查询某个员工信息,并且可根据两种不同的方法查询:按工作证号查询和按查询。

以满足不同的需要。

四、信息描述职工信息包括职工号、、基本工资、奖金、扣款、税款,实发工资。

五、总体方案(一)定义结构体体变量typedef struct employee{char num[10]; //保存职工编号char name[15]; //保存职工float jbgz; //保存职工基本工资float jj; //保存职工奖金float kk; //保存职工扣款float yfgz; //保存职工应发工资double sk; //保存职工税款double sfgz; //保存职工实发工资}ZGGZ;(二)功能模块菜单模块:显示职工管理系统的主菜单,供用户选择所需的功能,通过自己定义的void menu()函数来实现。

(1)输入模块按照编号,,基本工资,奖金,扣款的顺序输入信息,税金和实发工资根据输入的信息进行计算得到,这些信息被录入到文件中。

通过自己定义的void input()函数来实现。

(2)删除模块按照用户的意愿删除指定的信息。

通过自己定义的void del()函数来实现。

(3)查询模块实现按照工资卡号和的查询,采用基本的查找方法即可。

通过自己定义的void sear()函数来实现。

(4)修改模块按照用户的意愿修改已输入的信息。

通过自己定义的void modi ()函数来实现。

(5)插入模块在用户指定的位置插入信息。

通过自己定义的void insert()函数来实现。

(6)显示模块在窗口处显示输入的信息。

通过自己定义的void display()函数来实现。

(7)保存模块保存输入的信息(8)退出模块(三)、流程图(1)主函数提供输入、处理和输出部分的函数调用,各功能模块采用菜单方式选择。

录入职工基本工资信息删除职工基本工资信息查询职工基本工资信息修改职工基本工资信息插入职工基本工资信息七.使用说明1.初始界面2.输入模块3.删除模块4.查询模块5.修改模块6.插入模块7.显示模块8.保存模块9.退出模块八、设计心得通过这几天的努力,职工工资管理系统的设计已基本完成。

在本次课程设计中,我充分领略了C语言功能的强大,包括函数、数组、指针、结构体、文件等。

职工工资管理系统是一个很实用并且使用广泛的操作系统。

此系统可以减少很多工作量,做到设计合理,便于使用,易于操作;界面友好,容错性高,可在很短的时间,查找出所需的职工工资资料,提高工作效率。

该系统具有添加、显示、查询、修改、删除等基本功能,以方便对工资的各项管理操作。

每一条记录包括一个职工的工号、、工资等信息,系统的各个功能模块都用函数的形式来实现,可以将职工信息保存在文件中,并从文件中读取出来。

总的来说,通过这次程序设计,使我加深了对C语言的认识,进一步熟悉了对C语言功能的灵活运用,而且加深了我对程序的理解和编写能力,通过文献资料和网络资料的帮助,使我对C语言程序设计这一基础学科又一次加深了认识,也意识到了其具有的强大功能和发展前景。

这会对以后的学习有所帮助。

九、附录源程序代码:#include <stdio.h>#include<string.h>typedef struct employee{char num[10]; //保存职工编号char name[15]; //保存职工float jbgz; //保存职工基本工资float jj; //保存职工奖金float kk; //保存职工扣款float yfgz; //保存职工应发工资double sk; //保存职工税款double sfgz; //保存职工实发工资}ZGGZ;void menu(){printf(" Empoyee System\n");printf(" *****************************************\n");printf(" *1 添加record *2 删除record\n");printf(" *3 查询record *4 修改record\n");printf(" *5 插入record *6 显示record\n");printf(" *7 保存record *0 退出record\n");printf("*****************************************\n");printf("Please enter you choice(0-7)\n");}int input(ZGGZ a[],int k){int j,x;char str[10];j=x=0;while(1){printf("----------------------------\n");printf("请输入职工的编号:(按0返回主菜单)");scanf("%s",str);strcpy(a[k].num,str);for(j=0;j<k;j++){if(strcmp(a[j].num,str)==0){printf("已经有工号为%s的员工信息!请重新输入员工号。

\n",str);printf("请输入职工的编号:");scanf("%s",str);strcpy(a[k].num,str);}}if(strcmp(a[k].num,"0")==0)break;printf("请输入职工的:");scanf("%s",a[k].name);printf("请输入职工的基本工资:");scanf("%f",&a[k].jbgz);printf("请输入职工的奖金:");scanf("%f",&a[k].jj);printf("请输入职工的扣款:");scanf("%f",&a[k].kk);a[k].yfgz=a[k].jbgz+a[k].jj-a[k].kk;a[k].sk=a[k].yfgz*(0.05);a[k].sfgz=a[k].yfgz*(0.95);k++;}return k;}int del(ZGGZ a[],int y){int i=0;int x=0;char str[15];printf("请输入你要删除的编号或:");scanf("%s",str);printf("--------删除成功--------\n");for(i=0;i<y;i++)if(!strcmp(str,a[i].num)||!strcmp(str,a[i].name)){while(i<y){strcpy(a[i].num,a[i+1].num);strcpy(a[i].name,a[i+1].name);a[i].jbgz=a[i+1].jbgz;a[i].jj=a[i+1].jj;a[i].kk=a[i+1].kk;a[i].sfgz=a[i+1].sfgz;a[i].sk=a[i+1].sk;a[i].yfgz=a[i+1].yfgz;i++;}x++;}if(x==0){printf("输入的编号或不存在,请重新输入:\n");}return y-x;}void sear(ZGGZ a[],int y){int i;int x=0;char str[15];printf("请输入你要查找的编号或:");scanf("%s",str);for(i=0;i<y;i++)if(!strcmp(str,a[i].num)||!strcmp(str,a[i].name)) {printf("员工编号为%s\n",a[i].num);printf("员工为%s\n",a[i].name);printf("基本工资:%f\n",a[i].jbgz);printf("奖金:%f\n",a[i].jj);printf("扣款:%f\n",a[i].kk);printf("应发工资:%f\n",a[i].yfgz);printf("税款:%f\n",a[i].sk);printf("实发工资:%f\n",a[i].sfgz);x++;}if(x==0){printf("未找到该记录\n");return ;}}void mod(ZGGZ a[],int y){int i;int x=0;char str[15];printf("请输入你要修改的编号:");scanf("%s",str);for(i=0;i<y;i++)if(!strcmp(str,a[i].num)||!strcmp(str,a[i].name)) {printf("请输入修改后职工的:");scanf("%s",a[i].name);printf("请输入修改后职工的基本工资:");scanf("%f",&a[i].jbgz);printf("请输入修改后职工的奖金:");scanf("%f",&a[i].jj);printf("请输入修改后职工的扣款:");scanf("%f",&a[i].kk);printf("-------------修改成功------------\n");a[i].yfgz=a[i].jbgz+a[i].jj-a[i].kk;a[i].sk=a[i].yfgz*(0.05);a[i].sfgz=a[i].yfgz*(0.95);x++;}if(x==0){printf("未找到要修改的编号\n");}}int insert(ZGGZ a[],int y){int i;int x=0;char str[15];printf("请输入你要插入的编号:");scanf("%s",str);printf("请输入一条新的记录信息:\n");for(i=0;i<y;i++)if(strcmp(str,a[i].num)==0){x=i;for(i=y;i>x+1;i--){a[i].jbgz=a[i-1].jbgz;a[i].jj=a[i-1].jj;a[i].kk=a[i-1].kk;a[i].sfgz=a[i-1].sfgz;a[i].sk=a[i-1].sk;a[i].yfgz=a[i-1].yfgz;strcpy(a[i].name,a[i-1].name);strcpy(a[i].num,a[i-1].num);}}x++;printf("请输入职工的编号:");scanf("%s",a[x].num);printf("请输入职工的:");scanf("%s",a[x].name);printf("请输入职工的基本工资:");scanf("%f",&a[x].jbgz);printf("请输入职工的奖金:");scanf("%f",&a[x].jj);printf("请输入职工的扣款:");scanf("%f",&a[x].kk);a[x].yfgz=a[x].jbgz+a[x].jj-a[x].kk;a[x].sk=a[x].yfgz*(0.05);a[x].sfgz=a[x].yfgz*(0.95);return y+1;}void save(ZGGZ a[],int n){FILE *fp;int i;if((fp=fopen("sj.txt","wb"))==NULL){printf("cannot open file\n");return;}for(i=0;i<n;i++)if(fwrite(&a[i],sizeof(struct employee),1,fp)!=1) printf("file write error\n");fclose(fp);void display(ZGGZ a[],int n){int i=0;if(n==0){printf("Files are empty\n");return;}do{printf("----------------------------\n");printf("员工编号为%s\n",a[i].num);printf("员工为%s\n",a[i].name);printf("基本工资:%f\n",a[i].jbgz);printf("奖金:%f\n",a[i].jj);printf("扣款:%f\n",a[i].kk);printf("应发工资:%f\n",a[i].yfgz);printf("税款:%f\n",a[i].sk);printf("实发工资:%f\n",a[i].sfgz);i++;}while(i<n);void main(){int selete,c=0;int i=0;int z=0;char q,p,x,s;ZGGZ b[100];FILE *fp;if((fp=fopen("sj.txt","rb"))==NULL)printf("Not Found!\n");else{do{fread(&b[i],sizeof(struct employee),1,fp);i++;}while(!feof(fp));fclose(fp);c=i-1;}while(1){menu();scanf("%d",&selete);if(selete==0){printf("Thank you for your use ( ^_^ ) Bye\n");break;}switch(selete){case 1:c=input(b,c);break;case 2:{display(b,c);do{c=del(b,c);printf("是否继续删除,是按y,否则请按任意值\n");getchar();scanf("%c",&p);}while(p=='Y'||p=='y');break;}case 3:{do{sear(b,c);printf("是否继续查找,是按y,否则请按任意值\n");getchar();scanf("%c",&x);}while(x=='Y'||x=='y');break;}case 4:{display(b,c);do{mod(b,c);printf("是否继续修改,是按y,否则请按任意值\n");getchar();scanf("%c",&q);}while(q=='Y'||q=='y');break;}case 5:{do{c=insert(b,c);printf("是否继续插入,是按y,否则请按任意值\n");getchar();scanf("%c",&s);}while(s=='Y'||s=='y');break;}case 6:display (b,c);break;case 7: save(b,c);break;default:printf("Please try again\n");}}}。

相关文档
最新文档