C#上机练习.docx
《C#上机练习.docx》由会员分享,可在线阅读,更多相关《C#上机练习.docx(16页珍藏版)》请在冰豆网上搜索。
C#上机练习
实验报告
学院(系)名称:
管理学院
姓名
学号
专业
信息管理与信息系统
班级
2班
实验项目
实验二:
结构化程序设计编程
课程名称
基于.NET的程序设计
课程代码
实验时间
实验地点
批改意见:
成绩
教师签字:
1.实验特点:
表达式与条件判断,循环过程。
类型:
验证类别:
专业基础
计划学时:
4学时每组人数:
1人
2.实验目的及要求:
理解并熟练掌握分支结构、循环结构的程序设计方法:
在提高程序可读性上下工夫。
3.主要仪器设备:
计算机
4.实验内容提要:
调试8个程序,使用条件、分支、跳转、循环语句编程实现:
5.内容:
(1)正数的四舍五入;
源程序代码如下:
usingSystem;
namespace四舍五入
{
///
///Class1的摘要说明。
///
classClass1
{
///
///应用程序的主入口点。
///
[STAThread]
staticvoidMain(string[]args)
{
doublex,y;
Console.WriteLine("Pleaseinputthenumber:
");
x=Convert.ToDouble(Console.ReadLine());
if(x<0)
Console.WriteLine("ERROR!
");
else
{
y=Math.Round(x);
Console.WriteLine("x四舍五入为:
{0}",y);
}
}
}
}
输入数据及运行结果截图如下:
1、X为正数:
2、X为负数
(2)任意输入两个数,判断它们的大小并显示判断的结果;
源程序代码如下:
usingSystem;
namespace判断大小
{
///
///Class1的摘要说明。
///
classClass1
{///
///应用程序的主入口点。
///
[STAThread]
staticvoidMain(string[]args)
{
doublex,y;
Console.WriteLine("Pleaseinputthefirstnumber(x):
");
x=Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Pleaseinputthesecondnumber(y):
");
y=Convert.ToDouble(Console.ReadLine());
if(x>y)
Console.WriteLine("x大于y");
elseif(x==y)
Console.WriteLine("x等于y");
else
Console.WriteLine("x小于y");
}
}
}
输入数据及输出结果截图如下:
1、X大于Y:
2、X等于Y
3、X小于Y
(3)对输入的四个整数,求其中的最大值和最小值;
源程序代码如下:
usingSystem;
namespace求最大值与最小值
{
///
///Class1的摘要说明。
///
classClass1
{
///
///应用程序的主入口点。
///
[STAThread]
staticvoidMain(string[]args)
{
doublea,max,min;
Console.WriteLine("Pleaseinputthefirstnumber:
");
max=Convert.ToDouble(Console.ReadLine());
min=max;
for(inti=1;i<4;i++)
{Console.WriteLine("请输入第{0}个数:
",i+1);
a=Convert.ToDouble(Console.ReadLine());
if(a>max)
{
max=a;
}
else
if(a{min=a;}
}
Console.Write("最大数为{0}:
\n最小数为:
{1}",max,min);
}
}
}
运行结果及截图为:
(4)计算一元二次方程ax2+bx+c=0的实根和复根:
当d=b2-4ac>=0时,有两个实根:
当d=b2-4ac<0时,有两个复根:
源程序代码如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
namespace一元二次方程的根
{
classProgram
{
staticvoidMain(string[]args)
{
doublea,b,c,d,x1,x2,re,im;
Console.WriteLine("请输入二次项系数a:
");
a=Convert.ToDouble(Console.ReadLine());
Console.WriteLine("请输入一次项系数b:
");
b=Convert.ToDouble(Console.ReadLine());
Console.WriteLine("请输入常数项c:
");
c=Double.Parse(Console.ReadLine());
d=Math.Pow(b,2)-4*a*c;
if(d>=0)
{
x1=(-b+Math.Sqrt(d))/(2*a);
x2=(-b-Math.Sqrt(d))/(2*a);
Console.WriteLine("一元二次方程{0}X^2+{1}X+{2}=0的实根为:
X1={3},X2={4}",a,b,c,x1,x2);
}
else
{
re=-b/(2*a);
im=Math.Sqrt(-d)/(2*a);
Console.WriteLine("一元二次方程{0}X^2+{1}X+{2}=0的复根为:
X1={3},X2={4}",a,b,c,re,im);
}
}
}
}
运行程序结果截图如下:
1、d>=0的情况
2、d<0的情况:
(5)编写—个应用程序,能够从键盘输入一个非负整数,然后计算并输出它的阶乘。
源程序代码如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
namespace求非负整数的阶乘
{
classProgram
{
staticvoidMain(string[]args)
{
longy=1;
intx,a;
Console.WriteLine("Pleaseinputx:
");
x=Convert.ToInt32(Console.ReadLine());
a=x;
if(x<0)
{
Console.WriteLine("ERROR!
");
}
else
{
while(x>0)
{
y*=x;
x--;
}
Console.WriteLine("{0}!
={1}",a,y);
}
}
}
}
运行结果截图如下:
1、x为非负整数的情况:
2、x为负数的情况:
(6)编写一个应用程序,通过使用公式:
来估计算术常量e的值。
源程序代码如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
namespace求算数常量e的值
{
classProgram
{
staticvoidMain(string[]args)
{
doublesum=1;
for(intn=1;;n++)
{
inttemp=1;
for(inti=1;i<=n;i++)
temp*=i;
if(1/(Convert.ToDouble(temp))break;
sum+=1/(Convert.ToDouble(temp));
}
Console.WriteLine("e={0}",sum);
}
}
}
程序运行结果如下:
(7)写一个应用程序,能通过公式:
来计算ex的值
源程序代码如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
namespace求e_x的值
{
classProgram
{
staticvoidMain(string[]args)
{
doublex,sum=1;
Console.WriteLine("Pleaseinputx:
");
x=Double.Parse(Console.ReadLine());
for(intn=1;;n++)
{
inttemp=1;
for(inti=1;i<=n;i++)
temp*=i;
if((Math.Pow(x,n))/(double)tempbreak;
sum+=(Math.Pow(x,n))/(double)temp;
}
Console.WriteLine("e^x={0}",sum);
}
}
}
程序运行结果截图如下:
(8)写一个程序,对某资格考试结果进行总结,每次只能统计10个学生的考试成绩,显示统计结果的总结,分别指出通过(成绩>=60分)与未通过的学生人数及通过率,如果通过大于大于85%,则显示“提高学费”,否则,显示“降低学费”。
学习程序编写风格:
学习使用注释语句。
源程序代码如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
namespace考试结果总结
{
classProgram
{
staticvoidMain(string[]args)
{
inti=1,pass=0,fail=0;
doublegread,sum=0,prate;
while(i<=10)
{
Console.WriteLine("请输入第{0}个学生的成绩",i);
gread=Convert.ToDouble(Console.ReadLine());
if(gread>100||gread<0)
{
Console.WriteLine("ERROR!
");
return;
}
if(gread>=60)pass+=1;
elsefail+=1;
sum+=gread;
i++;
}
prate=(double)pass/10;
if(prate>0.85)
Console.WriteLine("通过考试的人数为:
{0}\n未通过考试的人数为:
{1}\n通过率为:
{2}\n提高学费",pass,fail,prate);
else
Console.WriteLine("通过考试的人数为:
{0}\n未通过考试的人数为:
{1}\n通过率为:
{2}\n降低学费",pass,fail,prate);
}
}
运行结果截图如下:
1、输入数据错误的情况:
(1)输入成绩大于100:
(2)输入成绩小于0:
2、输入数据没错得情况:
(1)通过率大于85%:
(2)通过率小于85%:
总结:
1、在运用C#中的数学函数时,注意形式应为:
Math.函数名。
2、注意题目要求,如:
第五题要求求非负整数的阶乘,所以写程序时应判断输入数据的正负,若为负,直接就不执行循环语句。
使用占位符会使运行结果更加清晰,如:
第四题使用占位符来使不同项的系数明确表示出来,并且在每一次运行程序时,输入的这些系数不一样,使用占位符就解决了这一难题。
如有侵权请联系告知删除,感谢你们的配合!
25980657C敼n21515540B吋l236635C6F屯/2687368F9棹258956527攧366968F58轘Z
P0