c语言课程设计职工考勤管理系统.docx
- 文档编号:5683051
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:14
- 大小:33.32KB
c语言课程设计职工考勤管理系统.docx
《c语言课程设计职工考勤管理系统.docx》由会员分享,可在线阅读,更多相关《c语言课程设计职工考勤管理系统.docx(14页珍藏版)》请在冰豆网上搜索。
c语言课程设计职工考勤管理系统
青岛理工大学
《C语言程序设计》
题目职工考勤管理程序
指导教师:
姓名:
学号:
班级:
专业:
计算机工程
地点:
计算机工程学院机房
时间:
至2014.7.4
一、内容
此系统以对职工考勤为背景,提供对职工信息、上下班时间的录入、显示、查询、删除等功能。
具体功能实现如下:
1、职工信息新建:
实现职工工号、姓名、顺序号、上下班时间的录入功能,并能将其以文件形式加以保存。
2、考勤信息浏览:
实现对全体职工所投的的考勤信息的浏览功能。
3、查询功能:
实现按工号或姓名查询职工一周的上下班时间的功能。
4、删除功能:
实现对职工考勤信息的删除管理。
5、系统以菜单方式工作,界面清晰,易于操作。
二、上机环境
操作系统:
windowsxp/8.1
开发工具:
vc6.0
三、函数调用关系图
四、各函数功能说明
对每个函数功能加以说明,说明该函数主要实现了什么内容。
例如:
1.main()主函数
2.voidinput();录入函数
3.voiddisplay();显示函数
4.voidsearch0();查找函数
5.voiddel();删除函数
五、算法描述或流程图(或者进行描述,或者绘出流程图,例子见下)
主函数
欢迎界面程序
主菜单
输入要选择的选项前的序号,给x赋值
Switch()
Case条件
Case1
Case2
Case3
Case4
Case5
Defult
Input()
Display()
Search0()
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关闭文件 六、程序运行效果图; 欢迎界面 主菜单 录入考勤信息 显示考勤信息 查询考勤信息 删除考勤信息 删除考勤信息成功 七、总结 通过这次做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编程者: \n\n\n"); printf("******************按任意键继续********************\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文件操作指针 if((fp=fopen("C: \\职工考勤信息管理.txt","ab+"))==NULL) if((fp=fopen("C: \\职工考勤信息管理.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; if((fp=fopen("C: \\职工考勤信息管理.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; if((fp=fopen("C: \\职工考勤信息管理.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 if(! strcmp(s[i],z)) { k++; printf("------------------------------------------------------------------------\n"); printf("\t\t职工号\t姓名\t顺序数\t上班时间\t下班时间\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("------------------------------------------------------------------------\n"); } 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; if((fp=fopen("C: \\职工考勤信息管理.txt","rb"))==NULL) { printf("\t>>不能创建文件\n"); exit(0); } fseek(fp,0,2); n=ftell(fp)/sizeof(structworker); fclose(fp); fp=fopen("C: \\职工考勤信息管理.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"); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 职工 考勤 管理 系统