标题:[求助]一个好累人的类程序
只看楼主
olivezhang
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-9-14
得分:0 

void CStudent::Inputdata(int i)
{
cout << "\nPlease Input student " << i+1 << " name: ";
cin.get(stu[i].name, 15);
ClearBuffer();
//clear cin buffer

cout << "Please Input student " << i+1 << " grade: ";
cin >> stu[i].grade;
//对非法数字和字符进行限制,当然可以不是0.00或100.00
while (stu[i].grade < 0.00 || stu[i].grade > 100.00)
{
cout << "Invalid data!\n";
cin >> stu[i].grade;
ClearBuffer();
}

cout << "Please Input student " << i+1 << " year: ";
cin >> stu[i].biryear;
//对非法数字和字符进行限制
while (stu[i].biryear < 1900 || stu[i].biryear > 2006)
{
cout << "Invalid data!\n";
cin >> stu[i].biryear;
ClearBuffer();
}

cout << "Please Input student " << i+1 << " month(1-12): ";
cin >> stu[i].birmonth;
//对非法数字和字符进行限制
while (stu[i].birmonth < 1 || stu[i].birmonth > 12)
{
cout << "Invalid data!\n";
cin >> stu[i].birmonth;
ClearBuffer();
}

cout << "Please Input student " << i+1 << " day: ";
cin >> stu[i].birday;
//对非法数字和字符进行限制
switch (stu[i].birmonth)
{
case 2://二月
while (stu[i].birday < 1 || stu[i].birday > 28)
{
cout << "Invalid data!\n";
cin >> stu[i].birday;
ClearBuffer();
}
break;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: //大月31天
while (stu[i].birday < 1 || stu[i].birday > 31)
{
cout << "Invalid data!\n";
cin >> stu[i].birday;
ClearBuffer();
}
break;
case 4:
case 6:
case 9:
case 11: //小月30天
while (stu[i].birday < 1 || stu[i].birday > 30)
{
cout << "Invalid data!\n";
cin >> stu[i].birday;
ClearBuffer();
}
break;
default:
break;
}
ClearBuffer();
}


谷底深深行 ,峰顶漫漫步......@_@
2006-03-08 12:48
名人
Rank: 1
等 级:新手上路
威 望:1
帖 子:205
专家分:0
注 册:2006-3-3
得分:0 
呵呵,日期都加上判断了啊,不错啊,不过遗漏了润年和润年2月的判断。
我觉得楼主的程序学生的年龄最好用unsigned short 或者unsigned int。

未必钱多乐便多,财多累己招烦恼。 清贫乐道真自在,无牵无挂乐逍遥。
2006-03-08 12:58
ysgyh
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-2-4
得分:0 

我刚学类,不知道你unsigned short 或者unsigned int与我写的那有什么本质区别
请指教!!!

2006-03-08 13:04
名人
Rank: 1
等 级:新手上路
威 望:1
帖 子:205
专家分:0
注 册:2006-3-3
得分:0 
unsigned是无符号的,加上unsigned后年龄就不可能为负数

未必钱多乐便多,财多累己招烦恼。 清贫乐道真自在,无牵无挂乐逍遥。
2006-03-08 13:18
olivezhang
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-9-14
得分:0 
以下是引用名人在2006-3-8 12:58:00的发言:
呵呵,日期都加上判断了啊,不错啊,不过遗漏了润年和润年2月的判断。
我觉得楼主的程序学生的年龄最好用unsigned short 或者unsigned int。

呵呵,急忙中漏了,谢谢指出。


谷底深深行 ,峰顶漫漫步......@_@
2006-03-08 13:19
名人
Rank: 1
等 级:新手上路
威 望:1
帖 子:205
专家分:0
注 册:2006-3-3
得分:0 

但可以是0,可以做下判断限制一下


未必钱多乐便多,财多累己招烦恼。 清贫乐道真自在,无牵无挂乐逍遥。
2006-03-08 13:21
ysgyh
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-2-4
得分:0 
哦,谢谢了,谢谢各位朋友抽出时间给我回复,跟大家学到了很多东西。
以后再有问题望大家还能指教。
再次感谢大家了!!!
2006-03-08 13:25
ltliang
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-3-11
得分:0 

这段程式在编译器上都有错误这处,跟本不可用~

2006-03-11 17:33
ysgyh
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-2-4
得分:0 

是啊,有错啊,我给名人发个邮件问一下吧,要是哪位朋友看出来哪错了,就请回个贴吧,先谢谢了

2006-03-12 11:42
shifeng2799
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2005-9-23
得分:0 
上面各个类中定义的结构体有什么作用,是不是用不着?不懂??

2006-03-12 22:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-49010-1-1.html




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

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