C语言课程设计实验报告Word文件下载.docx
- 文档编号:908179
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:28
- 大小:70.34KB
C语言课程设计实验报告Word文件下载.docx
《C语言课程设计实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言课程设计实验报告Word文件下载.docx(28页珍藏版)》请在冰点文库上搜索。
(2)浏览模块
分屏显示职工工资信息,可以指定10个1屏,按任意键显示下一屏。
通过菜单选择按照工资卡号还是姓名浏览。
如果按照卡号浏览,则显示的记录按照卡号升序输出;
按照姓名浏览则按照字典序输出(调用排序模块的排序功能)。
(3)排序模块
排序模块提供菜单选择,实现按照工资卡号升序、实发工资降序以及姓名字典序排序。
排序方法可以选择冒泡排序、插入排序、选择排序等。
(4)查询模块
实现按照工资卡号和姓名的查询,采用基本的查找方法即可。
(5)统计模块
输入起止月份,按照职工卡号和月份查询记录,把起止月份之间的实发工资金额累加。
3.主要的程序段分析
职工工资信息的录入程序段
voidluru()
{
FILE*fp;
intk,,j,b,c,d;
if((fp=fopen("
D:
工资信息.txt"
"
w"
))==NULL)从D盘中打开文件夹
{
printf("
无法找到目标文件\n"
);
return;
}
label_1:
b=0;
while(!
(b>
=1&
&
b<
=12))
请您输入您要建立的月份\n"
//选择职工所在的月份
scanf("
%d"
&
b);
b=b-1;
d=0;
(d>
=10001&
d<
=32767))
{输入职工的卡号
请输入您要录入工资的卡号(五位数字),例如:
10001\n"
d);
for(i=0;
i<
ygsm&
a[i].kahao!
=d;
i++);
if(a[i].kahao!
=d)
c=0;
while(c!
c!
=2)
{
没有该卡号记录.\n1新建\n2返回上一级\n"
c);
if(c==2)
gotolabel_1;
if(c==1)
a[i].kahao=d;
请输入姓名:
\n"
%s"
a[i].xingming);
输入职工的工资、水费、电费
a[i].m[b].yuefen=b+1;
请输入此人该月的应发工资:
%f"
a[i].m[b].yfgz);
请输入此人该月所用水费:
a[i].m[b].sf);
请输入此人该月所用电费\n"
职工工资信息的查询
voidchaxun()
{
intb,i,j;
label_3:
b=0;
while(b!
b!
1,选择姓名查询.\n2,选择卡号查询.\n"
//选择姓名查询或卡号查询
if(b==1)
charc[20];
请输入您的姓名:
c);
i=0;
(strcmp(a[i].xingming,c)==0)&
ygsm)查询职工名字的程序段
i++;
if(i==ygsm)
Thenameyouarelookingfordoesnotexist,pleaseenteryournameorcardnumberfor\n"
//如果在数组中没有查找到职工的名字则输出此信息
%-10d%-20s\n"
a[i].kahao,a[i].xingming);
for(j=0;
a[i].m[j].yuefen!
=NULL;
j++)
月份:
%5d,应发工资:
%10.2f,水费:
%7.2f,电费:
%7.2f,税金:
%7.2f,实发工资:
%10.2f.\n"
a[i].m[j].yuefen,a[i].m[j].yfgz,a[i].m[j].sf,a[i].m[j].df,a[i].m[j].sj,a[i].m[j].sfgz);
}//当查询到职工的工资信息时,输出职工的工资信息
总实发工资:
%10f\n"
a[i].zsfgz);
//输出职工的总发工资
四、调试过程(1.测试数据设计2.测试结果分析)
主菜单函数
职工的工资信息录入
查询职工的工资信息(姓名查询)
查询职工的工资信息(卡号查询)
浏览职工的工资信息
退出函数的运行界面
五、总结
1.设计中遇到的问题及解决过程
2.设计中产生的错误及原因分析
3.设计体会和收获。
1.不知道从哪里开始编写程序。
解决方法:
先将题目的大概思路的先想清楚,然后在编写一个大概的程序段落。
2.有些知识没有完全熟悉,编写程序时容易出现格式错误。
再看一遍书上的例题,注意书写时的细节。
3.在编写时容易忘记自己编写到哪里了,还有什么功能没有实现。
将程序所需要实现的所有功能进行分段处理,一个功能用一个调用函数来实现,容易发现还有什么功能没有实现,运行出现错误时,也不需要从头开始找出错的地方。
二、
1.在编写时,经常出现死循环。
原因;
在每个职工的信息输完后,没有直接跳出输入的界面,而是还在不断的需要输入信息,程序中没有设置跳出输入界面的函数。
2.编写的程序时,程序段有时不能运行。
原因:
在调用函数时,没有使用这个函数。
三、
通过这次的程序编写,使我加深了对C语言的理解和使用,并总结了以下的经验。
1.所有的程序都应先将程序的大体结构先编写出来,然后在将程序进行细化,这样层次比较清楚。
2.添加一些注释、流程图、说明文档使程序的思路更加清晰。
3.合并相同和相似的代码,编写成一个函数,在主程序中调用此函数。
4.注意大程序的设计最好按照“自顶向下,逐步细化,模块化”的方法进行
设计。
5.编写编写各个小函数时,要学会对运行结果的分析,并进行测试与调试。
6、在编程时,应该多使用库函数。
因为那些函数都是进过严格调试的,有很强的可移植性,同时也能提高函数的性能。
7、使用文件时要注意文件的打开和关闭。
8、在使用结构数组时,要特别注意对其初始化,还要特别注意不能出现越界。
9、最终最重要的一点还是要有严谨的编程思维,还要足够细心。
六、附录
1、原代码
2、参考文献
#include<
stdio.h>
string.h>
#defineN100
structmygz
{
intyuefen;
floatyfgz;
floatsf;
floatdf;
floatsj;
floatsfgz;
};
structworker
intkahao;
charxingming[20];
structmygzm[12];
floatzsfgz;
intygsm;
structworkera[N];
floatshuijin(floatm)
floatshui1,shui2;
floattmp;
shui1=0;
shui2=0;
if(m>
=1400)
shui1=(m-1400)*0.1;
shui2=30;
}
else
if(m>
=800&
m<
1400)
shui2=(m-800)*0.05;
tmp=shui1+shui2;
return(tmp);
}floatshifagongzi(floata,floatb,floatc,floatd)
floate=a-b-c-d;
return(e);
voidduqu()
r"
))==NULL)
Unabletoreadfile"
;
return;
feof(fp))
fread(&
a[ygsm],sizeof(structworker),1,fp);
ygsm++;
intb;
inti;
intj;
label_3:
ygsm)
1,继续查询.\n2,返回主菜单.\n"
gotolabel_3;
else
}
intd=0;
Pleaseenteryourcardnumber(fivedigits),例如:
while(a[i].kahao!
=d&
d,a[i].xingming);
voidliulan()
structworkerx;
intc;
floatd;
intk;
ygsm;
i++)
c=a[i].kahao;
k=i;
for(j=i+1;
j<
if(c>
a[j].kahao)
c=a[j].kahao;
k=j;
x=a[i];
a[i]=a[k];
a[k]=x;
40;
d=a[i].zsfgz;
if(d<
a[j].zsfgz)
d=a[j].zsfgz;
%-20s%-10d\n"
a[i].xingming,a[i].kahao);
voidshanchu()
label_4:
请输入要删除信息的卡号:
if(a[i].kahao==b)
j=i;
for(i=j+1;
a[i-1]=a[i];
ygsm--;
fp=fopen("
i++)
fwrite(&
a[i],sizeof(structworker),1,fp);
fclose(fp);
1.继续删除\n2返回主菜单\n"
gotolabel_4;
voidluru()
intd;
a[i].m[b].df);
a[i].m[b].sj=shuijin(a[i].m[b].yfgz);
a[i].m[b].sfgz=shifagongzi(a[i].m[b].yfgz,a[i].m[b].sf,a[i].m[b].df,a[i].m[b].sj);
a[i].zsfgz=0;
for(k=0;
k<
12;
k++)
a[i].zsfgz+=a[i].m[k].sfgz;
=1&
c!
1继续\n2返回主菜单\n"
gotolabel_2;
else
if(a[i].m[b].yuefen==b+1)
已有该月记录\n1覆盖原有记录\n2返回上级\n"
if(a[i].m[b].yuefen==NULL)
=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 实验 报告
![提示](https://static.bingdoc.com/images/bang_tan.gif)