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

付费下载

下载本文档

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

文档简介

成绩评定表

学生姓名班级学号

专业通信工程课程设计题目C语言课程设计

组长签字:

成绩

日期年月日

课程设计任务书

学院信息科学与工程学院专业通信工程

学生姓名班级学号

课程设计题目C语言课程设计

实践教学规定与任务:

运用C语言编写下题代码。

题目名称:查找分数与删除元素、工资记录程序设计

内容及规定:

1.编程,先从键盘输入i组学生成绩到数组中,然后输入某i种分数段,查找输出该分数段内所

有成绩。

2.编写函数fun(intxx[],intn,inty),其中n代表数组元素个数,y中内容是要删除元素值。

函数功能是数组xx中所有值为y元素。数组中值和y值由主函数通过键盘输入。

3.工资记录程序设计

设计构造体数组,构造中包括职工数据为:编号、姓名、部门、应付工资、保险、税金、

实付工资。其中实付工资由公式计算得到:实付工资:应付工资-保险-税金

设计各个函数,分别实现如下功能:

(1)输入职工数据,其中“实付工资”通过计算得到。

(2)显示全体职工数据。

(3)输入某部门值,显示该部门职工数据、工资总额、平均工资。设计菜单,通过选取菜单调

用以上各函数;系统启动时数据可由文献导入,录入新数据或修改数据后,可将数据重新写入文

献。

工作筹划与进度安排:

第18-19周:

第18周.C语言基本编程练习

第18周.算法没计及编写程序代码

第19周.编写程序代码及程序调试

第19周.程序验收及答辩

指引教师:专业负责人:学院教学副院长:

月日月日年月日

目录

一、题目规定...................................................3

二、算法设计...................................................4

三、编程实现...................................................10

四、成果分析..................................................25

五、参照文献..................................................28

一、题目规定

题目名称:查找分数与删除元素、工资记录程序设计

内容:

1、编程,先从键盘输入一组学生成绩到数组中,然后输入某一种分数

段,查找输出该分数段内所有成绩。

2^编写函数fun(intxx[],intn,inty),其中n代表数组元素

个数,y中内容是要删除元素值。函数功能是数组xx中所有值为y

元素。数组中值和y值由主函数通过键盘输入

3、工资记录程序设计

设计构造体数组,构造中包括职工数据为:编号、姓名、部门、

应付工资、保险、税金、实付工资。其中实付工资由公式计算得到:

实付工资二应付工资-保险-税金。

设计各个函数,分别实现如下功能:

(1)输入职工数据,其中“实付工资”通过计算得到。

(2)显示全体职工数据。

(3)输入某部门值,显示该部门职工数据、工资总额、平均工资。

设计菜单,通过选取菜单调用以上各函数;系统启动时数据可由文献

导入,录入新数据或修改数据后,可将数据重新写入文献。

规定:

运用C语言编写上述程序,开发环境可采用TurboC2.0或Visual

C++6.0等。

算法设计

1、编程,先从键盘输入一组学生成绩到数组中,然后输入某一种分数段,查找输出该分数段

蛤入舟〃击妗C

注:

此函数功能是,输入一构成绩,然后在程序中输入所要查询成绩分数段,输出该分数段

所有成绩。

