教师信息管理系统Word文档格式.docx
《教师信息管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《教师信息管理系统Word文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
自己在课程设计书写代码时,应该严格按要求处理,以便建立良好的程序设计风格。
2.课程设计题目
教师工资管理系统
每个教师的信息为:
教师号、姓名、工资月份、基本工资、津贴、补贴、岗贴、房贴、交通费、房租、储蓄、会费。
(1)教师信息处理
①输入教师信息
②
插入(修改)教师信息:
③
删除教师信息:
④
浏览教师信息:
(2)教师数据处理
①
按教师号录入基本工资、津贴、岗贴、补贴、房贴、交通费、房租、储蓄、会费。
②教师实发工资、应发工资、合计扣款计算。
提示:
计算规则如题目。
教师数据管理
输入教师号,读出并显示该教师信息,输入新数据,将改后信息写入文件。
教师数据查询:
输入教师号或其他信息,即读出所有数据信息,并显示出来。
⑤
教师综合信息输出
输出教师信息到屏幕。
二、正文(课程设计的主要内容,包括实验与观测方法和结果、仪器设备、计算方法、编程原理、数据处理、设计说明与依据、加工整理和图表、形成的论点和导出的结论等。
正文内容必须实事求是、客观真切、准确完备、合乎逻辑、层次分明、语言流畅、结构严谨,符合各学科、专业的有关要求。
)
1.功能描述
根据需求描述,本人按照结构化程序设计的原则将整个系统划分若干个功能模块。
系统各子模块的设计如下:
(1)输入教师信息模块
在主菜单中运用结构体teacher,输入教师信息,首先建立链表,将用户输入的学生信息存储到链表中,输入完成后提示用户时候继续输入,如果用户输入“Y”或“y”,则再次调用,实现继续输入学生信息的操作。
如果用户输入“N”或“n”,则返回主菜单界面。
(2)添加教师信息模块
在主菜单中调用teacher*insert(),然后按照提示依次输入教师信息,然后再调用voidprint()函数讲所有的教师信息记录打印出来。
然后再返回主菜单界面。
(3)删除教师信息模块
在主菜单中调用del()函数,以删除教师信息,首先按学号查询教师信息,如果没有找到教师信息,给出提示信息。
如果查找到该教师信息,给出改教师的全部信息,如果查找到,则删除该教师信息,给出删除成功的提示信息。
然后返回主菜单界面。
(4)浏览教师信息模块
在主菜单中调用voidprint()函数来显示教师信息,先判断链表是否为空。
如果链表不为空时,逐条显示链表中教师的信息,显示调用teacher*next()函数按照教师号的大小来显示教师的信息,然后返回主菜单界面。
(5)保存教师信息模块
在主菜单中调用voidsave()函数来保存教师信息到teacher_list这个文件中。
并给出“保存成功”的提示信息。
(6)查询教师信息模块
在主菜单中选择6的时候进行教师信息的查询,调用voidquery()函数,按教师号查询信息。
提示用户输入要查找的教师号,然后调用voidquery()函数,查找成功,最后打印出教师的信息。
(7)修改教师信息模块
在主菜单中调用voidedit()函数。
按教师号查找教师信息,如果找到教师信息,调用voidedit()函数提示用户输入新的教师信息,完成修改的操作。
操作结束后提示用户修改成功。
(8)加载教师信息模块
在主菜单中调用voidload()函数。
如果存在teacher_list文件并不为空,打开文件,找到教师信息。
如果存在teacher_list文件并为空,给出提示,“cannotopenfile”。
(9)退出系统模块
将链表中的数据全部释放掉,防止内存泄露,退出系统。
2.功能模块设计
2.1删除记录模块
删除记录模块流程图如图1所示。
图1删除记录模块流程图
/*删除模块*/
PAY*del()
{
shortsel;
longnum;
charname[20],choose;
head=open();
if(head==NULL)
returnNULL;
else
do
{
do
{
printf("
\n选择删除方式:
\n"
);
\t\t1.按教师编号删除\n"
\t\t2.按姓名删除\n"
scanf("
%d"
&
sel);
getchar();
}
while(sel!
=1&
&
sel!
=2);
switch(sel)
case1:
printf("
输入要删除的教师编号:
"
scanf("
%ld"
num);
break;
case2:
输入要删除的姓名:
gets(name);
p1=head;
if((p1->
num==num)||strcmp(p1->
name,name)==0)
head=p1->
next;
删除信息成功!
else
while((p1->
next!
=NULL)&
(p1->
num!
=num)&
(strcmp(p1->
name,name)!
=0))
{
p2=p1;
p1=p1->
}
if((p1->
p2->
next=p1->
free(p1);
printf("
\n删除信息成功!
else
\n没有该信息!
是否继续?
是(Y)否(N)\n"
choose=getch();
}
while(choose=='
Y'
||choose=='
y'
printf("
任意键返回,并存盘……"
getch();
returnhead;
}
2.2查询教师信息函数query()
函数原型:
voidquery(structteacher*p)
功能描述:
将链表teacher中的head指向p,然后让用户输入教师号no,依次在链表中需找p,如果教师号不对,则指针往后面拨动一下,使p=p->
next;
知道找到相对应的正确的教师号。
然后打印出教师的基本信息。
查询教师信息函数流程图如图2所示。
图2查询教师信息流程图
/*查找模块*/
voidsearch()
return;
\n选择查找方式:
\t\t1.按教师编号查找\n"
\t\t2.按姓名查找\n"
输入要查的教师编号:
输入要查的姓名:
while((p1->
=0))
p1=p1->
您要查找的信息如下:
printf(TITLE);
printf(DATA);
没有该信息!
任意键返回"
2.3修改教师信息函数edit()
函数原型:
voidedit(structteacher*p)
首先让用户输入希望修改的教师的教师号a,然后在链表中一条一条查找看p->
num是否等于a,如果找到,则让用户再次输入教师的具体信息,输入完毕跳出,转向主菜单界面。
如果没有找到,则令p=p->
next。
直到查询完所有的教师记录。
函数流程图如图3所示。
图3修改教师信息函数流程图
/*修改模块*/
PAY*revise()
\n查找要修改的对象:
while((p1->
=0))p1=p1->
您要修改的原始信息如下:
\n将上述信息改为如下信息:
教师编号:
p1->
姓名:
gets(p1->
name);
工资月份:
month);
基本工资,津贴,岗贴,补贴,房贴,交通费:
scanf("
%f,%f,%f,%f,%f,%f"
jb,&
ji,&
gt,&
bt,&
ft,&
jt);
房租,储蓄,会费:
%f,%f,%f,%f"
fz,&
cx,&
hf);
p1->
should_pay=p1->
jb+p1->
ji+p1->
gt+p1->
bt+p1->
ft+p1->
jt;
if(p1->
should_pay<
800)
p1->
gr=0;
elseif(p1->
should_pay>
=800&
2000)
gr=(p1->
should_pay-800)*5/100;
=2000&
5000)
should_pay-2000)*1/10+60;
else
should_pay-5000)*2/10+60+300;
p1->
rebate=p1->
fz+p1->
cx+p1->
hf+p1->
gr;
actual_pay=p1->
should_pay-p1->
rebate;
你要修改的信息不存在!
任意键返回,并存盘……"
}
3.运行结果
3.1系统主界面
用户刚进入系统时,如图4所示。
主菜单界面:
图4主菜单界面
用户根据自己的需求输入自己的选择。
3.2输入界面
用户在主菜单界面的时候输入1,输入界面如图5所示。
图5输入界面
3.3保存教师信息
保存信息成功后界面如图6所示。
图6保存教师信息界面
3.4添加教师信息界面
在主菜单中进入2——添加教师信息,然后依次插入教师的所有信息,最后打印链表里的记录,添加教师信息如图7所示。
图7添加教师信息界面
3.5查找并修改教师信息界面
首先将之前输入进去的教师信息进行保存,然后退出系统,再打开系统,查找要修改的教师信息,然后进行教师数据的修改。
查找并修改教师信息如图8和图9所示。
图8查找教师信息界面
图9修改教师信息界面
3.6删除教师信息
首先选择4-删除工资信息,然后根据提示选择要删除的信息。
删除教师信息如图10所示。
图10删除教师信息界面
3.7查找教师工资信息
首先选择5-查找工资信息,然后选择查找的方式进行查找,查找教师信息如图11所示。
图11查找教师工资信息界面
3.8分类信息查找
选择功能6-分类信息列表,选择列表的方式,分类信息查找如图12所示。
图12分类信息查找界面
三、结论(应当准确、完整、明确精练;
也可以在结论或讨论中提出建议、设想、尚待解决问题等。
持续一个学期的课程设计给了我太多的感触,开始从题目上看,感觉题目很大,设计量很大,也很复杂,感觉不是简单的就能解决的。
这样只用重新拾起书继续来看,获得新的知识和巩固以前的C方面的知识。
提升自己的能力。
整个程序的设计是分模块实现具体的功能,每个模块分别由不同的函数构成。
链表的建立实现输入信息的功能,相比较于数组更加方便,更能够节省内存空间等。
通过使用文件fread和fwrite函数方便的将数据信息写入文件以及将文件中的信息载入显示段。
通过这个学期的课程设计的练习与设计我学会了很多,也更加熟悉C语言程序设计,从中得到了很多乐趣,很快乐,感觉C语言的世界里面奇妙无比。
虽然在途中也遇到很多的困难,但是还是通过问同学和学长解决了。
最后看到自己设计的程序能够运行起来特别的开心。
这次的程序设计很有意义,也很锻炼人的能力,特别是C语言方面的能力,为自己在C语言方面打下基础。
四、参考文献
[1]梁旭,谷晓琳,黄明等编著.C语言课程设计(第2版).北京:
电子工业出版社.2009.
[2]苏小红,陈惠鹏,孙志岗等编著.C语言大学实用教程(第2版).北京:
电子工业出版社.2007.
5、指导教师评语
签名:
年月日
课程设计成绩(五级分制)