c语言课程设计职工考勤管理系统.docx

上传人:b****7 文档编号:11095748 上传时间:2023-02-25 格式:DOCX 页数:17 大小:42.87KB
下载 相关 举报
c语言课程设计职工考勤管理系统.docx_第1页
第1页 / 共17页
c语言课程设计职工考勤管理系统.docx_第2页
第2页 / 共17页
c语言课程设计职工考勤管理系统.docx_第3页
第3页 / 共17页
c语言课程设计职工考勤管理系统.docx_第4页
第4页 / 共17页
c语言课程设计职工考勤管理系统.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

c语言课程设计职工考勤管理系统.docx

《c语言课程设计职工考勤管理系统.docx》由会员分享,可在线阅读,更多相关《c语言课程设计职工考勤管理系统.docx(17页珍藏版)》请在冰豆网上搜索。

c语言课程设计职工考勤管理系统.docx

c语言课程设计职工考勤管理系统

青岛理工大学

《C语言程序设计》

题目

职工考勤管理程序

指导教师:

姓名:

—学号:

—班级:

专业:

计算机工程

地点:

计算机工程学院机房

时间:

2014630至2014.7.4

、内容

此系统以对职工考勤为背景,提供对职工信息、上下班时间的录入、显示、查询、删除等功能。

具体功能实现如下:

1、职工信息新建:

实现职工工号、姓名、顺序号、上下班时间的录入功能,并能将其以文件形式加以保存。

2、考勤信息浏览:

实现对全体职工所投的的考勤信息的浏览功能。

3、查询功能:

实现按工号或姓名查询职工一周的上下班时间的功能。

4、删除功能:

实现对职工考勤信息的删除管理。

5、系统以菜单方式工作,界面清晰,易于操作。

操作系统:

windowsxp/8.1开发工具:

vc6.0

三、函数调用关系图

四、各函数功能说明

对每个函数功能加以说明,说明该函数主要实现了什么内容

例如:

1.main()主函数

2.voidinput();录入函数

3.voiddisplay。

;显示函数

4.voidsearchO();查找函数

5.voiddel();删除函数

五、算法描述或流程图(或者进行描述,或者绘出流程图,例子见下)

主函数

欢迎界面程序

王采单

输入要选择的选项前的序号,给x赋值

Switch。

Case条件

Casel

Case2

Case3

Case4

Case5

Defult

Input()

Display()

SearchO()

Del()

Exit()

录入函数

疋义局部变量i,x

打开文件

打不开文件

(x

!

='n')

输出打不开文件”

Do-while循环

Scanf输入职工信息进入结构Fwrite把输入的职工信息写入文件

输入结束标记x(是n就结束,否则继续输入),判断是否跳出循环

显示函数

定义局部变量i

打开文件

Fseek查询文件的末尾,计算n

Rewind将指针指向文件开头

i

for循环

i=0;

fread读取文件,printf输出读取到的文件

i++;

查询函数

定义局部变量

打开文件

Fseek查询文件的末尾,计算n(结构体个数)

Rrewind将指针指向文件开头

i

for循环

i=0;

fread读取文件,printf输出读取到的文件

i++;

读取显示结束后,跳出循环,在fclose关闭文件

删除函数

定义局部变量

打开文件

Fseek查询文件的末尾,计算n(结构体个数)

Rrewind将指针指向文件开头

i

for循环

i=0;

fread读取文件,遍历结构体数组,找到信息并删除

i++;

读取显示结束后,跳出循环,在fclose关闭文件

六、程序运行效果图;

欢迎界面

主菜单

【青输人要选择选项前的序号:

录入考勤信息

式乂续

人息讎

—I0

H0

ilj⑺1

芟单

自小自5自3白3三rj__u亠一n.=n.

若若考考存T工工工保莊职职聖,畫查瑕••■■•12345

输入职工考勤信息

顺序数■班时间

12S13072E0900

勤回

rm小刚号&工id职勰■■・B-4-.彳式幺格昴继入息健

顺序数上班时间

2201307270900

缀喊蠶号>

顺序数上班时间

3

卜班时间

20130726170B

下班时间

201307271700

下班时间

20L3072B1700

显示考勤信息

 

考勤信息、

 

T-012

HP00

HI111

名明王纟

二■\XS1

顺序数

1

上班时间

281?

072Gi^9Ba盹130727即盹26130?

28n9HH

下班时间

2ai3072C17Q0

201307271700

2R13072R170H

 

按任意键返回王菓单

 

查询考勤信息

 

请输人査询信息:

23130?

270?

