9{
10printf("第%d个软件学院教师的信息:
\n",i+1);
11printf("编号:
%04d\n",Teacher[i].TeacherNo);
12printf("姓名:
%s\n",Teacher[i].TeacherName);
13printf("籍贯:
%s\n",Teacher[i].TeacherHometown);
14printf("地址:
%s\n",Teacher[i].TeacherAddress);
15printf("电话:
%s\n",Teacher[i].TeacherPhone);
16printf("生日:
%d年%d月%d日\n",Teacher[i].TeacherBirth.year,Teacher[i].TeacherBirth.month,Teacher[i].TeacherBirth.day);
17printf("工龄:
%d\n",Teacher[i].TeacherWorkYears);
18if(Teacher[i].TeacherSex==0)
19printf("性别:
男\n");
20elseif(Teacher[i].TeacherSex==1)
21printf("性别:
女\n");
22else
23printf("性别:
无\n");
24printf("基本工资:
%f\n",Teacher[i].TeacherBaseSalary);
25printf("月工作天数:
%d\n",Teacher[i].TeacherMonthWorkDays);
26switch(Teacher[i].TeacherEducation)
27{
28case1:
29printf("教育背景:
高中\n");
30break;
31case2:
32printf("教育背景:
学士\n");
33break;
34case3:
35printf("教育背景:
硕士\n");
36break;
37case4:
38printf("教育背景:
其它\n");
39break;
40case5:
41printf("教育背景:
无\n");
42}
43printf("********************************************************\n");
44}
45}
46elseprintf("暂无软件学院教师信息!
请重新选择!
\n");
47}
P187
源程序:
getit(intm)
{
intI,k;
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)break;
if(i>=k+1)
printf(“%disaselectednumber\n”,m);
else
printf(“%disnotaselectednumber\n”,m);
}
P218
源程序:
#include
#include
voidbhdy(ints,intb);
voidprt();
inta[4],flag,count;
voidmain()
{
intb1,b2,i,j,k=0,p,c;
printf("Gameguessyournumberinmindis####.\\n");
for(i=1;i<10&&k<4;i++)//分别显示四个1~9确定四个数字的组成
{
printf("No.%d:
yournumbermaybe:
%d%d%d%d\\n",++count,i,i,i,i);
printf("Howmanydigitshavebadcorrectlyguessed:
");
scanf("%d",&p);//人输入包含几位数字
for(j=0;j
a[k+j]=i;//a[]:
存放已确定数字的数组
k+=p;//k:
已确定的数字个数
}
if(k<4)//自动算出四位中包的个数
for(j=k;j<4;j++)
a[j]=0;
i=0;
printf("No.%d:
yournumbermaybe:
%d%d%d%d\\n",++count,a[0],a[1],a[2],a[3]);
printf("Howmanyareinexactpositions:
");//顺序显示四位数字
scanf("%d",&b1);//人输入有几位位置是正确的
if(b1==4){prt();exit(0);}//四位正确,打印结果,结束游戏
for(flag=1,j=0;j<3&&flag;j++)//实现四个数字的两两(a[j],a[k]交换
for(k=j+1;k<4&&flag;k++)
if(a[j]!
=a[k])
{
c=a[j];a[j]=a[k];a[k]=c;//交换a[j],a[k]
printf("No.%d:
Yournumbermaybe:
%d%d%d%d\\n",++count,a[0],a[1],a[2],a[3]);
printf("Howmanyareinexactpositins:
");
scanf("%d",&b2);//输入有几个位置正确
if(b2==4){prt();flag=0;}//若全部正确,结束游戏
elseif(b2-b1==2)bhdy(j,k);
elseif(b2-b1==-2)
{
c=a[j];a[j]=a[k];a[k]=c;
bhdy(j,k);
}
elseif(b2<=b1)
{
c=a[j];a[j]=a[k];a[k]=c;
}
elseb1=b2;
}
if(flag)printf("Youinputerror!
\\n");
}
voidprt()
{
printf("Nowyournumbermustbe%d%d%d%d.\\n",a[0],a[1],a[2],a[3]);
printf("GameOver\\n");
}
voidbhdy(ints,intb)
{
inti,c=0,d[2];
for(i=0;i<4;i++)//查找s和b以外的两个元素下标
if(i!
=s&&i!
=b)
d[c++]=i;
i=a[d[1]];a[d[1]]=a[d[0]];a[d[0]]=i;//交换除a[s]和a以外的两个元素
prt();
flag=0;
}
P265
源代码:
Publicclassshuzu{
publicintgetlargest(int[]array)throwsException{
if(0==array.length)
{
thrownewException("数组不能为空!
");
}
intresult=array[0];
for(inti=0;i{
if(result{
result=array[i];
}
}
returnresult;
}
}
P280
源代码:
packagemetroSaleTicket;
publicclassMetroSaleTicket{
privateintinputTotalMoney,countOfOneYuan;
//定义允许的地铁路线的“类型”:
A类2元B类4元
privateString[]typeOfTickets={"TypeA","TypeB"};
privateStringresultOfDeal;
publicMetroSaleTicket()
{
initial();
}
privatevoidinitial()
{
countOfOneYuan=100;//1元的数量,初始为100个
}
publicMetroSaleTicket(intoneYuan)
{
countOfOneYuan=oneYuan;
}
publicStringcurrentState()//当前状态
{
Stringstate="CurrentState\n"+
"1Yuan:
"+countOfOneYuan;
returnstate;
}
publicStringoperation(Stringtype,Stringmoney)
//type是用户选择的路线类型,money是用户投币的种类
{
if(money.equalsIgnoreCase("1yuan"))//若投入1元
{inputTotalMoney=inputTotalMoney+1;countOfOneYuan=countOfOneYuan+1;}
elseif(money.equalsIgnoreCase("5yuan"))//若投入5元
{inputTotalMoney=inputTotalMoney+5;}
elseif(money.equalsIgnoreCase("10yuan"))//若投入10元
{inputTotalMoney=inputTotalMoney+10;}
if(inputTotalMoney<2)
{
resultOfDeal="Notenoughmoney!
";//投入少于2元,返回钱不足
returnresultOfDeal;
}
elseif(type.equals(typeOfTickets[0])&&(countOfOneYuan>=inputTotalMoney-2))//若选择A类票且系统足够找零
{
countOfOneYuan=countOfOneYuan-(inputTotalMoney-2);
resultOfDeal="InputInformation\n"+
"Type:
A;Money:
2Yuan\n"+currentState();
returnresultOfDeal;
}
elseif(type.equals(typeOfTickets[0])&&(countOfOneYuan{
resultOfDeal="NotenoughChange!
";returnresultOfDeal;
}
elseif(type.equals(typeOfTickets[1])&&(inputTotalMoney<4))//若选择B类票且投入少于4元,返回钱不足
{
resultOfDeal="NotenoughMoney";
returnresultOfDeal;
}
elseif(type.equals(typeOfTickets[1])&&(countOfOneYuan>=inputTotalMoney-4))//若选择B类票且系统足够找零
{
countOfOneYuan=countOfOneYuan-(inputTotalMoney-4);
resultOfDeal="InputInformation\n"+
"Type:
B;Money:
2Yuan\n"+currentState();
returnresultOfDeal;
}
elseif(type.equals(typeOfTickets[1])&&(countOfOneYuan{
resultOfDeal="NotenoughChange!
";returnresultOfDeal;
}
else
{//其他状态返回异常
resultOfDeal="FailureInformation\n"+"MoneyError";
returnresultOfDeal;
}
}
}
P293
源代码:
packagemetroSaleTicket;
importjunit.framework.Assert;
importjunit.framework.TestCase;
publicclassMetroSaleTicketTestextendsTestCase{
privateMetroSaleTicketobj;
protectedvoidsetUp()throwsException{
obj=newMetroSaleTicket();
//super.setUp();
}
protectedvoidtearDown()throwsException{
super.tearDown();
}
//基本路径1
publicvoidtestOperation1(){
Stringexcept="Notenoughmoney!
";
Assert.assertEquals(except,obj.operation("TypeA","1yuan"));
}
//基本路径2
publicvoidtestOperation2(){
Stringexcept="InputInformation\n"+
"Type:
A;Money:
2Yuan\n"+"CurrentState\n"+
"1Yuan:
"+97;
Assert.assertEquals(except,obj.operation("TypeA","5yuan"));
}
//基本路径2
pu