知识库管理系统php源代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
知识库管理系统php源代码#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
#include<malloc.h>
#include<time.h> /*所使用的头文件*/
typedef struct /*时间结构体定义*/
{
int hour;
int minute;
}TIME;
typedef struct worker /*结构体定义*/
{
char id[10];
char name[10];
TIME time[20];
struct worker *next;
}worker;
int menu_select(); /*主菜单*/
void welcome(); /*欢迎界面*/
void createInfo(); /*新建职工信息*/
void createRec(); /*录入考勤信息*/
void listRec(); /*浏览当天考勤信息*/ void searchRec(); /*/查询考勤信息*/
void saveRec(); /*保存所有信息*/
void deleteRec(); /*删除考勤信息*/
void modifyRec(); /*修改考勤信息*/
void loadRec(); /*加载文件信息*/
void resetPassword(); /*重设密码*/
int fun(); /*判断输入选择是否正确*/
worker *head=NULL; /*链表头指针head*/
writeinfo_flag=0; /*信息保存标记*/
char password[16]="888888"; /*初始密码*/
struct tm *timeinfo;
int main() /*主函数*/
{
char s[16];
welcome(); /*欢迎界面*/
loadRec(); /*加载文件信息*/
printf("\n提示:\n\n"); /*进入系统密码管理*/
printf("\t\t\t\n\n\n\n\n请输入密码,进去系统(密码不超过15个字符):"); scanf("%s",s);
while(strcmp(password,s)!=0)
{
printf("\n密码错误,请重新输入:");
scanf("%s",s);
}
system("cls");
for(;;) /*菜单循环*/
{
switch(menu_select())
{
case 0:system("cls");createInfo();break;
case 1:system("cls");createRec();break;
case 2:system("cls");listRec();break;
case 3:system("cls");searchRec();break;
case 4:system("cls");deleteRec();break;
case 5:system("cls");modifyRec();break;
case 6:system("cls");saveRec();break;
case 7:system("cls");resetPassword();break;
case 8:system("cls");if(writeinfo_flag==1)saveRec();return 0; default:
{
printf("\n 选择错误,请按回车键返回后,重新输入(0~8)!"); getchar();getchar();
system("cls");
break;
}
}
}
return 0;
}
/*选择菜单*/
int menu_select()
{
worker *p=head;
int c,k;
time_t nowtime;
time( &nowtime );
timeinfo = localtime( &nowtime );
printf("\t\t**************选择菜单**************\t");
/*在菜单中显示当前时间*/
if(timeinfo->tm_wday==0)
{
printf("时间:星期天");
printf(" %d:%d",timeinfo->tm_hour,timeinfo->tm_min);
}
else
printf("时间:星
期%d %d:%d",timeinfo->tm_wday,timeinfo->tm_hour,timeinfo->tm_min);
printf("\n---------------------------------------------------------------------------");
printf("\t\t\t0.新建职工信息\n");
printf("\t\t1.录入考勤信息\n");
printf("\t\t2.浏览考勤信息\n");
printf("\t\t3.查询考勤信息\n");
printf("\t\t4.删除考勤信息\n");
printf("\t\t5.修改考勤信息\n");
printf("\t\t6.保存所有信息\n");
printf("\t\t7.重设密码\n");
printf("\t\t8.退出(退出后信息会自动保存在磁盘中)\n\t\t(任何情况下按Ctrl+C退出程
序)\n");
printf("\n-----------------------------------------------------------
----------------");
printf("\n\n 请输入您的选择(0~8):");
scanf("%d",&c);
if(timeinfo->tm_wday==0&&p!=NULL) /*每周周日所有考勤信息初始化*/ {
for(k=0;k<20;k++)
{
p->time[k].hour=88;
p->time[k].minute=88;
}
}
return c;
}
void loadRec() /*从磁盘导入信息*/
{
worker *rear,*p,*pre;
FILE *fp,*key;
int i,pos=0;
key=fopen("key.txt","r");
if(key!=NULL)
{
fscanf(key,"%s",password);
fclose(key);
}
fp=fopen("workerRec.txt","r");
if(fp!=NULL)
{
fseek(fp, 0, SEEK_END); /*指针移到文件末尾*/
pos= ftell(fp);
}
if(fp==NULL||0 == pos) /*打开职工信息文件和密码文
件*/
{
printf("\n\n\n\n\n\n\t\t提示:\n\n\t\t数据库中没有职工信息,文本为空或文件不存
在!\n");
printf("\n\t\t请按回车键进入主菜单新建职工信息^_^\n");
getchar();
system("cls"); /*清屏*/
return;
}
fseek(fp, 0, SEEK_SET); /*指针移到文件开头*/
while(!feof(fp)) /*fp不指向文件末尾*/
{
p=(worker*)malloc(sizeof(worker)); /*开辟一个新单元*/
fscanf(fp,"%s%s",p->id,p->name);
for(i=0;i<20;i++)
fscanf(fp,"%d%d",&p->time[i].hour,&p->time[i].minute);
if(head==NULL)
{
head=p;
pre=p;
rear=p;
}
else
{
rear->next=p;
pre=rear;
rear=p;
}
}
pre->next=NULL;
fclose(fp); /*关闭文件*/ return;
}。