00

职工号雄蚩顺序数上班时I可下班时间

101小王22013072709002013072717RB

按回车键缭续登询,按H停止查询匕

删除考勤信息

考勤信息删除

号时功T名班班择翟上戶选f4-丄一丿-LhJ—l.h」assla

123d

请输?

J刑陈职工的具体祭件=10«

删除考勤信息成功

职工信Sffl除成功

4HR工信息有:

聪丁号姓名顺序数上班时间下曲石可

1S1丿」王220130727B900201307271700

162小红3201307280900201307281700

七、总结

通过这次做C语言课设,我发现这学期在老师那学的只是一些皮毛而已。

编程的知识博大精

深,还有许许多多的函i数我都不知j道,不会用,在今后自己还要不断i的学习。

通过这几天做课设,我体会到这个过程是艰辛并快乐着的,这个过程中充满了编程的乐趣。

每次为如何把实际中的问题转化为计算机可以识别的语言而苦恼、烦躁,不停的在图书

馆和网上查找自己需要的资料,可是一旦自己把程序编出来了,并在计算机上运行通过,自己心里又是快乐的,有一种巨大的成就感回荡在心头,把坐在电脑前几个小时的苦和累都忘了。

这次课设,是我自己第一次靠自己编出来的一个完整的程序,我会把这个程序一直的保存着,随着我今后在编程方面的学习加深,我会自己慢慢的改进它,让它见证我的成长历程。

总言而之,这几天做课设我过得非常的充实,也让我学习到了很多。

八、参考文献

[1]李春葆等.C语言程序设计.清华大学出版社,2011

[2]谭浩强.C程序设计(第三版).清华大学出版社,2005

九、程序清单

#include

#include

#include

#include

//头文件声明

#defineN50

voidinput();

voiddisplay();

voidsearch();

voiddel();

//定义函数

structworker

//结构体变量声明

{

charno[10];charname[10];intnumber;chargo[14];charback[14];

};

structworkerfl[N];//定义结构体数组

intn;

intmain()

{

intx;charch;

do

printf("\n\t\t\t==================================\n\t\t\t\t\n\n\n\n");printf("欢迎使用职工考勤管理系统\n\n");printf("\n编程者

printf("

******************

按任意键继续

*******************

*\n\n\n"

);

\n\n\n");

ch=getch();

}while(!

ch);system("cls");

do

{

haha:

printf("\n");

printf("菜单\n");printf("

\n\n");printf("\t\t\t\t1.录入职工考勤信息\n");

printf("\t\t\t\t2.显示职工考勤信息\n");

printf("\t\t\t\t3.查找职工考勤信息\n");

printf("\t\t\t\t4.删除职工考勤信息\n");

printf("\t\t\t\t5.退出并保存\n");

printf("请输入要选择选项前的序号:

");scanf("%d",&x);getchar();system("cls");switch(x){case1:

input();break;

case2:

display();break;

case3:

search();break;

case4:

del();break;

case5:

exit(0);

default:

gotohaha;

}while

(1);

return0;

}

voidinput()//录入函数

{

inti=0;

charch;

FILE*fp;//定义FLIe文件操作指针

职工考勤信息管理.txt","ab+"))==NULL)职工考勤信息管理.txt","wb+"))==NULL)

