| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 612 人关注过本帖
标题:[求助]偶实在是想不出来该怎么改了.请大家帮帮忙!非常感谢!
只看楼主 加入收藏
xiaxia2421
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-4-11
收藏
 问题点数:0 回复次数:8 
[求助]偶实在是想不出来该怎么改了.请大家帮帮忙!非常感谢!

#include<stdio.h>
#include<iostream.h>
#include<string.h>

struct Student{
char cStuName[10];
char cPassword[8];
char cMajor[10];
Student* pNextStu;
};

struct HeadNode{
int nCount;
Student* pFirstStu;
};

void login(HeadNode* pHeader);
void zhuce(HeadNode* pHeader);
void main()
{
HeadNode *pHeader=new HeadNode;
int i=0,j=0;
pHeader->nCount=0;
pHeader->pFirstStu=NULL;

while(i<6){
printf("输入数字选择进入以下状态.");
printf("1.注册");
printf("2.登陆");
printf("3.个人信息");
printf("4.选课");
printf("5.已修课程");
printf("6.退出\n");
printf("You choice:");
scanf("%d",&i);
switch(i)
{
case 1:printf("注册");
zhuce(pHeader);
i=0;
break;
case 2:printf("登陆");
login(pHeader);
break;
case 3:printf("个人信息");

break;
case 4:printf("选课");

break;
case 5:printf("已修课程");

break;
case 6:printf("退出");

break;
default:break;
}
}
}
void zhuce(HeadNode* pHeader)
{
Student* pNewStu=new Student;

printf("输入帐号:");
cin>>pNewStu->cStuName;
if(strlen(pNewStu->cStuName)==0){
cout<<"You fail to registe."<<endl;
return;
}
printf("输入密码:");
cin>>pNewStu->cPassword;
cout<<"You are successful to registe!"<<endl;

pNewStu->pNextStu=pHeader->pFirstStu;
pHeader->pFirstStu=pNewStu;
return;

}

void login(HeadNode* pHeader)
{
char pStuName[10];
char pPassword[8];
printf("输入帐号:");
cin>>pStuName;
printf("输入密码:");
cin>>pPassword;
Student* pMove;
pMove=pHeader->pFirstStu;
while((strcmp(pMove->cStuName,pStuName)!=0||strcmp(pMove->cPassword,pPassword)!=0)&&(pMove!=NULL))
pMove=pMove->pNextStu;
if(pMove!=NULL)
cout<<"you are successful to login!"<<endl;
else
cout<<"you are illegal user!"<<endl;
}

这是一个学生选课系统的程序,只写了注册和登陆的函数.
但是,注册好了以后,在登陆的时候,不管有没有注册过,显示的结果都是"you are successful to login!".
请大家帮帮忙,看下是哪里出错了! 偶想了一个下午了.......... 谢谢先!!!

[此贴子已经被作者于2007-4-11 17:15:21编辑过]

搜索更多相关主题的帖子: pHeader HeadNode void Student include 
2007-04-11 17:14
YANGDAN123
Rank: 1
等 级:新手上路
帖 子:97
专家分:0
注 册:2007-1-16
收藏
得分:0 
while((strcmp(pMove->cStuName,pStuName)!=0||strcmp(pMove->cPassword,pPassword)!=0)&&(pMove!=NULL))
pMove=pMove->pNextStu;
这句好像有问题,我没上机运行,等会上去调试调试再说

我将用我全部的时间去寻找我生命和灵魂的唯一伴侣,得之,我幸,不得,我命。
2007-04-11 17:24
xiaxia2421
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-4-11
收藏
得分:0 
我也觉得是那里有问题,可是不知道该怎么改啊!

谢谢楼上的同学....

2007-04-11 17:32
YANGDAN123
Rank: 1
等 级:新手上路
帖 子:97
专家分:0
注 册:2007-1-16
收藏
得分:0 
LZ用的是什么编译器啊?

我将用我全部的时间去寻找我生命和灵魂的唯一伴侣,得之,我幸,不得,我命。
2007-04-11 17:58
xiaxia2421
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-4-11
收藏
得分:0 
Microsoft Visual C++ 6.0

2007-04-11 18:01
无玩过界
Rank: 1
等 级:新手上路
威 望:2
帖 子:246
专家分:0
注 册:2007-2-20
收藏
得分:0 
O,C++。

2007-04-11 21:06
xiaxia2421
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-4-11
收藏
得分:0 

哪位大侠!! 帮个忙啊... !!! 小女子.在此先谢谢了~~~~~!


这个问题.....实在是很捆扰!............


2007-04-13 14:17
Javal
Rank: 1
等 级:新手上路
威 望:1
帖 子:108
专家分:0
注 册:2006-5-7
收藏
得分:0 
while((strcmp(pMove->cStuName,pStuName)!=0||strcmp(pMove->cPassword,pPassword)!=0)&&(pMove!=NULL))
改为
while((pMove!=NULL)&&(strcmp(pMove->cStuName,pStuName)!=0||strcmp(pMove->cPassword,pPassword)!=0))
就可以了

如果运行程序后没有注册过而直接登陆,pMove为空指针,执行到while语句这里调用strcmp(pMove->cStuName,pStuName)函数就会出现内存空间不能访问的错误,因为此时pMove->cStuName是没有定义的

(pMove!=NULL)移到前面后先判断pMove是否为空,如果为空则执行while循环后面的语句,不再判断(strcmp(pMove->cStuName,pStuName)!=0||strcmp(pMove->cPassword,pPassword)!=0)的值

[此贴子已经被作者于2007-4-13 14:45:54编辑过]


猝然临之而不惊,无故加之而不怒 /?spaced" target="_blank">Linux C资料
2007-04-13 14:44
xiaxia2421
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-4-11
收藏
得分:0 
哇..........!!!
感谢啊!!!!!
谢谢楼上的GG~~~~~~~~~~~~!

谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢!!!!!

2007-04-13 15:06
快速回复:[求助]偶实在是想不出来该怎么改了.请大家帮帮忙!非常感谢!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023320 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved