C语言实现密码本小项目

  

<强>一、引言

  

学C语言有一段时间了,趁着正好做了密码本的小项目,把它分享出来。

  

<强>二,思路与原理

  

密码本,见名知意,就是存放账号密码,起到备忘录作用的本子,将需要备忘的数据通过加密存放在文本文件中,打开的文本文件为加密文本,需要通过软件查看已经存放的数据,提高安全性。(软件设计了启动密码,三次过后自动退出)

  

  
      <李>保存账号密码,退出后打开软件数据不丢失李   <李>进行简单加密李   <李>能按条件查找账号密码李   <李>能修改账号密码数据李   <李>能按条件进行删除数据李   
  

知识涉及到数组,文件操作的使用以及简单异或加密。

  

软件的部分截图如下:

  

 C语言实现密码本小项目

  

主菜单   

 C语言实现密码本小项目

  

增加数据

  

 C语言实现密码本小项目

  

删除数据

  

 C语言实现密码本小项目

  

查询数据

  

 C语言实现密码本小项目

  

全部数据

  

<强>三,实现

  

1。头文件及数据定义

  

在密码本的小项目中我设立四个了存放数据的数组,所存放的账号密码的站点,存放的账号,存放的密码以及备注。定义了一个全局变量,用来计数当前密码本使用的条数。

        #定义_CRT_SECURE_NO_WARNINGS   # include & lt; stdio.h>   # include & lt; stdlib.h>   # include & lt; string.h>//定义四个数组,用来存放站点,账号,密码,备注的值   char网站[100][20];   char userName [100] [20];   字符密码[100][20];   char评论[100][20];//定义一个全局变量   int g_count=0;      

2。程序的整体框架

        int主要(空白)   {   InitInfo ();   int nChoice=1;      StartPassWord ();      而(nChoice)   {   printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *欢迎使用密码本* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n”);   printf(“请输入以下选项进行操作:\ n”);   printf(" 1,增加数据\ n”);   printf(" 2,删除数据\ n”);   printf(" 3,修改数据\ n”);   printf(" 4,查询数据\ n”);   printf(" 5,全部数据\ n”);   printf(" 6日结束程序\ n”);   printf (" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n”);   scanf_s (“% d”, nChoice);   开关(nChoice)   {   案例1:   {   AddInfo();//增加数据   }打破;   案例2:   {   DelInfo ();//删除数据   }打破;   案例3:   {   EditInfo();//修改数据   }打破;   案例4:   {   FindInfo();//查询数据   }打破;   例5:   {   ReadAllInfo();//查看全部   }打破;   例6:   {   nChoice=0;//退出程序   }打破;   }   }   printf("欢迎下次使用! \ n”);      系统(“暂停”);   返回0;   }      

3。函数的声明

     //启动时输入密码   空白StartPassWord ();//增加数据   空白AddInfo ();//删除数据   空白DelInfo ();//修改数据   空白EditInfo ();//查询数据   空白FindInfo ();//读取全部数据   空白ReadAllInfo ();//保存数据   空白SaveInfo ();//初始化数据   空白InitInfo ();      

4。各个函数的实现

     //增加数据   空白AddInfo ()   {   printf("输入需要存储的站点:”);   scanf_s (“% s”、网站(g_count), 20);   printf("输入需要存储的账号:”);   scanf_s (“% s”,用户名(g_count), 20);   printf("输入需要存储的密码:");   scanf_s (“% s”、密码(g_count), 20);   printf("输入需要存储的备注:”);   scanf_s (“% s”,备注(g_count), 20);   g_count + +;   SaveInfo ();   InitInfo ();   系统(“暂停”);   系统(cls);   }//查看全部   空白ReadAllInfo ()   {   文件* pfile;   如果(fopen_s(数据和pfile。”我”、“r”) !=0)   {   printf("文件打开失败");   退出(1);   }      fscanf_s (pfile,“当前个数% d \ n”,和g_count);   printf("当前有% d条数据\ n”, g_count);   for (int i=0;我& lt;g_count;我+ +)   {   printf("第% d条数据:\ n”,我+ 1);   printf("站点:% s,账号:% s,密码:% s,备注:% s”,   网站(我),用户名(我),密码(我),说[我]);   printf (" \ n ");      }   文件关闭(pfile);   系统(“暂停”);   系统(cls);   }//保存数据   空白SaveInfo ()   {   for (int j=0;j & lt;g_count;j + +)   {   for (int m=0;m & lt;20;m + +)   {   网站[j] [m] ^=5;   用户名[j] [m] ^=5;   密码[j] [m] ^=5;   评论[j] [m] ^=5;   }   }   文件* pfile;   如果(fopen_s(数据和pfile。”我”、“w”) !=0)   {   printf("文件打开失败");   退出(1);   }   fseek (pfile 0 SEEK_SET);   流(pfile,“当前个数% d \ n”, g_count);   for (int i=0;我& lt;g_count;我+ +)   {   写入文件(1网站[我],20日,pfile);   写入文件(1用户名(我),20日,pfile);   写入文件(1密码(我),20日,pfile);   写入文件(评论[我]20 1,pfile);   流(pfile,“\ n”);   }   文件关闭(pfile);   }//删除数据   空白DelInfo ()   {   char aTemp [20];   int nFind=0;   int nIndex=0;   printf(“请输入要删除的站点:\ n”);   scanf_s (“% s”aTemp 20);   (;nIndex & lt;g_count;nIndex + +)   {   如果(strcmp (aTemp、网站[nIndex])==0)   {   nFind=1;   打破;   }   }   如果(nFind==1)   {   for (int i=nIndex;我& lt;g_count;我+ +)   {   strcpy_s(网站[我]20网站(i + 1));   strcpy_s(用户名用户名(我),20日,[i + 1]);   strcpy_s(密码[我]20密码(i + 1));   strcpy_s(备注(我),20,备注(i + 1));   }   g_count——;   SaveInfo ();   InitInfo ();   printf("删除成功\ n”);   }   其他的   {   printf("查找失败! \ n”);   }   系统(“暂停”);   系统(cls);   }//初始化数据   空白InitInfo ()   {   文件* pfile;   如果(fopen_s(数据和pfile。”我”、“r”) !=0)   {   printf("请先建立data.i文件!”);   系统(“暂停”);   退出(1);   }   fscanf_s (pfile,“当前个数% d \ n”,和g_count);   for (int i=0;我& lt;g_count;我+ +)   {      从文件中读(1网站[我],20日,pfile);   从文件中读(1用户名(我),20日,pfile);   从文件中读(1密码(我),20日,pfile);   fread(评论[我]20 1,pfile);   fscanf_s (pfile,“\ n”);   }   for (int j=0;j & lt;g_count;j + +)   {   for (int m=0;m & lt;20;m + +)   {   网站[j] [m] ^=5;   用户名[j] [m] ^=5;   密码[j] [m] ^=5;   评论[j] [m] ^=5;   }   }   文件关闭(pfile);   }//查询数据   空白FindInfo ()   {   char aTemp [20];   int nFind=0;      printf(“请输入要查询的站点:\ n”);   scanf_s (“% s”aTemp 20);   for (int nIndex=0;nIndex & lt;g_count;nIndex + +)   {   如果(strcmp (aTemp、网站[nIndex])==0)   {   nFind=1;   }   如果(nFind==1)   {   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

C语言实现密码本小项目