1、 成 绩 评 定 表 学生姓名 班级学号 专 业 通信工程 课程设计题目 C语言课程设计 评 语 组长签字: 成绩 日期 年 月 日 课程设计任务书 学 院 信息科学与工程学院 专 业 通信工程 学生姓名 班级学号 课程设计题目 C语言课程设计 实践教学规定与任务: 运用C语言编写下题代码。 题目名称:查找分数与删除元素、工资记录程序设计 内容及规定: 1. 编程,先从键
2、盘输入一组学生成绩到数组中,然后输入某一种分数段,查找输出该分数段内所有成绩。 2. 编写函数fun(int xx[ ],int n ,int y),其中n代表数组元素个数,y中内容是要删除元素值。函数功能是数组xx中所有值为y元素。数组中值和y值由主函数通过键盘输入。 3. 工资记录程序设计 设计构造体数组,构造中包括职工数据为:编号、姓名、部门、应付工资、保险、税金、实付工资。其中实付工资由公式计算得到:实付工资=应付工资-保险-税金 设计各个函数,分别实现如下功能: (1) 输入职工数据,其中“实付工资”通过计算得到。 (2) 显示全体职工数据。 (3) 输入
3、某部门值,显示该部门职工数据、工资总额、平均工资。设计菜单,通过选取菜单调用以上各函数;系统启动时数据可由文献导入,录入新数据或修改数据后,可将数据重新写入文献。 工作筹划与进度安排: 第18-19周: 第18周.C语言基本编程练习 第18周.算法设计及编写程序代码 第19周.编写程序代码及程序调试 第19周.程序验收及答辩 指引教师: 月 日 专业负责人: 月 日 学院教学副院长: 年 月 日 目 录 一、题目规定 3 二、算法设计 4 三、编程实现 10 四、成果分析 25 五、参照文献 28
4、 一、题目规定 题目名称:查找分数与删除元素、工资记录程序设计 内容: 1、编程,先从键盘输入一组学生成绩到数组中,然后输入某一种分数段,查找输出该分数段内所有成绩。 2、编写函数fun(int xx[ ],int n ,int y),其中n代表数组元素个数,y中内容是要删除元素值。函数功能是数组xx中所有值为y元素。数组中值和y值由主函数通过键盘输入 3、工资记录程序设计 设计构造体数组,构造中包括职工数据为:编号、姓名、部门、应付工资、保险、税金、实付工资。其中实付工资由公式计算得到:实付工资=应付工资-保险-税金。
5、设计各个函数,分别实现如下功能: (1) 输入职工数据,其中“实付工资”通过计算得到。 (2) 显示全体职工数据。 (3) 输入某部门值,显示该部门职工数据、工资总额、平均工资。设计菜单,通过选取菜单调用以上各函数;系统启动时数据可由文献导入,录入新数据或修改数据后,可将数据重新写入文献。 规定: 运用C语言编写上述程序,开发环境可采用Turbo C 2.0 或Visual C++ 6.0等。 二、算法设计 1、编程,先从键盘输入一组学生成绩到数组中,然后输入某一种分数段,查找输出该分数段内所有成绩。 开始 定义一种数组a[N],变量i 输入N个数据给数
6、组a
i=0
i 7、
否
是
否
k++
是 8、
输出a[k]
结束
注:
此函数功能是,输入一构成绩,然后在程序中输入所要查询成绩分数段,输出该分数段所有成绩。
2、编写函数fun(int xx[ ],int n ,int y),其中n代表数组元素个数,y中内容是要删除元素值。函数功能是数组xx中所有值为y元素。数组中值和y值由主函数通过键盘输入。
开始
定义一种数组xx[N],变量i,j,y
输入N个数据给数组xx
i 9、 否
是
输出“请输入要删除元素值”
输入一种数据
给数组x[]
输入一种 要删除值
i++
调用函数fun(xx,N,y),j= fun(xx,N,y)
输出“删除后数组为:”
1
1
i 10、 是
输出“\n”,换行
结束
注: fun(xx[ ],int n,int y)函数
功能是对数组中具有y元素删除。其中具有xx[ ],int n,int y 3个变量,xx[ ]是指定数组,n表达数组中元素个数,y表达要删除数组中元素值。
3、 工资记录程序设计
设计构造体数组,构造中包括职工数据为:编号、姓名、部门、应付工资、保险、税金、实付工资。其中实付工资由公式计算得到:实付工资=应付工资- 11、保险-税金
设计各个函数,分别实现如下功能:
(1) 输入职工数据,其中“实付工资”通过计算得到。
(2) 显示全体职工数据。
开始
定义变量a,flag=0,number=0
输入一种数据给a
a==1?
调用函数 shuru();
调用函数 shuchu();
调用函数 caidan();
a==2?
1
2
flag==0?
输出“录入职工信息请按1,新增职工信息请按2”
结 束
(3) 输入某部门值,显示该部门职工数据、工资总额、平均工资。设计菜单,通过选取菜单调用以上各函数;系统启动时数据可由文献导入,录入新数据或修改数据后,可将数据 12、重新写入文献。
是
否
否
是
否 是
调用函数 shuru();
调用函数 shuchu( 13、);
调用函数 caidan();
2
调用函数 load ( );
调用函数 zengjia ( );
1
输出“没有这个选项”
flag=1
输出请输入增长职工个数
输入一种数值给number
zengjia(number)
注:
函数阐明:
void shuru(); //用来输入增长职工信息
void shuchu(); //用来输出文献中所有职工信息
void save(int n); 14、 //将职工信息保存到文献中,实现导入
void zengjia(int n); //增长职工信息
void xiugai(); //修改职工信息
void chaxun(); //按照部门查询职工信息
void caidan(); //基本菜单,按提示操作
load(); //将职工信息从文献中导出
三、编程实现
程序详细C语言代码如下:
第1题:
/* 编程人:楚天辞 完毕时间 7月5日 联系方式:*/
#include 15、
int i,k;
printf(" 请输入一种数组:\n");
for (i=0 ;i<6;i++)
scanf("%f",&a[i]);
printf(" 请按由小到大顺序输入分数段\n");
scanf("%f",&n);
scanf("%f",&m);
printf(" 如下成绩属于该分数段\n");
for (k=0 ;k<6;k++)
if(n<=a[k]&&a[k]<=m)
printf("% 9.2f\n",a[k]);
printf("\n");
}
第2题:
#include 16、>
#define N 10
int fun(int xx[],int n,int y)
{
int i,j=0,k;
for(i=0;i 17、i=0;i 18、100];
float yfgz;
float baoxian;
float shuijin;
float sfgz;
} zhigong[100]; //定义构造体数组zhigong
void shuru(); //用来输入增长职工信息
void shuchu(); //用来输出文献中所有职工信息
void save(int n); //将职工信息保存到文献中,实现导入
void zengjia(int n); //增长职工信息
void xiugai(); //修改职工信息
void chaxun(); //按照部门查询职工信息
void cai 19、dan(); //基本菜单,按提示操作
load(); //将职工信息从文献中导出
int sumNum; //商品总个数
main()
{
int a,flag=0,number=0;
do
{
printf("录入职工信息请按1,新增职工信息请按2\n");
scanf("%d",&a);
if(a==1)
{
shuru(); // 输入数据
shuchu();
caidan();
}
else if(a==2)
{
sumNum=load(); //将文献中原有职工信息个数传给sum 20、Num
printf("请输入增长职工个数\n");
scanf("%d",&number);
zengjia(number);
}
else
{
printf("没有这个选项\n");
flag=1;
}
}while(flag);
}
void caidan()
{
int a,flag=0,number=0;
do
{
printf("增长职工信息请按1,修改职工信息请按2,查询职工信息请按3,退出请按4\n");
scanf("%d",&a);
if(a==1)
{
21、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;
}
else
{
printf("没有这个选项\n");
flag=1;
}
}while(flag);
}
void shuru()
{
22、int i,n;
printf("输入多少个职工信息\n");
scanf("%d",&n);
for(i=0;i 23、\n",i+1);
scanf("%f",&zhigong[i].yfgz);
printf("请输入第%d个职工保险\n",i+1);
scanf("%f",&zhigong[i].baoxian);
printf("请输入第%d个职工税金\n",i+1);
scanf("%f",&zhigong[i].shuijin);
zhigong[i].sfgz =
zhigong[i].yfgz - zhigong[i].baoxian - zhigong[i].shuijin;
}
sumNum=n;
save(sumNum);
}
v 24、oid shuchu()
{
int i;
printf(" 编号 姓名 部门 应付工资 保险 税金 实付工资 \n");
for(i=0;i 25、z);
}
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 26、);
fscanf(fp,"%f",&zhigong[i].yfgz);
fscanf(fp,"%f",&zhigong[i].baoxian);
fscanf(fp,"%f",&zhigong[i].shuijin);
fscanf(fp,"%f",&zhigong[i].sfgz);
}
for(i=0;i 27、ong[i].bumen,zhigong[i].yfgz,zhigong[i].baoxian,zhigong[i].shuijin,zhigong[i].sfgz);
fclose(fp); //文献关闭,防止数据流失
}
load()
{
int i=0;
FILE *fp;
fp=fopen("C:\\chutianci.txt","rt+");
do
{
fscanf(fp,"%d",&zhigong[i].bianhao);
fscanf(fp,"%s",zhigong[i].xingming);
fscanf(fp,"%s", 28、zhigong[i].bumen);
fscanf(fp,"%f",&zhigong[i].yfgz);
fscanf(fp,"%f",&zhigong[i].baoxian);
fscanf(fp,"%f",&zhigong[i].shuijin);
fscanf(fp,"%f",&zhigong[i].sfgz);
i++;
}while(feof(fp)==0); //feof函数,检测文献数据流与否结束
return (i-1);
}
void zengjia(int n)
{
int i;
struct zijin temp 29、
for(i=0;i 30、个职工保险\n",i+1);
scanf("%f",&temp.baoxian);
printf("请输入增长第%d个职工税金\n",i+1);
scanf("%f",&temp.shuijin);
temp.sfgz = temp.yfgz - temp.baoxian - temp.shuijin;
zhigong[sumNum++]=temp;
}
save(sumNum);
shuchu();
caidan();
}
void xiugai()
{
int a,i,b,j=0;
printf("请输入您要修改职工编号\n"); 31、
scanf("%d",&a);
for(i=0;i 32、"本职工原编号为%d请输入本职工新编号\n",zhigong[i].bianhao);
scanf("%d",&zhigong[i].bianhao);
save(sumNum);
shuchu();
caidan();
}
else if(b==2)
{
printf("本职工原姓名为%s请输入本职工新姓名\n",zhigong[i].xingming);
scanf("%s",zhigong[i].xingming);
save(sumNum);
shuchu();
caidan();
}
else if(b==3 33、)
{
printf("本职工原部门为%s请输入本职工新部门\n",zhigong[i].bumen);
scanf("%s",zhigong[i].bumen);
save(sumNum);
shuchu();
caidan();
}
else if(b==4)
{
printf("本职工原售价为%f请输入本职工新应付工资\n",zhigong[i].yfgz);
scanf("%f",&zhigong[i].yfgz);
zhigong[i].sfgz = zhigong[i].yfgz - zhigong[i].baoxia 34、n - zhigong[i].shuijin;
save(sumNum);
shuchu();
caidan();
}
else if(b==5)
{
printf("本职工原保险为%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 35、);
}
else if(b==6)
{
printf("本职工原税金为%d请输入本职工新税金\n",zhigong[i].shuijin);
scanf("%d",&zhigong[i].shuijin);
zhigong[i].sfgz = zhigong[i].yfgz - zhigong[i].baoxian - zhigong[i].shuijin;
save(sumNum);
shuchu();
caidan();
}
else if(b==7)
{
shuchu();
caidan();
}
els 36、e
{
printf("没有这个选项\n");
shuchu();
xiugai();
}
}
void chaxun()
{
int i,a;
struct zijin temp;
printf("请输入查询部门\n");
scanf("%s",temp.bumen);
printf(" 编号 姓名 部门 应付工资 保险 税金 实付工资 \n");
for(i=0;i 37、bumen)==0)
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);
else
j++;
if(j==sumNum)
{
printf("没有这个名称部门\n");
chaxun();
}
}
ca 38、idan();
save(sumNum);
}
\
四、成果分析
第1题:
程序运营成果如图1:
图1 程序运营成果1
第2题:
程序运营成果如图2
:
图2 程序运营成果2
第3题:
程序运营成果如图3:
图3 程序运营成果3
五、参照文献
[1]马秀丽,刘志妩,李筠.C语言程序设计.北京:清华大学出版社,
[2]谭浩强.C程序设计(第2版).北京:清华大学出版社,
[3]李大友.C语言程序设计.北京:清华大学出版社,1999
[4]高福成.C语言程序设计教程.天津:天津大学出版社,1998






