c语言实现日志系统

文章目录

  • 一、C语言实现日志系统
  • 二、程序结果
    • 1.源码
    • 2.图片


一、C语言实现日志系统

当时大一上学期的一次战队A+作业,对于我刚学指针和结构体尚有难度,我只实现了学生系统,并没有实现日志系统,日志系统主要是实现增删查改的功能,而最难的是删除功能,如何调用函数,如何删除

二、程序结果

1.源码

代码如下:

#include
#include
#include 
struct DATAbase
{
    char date[30];
    char message[100];
};
void index_message(struct DATAbase *pdatabase);
void change_date(struct DATAbase *pdatabase,int len);
void change_message(struct DATAbase *pdatabase,int len);
void deletedate_message(struct DATAbase *pdatabase,int * len);
void deletemessage_message(struct DATAbase *pdatabase,int * len);
void show_message(struct DATAbase *pdatabase,int len);
void find_date(struct DATAbase *pdatabase,int len);
void find_message(struct DATAbase *pdatabase,int len);
int main()
{
    int cnt,number=0;
    struct DATAbase database[50];
    struct DATAbase * pdatabase=database;
    printf("***********************欢迎来到日志系统***********************\n");
    printf("功能如下:\n");
     while(1)
     {
        printf("1.请输入日志信息:\n");
        printf("2.展示所有日志信息内容:\n");
        printf("3.修改日志日期:\n"); 
        printf("4.修改日志内容:\n");
        printf("5.通过日期删除日志信息:\n");
        printf("6.通过内容删除日志信息:\n");  
        printf("7.根据日期查找日志信息:\n");
        printf("8.根据内容查找日志日期:\n");
        printf("9.退出日志系统\n");
        printf("请输入数字选择功能:\n");
        scanf("%d",&cnt);
        if(cnt<1||cnt>9)
        printf("没有此项功能,请重新选择\n\n");
        switch(cnt)
        {
          case 1:
               index_message(&database[number]);
               printf("\n");
               number++;
               break;
          case 2:
            show_message(&database[number],number);
            printf("以上是所有的日志信息\n\n");
               break;
          case 3:
               change_date(&database[number],number);
               printf("\n");
               break;   
          case 4:
               change_message(&database[number],number);
               printf("\n");
               break;
          case 5:
               deletedate_message(&database[number],&number);
               printf("\n");
               break; 
           case 6:
               deletemessage_message(&database[number],&number);
               printf("\n");
               break;     
          case 7:
               find_date(&database[number],number);
               printf("\n");
               break;
          case 8:
               find_message(&database[number],number);
               printf("\n");
               break;
          case 9:
            printf("***********************多谢使用日志系统***********************\n");
               break;    
        }
        if(cnt==9)
        break;
    }
        return 0;
}
void index_message(struct DATAbase *pdatabase)//输入信息 
{
    printf("请输入日期(如2022 4 11):\n"); 
    fflush(stdin);//清空缓冲区 
    gets((pdatabase -> date));    
    fflush(stdin);
    printf("请输入内容(不要超过100个字符):\n"); 
    gets((pdatabase ->message));
    fflush(stdin);
    return ;
}
void change_date(struct DATAbase *pdatabase,int len)//修改日期 
{
    char s_date[30];
    int equal;
    printf("请输入要修改的日期:\n");
    pdatabase=pdatabase-len;
    fflush(stdin);
    gets(s_date);
    fflush(stdin);
    for(;len>0;len--,pdatabase++)
    {
        if(strcmp(s_date,pdatabase->date)==0)
        {
            printf("将日期修改为:\n");
            gets(pdatabase->date);
        }
    }
    return;
}
void change_message(struct DATAbase *pdatabase,int len)//修改内容 
{
    char s_message[100];
    int equal;
    printf("请输入要修改的内容:\n");
    pdatabase=pdatabase-len;
    fflush(stdin);
    gets(s_message);
    fflush(stdin);
    for(;len>0;len--,pdatabase++)
    {
        if(strcmp(s_message,pdatabase->message)==0)
        {
            printf("将内容修改为:\n");
            gets(pdatabase->message);
        }
    }
    
    return;
}
void deletedate_message(struct DATAbase *pdatabase,int *len)//通过日期删除信息 ,len在这里是指针变量,和其他函数都不相同 
{
    int count=0,length; 
    char s_date[30];
    printf("请输入日期:\n");
    length=*len;
    pdatabase=pdatabase-*len;
    fflush(stdin);
    gets(s_date);
    fflush(stdin);
    //以下是算法,实现删除功能 
    for(;length>0;length--,pdatabase++)
    {
        if(strcmp(s_date,pdatabase->date)==0)
        {
            count++;
        }
        else
        {
            strcpy((pdatabase-count)->date,pdatabase->date);
            strcpy((pdatabase-count)->message,pdatabase->message);
        }
    }
    *len-=count;    
    return;
}
void deletemessage_message(struct DATAbase *pdatabase,int * len)
{
    int count=0,length; 
    char s_message[100];
    printf("请输入内容:\n");
    length=*len;
    pdatabase=pdatabase-*len;
    fflush(stdin);
    gets(s_message);
    fflush(stdin);
    //以下是算法,实现删除功能 
    for(;length>0;length--,pdatabase++)
    {
        if(strcmp(s_message,pdatabase->message)==0)
        {
            count++;
        }
        else
        {
            strcpy((pdatabase-count)->message,pdatabase->message);
            strcpy((pdatabase-count)->message,pdatabase->message);
        }
    }
    *len-=count;    
    return;
}
void show_message(struct DATAbase *pdatabase,int len)//展示全部日志信息,所展现的是按照用户所键入的顺序来实现 
{    
    fflush(stdin);
    pdatabase=pdatabase-len;
    for(;len>0;len--,pdatabase++)
    {
        puts(pdatabase->date);
        puts(pdatabase->message);
    }
    return;
}
void find_date(struct DATAbase *pdatabase,int len)//通过日期寻找 
{
    char s_date[30];
    int equal;
    printf("请输入日期:\n");
    pdatabase=pdatabase-len;
    fflush(stdin);
    gets(s_date);
    fflush(stdin);
    for(;len>0;len--,pdatabase++)
    {
        if(strcmp(s_date,pdatabase->date)==0)
        puts(pdatabase->message);
    }
    return;
}
void find_message(struct DATAbase *pdatabase,int len)//通过内容寻找 
{
    char s_message[100];
    int equal;
    printf("请输入内容:\n");
    pdatabase=pdatabase-len;
    fflush(stdin);
    gets(s_message);
    fflush(stdin);
    for(;len>0;len--,pdatabase++)
    {
        if(strcmp(s_message,pdatabase->message)==0)
        puts(pdatabase->date);
    }
    return;
}

你可能感兴趣的:(c语言)