教师工资管理系统课程设计报告整理.docx
- 文档编号:28836235
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:28
- 大小:255.58KB
教师工资管理系统课程设计报告整理.docx
《教师工资管理系统课程设计报告整理.docx》由会员分享,可在线阅读,更多相关《教师工资管理系统课程设计报告整理.docx(28页珍藏版)》请在冰豆网上搜索。
教师工资管理系统课程设计报告整理
新能源与动力工程学院
课程设计报告
程序设计课程设计〔C/C++〕
专业
电子信息工程
班级
电信1501班
姓名
郭秀琴
学号
202112315
指导教师
王慧敏
2021年12月
新能源与动力工程学院课程设计任务书
课程名称:
C语言程序设计课程设计指导教师〔签名〕:
班级:
电信1501班姓名:
郭秀琴学号:
202112315
一、课程设计题目
教师工资管理系统
二、课程设计使用的原始资料〔数据〕及设计技术要求:
1.教材
2.课程设计说明书
三、课程设计的目的
通过课程设计,主要到达以下目的:
1.使学生增进对程序设计的感性认识,加深对C语言理论方面的理解;
2.使学生掌握C语言程序的内部函数模块的应用。
3.使学生了解和掌握C语言程序设计的软硬件设计过程、方法及实现,为以后设计程序系统打下良好根底。
四、课程设计的主要内容和要求
该程序是教师工资系统管理,主要用到结构体、函数的调用、以及一些根本的运算函数以及输入输出函数
五、工作进度安排
时间
设计内容
要求
12月20日
熟悉题目、查阅资料,拟定设计方案
按要求制定出切实可行的方案
12月21日
设计程序构造及完成函数调用查询
完成系统结构及局部程序设计
12月22日—23日
充分调用各类函数完成剩余局部程序
先进行程序组装及完成局部程序调试
12月24日—25日
产品整理调试并完成设计报告
实现设计要求,报告按要求装订成册
12月26日
答辩
展示产品,并简明扼要自述五分钟
六、主要参考文献
〔1〕Stephen?
PrimerPlus?
著由云巅工作室译北京:
人民邮电出版社2021年12月
〔2〕谭浩强.?
程序设计〔第四版〕?
北京:
清华大学出版社2021年6月
审核批准意见
系主任〔签字〕年月日
指导教师评语及成绩评定表
指导教师评语
成绩
设计过程
〔40〕
设计报告
〔50〕
小组辩论
〔10〕
总成绩
〔100〕
指导教师签字:
年月日
一、设计目的…………………………………………………….1
二、总体设计…………………………………………………….1
三、详细设计…………………………………………………….2
四、程序测试…………………………………………………….6
五、运行结果…………………………………………………….6
六、结论与心得………………………………………………….8
参考文献………………………………………………………….10
一、设计目的
该系统是为了完成教师工资的管理,各个队友分工合作最后完成教师工资的管理系统,以便更好更方便的管理教师工资。
1.删除、统计等功能的实现;
2.根本掌握面向过程程序设计的根本思路和方法,到达熟练掌握C语言的根本知识和技能,能够利用所学到的知识和技能,解决简单的程序设计问题。
为了能够方便对教师的工资进行管理,对信息进行排序、插入、查找;
3.培养上机动手能力,使学生稳固?
C语言程序设计?
课程的学习内容,掌握如何使用面向过程的计算机语言进行程序设计的根本方法,强化上机动手能力,闯过编程关为后续各门计算机课程的学习打下坚实根底;
4.掌握各类C语言函数的使用方法及技巧,充分运用各级C语言函数完成简单程序的设计与运行;
二、需求分析
〔1〕教师信息处理。
该模块包括教师信息的输入、修改、删除以及浏览和统计等功能,每个模块在程序系统中用一个函数来实现,模块总体框图如图〔1〕所示
图一
〔1〕模式框架图;
〔2〕教师数据处理。
该系统包括以下大板块:
A、在数据处理过程中会根据教师号录入教师的根本工资、津贴、生活补贴补贴、费、水电费、房租、所得税、卫生费、公积金等根本数据;
B、教师实发工资,应发工资,合计扣款计算;
C、教师数据管理;
D、教师数据查询;
E、教师综合信息输出;
三、详细设计
〔1〕总体的流程图;
〔2〕任务分配;
〔3〕辅助信息的采集与数据处理
A、了解教师工资的具体管理与发放情况;
B、进行根本运算函数确实定与改写;
C、主函数、结构体函数、调用函数确实定;
第一局部
structteacher*creat();
structteacher
{
charnum[11];
charname[10];
charsex[8];
charunit[10];
charaddress[10];
longtelnum;
floatsalary_1;
floatallowance;
floatlife_allow;
floatsalary_2;
floattel_fee;
floattax;
floathealth_fee;
floatwater_fee;
floatrent;
floatgrant;
floattotal_fee;
floatactual_salary;
structteacher*next;
};
第二局部
structteacher*insert(structteacher*head,structteacher*teach)
{
structteacher*p0,*p1,*p2;
p1=head;
p0=teach;
if(head==NULL)
{
head=p0;p0->next=NULL;
}
else
{
while((p0->num>p1->num)&&(p1->next!
=NULL))
{p2=p1;p1=p1->next;}
if(p0->num
{
if(head==p1)head=p0;
elsep2->next=p0;
p0->next=p1;
}
else
{p1->next=p0;p0->next=NULL;}
}
n=n+1;
return(head);
}
四、程序调试与错误分析
1.刚开始运行插入函数时,总不能插入正确信息
2.开始编译排序函数时出现无法正确插入函数及无法输出正确结果的情况。
3.编译查询函数时,总是无法输出正确信息。
4.各级函数调用出现很大问题,对函数使用不当以及函数调用的错误都造成了很多错误。
5.对删除函数的调用错误,导致输出结果错误。
6.对于很多C语句的使用不够熟练,出错较多。
7.针对以上错误,我虚心求教,向老师和同学求教,并顺利解决了程序编译过程中出现的问题和错误,成功的完成了本程序的编译
五、运行结果
进入页面图2
程序的输入图3
程序的输出图4
六、结论与心得
课程设计是培养学生综合运用所学知识、发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。
教师工资管理系统这个题目很大,设计量也很大,也很繁琐,让我认识到这个课题非一人可以解决。
但从另一方面,为了出色地完成这次课程设计,我不断地细读课本,获得新知识的同时,提升了自己的能力。
更重要的是我们进行了团队合作。
整个设计分模块实现功能,每个模块分别有不同的函数。
每个同学都有自己的分工。
链表的建立实现输入信息功能,相比拟于数组更加方便,更加节省程序的运行时间和存储空间。
通过使用文件fread和write函数方便的将数据信息写入文件并载入显示段。
通过这十几天的训练和设计与团队合作,我学会了很多,也对C语言程序设计有了一个新的认识与理解,从中也得到了很多乐趣,在这两周时间里看到同学们自己的劳动成果还是挺开心。
而C语言的设计为自己以独立编程打下了根底。
参考文献
[1]【美】StephenPrata?
PrimerPlus?
著由云巅工作室译。
北京:
人民邮电出版社2021年12月。
[2]谭浩强.?
程序设计〔第四版〕?
北京:
清华大学出版社2021年6月。
附录一
局部源程序
#include
#include
#include
#defineLENsizeof(structteacher)
structteacher*creat();
structteacher
{
charnum[11];
charname[10];
charsex[8];
charunit[10];
charaddress[10];
longtelnum;
floatsalary_1;
floatallowance;
floatlife_allow;
floatsalary_2;
floattel_fee;
floattax;
floathealth_fee;
floatwater_fee;
floatrent;
floatgrant;
floattotal_fee;
floatactual_salary;
structteacher*next;
};
intn;
structteacher*head;
FILE*fp;
structteacher*creat(void)
{
structteacher*p1,*p2;
n=0;
p1=p2=(structteacher*)malloc(LEN);
printf("教师号:
");
scanf("%d",&p1->num);fflush(stdin);
printf("教师姓名:
");
gets(p1->name);
printf("教师性别:
");
gets(p1->sex);
printf("单位名称:
");
gets(p1->unit);
printf("家庭地址:
");
gets(p1->address);
printf("号码:
");
scanf("%ld",&p1->telnum);fflush(stdin);
printf("根本工资:
");
scanf("%f",&p1->salary_1);fflush(stdin);
printf("津贴:
");
scanf("%f",&p1->allowance);fflush(stdin);
printf("生活补贴:
");
scanf("%f",&p1->life_allow);fflush(stdin);
printf("费:
");
scanf("%f",&p1->tel_fee);fflush(stdin);
printf("个人所得税:
");
scanf("%f",&p1->tax);fflush(stdin);
printf("房租:
");
scanf("%f",&p1->rent);fflush(stdin);
printf("公积金:
");
scanf("%f",&p1->grant);fflush(stdin);
printf("水电费:
");
scanf("%f",&p1->water_fee);fflush(stdin);
printf("卫生费:
");
scanf("%f",&p1->health_fee);fflush(stdin);
p1->salary_2=p1->salary_1+p1->allowance+p1->life_allow;
p1->total_fee=p1->tel_fee+p1->water_fee+p1->rent+p1->tax+p1->health_fee+p1->grant;
p1->actual_salary=p1->salary_2-p1->total_fee;
head=NULL;
while(p1->num!
=0)
{
n=n+1;
if(n==1)head=p1;
elsep2->next=p1;
p2=p1;
p1=(structteacher*)malloc(LEN);
printf("教师号:
");
scanf("%d",&p1->num);fflush(stdin);
printf("教师姓名:
");
gets(p1->name);
printf("教师性别:
");
gets(p1->sex);
printf("单位名称:
");
gets(p1->unit);
printf("家庭地址:
");
gets(p1->address);
printf("号码:
");
scanf("%ld",&p1->telnum);fflush(stdin);
printf("根本工资:
");
scanf("%f",&p1->salary_1);fflush(stdin);
printf("津贴:
");
scanf("%f",&p1->allowance);fflush(stdin);
printf("生活补贴:
");
scanf("%f",&p1->life_allow);fflush(stdin);
printf("费:
");
scanf("%f",&p1->tel_fee);fflush(stdin);
printf("个人所得税:
");
scanf("%f",&p1->tax);fflush(stdin);
printf("房租:
");
scanf("%f",&p1->rent);fflush(stdin);
printf("公积金:
");
scanf("%f",&p1->grant);fflush(stdin);
printf("水电费:
");
scanf("%f",&p1->water_fee);fflush(stdin);
printf("卫生费:
");
scanf("%f",&p1->health_fee);fflush(stdin);
p1->salary_2=p1->salary_1+p1->allowance+p1->life_allow;
p1->total_fee=p1->tel_fee+p1->water_fee+p1->rent+p1->tax+p1->health_fee+p1->grant;
p1->actual_salary=p1->salary_2-p1->total_fee;
}
p2->next=NULL;
return(head);
}
voidprint(structteacher*head)
{
structteacher*p;
printf("\nNow,These%drecordsare:
\n",n);
p=head;
if(head!
=NULL)
do
{
printf("教师号:
%5d\t\t",p->num);
printf("教师姓名:
%-10s\n",p->name);
printf("教师性别:
%-6s\t\t",p->sex);
printf("单位名称:
%-10s\n",p->unit);
printf("家庭地址:
%-10s\t",p->address);
printf("号码:
%8ld\n",p->telnum);
printf("根本工资:
%5.0f\t\t",p->salary_1);
f\n",p->allowance);
printf("生活补贴:
%5.0f\t",p->life_allow);
printf("\t费:
%5.0f\n",p->tel_fee);
printf("个人所得税:
%5.0f\t",p->tax);
printf("卫生费:
%5.0f\n",p->health_fee);
printf("水电费:
%5.0f\t\t",p->water_fee);
printf("房租:
%5.0f\n",p->rent);
printf("公积金:
%5.0f\t\t",p->grant);
printf("应发工资:
%5.0f\n",p->salary_2);
printf("合计扣款:
%5.0f\t\t",p->total_fee);
printf("实发工资:
%5.0f\n\n\n",p->actual_salary);
p=p->next;
}while(p!
=NULL);
}
structteacher*insert(structteacher*head,structteacher*teach)
{
structteacher*p0,*p1,*p2;
p1=head;
p0=teach;
if(head==NULL)
{
head=p0;p0->next=NULL;
}
else
{
while((p0->num>p1->num)&&(p1->next!
=NULL))
{p2=p1;p1=p1->next;}
if(p0->num
{
if(head==p1)head=p0;
elsep2->next=p0;
p0->next=p1;
}
else
{p1->next=p0;p0->next=NULL;}
}
n=n+1;
return(head);
}
structteacher*del(structteacher*head,intnumber)
{
structteacher*p1,*p2;
if(head==NULL){printf("\nlistnull\n");return(head);}
p1=head;
while(number!
=p1->num&&p1->next!
=NULL)
{p2=p1;p1=p1->next;}
if(number==p1->num)
{
if(p1==head)head=p1->next;
elsep2->next=p1->next;
printf("删除:
%d\n",number);
n=n-1;
}
elseprintf("%ldisnotfound\n",number);
return(head);
}
voidsave()
{inti;
structteacher*p1;
p1=head;
if((fp=fopen("teacher_list","wb"))==NULL)
{printf("cannotopenfile\n");
return;}
for(i=0;i {if(fwrite(p1,sizeof(structteacher),1,fp)! =1) printf("filewriteerror\n"); p1=p1->next; } fclose(fp); } voidload() { structteacher*p1,*p2; if((fp=fopen("teacher_list","rb"))==NULL) {printf("cannotopenfile\n"); return; } p1=p2=(structteacher*)malloc(LEN); head=p1; do { if(fread(p1,sizeof(structteacher),1,fp)! =1) {printf("fileerror\n"); gotoend;} if(p1->next! =NULL) {p2=p1; p1=(structteacher*)malloc(LEN); p2->next=p1; } else break; }while (1); end: fclose(fp); } voidquery(structteacher*p) { intno; p=head; printf("pleaseinputnum: \n"); scanf("%d",&no); while(p->num! =no) p=p->next; printf("根本工资: %5.0f\t\t",p->salary_1); printf("津贴: %5.0f\n",p->allowance); printf("生活补贴: %5.0f\t",p->life_allow); printf("\t费: %5.0f\n",p->tel_fee); printf("个人所得税: %5.0f\t",p->tax); printf("卫生费: %5.0f\n",p->health_fee); printf("水电费: %5.0f\t\t",p->water_fee); printf("房租: %5.0f\n",p->rent); printf("公积金: %5.0f\t\t",p->grant); printf("应发工资: %5.0f\n",p->salary_2); printf("合计扣款: %5.0f\t\t",p->total_fee); printf("实发工资: %5.0f\n\n\n",p->actual_salary); } voidedit(structteacher*p) { inta; printf("pleaseinputnum: \n"); scanf("%d",&a); printf("%d\n\n",a); for(;;) {if(p->num==a) { printf("教师号: %5d\t\t",p->num); printf("教师姓名: %-10s\n",p->name); printf("教师性别: %-6s\t\t",p->sex); printf("单位名称: %-10s\n",p->unit); printf("家庭地址: %-10s\t",p->address); printf("号码: %8ld\n",p->telnum); printf("根本工资: %5.0f\t\t",p->salary_1); printf("津贴: %5.0f\n",p->allowance); printf("生活补贴: %5.0f\t",p->life_allow); printf("\t费: %5.0f\n",p->tel_fee); printf("个人所得税: %5.0f\t",p->tax); printf("卫生费: %5.0f\n",p->health_fee); printf("水电费: %5.0f\t\t",p->water_fee); printf("房租: %5.0f\n",p->rent); printf("公积金: %5.0f\t\t",p->grant); printf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教师工资 管理 系统 课程设计 报告 整理