C语言课程设计_第1页
C语言课程设计_第2页
C语言课程设计_第3页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、成绩评定表学生姓名班级学号专业通信工程课程设计题目C语言课程设计评组长签字:语成绩日期2013年月日课程设计任务书学院信息科学与工程学院专业通信工程学生姓名班级学号课程设计题目C语言课程设计实践教学要求与任务:利用C语言编写卜题的代码。题目名称:查找分数与删除元素、工资统计程序的设计内容及要求:1. 编程,先从键盘输入一组学生成绩到数组中,然后输入某一个分数段,查找输出该分数段内的所有成绩。2. 编与函数fun (int xx ,int n , int y ),其中n代表数组兀素的个数,y中内容是要删除的兀素值。 函数的功能是数组 xx中所有值为y的元素。数组中的值和 y的值由主函数通过键盘输

2、入。3. 工资统计程序设计设计结构体数组,结构中包含职工数据为:编号、姓名、部门、应付工资、保险、税金、 实付工资。其中实付工资由公式计算得到:实付工资=应付工资-保险-税金设计各个函数,分别实现以下功能:(1) 输入职工数据,其中“实付工资”通过计算得到。(2) 显示全体职工数据。(3) 输入某部门值,显示该部门职工的数据、工资总额、平均工资。设计菜单,通过选择菜单 调用以上各函数;系统启动时数据可由文件导入,录入新的数据或修改数据后,可将数据重新写 入文件。工作计划与进度安排:第18-19周:第18周.C语言基础编程练习第18周.算法设计及编写程序代码第19周.编写程序代码及程序调试第19

3、周.程序验收及答辩指导教师:2013年 月日专业负责人:2013年 月日学院教学副院长:2013年 月日一、 题目要求3.二、 算法设计4.三、编程实现10四、结果分析25五、参考文献28'、题目要求题目名称:查找分数与删除元素、工资统计程序的设计内容:1、编程,先从键盘输入一组学生成绩到数组中,然后输入某一个分数段,查找输出该分数段内的所有成绩。2、 编写函数fun (int xx ,int n , int y),其中n代表数组元素的个数,y中内容是要删除的元素值。函数的功能是数组xx中所有值为y的元素。数组中的值和y的值由主函数通过键盘输入3、工资统计程序设计设计结构体数组,结构中

4、包含职工数据为:编号、姓名、部门、应付工资、保险、税金、实付工资。其中实付工资由公式计算得到:实付工资二应付工资-保险-税金。设计各个函数,分别实现以下功能:(1)输入职工数据,其中“实付工资”通过计算得到。(2)显示全体职工数据。(3)输入某部门值,显示该部门职工的数据、工资总额、平均工资。设计菜单,通过选择菜单调用以上各函数;系统启动时数据可由 文件导入,录入新的数据或修改数据后,可将数据重新写入文件。 要求:利用C语言编写上述程序,开发环境可采用Turbo C 2.0或VisualC+ 6.0 等。】、算法设计1、编程,先从键盘输入一组学生成绩到数组中,然后输入某一个分数段,查找输出该分

5、数段内的所有成绩。2、编写函数fun (int xx ,int n , int y ),其中n代表数组元素的个数,y中内容是要删除的元 素值。函数的功能是数组 xx中所有值为y的元素。数组中的值和 y的值由主函数通过键盘 输入。值1i=0是输出,换行开始否否是是2输出请输入增加职工的个数load (); ¥engjia ()shuru(); shuchu() caida n();注:函数说明只结束输入一个数值给number输出“录入职工调用函数1,新增职工信息调用函数'调用函数实付工资i+调 实现导定义变量 a,flag=0,number=0否void shur voidsh

6、ucX 输 void save平均工资。设计菜单,通过选录入新的数据或修改数据后,可将结构中包含职工数据为 其中实付工资由公式计算得到nn, int y 3 个变量,xx是指定的 元素值。:请输入要删(1)(2)(3)择菜单调用以上各函数 数据重新写入文件。是();*II用来输hu();用来输了出“没有这个选项”丿(int n);II 将注:fun (xx ,intndt y )函数功能是对数组中含有 y的7元素 数组,n表示数组中的元素个数, 3、工资统计程序设计设计结构体数组 金、实付工资。 设计各个函数,分别实现以下功能输入职工数据,其中“实付工资”通过计算得到。 显示全体职工数据。输入

