C语言程序设计说明书Word格式.docx
- 文档编号:3279240
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:24
- 大小:373.71KB
C语言程序设计说明书Word格式.docx
《C语言程序设计说明书Word格式.docx》由会员分享,可在线阅读,更多相关《C语言程序设计说明书Word格式.docx(24页珍藏版)》请在冰点文库上搜索。
输入错误员工号,显示查无此人;
输入错误字符显示“WRONG”首先定义一个变量X;
进入循环体While;
当X=1时,执行函数dele_num();
否则,输出”Wrong!
”;
如果X=0,则跳出While循环。
然后,执行dele_num()函数;
首先,定义文件指针fp,分别定义变量I,j,n及字符数组num;
执行if语句,以读文件的方式打开“yuangong”文件,如果“yuangong”文件等于空,则输出“不能打开yuangong文件”,并退出;
以读文件的方式输出删除前的员工信息;
然后,输入要删除的员工号,进入for语句,判断文件中的员工号与输入要删除的员工号是否相等,如果相等并且i<
n,进入for循环,如果要删除的员工号i>
=最后一个员工号,则输出“没有这个员工号的职工”并退出关闭文件;
如果n=1则关闭文件并退出;
依次执行for语句,以写文件的方式分别将要删除的员工之前的员工信息和之后的员工信息,分别写入“yuangong”文件,并输出删除后的员工的所有信息;
。
修改模块:
该模块实现按员工号对员工所有信息的修改。
修改成功显示已修改后的文件数据;
输入错职工号显示查无此人;
输入错误字符显示“WRONG”。
首先定义一个变量X;
当X=1时,执行函数modi_num();
否则,输出”输错误!
然后,执行modi_num()函数;
首先,定义文件指针fp,分别定义变量I,j,及字符数组num;
在输入要修改的员工号,进入for循环,以读文件的方式打开文件,如果yuangong文件中的员工号与输入的员工号相同,则跳出for循环;
然后,执行if语句进行判断文件是否关闭,如果关闭,则输出“没有要修改的员工号的员工”并退出;
否则,输出要修改的员工的所有信息;
然后,输入要修改的员工的信息;
让文件指针指向该修改的记录开头,以向文件中写方式,将修改后的员工信息写入“yuangong”文件中的相应位置;
最后,显示修改后的文件数据,并输出文件中的所有信息。
删除模块:
该模块实现按员工号对员工所有信息的删除。
删除成功显示删除后剩下的其他员工的信息;
输入错误员工号,显示查无此人。
统计模块根据输入的工资,显示大于该工资的员工的所有信息。
五、使用说明
输入后屏幕上提示登陆成功以及显示下面菜单如果你要执行某一功能,就按下该功能所对应的数字即可。
1、员工信息输入:
在主菜单中输入1则系统会进入新界面并自动提示你输入职工号,输入完成后按回车键系统会逐一提示输入姓名性别年龄工资,输入完成后会继续提示输入下一个职工的职工号。
2员工信息查询:
在主菜单中输入2则进入查询子菜单界面,屏幕上会按先后顺序显示输入的记录,并统计输入的个数。
此时在界面里出现数字1和0。
系统会提示你选择(0-1)。
输入1后则进入按员工号查询员工信息,此时系统会自动提示你输入要查询的职工号。
输入员工号后会出现该员工的信息。
输入0则返回主菜单。
(1).进入子菜单
(2)选择1查询员工
(3)输入错误工号
3员工信息修改:
在主菜单中输入3则系统进入修改子菜单界面。
输入1是按员工号修改员工信息,系统会自动提示你输入要修改的员工号,然后进行修改。
输入错职工号显示查无此人。
输入0是返回主菜单。
(1)进入子菜单
(2)选择员工号进行修改
(3)
修改后的结果
4员工信息删除:
在主菜单中输入4系统界面是删除子菜单。
输入1则按员工号删除记录,系统会自动提示你输入要删除的员工信息,进入新界面后系统会提示你删除前该员工的信息包括记录号、员工号、姓名、性别、年龄、工资等。
输入错误员工号,显示没有该员工号的员3工。
一个记录已经删除了时系统会提示删除后的员工信息。
输入0则返回主菜单。
(1)进入子菜单
(2)选择进行删除
5显示员工记录
6调查工资情况
输入1500则调出工资大于1500元的员工
7员工信息追加:
进入后系统会自动提示你要输入员工的个数,按照输入格式:
员工号、姓名、性别、年龄、工资输入员工的信息,这样就获取一个员工的记录,并将该员工记录自动写入文件,如果想退出此系统可以按“0”,就可以退出此系统了
0退出系统
六、结束语
接到C语言课程设计的作业我十分高兴,终于学到的东西可以运用了。
在老师的指导和大家的共同努力下,我们终于完成了程序的大体编制。
程序中包括主函数、输入模块、查询模块、修改模块、删除模块、追加模块。
其中在输入模块中指针文件运用的比较好,因为指针是C的一个特色,它能有效的表示复杂的数据结构,动态的分配内存,方便的使用字符串、数组,可谓是C的精华。
在程序设计中我们最大的收获就是:
我们真正从实践的角度体会到了C语言在实际生活中的作用,也深刻体会到了它带来的方便快捷。
不但使我们对C语言有更进一步的巩固和认识还使我们懂得了团队协作的重要!
让我们将一年所学的C语言知识学为所用,让我们感觉到了它的神奇魅力。
美中不足的就是:
由于我们知识的不足以及条件的限制,本系统还有许多漏洞与不足,希望老师给以批评与帮助,我们会积极改正。
而且本程序还处于初级阶段的职工工资管理功能中,只实现了对职工工资的录入、
参考文献:
[1]谭浩强.C程序设计.清华大学出版社.2005年7月
[2]陈志华.Delphi6.0编程实例.中国水利水电出版社.2002年6月
[3]DavidM.Collopy、罗铁庚.C语言教程:
模块化程序设计.清华大学出版社.2004年9月
[4]邓文新、张宏烈.C语言程序设计方法.哈尔滨工业大学出版社.2004年2月
[5]田淑清.全国计算机等级考试二级教程.高等教育出版社.1998年7月
组员分工
1、组长:
李响
总体设计;
主菜单程序、录入数据程序的编码与调试
2、组员:
周金娟
修改、删除数据程序的编码与调试
组员:
谢敏
显示数据、添加数据程序的编码与调试
组员:
李伟生
数据统计、系统维护程序的编码与调试
附录(程序清单)
#include<
stdio.h>
#defineNUM8
voidinput();
voidsearch();
voidsearch_num();
voiddele();
voiddele_name();
voiddele_num();
voidmodi();
voidmodi_num();
voidoutput();
voidstat();
voidrun();
structemploee/*员工数据结构*/
{
charno[5];
charname[8];
charsex[3];
intage;
intsalar;
intgongzi;
intjiangjin;
intbaoxian;
intshuijin;
}yuangong[NUM],newyuangong;
main()
{intx;
while
(1)
printf("
========***主菜单***=========\n"
);
|1.输入员工记录|\n"
|2.查询员工记录|\n"
|3.修改员工记录|\n"
|4.删除员工记录|\n"
|5.显示员工记录|\n"
|6.调查工资情况|\n"
|7.追加员工记录|\n"
|0.退出系统|\n"
\n"
***欢迎使用员工工资管理系统***\n"
请选择(0-7):
scanf("
%d"
&
x);
switch(x)
case1:
input();
break;
case2:
search();
case3:
modi();
case4:
dele();
case5:
output();
case6:
stat();
case7:
run();
default:
\nWrong!
"
}
if(x==0)break;
}
voidinput()
FILE*fp;
intn,i;
if((fp=fopen("
yuangong"
"
wb"
))==NULL)
{
printf("
不能建立yuangong文件\n"
exit
(1);
输入员工人数:
scanf("
n);
输入格式:
员工号姓名性别年龄工资奖金保险税金<
Enter>
for(i=0;
i<
n;
i++)/*循环获取n个员工记录*/
第%d个员工:
i+1);
%s%s%s%d%d%d%d%d"
yuangong[i].no,yuangong[i].name,yuangong[i].sex,
&
yuangong[i].age,&
yuangong[i].gongzi,&
yuangong[i].jiangjin,&
yuangong[i].baoxian,&
yuangong[i].shuijin);
yuangong[i].salar=yuangong[i].gongzi+yuangong[i].jiangjin-yuangong[i].baoxian-yuangong[i].shuijin;
i++)/*将n个员工记录写入文件*/
fwrite(&
yuangong[i],sizeof(structemploee),1,fp);
fclose(fp);
/*************************统计模块**********************/
voidstat()
intn,num;
if((fp=fopen("
rb"
不能打开yuangong文件\n"
工资数:
num);
记录号员工号姓名性别年龄实发工资奖金保险税金\n"
for(n=0;
fread(&
yuangong,sizeof(structemploee),1,fp);
n++)
if(yuangong[n].salar>
=num)
%6d%6s%9s%4s%5d%6d%7d%5d%6d\n"
n+1,yuangong[n].no,yuangong[n].name,yuangong[n].sex,
yuangong[n].age,yuangong[n].salar,yuangong[n].gongzi,yuangong[n].jiangjin,yuangong[n].baoxian,yuangong[n].shuijin);
/********************删除模块*******************/
voiddele()
intx;
while
(1)
\n\n\t\t删除子菜单\n"
\t\t*********\n"
\t\t1.按员工号删除记录\n"
\t\t0.返回主菜单\n"
\t请选择(0-1):
switch(x)
{case1:
dele_num();
\nWrong!
if(x==0)break;
voiddele_num()
inti,j,n;
charnum[5];
删除前:
yuangong[n],sizeof(structemploee),1,fp);
%6s%6s%9s%4s%5d%6d%7d%5d%6d%6d\n"
/*n为yuangong文件中记录数*/
要删除的员工号:
%s"
num);
(strcmp(yuangong[i].no,num)!
=0&
&
i++)
if(i>
=n)
\t没有%s员工号的职工\n"
exit
(2);
fp=fopen("
w+"
if(n==1)/*一个记录已经删除了*/
exit(3);
for(j=0;
j<
i;
j++)
yuangong[j],sizeof(structemploee),1,fp);
for(j=i+1;
删除后:
fseek(fp,0,SEEK_SET);
i+1,yuangong[i].no,yuangong[i].name,yuangong[i].sex,
yuangong[i].age,yuangong[i].salar,yuangong[i].gongzi,yuangong[i].jiangjin,yuangong[i].baoxian,yuangong[i].shuijin);
/********************修改模块*******************/
voidmodi()
\n\n\t\t修改子菜单\n"
\t\t*********************\n"
\t\t1.按员工号修改\n"
\t\t0.返回主菜单\n"
\t请选择(0-1):
modi_num();
\n输错误!
voidmodi_num()
inti,j;
rb+"
不能打开yuangong文件\n"
要修改的员工号:
if(!
strcmp(yuangong[i].no,num))break;
if(feof(fp))
\t没有%s员工号的员工\n"
记录号员工号姓名性别年龄工资奖金保险税金\n"
%6d%6s%9s%4s%5d%7d%5d%6d%6d\n"
yuangong[i].age,yuangong[i].gongzi,yuangong[i].jiangjin,yuangong[i].baoxian,yuangong[i].shuijin);
第%d个记录:
newyuangong.no,newyuangong.name,newyuangong.sex,&
newyuangong.age,
newyuangong.gongzi,&
newyuangong.jiangjin,&
newyuangong.baoxian,&
newyuangong.shuijin);
/*获取新的员工记录*/
newyuangong.salar=newyuangong.gongzi+newyuangong.jiangjin-newyuangong.baoxian-newyuangong.shuijin;
fseek(fp,-(long)sizeof(structemploee),SEEK_CUR);
/*文件指针指向该修改的记录开头*/
newyuangong,sizeof(structemploee),1,fp);
/*用newyuangong覆盖当前记录*/
修改后:
/*显示修改后的文件数据*/
yuangong[i],sizeof(structemploee),1,fp)!
=0;
%6d%6s%9s%4s%5d%6d%7d%5d%6d%6d\n"
yuangong[i].age,yuangong[i].salar,yuangong[i].gongzi,yuangong[i].jiangjin,yuangong[i].baoxian,yuangong[i].shuijin);
/*************************查询模块***********************/
voidsearch()
\n\n\t\t查子菜单\n"
\t\t********************\n"
\t\t1.按员工号查询\n"
search_num();
default:
if(x==0)break;
voidsearch_num()
inti;
charnum;
要查询的员工号:
yuangong[i],sizeof(str
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 说明书