64,654
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
#include <fstream>
#include <stdio.h>
using namespace std;
/*---------------------------------------------------------------------------------------------*/
class jishiben
{
char neirong[100];
int panduan;
char lujin[20];
public:
int tianjia();
int shanchu();
int duqu();
int shezhi();
};
/*----------------------------------------------------------------------------------------------*/
int jishiben::tianjia() //添加数据
{
char buf[20];
char mima[20];
char mima3[20];
int mima2;
ifstream ifile1("c:\\lujin.ini",ios::in);
ifile1.getline(buf,50,'\n');
mima2=strcmp("a",buf);//判断是否相等
if (mima2!=0)
{
strcpy(lujin,buf);
cout<<lujin<<endl;
goto youlujin;
}
cout <<"请输入路径"<<endl;
cout <<"DOS记事本\\主程序\\添加数据>";
scanf("%s",lujin);
youlujin:
ofstream ofile(lujin,ios::app);
if (! ofile) cerr <<"链接文件失败!" <<endl;
else
{
cout<<"文件连接成功!"<<endl;
while(1)
{
cout <<"请输入内容,换行请按enter" <<endl;
cout <<"DOS记事本\\主程序\\添加数据>";
cin>>neirong;
ofile <<neirong <<endl;
cout <<"继续添加请按1,返回上级目录请按2" <<endl;
cout <<"DOS记事本\\主程序\\添加数据>";
cin>>panduan;
if (panduan != 1)
break;
}
}
return 0;
}
int jishiben::shanchu()//删除数据
{
char buf[20];
char mima[20];
char mima3[20];
int mima2;
ifstream ifile1("c:\\lujin.ini",ios::in);
ifile1.getline(buf,50,'\n');
mima2=strcmp("a",buf);//判断是否相等
if (mima2!=0)
{
strcpy(lujin,buf);
cout<<lujin<<endl;
goto youlujin1;
}
cout <<"请输入要删除的文件路径"<<endl;
cout <<"DOS记事本\\主程序\\删除数据>";
scanf("%s",lujin);
youlujin1:
ofstream ofile(lujin);
cout<<"数据清除成功"<<endl;
return 0;
}
int jishiben::duqu()//读取数据
{
char buu[20];
char pass[20];
char pass3[20];
int pass2;
ifstream ifile1("c:\\lujin.ini",ios::in);
ifile1.getline(buu,50,'\n');
pass2=strcmp("a",buu);//判断是否相等
if (pass2!=0)
{
strcpy(lujin,buu);
cout<<lujin<<endl;
goto youlujin1;
}
char buf;
int changdu;
cout <<"请输入要读取的文件路径"<<endl;
cout <<"DOS记事本\\主程序\\读取数据>";
scanf("%s",lujin);
youlujin1:
ifstream ifile(lujin,ios::in);
ifile.seekg(0,ios::end);
changdu=ifile.tellg();
cout<<"文件长度为:"<<changdu<<endl;
ifile.seekg(0,ios::beg);
for (int i=1;i<=changdu;i++)
{
ifile.get(buf);
cout<<buf;
ifile.seekg(i);
}
cout<<endl;
return 0;
}
int jishiben::shezhi()//系统设置
{
char buf[20];
char mima[20];
char mima3[20];
int date[6];
int dat[6];
int mima2;
ifstream ifile("c:\\shezhi.ini",ios::in);
ifile.getline(buf, 20, '\n');
cout<<"请输入要执行的操作,1为修改密码,2为修改路径"<<endl;
cout<<"DOS记事本\\主程序\\系统设置>";
cin>>panduan;
mimacuo://请求输入密码
if (panduan==1)//设置密码
{
mima2=strcmp("a",buf);
if (mima2==0)
{
cout<<"当前尚未设置密码,请输入你要设置的密码"<<endl;
goto buyizhi;
}
else
{
mima2=0;
cout<<"请输入原密码"<<endl;
cout<<"第1位密码:";
cin>>date[0];
cout<<"第2位密码:";
cin>>date[1];
cout<<"第3位密码:";
cin>>date[2];
cout<<"第4位密码:";
cin>>date[3];
cout<<"第5位密码:";
cin>>date[4];
cout<<"第6位密码:";
cin>>date[5];
for(int queren=0;queren<=5;queren++)
{
if (date[queren]!=dat[queren])
{
mima2=1;
}
}
if (mima2!=0)//如果原密码错误
{
cout<<"密码错误!请重新输入"<<endl;
goto mimacuo;//跳转回去,重新输入密码
}
if (mima2==0)//如果原密码正确
{
cout<<"密码正确,请输入6位数字新密码,要取消密码请输入a"<<endl;
buyizhi://请求新密码 这个出错了
cout<<"第1位密码:";
cin>>date[0];
cout<<"第2位密码:";
cin>>date[1];
cout<<"第3位密码:";
cin>>date[2];
cout<<"第4位密码:";
cin>>date[3];
cout<<"第5位密码:";
cin>>date[4];
cout<<"第6位密码:";
cin>>date[5];
cout<<"请再次输入新密码"<<endl;
cout<<"第1位密码:";
cin>>dat[0];
cout<<"第2位密码:";
cin>>dat[1];
cout<<"第3位密码:";
cin>>dat[2];
cout<<"第4位密码:";
cin>>dat[3];
cout<<"第5位密码:";
cin>>dat[4];
cout<<"第6位密码:";
cin>>dat[5];
mima2=0;
for(int pa=0;pa<=5;pa++)
{
if(dat[pa]!=date[pa])
{
mima2=1;
}
}
if (mima2==0)
{
cout<<"密码修改成功"<<endl;
ofstream ofile("c:\\shezhi.ini",ios::binary);
ofile.write((char *)date,sizeof(date));
ofile.close();
ifstream ifile("c:\\shezhi.ini",ios::binary);
ifile.read((char *)dat,sizeof(dat));
cout<<dat[0]<<dat[1]<<dat[2]<<dat[3]<<dat[4]<<dat[5];
}
if (mima2!=0)
{
cout<<"两次密码输入不一致,请重新输入"<<endl;
cout<<"DOS记事本\\主程序\\系统设置\\设置密码>";
goto buyizhi;//跳转输入密码处
}
}
}
};
if (panduan==2)//设置路径
{
ifstream ifile("c:\\lujin.ini",ios::in);
ifile.getline(buf, 20, '\n');
mima2=strcmp("a",buf);//判断是否相等
if (mima2==0)
{
cout<<"还没有设置路径,你可以现在设置路径!"<<endl;
cout<<"DOS记事本\\主程序\\系统设置\\设置路径>";
scanf("%s",mima);
ofstream ofile("c:\\lujin.ini");
ofile <<mima<<endl;
}
else
{
cout<<"当前设置为:"<<buf<<endl;
cout<<"你请输入路径!"<<endl;
cout<<"DOS记事本\\主程序\\系统设置\\设置路径>";
scanf("%s",mima);
ofstream ofile("c:\\lujin.ini");
ofile <<mima<<endl;
}
};
return 0;
}
/*---------------------------------------------------------------------------------------------*/
void main()
{
char buf[6];
char mima[6];
int mima2;
int dat[6];
int date[6];
int s=-1;
jishiben jishi1;
cout <<"------------------------欢迎使用雪舞软件------------------------------------" <<endl;
cout <<"-------------------------DOS记事本V2.0--------------------------------------" <<endl;
mimacuo://密码错误跳转到这里
ifstream ifile("c:\\shezhi.ini",ios::in);//连接设置文件
//-------------判断设置文件是否生成,如未生成则生成----------
ifstream ifile1("c:\\lujin.ini",ios::in);
if(!ifile1) //判断路径设置文件
{
ofstream ofile("c:\\lujin.ini",ios::app);
ofile <<"a"<<endl;
}
if(!ifile) //判断密码设置文件
{
ofstream ofile("c:\\shezhi.ini",ios::app);
ofile <<"a"<<endl;
goto xunhuan;
}
//----------------------------------------------------------
ifile.getline(buf, 20, '\n');
mima2=strcmp("a",buf);
if (mima2==0)
{
for(;;)
{
xunhuan://进入循环
cout <<"请输入要执行的操作:"<<endl<<"0--退出程序"<<endl<<"1--输入数据"<<endl<<"2--删除数据"<<endl<<"3--读取数据" <<endl<<"4--系统设置"<<endl;
cout <<"DOS记事本\\主程序>";
cin>>s;
if (s==4)
jishi1.shezhi();
if (s==3)
jishi1.duqu();
if (s==2)
jishi1.shanchu();
if (s==1)
jishi1.tianjia();
if (s==0)
{
cout<<"谢谢使用!"<<endl;
break;
}
}
}
else
{
cout<<"系统已经设置密码,请输入密码后可以使用"<<endl;
mima2=0;
ifstream ifile("c:\\shezhi.ini",ios::binary);
ifile.read((char *)dat,sizeof(dat));
cout<<"第1位密码:";
cin>>date[0];
cout<<"第2位密码:";
cin>>date[1];
cout<<"第3位密码:";
cin>>date[2];
cout<<"第4位密码:";
cin>>date[3];
cout<<"第5位密码:";
cin>>date[4];
cout<<"第6位密码:";
cin>>date[5];
for(int queren=0;queren<=5;queren++)
{
if (date[queren]!=dat[queren]) mima2=1;
}
if (mima2==0)
{
goto xunhuan;
}
else
{
cout<<"密码错误!请重新输入"<<endl;
goto mimacuo;
}
}
}
switch(c){
int i = 0;
case 1: ...
case 2: ...
}
//i被goto跨了,所以错了
//除非
switch(c){
{int i = 0;}
case 1: ...
case 2: ...
}