7、某部门值,显示该部门职工的数据、工资总额 系统启动时数据可由文件导入,编号、姓名、部门、应付工资、保险、税=应付工资-保险-税金u素删除。输其一含有据xx ,i .y表示要删除的数组中的开始'定义一个数组xxN变量i,j,y输入N个数据给数组xx是输入一个数据i<N/ / 输出调用函数数组n(xx,输出入N,y ), j= fun (xx,N,y )除/要删输出“删除后的数组为flag=0?II用来输f入增加职工的信息件中信息保存到文件中void zen cjia(i nt n);增加职工的信息void xiug, 1职工的信息flag=1、void chaXlin();/按照部

8、门查询职工信息void caidan(); load();/基本的菜单,按提示操作/将职工信息从文件中导出三、编程实现程序的具体 C 语言代码如下:第 1 题:/* 编程人:楚天辞 完成时间 2012年 7月 5日联系方式: */#include<stdio.h>main()float m,n, a6;int i, k;printf(" 请输入一个数组: n");for (i=0 ;i<6; i+)scanf("%f",&ai);printf(" 请按由小到大的顺序输入分数段 n"); scanf("

9、;%f",&n);scanf("%f",&m);printf(" 以下成绩属于该分数段 n");for (k=0 ;k<6; k+)if(n<=ak&&ak<=m)printf("% 9.2fn",ak);printf("n");第 2 题:#include<stdio.h>#define N 10int fun(int xx,int n,int y)int i,j=0,k;for(i=0;i<n-j;i+) / j 表示要删除的数值个数

