|
楼主 |
发表于 2004-3-7 22:00:19
|
显示全部楼层
这是我的改进的
[code:1]
#include <stdio.h> /*文件操作及输入输出*/
#include <string.h> /*字符串比较strcmp*/
#define MAX 100 /*设置密码长度 */
void setpassword (void); /*设置密码函数*/
void password(void); /*检验密码函数*/
void function(void);
int *strcmp(const char *s1, const char *s2); /*字符串比较函数 */
int main(int argc, char *argv[]) /*主函数 */
{
FILE *FileCheck; /*检查密码文件函数 */
if ((FileCheck = fopen ("password.dat", "rb")) == NULL)
{
printf("发现程序密码为空,本程序要输入密码才可以运行!\n");
setpassword(); /*如果找不到密码文件,就调用设置密码函数 */
}
else
{
password(); /*找到就调用密码检验函数*/
}
return 0;
}
void setpassword(void)
{
FILE *SetFile; /*建立密码文件 */
char SetPassword[MAX], *pSetPassword = SetPassword; /*建立密码*/
char CheckPassword[MAX], *pCheckPassword = CheckPassword; /*确认密码*/
int *CheckPassword1;
int Count1 = 0;
system("stty -echo"); /*屏蔽屏幕输出 */
printf("\n请输入密码:");
scanf("%s", pSetPassword);
printf("\n请确认密码:");
scanf("%s", pCheckPassword);
if ((CheckPassword1 = strcmp (SetPassword, CheckPassword)) == 0)
printf("\n密码符合! :)\n"); /*请看strcmp函数定义*/
else
{
printf("\n密码不符合!! :(\n");
system("stty -cbreak echo"); /*恢复屏幕输出*/
exit (0); /*推出程序 */
}
if ((SetFile = fopen ("password.dat", "wb")) == NULL) /*建立文件 */
{
printf("系统错误!\n @_@");
exit (0);
}
else
printf("密码设置成功! ^_^\n");
system("stty -cbreak echo");
fwrite(pSetPassword, sizeof(char), MAX, SetFile); /*写入文件 */
fclose (SetFile); /*关闭文件 */
}
void password (void)
{
FILE *GetPasswordFile;
char GetPassword[MAX], *pGetPassword = GetPassword;
char ComparePassword[MAX], *pComparePassword = ComparePassword;
int *CheckPassword2;
int Times = 0;
if ((GetPasswordFile = fopen ("password.dat", "rb")) ==NULL)
{
printf("\n密码未设置! 6_6\n");
exit (0);
}
fread(pGetPassword, sizeof(char), MAX, GetPasswordFile);
while (Times <3) /*设置密码出错次数*/
{
system ("stty -echo");
printf("\n请输入您的密码:");
scanf("%s", pComparePassword);
if ((CheckPassword2 = strcmp(GetPassword, ComparePassword)) == 0)
{
printf ("\n密码正确!\n");
system ("stty -cbreak echo");
printf ("\n谢谢您的使用.by lluct @^_^@\n");
function();
exit (0);
}
else
printf("\n密码错误!!! 8_8\n");
Times++;
}
fclose(GetPasswordFile);
}
void function(void)
{
int choose;
printf("%s\n%s",
"\n1:修改密码 2:打开光驱 3:关闭光驱\n",
"请选择:");
scanf("%d", &choose);
switch (choose)
{
case 1:
setpassword();
break;
case 2:
system("eject -r&");
break;
case 3:
system("eject -t&");
break;
default:
printf("选择错误!! #_#\n");
}
}
[/code:1]
前辈的程序我会有些变量还是看不懂。但我会去研究的。 |
|