北邮C++实验二作业.docx
《北邮C++实验二作业.docx》由会员分享,可在线阅读,更多相关《北邮C++实验二作业.docx(20页珍藏版)》请在冰点文库上搜索。
![北邮C++实验二作业.docx](https://file1.bingdoc.com/fileroot1/2023-6/2/f307f643-8d71-496d-b667-7308462df4ee/f307f643-8d71-496d-b667-7308462df4ee1.gif)
北邮C++实验二作业
3.3实验题
一、基础题
1.修改下列程序中的语法错误。
#include
usingnamespacestd;
voidmain()
{intchoice=0;
do{
cout<<"请选择下面功能菜单"<cout<<"1.调用浏览学生信息模块.\n";
cout<<"2.调用查询学生信息模块.\n";
cout<<"3.调用增加学生信息模块.\n";
cout<<"4.调用修改学生信息模块.\n";
cout<<"请输入数字(1~4):
\n";
cin>>choice;
if(choice<1||choice>4)
{cout<<"输入错误!
重新输入:
";
continue;
}
switch(choice)
{case1:
cout<<"执行浏览学生信息程序";
break;
case2:
cout<<"执行查询学生信息程序";
break;
case3:
cout<<"执行增加学生信息程序";
break;
case4:
cout<<"执行修改学生信息程序";
break;
}
}while(choice<0);
cout<cout<<"程序结束!
"<system("pause");
}
2.在下列程序中填上适当的语句,打印200以内所有的质数,并对有注释标记的语句进行功能注释。
#include
#include
usingnamespacestd;
voidmain()
{
intj,flage;
doublei,k;
for(i=2;i<=200;i++)
{
flage=1;
k=sqrt(i);//对i做开平方处理
for(j=2;j<=k;j++)
{
if((int)i%j==0)//判断i是否有因数
{flage=0;
break;}
}
if(flage)//关于i是否为素数的开关(若i是素数,则flage=1;若i不是素数,则flage=0)
cout<
}
system("pause");
}
3.修改下列程序,并输出结果,输出示例见图3-1。
要求:
对循环体进行注释。
#include
usingnamespacestd;
voidmain()
{
inti,j;
j=20;
for(i=0;i<=5;i++)//对i进行for循环
{cout<<"i="<
j=i+j*3;}//对j进行赋值运算
cout<<"i="<
cout<<"j="<system("pause");
}
4.修改下列程序,输出结果如图3-2。
并对有注释标记的语句进行功能注释。
#include
usingnamespacestd;
voidmain()
{
inti,j;
for(i=1;i<=9;i++)//对第一个变量i进行循环
{for(j=1;j<=i;j++)//对第二个变量j进行循环
cout<cout<system("pause");
}
5.在下列程序中填上适当的语句,完成统计售货员一天的销售额和接待顾客的人数,并对有注释标记的语句进行功能注释。
输出示例见图3-3。
#include
usingnamespacestd;
voidmain()
{
charx;
floatsum=0,sum1,m,p=0;
cout<<"请输入营业员的密码:
";
cin>>x;
if(x=='1'||x=='2'||x=='3'||x=='4'||x=='5')//营业员的密码为1或2或3或4或5
{do//对每次收费进行循环
{sum1=0;
cout<<"请分别输入用户购买商品的价格"<for(inti=1;i<=10000;i++)//对商品个数进行循环
{cout<<"第"<
";
cin>>m;//输入商品价格
if(m==1111||m==0)//如果m=1111或0就停止
break;
sum1=sum1+m;//计算总的营业额
}
cout<cout<<"请付款为"<cout<p++;//对销售的商品数量进行计数
sum=sum+sum1;
}while(m);}
else
cout<<"请退出收银台,谢谢!
";
cout<<"今天商店的营业额为:
"<cout<<"今天接待消费客人共:
"<
system("pause");
}
二、编程题
1.设计一个程序,验证进入程序密码的正确性。
仿真让用户输入六位数字的密码,且提供三次输入机会,输入正确则显示欢迎使用财会报表程序,否则则显示密码错,重新输入!
,连续输入三次错误后,则显示拒绝使用财会报表软件并结束程序。
#include
usingnamespacestd;
voidmain()
{
cout<<"请输入六位数字程序密码:
";
floata=123456;
floatb;
cin>>b;
if(b==a)
cout<<"欢迎使用财会报表程序!
"<else
{cout<<"密码错,重新输入!
"<cin>>b;
if(b==a)
cout<<"欢迎使用财会报表程序!
"<else
{cout<<"密码错,重新输入!
"<cin>>b;
if(b==a)
cout<<"欢迎使用财会报表程序!
"<else
cout<<"连续三次输入错误,拒绝使用财会报表软件并结束程序!
"<system("pause");
}
2.设计一个程序,求出100到999以内的所有“水仙花数”。
“水仙花数”是指一个三位数,其各位数字的立方和恰好等于该数本身。
例如370=3*3*3+7*7*7+0,在999以内共有4个水仙花数。
#include
usingnamespacestd;
voidmain()
{
inti,a,b,c;
for(i=100;i<1000;i++)
{a=(i/100)*(i/100)*(i/100);
b=((i/10)%10)*((i/10)%10)*((i/10)%10);
c=(i%10)*(i%10)*(i%10);
if(a+b+c==i)
cout<
system("pause");
}
3.设计一个程序,输入年、月,打印出该年该月的天数。
提示:
每年的1月、3月、5月、7月、8月、10月、12月份是31天,4月、6月、9月、11月份是30天;闰年判断方法:
如果年号能被400整除,则是闰年;如果年号能被4整除,而不能被100整除,则是闰年,闰年的2月份为29天,平年为28天。
#include
usingnamespacestd;
intleapyear(inta);
voidmain()
{
intyear,month;
cout<<"请输入年份:
";
cin>>year;
cout<<"请输入月份:
";
cin>>month;
if(leapyear(year))
switch(month)
{
case1:
cout<break;
case2:
cout<break;
case3:
cout<break;
case4:
cout<break;
case5:
cout<break;
case6:
cout<case7:
cout<break;
case8:
cout<break;
case9:
cout<break;
case10:
cout<break;
case11:
cout<break;
case12:
cout<break;
default:
cout<<"输入错误,请重新输入!
";
}
else
switch(month)
{
case1:
cout<break;
case2:
cout<break;
case3:
cout<break;
case4:
cout<break;
case5:
cout<break;
case6:
cout<case7:
cout<break;
case8:
cout<break;
case9:
cout<break;
case10:
cout<break;
case11:
cout<break;
case12:
cout<break;
default:
cout<<"输入错误,请重新输入!
";
}
system("pause");
}
intleapyear(intyear)
{
if(year%100==0)
{if(year%400==0)
return1;
else
return0;}
else
if(year%4==0)
return1;
else
return0;
}
4.设计一个程序,打印下列5阶的实心菱形。
提高题:
打印出n阶的实心菱形。
*
***
*****
*******
*********
*******
*****
***
*
#include
#include
usingnamespacestd;
voidmain()
{
inti=1,j,n;
cout<<"请输入一个正整数n:
";
cin>>n;
while(i<=n)
{
for(j=1;j<=((n-i)/2);j++)
cout<<"";
for(j=1;j<=i;j++)
cout<<"*";
for(j=1;j<=((n-i)/2);j++)
cout<<"";
cout<i=i+2;
}
i=i-2;
while(i>0)
{
for(j=1;j<=((n-i)/2);j++)
cout<<"";
for(j=1;j<=i;j++)
cout<<"*";
for(j=1;j<=((n-i)/2);j++)
cout<<"";
cout<i=i-2;
}
system("pause");
}
5.设计一程序,输入一串字符,分别统计出其中英文字母、空格、数字和其他字符的个数并打印统计结果。
#include
usingnamespacestd;
voidmain()
{
intletter=0,number=0,sign=0,space=0;
intk=0;
constintn=1000;
charbuffer[n];
cout<<"请输入一行字符:
"<cin.getline(buffer,n,'\n');
while(buffer[k]!
='\0')
{
if(((int)buffer[k]>=65&&(int)buffer[k]<=90)||((int)buffer[k]>=97&&(int)buffer[k]<=122))
letter++;
if((int)buffer[k]>=48&&(int)buffer[k]<=57)
number++;
if(((int)buffer[k]>=33&&(int)buffer[k]<=47)||((int)buffer[k]>=58&&(int)buffer[k]<=64)||((int)buffer[k]>=91&&(int)buffer[k]<=96)||((int)buffer[k]>=123&&(int)buffer[k]<=126))
sign++;
if((int)buffer[k]==32)
space++;
k++;
}
cout<<"字母的个数是:
"<cout<<"数字的个数是:
"<cout<<"字符的个数是:
"<cout<<"空格的个数是:
"<system("pause");
}
6.编写一个程序,统计文本文件中的字符数。
#include
usingnamespacestd;
voidmain()
{
intx=0,k=0;
constintn=10000;
charfilename[n];
cout<<"请输入文件名:
";
cin>>filename;
while((int)filename[k]!
=27)
{
x++;
k++;
};
cout<<"字符的个数是:
"<system("pause");
}