| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2022 人关注过本帖
标题:关于用C编写的的日记本系统,求大神帮忙
取消只看楼主 加入收藏
虚拟情缘
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-4-10
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
关于用C编写的的日记本系统,求大神帮忙
程序代码:
下面是我在论坛里看到的关于用C编写的日记本系统的代码,我觉得这个系统很好!可是运行时,VC报错, #include 文件或目录不存在,我不知道怎么修改,求大神帮忙!谢谢!!

 

#include<stdio.h>

 #include<stdlib.h>

 #include<string.h>

 #include <sys/types.h>

 #include <dirent.h>

 #include <sys/stat.h>

 #define MAXSIZE 1024

 #define LENTH 50 

typedef struct node{
     char date[LENTH]; //yyyy-mm-dd
     char content[MAXSIZE];
     char weather[LENTH];
     struct node *next;

 }dairy;

typedef struct user_node{
     char dir[LENTH];
     char userName[LENTH];
     char pwd[LENTH];
     struct user_node *next;

 }userInfo;

void prtByKeyWord(dairy *h);

 void modify_pwd(userInfo *curUser) ; //密码修改
 void IU() ;                  //系统界面设计
 void SysLoad() ;             //系统启动
 void useUI();    //用户功能界面
 void regis();  //注册用户
 void saveUserInfo(userInfo *H);  //永久化保存用户信息
 void useSys(userInfo *curUser,int *flag);  //使用系统
 void prtByDate(dairy *h);

 void prtOrder(dairy *h);

 void writeDairy(dairy *h,userInfo *curUser);  //写日记
 dairy *loadAllDairy(userInfo *curUser);

 userInfo *getUserInfo();     //获得所有用户账号和密码
 userInfo *login(userInfo *H);   //登录界面
 int trave_dir(char* path,char filename[][LENTH]);  //遍历文件夹,获取其中的所有txt文件(一篇日志一个txt文件)


int main()

 {
     SysLoad();
     return 0;

 }

void IU()   //系统界面设计
 {
     system("CLS");
     printf("\t\t             ****************             \n");
     printf("\t\t              ** 欢迎使用 **              \n");
     printf("\t\t             ****************             \n");
     printf("\t\t                                          \n");
     printf("\t\t                                          \n");
     printf("\t\tAuthor:\t\t薛云腾                         \n");
     printf("\t\tClass:\t\t计算机二班                      \n");
     printf("\t\tStuPayroll:\t3110307212                   \n");
     printf("\t\t                                          \n");
     printf("\t\t                                          \n");
     printf("\t\t====== *** ===小型日记本系统=== *** ======\n");
     printf("\t\t==                                      ==\n");
     printf("\t\t==                                      ==\n");
     printf("\t\t==     l/L、用户登录;                  ==\n");
     printf("\t\t==     r/R、注册新用户;                ==\n");
     printf("\t\t==     q/Q、退出;                      ==\n");
     printf("\t\t==                                      ==\n");
     printf("\t\t=======****************************=======\n\n\n");
     printf("您的选择:");

 }

void SysLoad()     //系统启动
 {
     char choose;
     int flag=1;
     userInfo *H,*curUser;

    while(1)
     {
         IU();
         fflush(stdin);
         scanf("%c",&choose);
         getchar();

        switch (choose)
         {
            case 'l':
            case 'L':
                 H=getUserInfo();
                 if(H->next!=NULL)
                 {
                     curUser=login(H);
                     flag=1;
                     if(curUser!=NULL)
                     {
                        while(flag){
                           useUI();
                           useSys(curUser,&flag);
                        }

                    }
                 }
                 else
                     printf("尚未有任何用户注册!请先注册...\n\n\n");

                printf("\n\n\n");
                 system("PAUSE");   //按任意键继续
                 break;

           case 'r':
            case 'R':
                 regis();
                 printf("\n\n\n");
                 system("PAUSE");   //按任意键继续
                 break;

           case 'q':
            case 'Q':
                exit(0);

           default:
                printf("\n\n输入错误,请重选...\n\n\n");
                system("PAUSE");
                break;
         }
     }

 }

userInfo *login(userInfo *H)  //登录界面
 {
     userInfo *p;
     char userName[LENTH];
     char pwd[LENTH];

    system("CLS");

        printf("请输入用户名:");
         scanf("%s",userName);
         printf("请输入密码:");
         scanf("%s",pwd);

        p=H->next;
         while(p){
             if(strcmp(p->userName,userName)==0){
                 if(strcmp(p->pwd,pwd)==0)
                     return p;
                 else
                 {
                     printf("\n\n密码错误!返回主菜单...\n\n\n");
                     return NULL;
                 }
             }
             p=p->next;

        }
     printf("\n\n该用户名不存在!返回主菜单...\n\n\n");
     return NULL;

}

userInfo *getUserInfo()  //获得所有用户账号和密码
 {
     FILE *fp =NULL;
     userInfo *H=NULL,*p,*r;
     H=(userInfo *)malloc(sizeof(struct user_node));
     H->next=NULL;
     r=H;

    if((fp=fopen("userInfo.txt","r"))!=NULL)
     {
         while( !(feof(fp)) )
         {
             p=(userInfo *)malloc(sizeof(struct user_node));
             fscanf(fp,"%s%s%s",p->userName,p->pwd,p->dir);
             p->next=r->next;
             r->next=p;
             r=p;
         }
     }

    fclose(fp);

    return H;

}