2、编写函数fun(in(xx[],intn,inly),其中n代表数组元素个数,y中内容是要删除元素

Sill“Dfld龄UJWr。口-*,”

注:fun(xx[],intn,inty)函数

功能是对数组中具有y元素删除。其中具有xx[],in(n,in(y3个变量,I]是指定数组,

n表达数组中元素个数,y表达要删除数组中元素值。

3、工资记录程序设计

设计构造体数组,构造中包括职工数据为:编号、姓名、部门、应付工资、保险、税

金、实付工资。其中实付工资由公式计算得到:实付工资=应付工资-保险-税金

设计各个函数,分别实现如下功能:

(1)输入职工数据,其中“实付工资”通过计算得到。

(2)显示全体职工数据。

(3)输入某部门值,显示该部门职工数据、工资总额、平均工资。设计菜单,通过选取

菜单调用以上各函数;系统启动时瞽据可由文献导入,录入新数据或修改数据后,可将数据

重新写入文献。T‘

输入一种数据给a

否是

注:

函数阐明:

voidshuru();〃用来输入增长职工信息

voidshuchu();〃用来输出文帧中所有职工信息

voidsave(inln);〃将职工信息保存到文献中,实现导入

voidzcngjia(intn);〃增长职工信息

voidxiugai();〃修改职工信息

voidchaxunO:〃按照部门查询职工信息

voidcaidanO;〃基本菜单,按提示操作

load();〃将职工信息从文献中导出

三、编程实现

程序详细C语言代码如下:

第1题:

/*编程人:楚天辞完毕时间7月5日联系方式:*/

#include<stdio.h>

main()

{

floatm,n,a[6];

inti,k;

printf("请输入一种数组:\nn);

for(i=0;i<6;i++)

scanf(n%f,,&a[i]);

printfC,请按由小到大顺序输入分数段\n");

scanf(n%r,&n);

scanf("%F,&m);

printf(H如下成绩属于该分数段\n");

for(k=();k<6;k++)

if(n<=a[k]&&a[k]<=m)

printf(u%9.2f\nH,a[k]);

printf("\n");

)

第2题:

#include<stdio.h>

#defineN10

intfun(intxx[],intn,inty)

(

inti,j=O,k;

for(i=0;i<n-j;i++)//j表达要删除数值个数,而n-j表达数组有效数值个数

if(xx[i]==y)

{for(k=i;k<n-l;k++)//从删除位置背面第一种元素值开始向前移动

xx[k]=xx[k+l];

j++;

returnj;}

main()

(

intij,y,xx[N];

printff请输入%d个数组元素值\n”,N);

for(i=0;i<N;i++)

scanf(H%dn,&xx[i]);

printf("请输入要删除元素值\n");

scanf(n%dn,&y);

j=fun(xx,N,y);

printf("删除后数组为:\n'f);

for(i=0;i<N-j;i++)

printf(n%5d'\xx[i]);

printf("\n");

)

第3题:

#include<stdio.h>

#include<string.h>

structzijin

intbianhao;

charxingming[20];

charbumenj100];

floatyfgz;

floatbaoxian;

floatshuijin;

floatsfgz;

}zhigong[100];〃定义构造体数组zhigong

voidshuru();〃用来输入增长职工信息

voidshuchu();〃用来输出文献中所有职工信息

voidsave(intn);/川各职工信息保存到文献中,实现导入

voidzengjia(intn);〃增长职工信息

voidxiugai();〃修改职工信息

voidchaxun();〃按照部门查询职工信息

voidcaidanQ;//基本菜单,按提示操作

load();〃将职工信息从文献中导出

intsumNum;〃商品总个数

main()

(

inta,flag=0,number=0;

do

printf。录入职工信息请按1,新增职工信息请按2\n)

scanf(n%dn,&a);

if(a==l)

shuru();//输入数据

shuchu();

caidanQ;

)

elseif(a==2)

(

sumNum=load();〃将文献中原有职工信息个数传给sumNum

printf(”请输入增长职工个数\n”);

scanf(n%d",&number);

zengjia(number);

)

else

(

printf("没有这个选项\n");

flag=l;

}while(flag);

voidcaidan()

inta,flag=0,number=0;

do

(

printf("增长职工信息请按1,修改职工信息请按2,查询职工

信息请按3,退出请按4\n");

scanf("%dn,&a);

if(a==l)

(

printf("请输入增长职工个数\n");

scanf("%d”,&number);

zengjia(number);

continue;

)

elseif(a==2)

xiugai();

elseif(a==3)

chaxun();

elseif(a==4)

save(sumNum);

break;

)

else

(

printf("没有这个选项\n");

flag=l;

)

}while(flag);

)

voidshuru()

(

inti,n;

printff输入多少个职工信息\n)

scanf("%d",&n);

for(i=0;i<n;i++)

(

printf(”请输入第%d个职工编号\n”,i+l);

scanf("%d",&zhigong[i].bianhao);

printf("请输入第%d个职工姓名\n”,i+l);

scanf("%sH,zhigong[i].xingming);

printf("请输入第%d个职工部门\n”,i+l);

scanf(,'%s",zhigong|i].bumen);

printf("请输入第%d个职工应付工资\n”,i+l);

scanf(,,%f,,&zhigongfi].yfgz);

printf("请输入第%£1个职工保险\n”,i+l);

scanf(H%f",&zhigong[i].baoxian);

printf("请输入第%d个职工税金\n,i+l);

scanf("%f",&zhigong[i].shuijin);

zhigong[i].sfgz=

zhigong[i].yfgz-zhigong|i].baoxian-zhigong|i].shuijin;

)

sumNum=n;

save(sumNum);

)

voidshuchu()

(

inti;

printfC,编号姓名部门应付工资保险税金

实付工资\n");

for(i=0;i<sumNum;i++)

printf("%4d%8s%4s%,2f%.2f%.2f%.

2f\n,',zhigong|i].bianhao,zhigong|i].xingming,zhigong|i].bumen,zhigong|

i].yfgz,zhigong|i].baoxian,zhigong[i|.shuijin,zhigong|i].sfgz);

voidsave(intn)

(

inti;

FILE*fp;

if((fp=fopen(,'C:\\chutianci.txt","wt+"))==NULL)

printf("youarewrong!\n");

for(i=0;i<n;i++)

|

fscanf(fp,"%d",&zhigong[i].bianhao);

〃将相应职工编号按照%<1格式输入到fp所指向文献中

fscanf(fp,n%su,zhigong[i].xingming);

fscanf(fp,n%s",zhigong[i].bumen);

fscanf(fp,"%f',&zhigong[ij.yfgz);

fscanf(fp,H%f\&zhigong[i].baoxian);

fscanf(fp,H%f',&zhigong[i].shuijin);

fscanf(fp,"%f',&zhigong[i].sfgz);

for(i=0;i<sumNum;i++)

fprintf(fp;'%4d%8s%4s%.2f%.2f%.2f

%.2f\n",zhigong[i].bianhao,zhigong[i].xingming,zhigong[i].bumen,zhig

ongfi].yfgz,zhigong[i].baoxian,zhigong[i].shuijin,zhigong[i].sfgz);

fclose(fp);〃文献关闭,防止数据流失

)

load()

(

inti=();

FILE*fp;

fp=fopen("C:\\chutianci.txt",nrt+");

do

(

fscanf(fp,"%dM,&zhigong[i].bianhao);

fscanf(fp,"%s",zhigong[i].xingming);

fscanf(fp,"%s",zhigong[i].bumen);

fscanf(fp,"%f",&zhigong[i].yfgz);

fscanf(fp,"%f',&zhigong[i].baoxian);

fscanf(fp,"%f",&zhigong[i].shuijin);

fscanf(fp,M%f\&zhigong[i].sfgz);

i++;

}while(feof(fp)==0);//feof函数,检测文献数据流与否结束

return(i-1);

)

voidzengjia(intn)

{

inti;

structzijintemp;

for(i=0;i<n;i++)

printf(”请输入增长第%d个职工编号\n”,i+l);

scanf(n%dn,&temp.bianhao);

printf(”请输入增长第%d个职工姓名\n”,i+l);

scanf(H%s,',temp.xingming);

printf(”请输入增长第%d个职工部门\n”,i+l);

scanf("%sn,teinp.bumen);

printf(”请输入增长第%dj职工应付工资\n”,i+l);

scanf("%F',&temp.yfgz);

printf(”请输入增长第%d个职工保险\n”,i+l);

scanf(M%f\&temp.baoxian);

printf(”请输入增长第%d个职工税金\n”,i+l);

scanf("%f',&temp.shuijin);

temp.sfgz=temp.yfgz-temp.baoxian-temp.shuijin;

zhigong[sumNum++]=temp;

)

save(sumNum);

shuchu();

caidan();

)

voidxiugai()

(

inta,i,b,j=O;

printf("请输入您要修改职工编号\n”);

scanf(n%d",&a);

for(i=0;i<sumNum;i++)

if(zhigong|i].bianhao==a)

break;

else

j++;

if(j==sumNum)

printf(“没有该编号职工\n");

shuchu();

xiugai();

)

printf("修改本职工哪一项?\nn);

printff编号请按1,姓名请按2,部门请按3,应付工资请按4,

保险请按5,税金请按6,取消请按7\n");

scanf(n%d",&b);

if(b==l)

(

printf(H本职工原编号为%<1请输入本职工新编号

\n",zhigong[i].bianhao);

scanf(1'%dH,&zhigong[i].bianhao);

save(sumNum);

shuchu();

caidan();

)

elseif(b==2)

(

printf(H本职工原姓名为%s请输入本职工新姓名

\n",zhigong[i].xingming);

scanf("%sn,zhigong[i].xingming);

save(sumNum);

shuchu();

caidan();

)

elseif(b==3)

(

printf("本职工原部门为%s请输入本职工新部门

\nn,zhigong[i].bumen);

scanf(n%sH,zhigong[i].bumen);

save(sumNum);

shuchu();

caidan();

}

elseif(b==4)

(

printf。本职工原售价为%f请输入本职工新应付工资

Xn^zhigongliJ.yfgz);

scanf(n%f1,&zhigong[i|.yfgz);

zhigong[i].sfgz=zhigong[i].yfgz-zhigong[i].baoxian-

zhigong[i].shuijin;

save(sumNum);

shuchu();

caidan();

elseif(b==5)

printf(H本职工原保险为%d请输入本职工新保险

\n",zhigong[i].baoxian);

scanf("%d”,&zhigong[i].baoxian);

zhigong[i].sfgz=zhigong[i].yfgz-zhigong[i].baoxian-

zhigong[i].shuijin;

save(sumNum);

shuchu();

caidan();

}

elseif(b==6)

(

printf(,*本职工原税金为%d请输入本职工新税金

Xn'\zhigonglij.shuijin);

scanf(H%d",&zhigong|i|.shuijin);

zhigong[i].sfgz=zhigong[i].yfgz-zhigong[i].baoxian-

zhigong[i].shuijin;

save(sumNum);

shuchu();

caidan();

elseif(b==7)

shuchu();

caidan();

)

else

(

printf("没有这个选项\n“);

shuchu();

xiugai();

}

)

voidchaxun()

(

inti,a;

structzijintemp;

printff请输入查询部门\n");

scanf(”%s”,temp.bumen);

printf("编号姓名部门应付工资保险税金

实付工资\n”);

fbr(i=O;i<sumNum;i++)

intj=O;

if(strcmp(zhigong[i].bumen,temp.bumen)==0)

printf("%4d%8s%4s%,2f%.2f%.2f%.

2f\nn,zhigong[i].bianhao,zhigong[i].xingming,zhigong[i].bumen,zhigong[

i].yfgz,zhigong[i].baoxian,zhigong[i].shuijin,zhigong[i].sfgz);

else

j++;

if(j==sumNum)

(

printf("没有这个名称部门\n”);

chaxun();

)

)

caidan();

save(sumNum);

Ui、成果分析

第1题:

程序运营成果如图1:

图1程序运营成果1

第2题:

程序运营成果如图2

3

|请输入10个数组的元素值

1234554321

9输入要删除的元素值

脑除后的数组为«

1245521

Pressanykeytocontinue

图2程序运营成果2

第3题:

程序运营成果如图3:

i

1(*C:\Users\Administrator\Desktop\W^^<?^\Debug\Cpp3.exe,

录入职工信息请按1,新增职工信息请按2

2

请输入增加职工的个数

;青输入增加的第1个职工的编号

005

请输入增加的第1个职工的姓名

chuehu

请输入增加的第1个职工的部门

bunen

请输入增加的第1个职工的应付工资

22222

请输入增加的第1个职工的保险

300

请输入增加的第1个职工的税金

400

编号姓名部门应付工资保险税金实付工资

1chujingli33333.00500.00500.0032333.00

5chuchubunen22222.00300.00400.0021522.00

温馨提示

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

评论

0/150

提交评论