{

printf("不能建立文件!

\n");

exit(0);

}

printf("\n\t\t\t输入职工考勤信息\n\n");

do

{

printf(”输入格式:

职工号\t姓名\t顺序数\t上班时间\t下班时间\n”);

printf("考勤信息录入:

");

scanf("%s%s%d%s%s",fl[i].no,fl[i].name,&fl[i].number,fl[i].go,fl[i].back);fwrite(&fl[i],sizeof(structworker),1,fp);//将结构体数组内容内容写到文

件中

printf("按回车键继续输入,按N停止输入:

\n");

printf("\n");

getchar();

ch=getch();

i++;

}while(ch!

='n'&&ch!

='N');

fclose(fp);

n=i;

system("cls");

}

voiddisplay()//显示函数

{

inti;

charch;

FILE*fp;职工考勤信息管理.txt","rb+"))==NULL)

{

printf("不能打开文件!

\n");

exit

(1);

}fseek(fp,0,2);//将文件指针移到文件尾

n=ftell(fp)/sizeof(structworker);

do{

printf("\n");

printf("\t\t\t考勤信息\n");

printf("\t\t\t\n\n");printf("\t\t职工号\t姓名\t顺序数\t上班时间\t下班时间\n");rewind(fp);

for(i=0;i

{fread(&fl[i],sizeof(structworker),1,fp);//从文件指针fp读取一个size

为sizeof(structworker)的数据,存入fl[i]

printf("\t\t%s\t%s\t%d\t%s\t%s\n",fl[i].no,fl[i].name,fl[i].number,fl[i].go,fl[i].back);

}

printf("\n\n\t\t按任意键返回主菜单\n\n\t\t");ch=getch();

}while(!

ch);

fclose(fp);system("cls");

}

voidsearch()//查找函数

{

intx,k=0,i;

charz[20],s[N][20],ch;

FILE*fp;

职工考勤信息管理.txt","rb+"))==NULL)

{

printf("不能打开文件!

\n");

exit

(1);

}

fseek(fp,0,2);n=ftell(fp)/sizeof(structworker);

do

{

haha:

printf("\t\t\t考勤信息查询\n");

printf("\t\t\t1.按职工号查询\n");

printf("\t\t\t2.按姓名查询\n");printf("\t\t\t3.按上班时间查询\n");

printf("\t\t\t4.按下班时间查询\n");

printf("\t\t\t5.返回主菜单\n");

printf("\t\t\t6.退出并保存\n\n");

printf("\t\t\t选择功能选项(输入功能前的数字)\n\n");printf("\t\t\t");

scanf("%d",&x);

getchar();

system("cls");

for(i=0;i

{

switch(x)

{

case1:

strcpy(s[i],fl[i].no);break;

case2:

strcpy(s[i],fl[i].name);break;

case3:

strcpy(s[i],fl[i].go);break;

case4:

strcpy(s[i],fl[i].back);break;

case5:

gotoap;

case6:

exit(0);

default:

gotohaha;

}

}

do

{

printf("\n\n\t\t\t请输入查询信息:

");gets(z);

for(i=0;i

strcmp(s[i],z))

{

k++;

printf("

\n");

printf("\t\t职工号\t姓名\t顺序数\t上班时间\t下班时间\n"

\n");

printf("\t\t%s\t%s\t%d\t%s\t%s\n",fl[i].no,fl[i].name,fl[i].number,fl[i].go,fl[i].back);printf("

}

if(k==0)

{

printf("\n\t\t\t没有此职工信息!

!

!

");

}

printf("\n\n\n\t按回车键继续查询,按N停止查询:

");ch=getch();

}while(ch!

='N'&&ch!

='n');

system("cls");

}while

(1);

fclose(fp);

ap:

system("cls");

}

voiddel()//删除函数

{

charst[20],m[20];

inti,j,l;

FILE*fp;

职工考勤信息管理.txt","rb"))==NULL){

printf("\t>>不能创建文件\n");

exit(0);

}

fseek(fp,0,2);

n=ftell(fp)/sizeof(structworker);

fclose(fp);

职工考勤信息管理.txt","wb");

printf("\n");

printf("\t\t\t考勤信息删除\n");

printf("\t\t\t\n\n");

printf("\t\t\t1.按职工号删除\n");

printf("\t\t\t2.按姓名删除\n");

printf("\t\t\t3.按上班时间删除\n");

printf("\t\t\t4.按下班时间删除\n");

printf("\t\t\t选择功能选项(输入功能前的数字)\n\n");printf("\n\t\t\t");

scanf("%d",&l);

getchar();//存放回车符

printf("请输入删除职工的具体条件:

");

scanf("%s",m);//输入的具体条件存入m数组

getchar();

system("cls");

printf("\t\t\t\n");printf("职工信息删除成功\n");

printf("\t\t\t\n");

printf("其他职工信息有:

\n");

printf("\t\t\t\n");

printf("\t=======================================================\n");printf("\t职工号\t姓名\t顺序数\t上班时间\t下班时间\n");

for(i=0;i

{

switch(l)

{

case1:

strcpy(st,fl[i].no);break;

case2:

strcpy(st,fl[i].name);break;

case3:

strcpy(st,fl[i].go);break;

case4:

strcpy(st,fl[i].back);break;default:

printf("选择错误\n");break;

}

if(strcmp(m,st)!

=0)//查找到要删除的信息

{

//不要删除的信息写回文件

j=i;

fwrite(&fl[j],sizeof(structworker),1,fp);

printf("\t\t%s\t%s\t%d\t%s\t%s\n",fl[j].no,fl[j].name,fl[j].number,fl[j].go,fl[j].back);//能帮助观察是否已经删掉了要删的信息

printf("\t=======================================================\n");fclose(fp);

getchar();//存放回车符

system("cls");

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 调查报告

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1