void regis()  //注册用户
 {
     userInfo *H,*r,*p,*q;
     char fileDir[LENTH]="md c:\\";   //默认创建路径为c盘

    int flag=0;
     char userName[LENTH];
     char pwd[LENTH];
     char dir[LENTH];

    H=getUserInfo();

    while(1)
     {
         if(flag!=0)
             break;
         system("CLS");
         printf("请输入注册的用户名:");
         scanf("%s",userName);
         printf("请输入密码:");
         scanf("%s",pwd);
         printf("请输入您的个人文件夹名:");
         scanf("%s",dir);

        p=H->next;
         r=H;
         while(p)
         {
             if(strcmp(p->userName,userName)==0)
             {
                 printf("\n\n该用户名已经存在!请重新输入...\n\n\n");
                 system("PAUSE");
                 break;
             }
             r=p;
             p=p->next;
         }

        if(p==NULL)
             flag=1;
     }

    q=(userInfo *)malloc(sizeof(struct user_node));
     strcpy(q->userName,userName);
     strcpy(q->pwd,pwd);
     strcpy(q->dir,dir);

    q->next=NULL;
     r->next=q;

    strcat(fileDir,q->dir);
     system(fileDir);
     saveUserInfo(H);

    printf("\n\n注册成功!\n\n\n");

}

void saveUserInfo(userInfo *H)  //永久化保存用户信息
 {
     FILE *fp;
     userInfo *p;

    if((fp=fopen("userInfo.txt","w"))==NULL)
     {
         printf("\n文件打开失败!\n\n");
         exit(0);
     }

    p=H->next;
     while(p)
     {
         if(p->next==NULL)
             fprintf(fp,"%s %s %s",p->userName,p->pwd,p->dir);
         else
             fprintf(fp,"%s %s %s\n",p->userName,p->pwd,p->dir);
         p=p->next;
     }

    fclose(fp);

}

void useUI()

 {
     system("CLS");
     printf("1、创建日志;\n");
     printf("2、查阅指定日期的日记;\n");
     printf("3、按顺序查阅日记;\n");
     printf("4、按关键字查阅;\n");
     printf("5、修改密码;\n");
     printf("按任意键返回登录界面;\n\n\n");
     printf("您的选择:");

 }

void useSys(userInfo *curUser,int *flag)  //使用系统
 {
     char choose;
     dairy *h,*p;

    fflush(stdin);
     scanf("%c",&choose);
     fflush(stdin);

    switch (choose)
     {
        case '1':
         system("CLS");
         h=loadAllDairy(curUser);
         writeDairy(h,curUser);
         break;

      case '2':
         system("CLS");
         h=loadAllDairy(curUser);
         prtByDate(h);
         printf("\n\n\n");
         system("PAUSE");
         break;

      case '3':
         system("CLS");
         h=loadAllDairy(curUser);
         prtOrder(h);
         printf("\n\n\n");
         system("PAUSE");
         break;

      case '4':
         system("CLS");
         h=loadAllDairy(curUser);
         prtByKeyWord(h);
         break;

      case '5':
         system("CLS");
         modify_pwd(curUser);
         *flag=0;
         break;

      default:
         printf("\n\n您确定要注销,离开本系统?(n/y)");
         scanf("%c",&choose);
         if(choose!='n' && choose!='N')
             *flag=0;

        return;
     }

}

void writeDairy(dairy *h,userInfo *curUser)  //写日记
 {
     dairy *p=NULL,*q;
     FILE *fp;
     char path[256];
     char n[LENTH],no[LENTH];
     char ch;

    memset(path,0,256);
     strcpy(path,"c:/");
     p=(dairy *)malloc(sizeof(struct node));
     p->next=NULL;
     printf("文件名:");
     scanf("%s",no);
     printf("日记日期(YYYY-MM-dd):");
     scanf("%s",p->date);
     printf("天气:");
     scanf("%s",p->weather);
     getchar();
     printf("日记内容:");
     gets(p->content);

    printf("\n\n保存该日记?(y/n):");
     fflush(stdin);
     scanf("%c",&ch);

    if(ch!='n' && ch!='N')
     {
         strcat(path,curUser->dir);   //c:/yun 其中yun是dir的一个例子
         strcat(path,"/");         //c:/yun/
         strcat(path,no);       //c:/yun/no
         strcat(path,".txt");      //c:/yun/no.txt
         printf(" %s ",path);

        if((fp=fopen(path,"w"))==NULL)
         {
             printf("\n文件打开失败!日志未保存...\n");
             exit(0);
         }

        fprintf(fp,"Date:%s\tWeather:%s\n",p->date,p->weather);
         fprintf(fp,"Content:\t%s",p->content);
         printf("\n\n日记保存成功!\n\n\n");

        fclose(fp);
     }

    else
         printf("\n\n日记未保存!\n\n");

    system("PAUSE");
     system("CLS");

}

dairy *loadAllDairy(userInfo *curUser)

 {
     int cnt=0,len = 0 ,i =0;
     dairy *H=NULL,*p,*r;
     char filename[50][50];
     char path[256]="c:/";
     FILE *fp;

    H=(dairy *)malloc(sizeof(struct node));
     H->next=NULL;
     r=H;

    strcat(path,curUser->dir);
     len=trave_dir(path,filename);

    for(i=0;i


[ 本帖最后由 虚拟情缘 于 2013-4-12 08:26 编辑 ]
搜索更多相关主题的帖子: 日记本 include 
2013-04-12 08:23
虚拟情缘
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-4-10
收藏
得分:0 
大哥大姐们,知道的,请帮帮我!谢谢!
2013-04-12 08:24
虚拟情缘
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-4-10
收藏
得分:0 
回复 3楼 peach5460
刚刚复制错了,已经修改了。麻烦再看一看,帮帮忙
2013-04-12 08:27
快速回复:关于用C编写的的日记本系统,求大神帮忙
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023980 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved