C语言实现密码本小项目
一、引言
学C语言有一段时间了,趁着正好做了密码本的小项目,把它分享出来。
二、思路与原理
密码本,见名知意,就是存放账号密码,起到备忘录作用的本子,将需要备忘的数据通过加密存放在文本文件中,打开的文本文件为加密文本,需要通过软件查看已经存放的数据,提高安全性。(软件设计了启动密码,三次过后自动退出)
项目目标:
- 保存账号密码,退出后打开软件数据不丢失
- 进行简单加密
- 能按条件查找账号密码
- 能修改账号密码数据
- 能按条件进行删除数据
知识涉及到数组、文件操作的使用以及简单异或加密。
软件的部分截图如下:
三、实现
1.头文件及数据定义
在密码本的小项目中我设立四个了存放数据的数组,所存放的账号密码的站点,存放的账号,存放的密码以及备注。定义了一个全局变量,用来计数当前密码本使用的条数。
#define_CRT_SECURE_NO_WARNINGS #include#include #include //定义四个数组,用来存放站点、账号、密码、备注的值 charwebSite[100][20]; charuserName[100][20]; charpassWord[100][20]; charreMark[100][20]; //定义一个全局变量 intg_count=0;
2.程序的整体框架
intmain(void)
{
InitInfo();
intnChoice=1;
StartPassWord();
while(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);
switch(nChoice)
{
case1:
{
AddInfo();//增加数据
}break;
case2:
{
DelInfo();//删除数据
}break;
case3:
{
EditInfo();//修改数据
}break;
case4:
{
FindInfo();//查询数据
}break;
case5:
{
ReadAllInfo();//查看全部
}break;
case6:
{
nChoice=0;//退出程序
}break;
}
}
printf("欢迎下次使用!\n");
system("pause");
return0;
}
3.函数的声明
//启动时输入密码 voidStartPassWord(); //增加数据 voidAddInfo(); //删除数据 voidDelInfo(); //修改数据 voidEditInfo(); //查询数据 voidFindInfo(); //读取全部数据 voidReadAllInfo(); //保存数据 voidSaveInfo(); //初始化数据 voidInitInfo();
4.各个函数的实现
//增加数据
voidAddInfo()
{
printf("输入需要存储的站点:");
scanf_s("%s",webSite[g_count],20);
printf("输入需要存储的账号:");
scanf_s("%s",userName[g_count],20);
printf("输入需要存储的密码:");
scanf_s("%s",passWord[g_count],20);
printf("输入需要存储的备注:");
scanf_s("%s",reMark[g_count],20);
g_count++;
SaveInfo();
InitInfo();
system("pause");
system("cls");
}
//查看全部
voidReadAllInfo()
{
FILE*pfile;
if(fopen_s(&pfile,"data.i","r")!=0)
{
printf("fileopenfail");
exit(1);
}
fscanf_s(pfile,"当前个数%d\n",&g_count);
printf("当前有%d条数据\n",g_count);
for(inti=0;i
5.关于加密
异或加密:异或是一种运算方式,在C语言中是^符号,通常可以用于加密。
例如项目中的实现
for(intj=0;j
四、总结
程序中还有很有缺陷,第一次写博客,希望大家多多包涵!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。