10、, 而 n-j 表示数组有效的数值个数 if(xxi=y) for(k=i;k<n-1;k+) / 从删除位置后面的第一个元素值开始向前移动 xxk=xxk+1;j+; return j; main()int i,j,y,xxN;printf(" 请输入 %d 个数组的元素值 n",N); for(i=0;i<N;i+)scanf("%d",&xxi);printf(" 请输入要删除的元素值 n");scanf("%d",&y); j=fun(xx,N,y);printf("

11、删除后的数组为: n");for(i=0;i<N-j;i+)printf("%5d",xxi);printf("n");第 3 题:#include<stdio.h>#include<string.h>struct zijinint bianhao;char xingming20;char bumen100;float yfgz;float baoxian;float shuijin;float sfgz; zhigong100; / 定义结构体数组 zhigongvoid shuru();/ 用来输入增加职工的信

12、息void shuchu(); / 用来输出文件中所有职工的信息void save(int n); / 将职工信息保存到文件中,实现导入void zengjia(int n); /增加职工的信息void xiugai(); / 修改职工的信息void chaxun(); /按照部门查询职工信息void caidan(); /基本的菜单,按提示操作load(); /将职工信息从文件中导出int sumNum; /商品总个数 main()int a,flag=0,number=0;doprintf(" 录入职工信息请按 1,新增职工信息请按 2n"); scanf("

13、%d",&a);if(a=1)shuru(); / 输入数据 shuchu();caidan();else if(a=2)sumNum=load();/将文件中原有的职工信息个数传给 sumNumprintf(" 请输入增加职工的个数 n"); scanf("%d",&number);zengjia(number);elseprintf(" 没有这个选项 n"); flag=1; while(flag);void caidan()int a,flag=0,number=0;doprintf(" 增加

14、职工信息请按 1,修改职工信息请按 2,查询职工 信息请按 3,退出请按 4n");scanf("%d",&a);if(a=1)printf(" 请输入增加职工的个数 n"); scanf("%d",&number); zengjia(number);continue;else if(a=2) xiugai();else if(a=3) chaxun();else if(a=4) save(sumNum); break; elseprintf(" 没有这个选项 n"); flag=1; w

15、hile(flag);void shuru()int i,n;printf(" 输入多少个职工信息 n"); scanf("%d",&n);for(i=0;i<n;i+)printf("请输入第%d个职工编号n",i+1); scanf("%d",&zhigongi.bianhao);printf("请输入第%d个职工姓名n",i+1); scanf("%s",zhigongi.xingming);printf("请输入第%d个职工部门n&qu

16、ot;,i+1); scanf("%s",zhigongi.bumen);printf("请输入第%d个职工应付工资n",i+1); scanf("%f",&zhigongi.yfgz);printf("请输入第%d个职工保险n",i+1); scanf("%f",&zhigongi.baoxian);printf("请输入第%d个职工税金n",i+1); scanf("%f",&zhigongi.shuijin);zhigongi

17、.sfgz =zhigongi.yfgz - zhigongi.baoxian - zhigongi.shuijin;sumNum=n;save(sumNum);void shuchu()int i;printf(" 编号 姓名 部门 应付工资 保险 税金 实付工资 n");for(i=0;i<sumNum;i+)printf(" %4d %8s %4s %.2f %.2f %.2f %. 2fn",zhigongi.bianhao,zhigongi.xingming,zhigongi.bumen,zhigong i.yfgz,zhigongi.b

18、aoxian,zhigongi.shuijin,zhigongi.sfgz);void save(int n)int i;FILE *fp;if(fp=fopen("C:chutianci.txt","wt+")=NULL)printf("you are wrong!n");for(i=0;i<n;i+)fscanf(fp,"%d",&zhigongi.bianhao);/将对应的职工的编号按照 %d 的格式输入到 fp 所指向的文件中fscanf(fp,"%s",zhigongi

19、.xingming); fscanf(fp,"%s",zhigongi.bumen); fscanf(fp,"%f",&zhigongi.yfgz);fscanf(fp,"%f",&zhigongi.baoxian); fscanf(fp,"%f",&zhigongi.shuijin); fscanf(fp,"%f",&zhigongi.sfgz); for(i=0;i<sumNum;i+)fprintf(fp," %4d %8s %4s %.2f

20、 %.2f %.2f %.2fn",zhigongi.bianhao,zhigongi.xingming,zhigongi.bumen,zhig ongi.yfgz,zhigongi.baoxian,zhigongi.shuijin,zhigongi.sfgz);fclose(fp); / 文件关闭,防止数据的流失load()int i=0;FILE *fp;fp=fopen("C:chutianci.txt","rt+");do fscanf(fp,"%d",&zhigongi.bianhao); fscanf(f

21、p,"%s",zhigongi.xingming); fscanf(fp,"%s",zhigongi.bumen); fscanf(fp,"%f",&zhigongi.yfgz); fscanf(fp,"%f",&zhigongi.baoxian); fscanf(fp,"%f",&zhigongi.shuijin); fscanf(fp,"%f",&zhigongi.sfgz);i+;while(feof(fp)=0); /feof 函数,检

22、测文件的数据流是否结束return (i-1);void zengjia(int n)int i;struct zijin temp;for(i=0;i<n;i+)printf("请输入增加的第%d个职工的编号n",i+1);scanf("%d",&temp.bianhao);printf("请输入增加的第%d个职工的姓名n",i+1);scanf("%s",temp.xingming);printf("请输入增加的第%d个职工的部门n",i+1);scanf("%s&q

23、uot;,temp.bumen);printf("请输入增加的第%d个职工的应付工资n",i+1); scanf("%f",&temp.yfgz);printf("请输入增加的第%d个职工的保险n",i+1);scanf("%f",&temp.baoxian);printf("请输入增加的第%d个职工的税金n",i+1);scanf("%f",&temp.shuijin);temp.sfgz = temp.yfgz - temp.baoxian - t

24、emp.shuijin; zhigongsumNum+=temp;save(sumNum);shuchu();caidan();void xiugai()int a,i,b,j=0;printf(" 请输入您要修改的职工的编号 n");scanf("%d",&a);for(i=0;i<sumNum;i+) if(zhigongi.bianhao=a) break; else j+;if(j=sumNum)printf(" 没有该编号的职工 n");shuchu();xiugai();printf(" 修改本职工

25、的哪一项? n");printf(" 编号请按 1,姓名请按 2,部门请按 3,应付工资请按 4, 保险请按 5,税金请按 6,取消请按 7n");scanf("%d",&b);if(b=1)printf(" 本 职 工 原 编 号 为 %d 请 输 入 本 职 工 的 新 编 号n",zhigongi.bianhao);scanf("%d",&zhigongi.bianhao);save(sumNum);shuchu();caidan();else if(b=2)printf("

26、; 本 职 工 原 姓 名 为 %s 请 输 入 本 职 工 的 新 姓 名 n",zhigongi.xingming);scanf("%s",zhigongi.xingming);save(sumNum);shuchu();caidan();else if(b=3)printf(" 本 职 工 原 部 门 为 %s 请 输 入 本 职 工 的 新 部 门 n",zhigongi.bumen);scanf("%s",zhigongi.bumen);save(sumNum);shuchu();caidan();else if(

27、b=4)printf(”本职工原售价为%f请输入本职工的新应付工资 n",zhigongi.yfgz);scanf("%f",&zhigongi.yfgz);zhigongi.sfgz = zhigongi.yfgz - zhigongi.baoxian -zhigongi.shuijin;save(sumNum);shuchu();caidan();else if(b=5)printf(" 本 职 工 原 保 险 为 %d 请 输 入 本 职 工 的 新 保 险 n",zhigongi.baoxian);scanf("%d",&zhigongi.baoxian);zhigongi.sfgz = zhigongi.yfgz - zhigongi.baoxian - zhigongi.shuijin;save(sumNum);shuchu();caidan();else if(b=6)printf(" 本 职 工 原 税 金 为 %d 请 输 入 本 职 工 的 新 税 金 n",zhigongi.shu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论