C语言课程设计教师工资管理系统说明书文档格式.docx
- 文档编号:18613897
- 上传时间:2022-12-29
- 格式:DOCX
- 页数:25
- 大小:68.40KB
C语言课程设计教师工资管理系统说明书文档格式.docx
《C语言课程设计教师工资管理系统说明书文档格式.docx》由会员分享,可在线阅读,更多相关《C语言课程设计教师工资管理系统说明书文档格式.docx(25页珍藏版)》请在冰豆网上搜索。
;
需求分析
本系统是一个学校内部工资管理系统。
对教职员工的基本信息和工资信息进行添加和修改,以供财务处教师工资信息管理,提高了人员的工作效率。
系统总体设计
1:
整体结构流程图
详细设计
对应于总体设计时的系统功能模块图,各个功能模块的处理逻辑如下:
信息输入模块:
打开工资信息文件;
while( 继续输入)
{
创建工资档案;
将读入信息添加到工资信息文件中;
是否继续输入;
}
关闭图书信息文件;
信息浏览模块:
打开分类信息列表;
while(不到文件结束)
选择列表方式查看
关闭工资信息文件返回主菜单;
信息查询模块:
while(仍继续查询)
if(按工号查询)
读入查询的工资条件;
打开工资信息文件;
while(不到文件结束)
{
顺序读出一个工资信息;
if(该工资信息符合条件)输出该工资信息;
提示共有几条符合条件的记录;
else
if(按姓名查询)
读入工资条件;
打开图书信息文件;
while(不到文件结束)
{
顺序读出一个工资的信息;
if(该工资信息的学历符合条件)输出该工资的信息;
提示符合条件的记录数;
else提示输入不合适;
提示是否继续查询;
系统测试
用以下的例子做测试,选择输入操作,依次输入,图书条码,作者名,返回则选择浏览、查询、修改、删除功能。
教
师
工号
姓
名
月份
应发工资
各种折扣
实发工资
岗位工资
技能工资
职务津贴
职龄津贴
交通补贴
业绩津贴
房租扣款
公积金
水电费
其他扣款
111
aaa
1
2000
100
200
50
20
2230
222
bbb
1900
150
2130
333
ccc
2330
软件使用说明书
打开该程序系统,浏览菜单,根据需要选择功能,进行各项操作。
操作如下:
点击运行,进入菜单选择。
输入:
将所需的信息输入。
进入查询信息:
则屏幕会出现两个对话框——按工号和姓名查找,查处相应工资信息。
当查询不能显示需要时进入选择是否继续,选是则重新输入自己所要的信息;
选否则返回
当信息输入正确,进入你所需要的菜单程序中:
工资信息:
显示月份、工号、姓名、应发工资、各种折扣、实发工资等。
总结
该系统以教师工资信息管理为背景,涵盖了财务处对教师工资信息管理的多种功能,并且有一定的可行性和安全性,确保了各项指定功能得以运行。
本系统以基本函数、结构体、枚举性、文件以及链表等多方位知识贯穿实现。
通过此次编程培养了我们结构化程序设计的思想,加深了对高级语言基本语言要素和控制结构的理解,锻炼我们独立思考制作程序的能力,并且掌握了一些课程设计的相关知识与实践操作能力,为以后的学习提供了锻炼的机会。
经过设计和开发,教师工资管理系统基本开发完毕。
使学校财务处方便进行数据备份和恢复、数据删除。
对于数据的一致性的问题也通过程序进行了有效的解决。
从而是我对c语言这门课程有了更好的了解。
但是由于设计时间较短,所以该系统还有许多不尽如人意的地方,比如联机文档比较少,用户界面不够美观,出错处理不够等多方面问题。
这些都有待进一步改善。
参考文献
[1]c++程序设计教程,王连相,中国铁道出版社,2007
[2]C语言程序设计,谭浩强,清华大学出版社,1999
[3]C程序设计题解与上机指导,谭浩强,清华大学出版社,1999
[4]C语言的实际应用,安徽科学技术出版社,2000
[5]C语言函数手册,机械工业出版社,1999
[6]C语言实用程序荟萃,西安电子科技大学出版社,1993
致谢
在编写程序的过程中,我们得到了丁政建老师的精心指导以及孜孜不倦的教诲,在老师的指导下,我们的能力得到了提高,同时养成了科学、严谨的作风和习惯,在此,我们对老师的精心栽培表示衷心的感谢!
感谢我们小组同学对我的帮助和指点,尤其感谢我的舍友在非常时期,在生活和学习上帮我许多忙。
在课设即将完成之际,我的心情无法平静,从开始进入课题到课设的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意。
附件Ⅰ部分原程序代码
#include<
stdio.h>
/*标准输入输出函数库*/
stdlib.h>
/*标准函数库*/
malloc.h>
/*内存分配*/
string.h>
/*字符串函数库*/
conio.h>
/*屏幕操作函数库*/
#defineTITLE"
\n月份工号姓名应发工资各种折扣实发工资\n"
#defineDATA"
%2d%4ld%-7s%5.1f%8.1f%8.1f\n"
p1->
month,p1->
num,p1->
name,p1->
should_pay,p1->
rebate,p1->
actual_pay
typedefstructpay
longnum;
/*工号*/
shortmonth;
/*月份*/
charname[20];
/*姓名*/
floatgw,jn,zw,zl,jt,yj;
/*岗位工资,技能工资,职务津贴,职龄津贴,交通补贴,业绩津贴*/
floatshould_pay;
/*应发工资*/
floatfz,gj,sd,others;
/*房租扣款,公积金,水电费,其它扣款*/
floatrebate;
floatactual_pay;
/*实发工资*/
structpay*next;
}PAY;
FILE*fp;
PAY*p1=NULL,*p2=NULL,*head=NULL;
voidmenu();
PAY*input();
voidoutput();
voidsave(PAY*head);
PAY*open();
PAY*insert();
voidsearch();
PAY*del();
PAY*revise();
/*主程序模块*/
voidmain(void)
shortsel;
do
menu();
scanf("
%d"
&
sel);
switch(sel)
case1:
head=input();
//输入模块
break;
case2:
head=insert();
//插入模块
case3:
head=revise();
//修改模块
case4:
head=del();
//删除模块
case5:
search();
//查找模块
case6:
output();
//输出模块
case7:
save(head);
//保存模块
case0:
}while(sel!
=0);
/*菜单*/
voidmenu()
printf("
\n\n\n\n\n\n\n"
);
\t\t\t\t*主菜单选项*\n\n"
\t\t\t\t1.创建工资档案\n"
\t\t\t\t2.新增工资信息\n"
\t\t\t\t3.修改工资信息\n"
\t\t\t\t4.删除工资信息\n"
\t\t\t\t5.查找工资信息\n"
\t\t\t\t6.分类信息列表\n"
\t\t\t\t7.保存信息\n"
\t\t\t\t0.退出\n"
\n\n\n\n\n\n\n\n"
/*输入模块*/
PAY*input()
shortn=1;
p1=(PAY*)malloc(sizeof(PAY));
if(p1==NULL)
内存不足,无法创建链表!
"
getch();
\n请输入第%d位职工的信息(以工号为0结束):
\n"
n);
工号:
p1->
num);
if(p1->
num==0)
按任意键返回!
free(p1);
return0;
getchar();
姓名:
gets(p1->
name);
工资月份:
month);
岗位工资,技能工资,职务津贴,职龄津贴,交通补贴,业绩津贴:
%f,%f,%f,%f,%f,%f"
gw,&
jn,&
zw,&
zl,&
jt,&
yj);
房租扣款,公积金,水电费,其它扣款:
%f,%f,%f,%f"
fz,&
gj,&
sd,&
others);
should_pay=p1->
gw+p1->
jn+p1->
zw+p1->
zl+p1->
jt+p1->
yj;
rebate=p1->
fz+p1->
gj+p1->
sd+p1->
others;
actual_pay=p1->
should_pay-p1->
rebate;
while(p1!
=NULL)
if(n==1)
head=p1;
else
p2->
next=p1;
n++;
p2=p1;
请输入第%d位职工的信息(以工号为0结束):
p1=NULL;
next=NULL;
//editbyYan-XingyuClassNetwork-021
职工信息已输入,请按任意键返回,并存盘……"
returnhead;
/*输出模块*/
voidoutput()
shortsel,flag,month;
floatmin,max;
\n\n请选择您的列表方式:
\t\t1.全部清单\n"
\t\t2.按月输出\n"
\t\t3.按工资段输出\n"
\t\t0.返回\n"
=1&
&
sel!
=2&
=3&
head=open();
if(head==NULL)
return;
\n\t\t\t******全部清单******\n"
printf(TITLE);
p1=head;
printf(DATA);
p1=p1->
next;
}while(p1!
=NULL);
flag=0;
输入要查的月份:
\n\t\t\t******第%d月工资清单******\n"
month);
month==month)
flag=1;
if(flag==0)
没有该月清单\n"
输入最低工资:
%f"
min);
输入最高工资:
max);
\n\t\t******%5.1f到%5.1f工资的名单******\n"
min,max);
actual_pay>
min&
actual_pay<
max)
没有该工资段的职工\n"
/*保存文件*/
voidsave(PAY*head)
shortwrite;
fp=fopen("
pay.txt"
"
w"
if(fp==NULL)
创建文件失败!
p1=p2=head;
write=fwrite(p1,sizeof(PAY),1,fp);
if(!
write)
无法写入文件!
fclose(fp);
成功存盘!
/*打开文件*/
PAY*open()
shortn=1,read;
r"
无法打开档案文件!
returnNULL;
if((p1=p2=(PAY*)malloc(sizeof(PAY)))==NULL)
内存不足!
read=fread(p1,sizeof(PAY),1,fp);
read)
文件读取出错!
1"
next==NULL)
if((p1=(PAY*)malloc(sizeof(PAY)))==NULL)
2"
}while(p1->
next!
/*插入模块*/
PAY*insert()
PAY*p3=NULL;
charsel;
请输入要插入的职工信息:
p3=(PAY*)malloc(sizeof(PAY));
if(p3==NULL)
p3->
gets(p3->
should_pay=p3->
gw+p3->
jn+p3->
zw+p3->
zl+p3->
jt+p3->
rebate=p3->
fz+p3->
gj+p3->
sd+p3->
actual_pay=p3->
should_pay-p3->
next=p3;
成功插入,是否继续?
是(Y)否(N)\n"
sel=getch();
}while(sel=='
Y'
||sel=='
y'
\n任意键返回,并存盘……\n"
/*查找模块*/
voidsearch()
charname[20],choose;
\n选择查找方式:
\t\t1.按工号查找\n"
\t\t2.按姓名查找\n"
=2);
输入要查的工号:
%ld"
输入要查的姓名:
gets(name);
while((p1->
=NULL)&
(p1->
num!
=num)&
(strcmp(p1->
name,name)!
=0))//用成p1!
=NULL有问题?
if((p1->
num==num)||strcmp(p1->
name,name)==0)
您要查找的信息如下:
没有该信息!
是否继续?
choose=getch();
}while(choose=='
||choose=='
任意键返回"
/*删除模块*/
PAY*del()
return
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 教师工资 管理 系统 说明书