大家帮忙!
我写的一个注册登录的小程序:
#include <iostream>
#include <conio.h>
#include <string.h>
using namespace std;
struct Node
{
char * name;
char * pwd;
Node * next;
};
class Ilist
{
public :
void insert(char * strname,char * strpwd)
{
Node *temp;
if(head==0)
{
iflag=1;
head=new Node;
head->name=new char(strlen(strname)+1);
strcpy(head->name,strname);
head->pwd=new char(strlen(strpwd)+1);
strcpy(head->pwd,strpwd);
head->next=0;
flag=head;
}
else
{
temp=new Node;
head->name=new char(strlen(strname)+1);
strcpy(temp->name,strname);
head->pwd=new char(strlen(strpwd)+1);
strcpy(temp->pwd,strpwd);
temp->next=0;
flag->next=temp;
delete temp;
}
}
int find(char * strname ,char * strpwd)
{
Node * temp;
temp=head;
while (temp)
{
if( !strcmp(temp->name,strname))
{
if(!strcmp(temp->pwd,strpwd))
{
cout<<"密码正确!\n";
return 1;
}
else
{
cout <<"密码不正确\n!";
return 0;
}
}
temp=temp->next;
}
cout<<"用户名不存在\n";
return 0;
}
Ilist()
{
head=0;
iflag=0;
}
~Ilist()
{
if(iflag==1)
delete head;
}
private :
Node *head,*flag;
int iflag;
};
void getlist(char * sname,char *spwd)
{
int i=0;
cout<<"name:";
cin>>sname;
cout<<"password:";
while(1)
{
spwd[i]=getch();
if(spwd[i]==13)
{
spwd[i]='\0';
cout<<"\n";
return;
}
cout<<'*';
i++;
}
}
int main()
{
int inum=0,i=0;
char sname[20],spwd[20],hh[10];
Ilist list;
while(1)
{
cout<<"1. 注册:";
cout<<"\n2. 登录:";
cout<<"\n请选择:";
cin>>hh;
switch (atoi(hh))
{
case 1:
{
getlist(sname,spwd);
list.insert(sname,spwd);
cout<<"OK! 注册成功\n";
break;
}
case 2:
{
getlist(sname,spwd);
i=list.find(sname,spwd);
if(i==1)
{
cout<<"OK! 登录成功!\n";
exit(1);
}
else
{
cout<<"ERROR!\n";
break;
}
}
default:
{
cout<<"input error!\n";
break;
}
}
}
return 1;
}
这个程序明天就给别人了,大家帮我看看还有什么问题(我是新手,有错误请不要见怪),谢谢大家
问题点数:50、回复次数:5Top
1 楼cunsh(村少)回复于 2006-03-03 23:37:04 得分 10
怎么不写注释.过些时间这些代码你都不认识了.Top
2 楼wzjall(风)回复于 2006-03-04 00:39:58 得分 10
为什么不直接用标准库里的东西呢Top
3 楼ugg(逸学堂(exuetang.net))回复于 2006-03-04 21:11:20 得分 10
太长了,Top
4 楼xiaocai0001(高楼目尽欲黄昏/梧桐叶上萧萧雨)回复于 2006-03-04 21:24:35 得分 20
程序里所有类似
... = new char(strlen(strname)+1);
都写错了!
应该是
... = new char[strlen(strname)+1];Top
5 楼vc1214()回复于 2006-03-05 11:30:13 得分 0
谢谢大家
wzjall(风) ( ) 信誉:100 2006-3-4 0:39:58 得分: 0
为什么不直接用标准库里的东西呢
您可不可以说明白些?非常感谢
Top




