c语言课程设计职工考勤管理系统.docx
- 文档编号:11095748
- 上传时间:2023-02-25
- 格式:DOCX
- 页数:17
- 大小:42.87KB
c语言课程设计职工考勤管理系统.docx
《c语言课程设计职工考勤管理系统.docx》由会员分享,可在线阅读,更多相关《c语言课程设计职工考勤管理系统.docx(17页珍藏版)》请在冰豆网上搜索。
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");
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 职工 考勤 管理 系统