1、 成 绩 评 定 表学生姓名班级学号专 业通信工程课程设计题目C语言课程设计评语组长签字:成绩日期 年 月 日课程设计任务书学 院信息科学与工程学院专 业通信工程学生姓名班级学号课程设计题目C语言课程设计实践教学规定与任务:运用C语言编写下题代码。题目名称:查找分数与删除元素、工资记录程序设计内容及规定:1. 编程,先从键盘输入一组学生成绩到数组中,然后输入某一种分数段,查找输出该分数段内所有成绩。2. 编写函数fun(int xx ,int n ,int y),其中n代表数组元素个数,y中内容是要删除元素值。函数功能是数组xx中所有值为y元素。数组中值和y值由主函数通过键盘输入。3. 工资记
2、录程序设计 设计构造体数组,构造中包括职工数据为:编号、姓名、部门、应付工资、保险、税金、实付工资。其中实付工资由公式计算得到:实付工资=应付工资-保险-税金设计各个函数,分别实现如下功能: (1) 输入职工数据,其中“实付工资”通过计算得到。(2) 显示全体职工数据。(3) 输入某部门值,显示该部门职工数据、工资总额、平均工资。设计菜单,通过选取菜单调用以上各函数;系统启动时数据可由文献导入,录入新数据或修改数据后,可将数据重新写入文献。工作筹划与进度安排:第18-19周:第18周C语言基本编程练习第18周算法设计及编写程序代码第19周编写程序代码及程序调试第19周程序验收及答辩指引教师:
3、月 日专业负责人: 月 日学院教学副院长: 年 月 日目 录一、题目规定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 或Visual C+ 6.0等。二、算法设计1、编程,先从键盘输入一组学生成绩到数组中,然后输入某一种分数段,查找输出该分数段内所有成绩。开始定义一种数组aN,变量i输入N个数据给数组ai=0 iN-
5、1? 否 是输入1个数据给数组a输出“请按由小到大顺序输入分数段”定义变量 m n输入成绩给m11输入成绩给nk=0kN-1?naNm?定义变量k 否 是 否k+ 是 输出ak 结束注: 此函数功能是,输入一构成绩,然后在程序中输入所要查询成绩分数段,输出该分数段所有成绩。2、编写函数fun(int xx ,int n ,int y),其中n代表数组元素个数,y中内容是要删除元素值。函数功能是数组xx中所有值为y元素。数组中值和y值由主函数通过键盘输入。开始定义一种数组xxN,变量i,j,y输入N个数据给数组xxiN?i=0 否 是输出“请输入要删除元素值”输入一种数据给数组x输入一种 要删除
6、值i+调用函数fun(xx,N,y),j= fun(xx,N,y)输出“删除后数组为:”11iN-j?i=0i+输入一种数据给数组x 是输出“n”,换行结束注: fun(xx ,int n,int y)函数 功能是对数组中具有y元素删除。其中具有xx ,int n,int y 3个变量,xx 是指定数组,n表达数组中元素个数,y表达要删除数组中元素值。3、 工资记录程序设计 设计构造体数组,构造中包括职工数据为:编号、姓名、部门、应付工资、保险、税金、实付工资。其中实付工资由公式计算得到:实付工资=应付工资-保险-税金设计各个函数,分别实现如下功能: (1) 输入职工数据,其中“实付工资”通过
7、计算得到。(2) 显示全体职工数据。开始定义变量a,flag=0,number=0输入一种数据给aa=1?调用函数 shuru();调用函数 shuchu();调用函数 caidan();a=2?12flag=0?输出“录入职工信息请按1,新增职工信息请按2”结 束(3) 输入某部门值,显示该部门职工数据、工资总额、平均工资。设计菜单,通过选取菜单调用以上各函数;系统启动时数据可由文献导入,录入新数据或修改数据后,可将数据重新写入文献。 是 否 否是 否 是调用函数 shuru();调用函数 shuchu();调用函数 caidan();2调用函数 load ( );调用函数 zengjia
8、( );1输出“没有这个选项”flag=1输出请输入增长职工个数输入一种数值给numberzengjia(number)注: 函数阐明:void shuru(); /用来输入增长职工信息void shuchu(); /用来输出文献中所有职工信息void save(int n); /将职工信息保存到文献中,实现导入void zengjia(int n); /增长职工信息void xiugai(); /修改职工信息void chaxun(); /按照部门查询职工信息void caidan(); /基本菜单,按提示操作load(); /将职工信息从文献中导出三、编程实现程序详细C语言代码如下:第1题
9、:/* 编程人:楚天辞 完毕时间 7月5日 联系方式:*/#includemain()float m,n,a6; int i,k;printf( 请输入一种数组:n);for (i=0 ;i6;i+)scanf(%f,&ai);printf( 请按由小到大顺序输入分数段n);scanf(%f,&n);scanf(%f,&m);printf( 如下成绩属于该分数段n);for (k=0 ;k6;k+)if(n=ak&ak=m)printf(% 9.2fn,ak);printf(n);第2题:#include#define N 10int fun(int xx,int n,int y)int i,
10、j=0,k;for(i=0;in-j;i+) / j表达要删除数值个数,而n-j表达数组有效数值个数if(xxi=y) for(k=i;kn-1;k+) /从删除位置背面第一种元素值开始向前移动 xxk=xxk+1; j+; return j; main()int i,j,y,xxN;printf(请输入%d个数组元素值n,N);for(i=0;iN;i+)scanf(%d,&xxi);printf(请输入要删除元素值n);scanf(%d,&y);j=fun(xx,N,y);printf(删除后数组为:n);for(i=0;iN-j;i+)printf(%5d,xxi);printf(n);
11、第3题:#include#includestruct zijinint bianhao;char xingming20;char bumen100;float yfgz;float baoxian;float shuijin;float sfgz; zhigong100; /定义构造体数组zhigongvoid shuru(); /用来输入增长职工信息void shuchu(); /用来输出文献中所有职工信息void save(int n); /将职工信息保存到文献中,实现导入void zengjia(int n); /增长职工信息void xiugai(); /修改职工信息void chax
12、un(); /按照部门查询职工信息void caidan(); /基本菜单,按提示操作load(); /将职工信息从文献中导出int sumNum; /商品总个数main()int a,flag=0,number=0;doprintf(录入职工信息请按1,新增职工信息请按2n);scanf(%d,&a);if(a=1)shuru(); / 输入数据shuchu();caidan();else if(a=2)sumNum=load(); /将文献中原有职工信息个数传给sumNumprintf(请输入增长职工个数n);scanf(%d,&number);zengjia(number);elsepr
13、intf(没有这个选项n);flag=1;while(flag);void caidan()int a,flag=0,number=0;doprintf(增长职工信息请按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;whi
14、le(flag);void shuru()int i,n;printf(输入多少个职工信息n);scanf(%d,&n);for(i=0;in;i+)printf(请输入第%d个职工编号n,i+1);scanf(%d,&zhigongi.bianhao);printf(请输入第%d个职工姓名n,i+1);scanf(%s,zhigongi.xingming);printf(请输入第%d个职工部门n,i+1);scanf(%s,zhigongi.bumen);printf(请输入第%d个职工应付工资n,i+1);scanf(%f,&zhigongi.yfgz);printf(请输入第%d个职工保
15、险n,i+1);scanf(%f,&zhigongi.baoxian);printf(请输入第%d个职工税金n,i+1);scanf(%f,&zhigongi.shuijin);zhigongi.sfgz = zhigongi.yfgz - zhigongi.baoxian - zhigongi.shuijin;sumNum=n;save(sumNum);void shuchu()int i;printf( 编号 姓名 部门 应付工资 保险 税金 实付工资 n);for(i=0;isumNum;i+)printf( %4d %8s %4s %.2f %.2f %.2f %.2fn,zhigon
16、gi.bianhao,zhigongi.xingming,zhigongi.bumen,zhigongi.yfgz,zhigongi.baoxian,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;in;i+)fscanf(fp,%d,&zhigongi.bianhao); /将相应职工编号按照%d格式输入到fp所指向文献中fscanf(fp,%s,zhigongi.xingmi
17、ng);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;isumNum;i+)fprintf(fp, %4d %8s %4s %.2f %.2f %.2f %.2fn,zhigongi.bianhao,zhigongi.xingming,zhigongi.bumen,zhigongi.yfgz,zhigongi.baoxian,
18、zhigongi.shuijin,zhigongi.sfgz);fclose(fp); /文献关闭,防止数据流失load()int i=0;FILE *fp;fp=fopen(C:chutianci.txt,rt+);dofscanf(fp,%d,&zhigongi.bianhao);fscanf(fp,%s,zhigongi.xingming);fscanf(fp,%s,zhigongi.bumen);fscanf(fp,%f,&zhigongi.yfgz);fscanf(fp,%f,&zhigongi.baoxian);fscanf(fp,%f,&zhigongi.shuijin);fsc
19、anf(fp,%f,&zhigongi.sfgz);i+;while(feof(fp)=0); /feof函数,检测文献数据流与否结束return (i-1); void zengjia(int n)int i;struct zijin temp;for(i=0;in;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,temp.bumen);printf(请输入增长
20、第%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 - temp.shuijin;zhigongsumNum+=temp;save(sumNum);shuchu();caidan();void xiugai()int a,i,b,j=0;printf(请输入您要修改职工编号n);scanf(%d,
21、&a);for(i=0;isumNum;i+)if(zhigongi.bianhao=a)break;elsej+;if(j=sumNum)printf(没有该编号职工n);shuchu();xiugai();printf(修改本职工哪一项?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()
22、;else if(b=2)printf(本职工原姓名为%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(b=4)printf(本职工原售价为%f请输入本职工新应付工资n,zhigongi.yfgz);scanf(%f,&zhigo
23、ngi.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
24、(b=6)printf(本职工原税金为%d请输入本职工新税金n,zhigongi.shuijin);scanf(%d,&zhigongi.shuijin);zhigongi.sfgz = zhigongi.yfgz - zhigongi.baoxian - zhigongi.shuijin;save(sumNum);shuchu();caidan();else if(b=7)shuchu();caidan();elseprintf(没有这个选项n);shuchu();xiugai();void chaxun()int i,a;struct zijin temp; printf(请输入查询部门n
25、);scanf(%s,temp.bumen);printf( 编号 姓名 部门 应付工资 保险 税金 实付工资 n);for(i=0;isumNum;i+)int j=0;if(strcmp(zhigongi.bumen,temp.bumen)=0)printf( %4d %8s %4s %.2f %.2f %.2f %.2fn,zhigongi.bianhao,zhigongi.xingming,zhigongi.bumen,zhigongi.yfgz,zhigongi.baoxian,zhigongi.shuijin,zhigongi.sfgz);elsej+;if(j=sumNum)printf(没有这个名称部门n);chaxun();caidan();save(sumNum);四、成果分析第1题:程序运营成果如图1: 图1 程序运营成果1 第2题:程序运营成果如图2:图2 程序运营成果2第3题:程序运营成果如图3:图3 程序运营成果3五、参照文献1马秀丽,刘志妩,李筠.C语言程序设计.北京:清华大学出版社,2谭浩强.C程序设计(第2版).北京:清华大学出版社,3李大友.C语言程序设计.北京:清华大学出版社,19994高福成.C语言程序设计教程.天津:天津大学出版社,1998