第一篇:C程序设计实验报告
浙江理工大学信息学院
C程序设计实验报告
实验名称: 学时安排:
实验类别:
实验要求:1人1组
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
一、实验目的
二、实验设备介绍
软件需求: Visual C++ 6.0或CFree3.5以上版本
硬件需求: 对于硬件方面的要求,建议配置是Pentium III 450以上的CPU处理器,64MB以上的内存,200MB的自由硬盘空间、CD-ROM驱动器、能支持24位真彩色的显示卡、彩色显示器、打印机。
三、实验内容
四、程序清单
五、运行结果
六、实验心得
第二篇:《计算机程序设计》实验报告
《计算机 程序设计》 实验报告
姓名:
学号 :
实验日期:
****年**月**日
实验名称
控制结构与基本算法 一、实验目的要求 1.熟练掌握 if 语句和 switch 语句 2.循环控制结构的使用 二、实验内容 1.实验教材 P86 第四题。
2.实验教材 P87 第八题。
3.实验教材 P108 第一题。
4.实验教材 108 页的第四题。
5.选做题:参考实验教材 P104 第六题,做课件上题目:
科大有 4 位同学中的一位做了好事不留名,表扬信来了之后,校长问这四位是谁做的好事.A 说:不是我.B 说:是 C.C 说:是 D.D 说:他(C)胡说
• 文件名格式:学号-姓名-实验 5.doc
• 序号 1-23:tmf77@mail.ustc.edu.cn • 序号 24-45:yunmeng@mail.ustc.edu.cn • 序号 46-67:cys1024@mail.ustc.edu.cn
三、上机程序(算法设计思想)
四、运行结果
五、调试中的问题及解决方法
第三篇:分支程序设计实验报告[范文模版]
实验二 二 分支程序设计 一、实验目得: 1、学习分支程序得设计方法 2、熟悉在 PC 机上建立、汇编、连接、调试与运行汇编语言程序得过程 二、实验环境:
硬件环境
IBM/ PC 及其兼容机 软件环境
统 操作系统 DO S
编辑程序 EDIT 或其她编辑程序
序程编汇ﻩ 汇编程序 M ASM、E XE
连接程序LIN K、EXE 序 调试程序 DEB UG、EXE 三、实验内容:
:、在屏幕上显示如下信息:—-— —- ------—-—---— — ------—-Panda
2— —- --— — ---—-—-———-----— —-—--Cat
ﻩ
3-——--------------———- -——-Ra bbit
4— — -— —-— — -— —--— — --- —- --——------Pig—— ------—--—--—-—---— —- --—EXI T
(Plea se
ch oo se 1, 2, 3,4or 5)—- ----入 若输入 1, 显示“I like e
p panda ”后程序结束;若输入 2, 显示“I
lik e cat” ”后程序结束;若输入 3,显示“I
lik e rab bit t入 ”后程序结束;若输入 4, 显示“I do n’t l like pig ”后程序结束;若输入 5,程序直接结束;若输入其它字符,显示“You
pr ess an error key!“ 后程序结束.1)流程图
2)源程序 DATA SEGMENT
INFOR1 DB 0AH,0DH,”1-—-—----—-—Panda:$"
INFOR2 DB 0AH,0DH,”2—-—-——--———Cat:$”
INFOR3 DB 0AH,0DH,"3---—---——-—Rabbit;$”
INFOR4 DB 0AH,0DH,"4---—------—pig:$“
INFOR5 DB 0AH,0DH,”5--—--——--—-EXIT:$"
INFOR6 DB 0AH,0DH,”(please choose 1,2,3,4 or 5——-):$“
INFOR7 DB 0AH,0DH,”I like Panda:$“
INFOR8 DB 0AH,0DH,"I like Cat:$”
INFOR9 DB 0AH,0DH,"I like Rabbit;$"
INFOR10 DB 0AH,0DH,”I like pig:$"
INFOR11 DB 0AH,0DH,”you press an error key!:$” DATA ENDS
;数据段结束 CODE SEGMENT
;代码段开始 Y Y Y Y N N N N N 开始 选项 用户输入 Al=1 Al=2 Al=3 Al=4 Al=5 You press an error key 结束 I like panda I like cat I like rabbit I like do not
ASSUME
CS:CODE,DS:DATA
;段寻址 START: MOV AX,DATA
;将 data 得数据存入ax 中
MOV DS,AX
;为 ds 赋值
MOV DX,OFFSET
INFOR1
;返回变量 INFOR1 段内偏移地址【运行后在屏幕上显示字符 1--——--—--—-Panda:】
MOV AH,09H
INT 21H
;执行九号功能调用
MOV DX,OFFSET
INFOR2
MOV AH,09H
INT 21H
MOV DX,OFFSET
INFOR3
MOV AH,09H
INT 21H
MOV DX,OFFSET
INFOR4
MOV AH,09H
INT 21H
MOV DX,OFFSET
INFOR5
;返回变量 INFOR5 段内偏移地址【运行后在屏幕上显示字符 5—-—--——----EXIT:】
MOV AH,09H
INT 21H
MOV DX,OFFSET
INFOR6
MOV AH,09H
INT 21H
MOV AH,01H
INT 21H
CMP AL,“1’
JE
Panda
CMP AL,'2’
JE
Cat
CMP AL,”3’
JE
Rabbit
CMP AL,’4'
JE Pig
CMP AL,’5’
JE PEND
JMP Other Panda:
MOV DX,OFFSET INFOR7
MOV AH,09H
INT 21H
JMP PEND Cat:
8ROFNI TESFFO,XD VOMﻩ H90,HA VOMﻩ H12 TNIﻩ JMP PEND Rabbit:
MOV DX,OFFSET INFOR9
MOV AH,09H
H12 TNIﻩ
JMP PEND Pig:
MOV DX,OFFSET INFOR10
H90,HA VOMﻩ INT 21H
JMP PEND Other:
MOV DX,OFFSET INFOR11
MOV AH,09H
H12 TNIﻩ
JMP PEND PEND:
MOV AH,4CH
INT 21H CODE
ENDS
END START
2、、从键盘输入一字符,判断该字符就是小写字母、大写字母、数字或其它字符.若输入为小写字母, 显示“Y You
I nput a Lo wer case Letter!”;若输入为大写字母, 显示“You Inp ut a Uppercase L et ter!”;若输入为数字,显示“Yo ou Input a Digit!“;
若输入为其它字符,显示“You Inpu t
Ot her Let tt er!”。、编程指导 字 数字 0 9得ASC II 码为30H 39H;大写字母得 ASCII 码为 4 1H 5AH,小写字母得AS CI I码为61H 7AH。本题目将字符分为小写字母、大写字母、数字及其它字符,得 根据键入字符得 AS CII 码值判断其所属类型, 并显示相应得信息 息.字符串显示使用功能号为 09H 得 得 DOS 功能调用, 接收键盘输入得单个字符使为 用功能号为 01H 得 得 DOS 功能调用。
2、流程图及程序框图 1)流程图 2)源程序 DATA SEGMENT
INFOR1 DB 0AH,0DH,”Please Press Any Key to input a letter:$"
INFOR2 DB 0AH,0DH,”You input a lowercase letter!$”
INFOR3 DB 0AH,0DH,“You input a Uppercase letter!
$”
INFOR4 DB 0AH,0DH,"You input a Digit!
$”
INFOR5 DB 0AH,0DH,“You input Other letter!$” DATA ENDS CODE SEGMENT
ASSUME
CS:CODE,DS:DATA START:
MOV AX,DATA
; 显示信息“Please Press Any Key to input a letter”得指令序列以及接收从键盘输入一个字符得指令序列
MOV DS,AX
MOV
DX,OFFSET
INFOR1
H90,HA
VOMﻩ
INT
21H
MOV AH,01H
INT 21H Y Y Y Y Y Y 显示提示信息“Please Press Any Key to input a letter” 及功能号为 1 得接收键盘输入单个字符得指令序列 开始 结束(AL)<’0’(AL)<=’9’(AL)<’A’(AL)<=’Z’(AL)<’a’(AL)<=’z’ 输入得就是小写字母,显示信息 输入得就是大写字母,显示信息 输入得就是数字,显示有关信息 输入得就是其它字符,显示信息
CMP
AL,’0’
JB
OTHER
CMP
AL,’9’
JBE
DIGIT
CMP
AL,’A“
REHTO
BJﻩ ”Z',LA
PMCﻩ REPPU
EBJﻩ CMP
AL,’a’
JB
OTHER
“z',LA
PMCﻩ JBE
LOWER
JMP
PEND LOWER:
;显示“You Input a Lowercase Letter!”得指令序列
MOV DX,OFFSET INFOR2
H90,HA VOMﻩ INT 21H
出跳序程使应后支分个一完行执意注;
DNEP PMJﻩUPPER:
; 显示“You Input a Uppercase Letter”得指令序列 MOV DX,OFFSET INFOR3
H90,HA VOMﻩ H12 TNIﻩ DNEP PMJﻩDIGIT:
; 显示“You Input a Digit!”得指令序列 MOV DX,OFFSET INFOR4
H90,HA VOMﻩ INT 21H
JMP PEND OTHER:
; 显示“You Input Other Letter!”得指令序列
5ROFNI TESFFO,XD VOMﻩ MOV AH,09H
H12 TNIﻩPEND:
MOV AH,4CH
H12 TNIﻩCODE
ENDS
END START
四、心得 通过这次上机实验, 我掌握了分支程序额设计方法, 宏定义及宏调用得基本方法,了解了小写字母与大写字母得ASCII 码表示及其转换方法,了解了数字及其她得 字符得 AS CII 码表示方法, 进一步掌握了调试工具得 使用方法。
第四篇:C#程序设计实验报告
实验报告书写要求
实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,标题采用四号黑体,正文采用小四号宋体,单倍行距。纸张一律采用A4的纸张。
实验报告书写说明
实验报告中实验目的和要求、实验仪器和设备、实验内容与过程、实验结果与分析这四项内容为必需项。教师可根据学科特点和实验具体要求增加项目。
填写注意事项
(1)细致观察,及时、准确、如实记录。(2)准确说明,层次清晰。
(3)尽量采用专用术语来说明事物。
(4)外文、符号、公式要准确,应使用统一规定的名词和符号。(5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。
实验报告批改说明
实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用五级记分制或百分制,按《金陵科技学院课堂教学实施细则》中作业批阅成绩评定要求执行。
实验报告装订要求
实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。
金陵科技学院实验报告
实验项目名称: C#基础编程 实验学时: 6 同组学生姓名: 实验地点: 1318 实验日期: 10月5日-10月19日 实验成绩: 批改教师: 批改时间:
金陵科技学院实验报告
实验1 C#基础编程
一、实验目的
1、熟悉Visual Studio.NET开发环境。
2、掌握C#应用程序的基本操作过程。
3、掌握C#的数据类型,运算符以及表达式的使用。
4、掌握分支和循环语句的使用方法。
5、掌握一维数组,二维数组及数组型数组的使用。
二、实验要求
(1)编写程序要规范、正确,上机调试过程和结果要有记录(2)做完实验后给出本实验的实验报告。
三、实验设备、环境
安装有Visual Studio.NET软件。
四、实验步骤
1、分析题意。
2、根据题目要求,新建项目。
3、编写并输入相关的程序代码。
5、运行与调试项目。
6、保存项目。
五、实验内容
1、编写一个简单的控制台应用程序,打印一行文字(如你的姓名)。
using System;using System.Collections.Generic;using System.Linq;using System.Text;
namespace one.first {
class Program
{
static void Main(string[] args)
{
System.Console.WriteLine(“我叫王蕾!”);
}
} }
2、编写一个简单的Windows应用程序,在窗体Load事件中书写代码,标签中显示你的姓名。
using System;using System.Collections.Generic;using System.ComponentModel;
金陵科技学院实验报告
using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;
namespace one.second {
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.Text = “Windows 程序”;
Label lblShow = new Label();
lblShow.Location = new Point(20, 30);
lblShow.AutoSize = true;
lblShow.Text = “王蕾!”;
this.Controls.Add(lblShow);
}
} }
3、编写一个一个程序,用来判断输入的是大写字母,小写字母,数字还是其他的字符。
using System;using System.Collections.Generic;using System.Text;
namespace one.third {
class Program
{
static void Main(string[] args)
{
Console.WriteLine(“请输入一个字符:”);
char c = Convert.ToChar(Console.ReadLine());
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
Console.WriteLine(“这是一个字母”);
if(char.IsDigit(c))
Console.WriteLine(“这是一个数字”);
金陵科技学院实验报告
}
} }
4、分别用while,do-while,for循环求1到100的和。
using System;using System.Collections.Generic;using System.Text;
namespace one.forth.one {
class Program
{
static void Main(string[] args)
{
int i = 1, sum = 0;
while(i <= 100)
{
sum = sum + i;
i++;
}
Console.WriteLine(“1到100的自然数之和为:” + sum);
}
} } using System;using System.Collections.Generic;using System.Text;
namespace one.forth.two {
class Program
{
static void Main(string[] args)
{
int i = 1, sum = 0;
do
{
sum = sum + i;
i++;
}
while(i <= 100);
Console.WriteLine(“1到100的自然数的和为:” + sum);
}
}
金陵科技学院实验报告
} using System;using System.Collections.Generic;using System.Text;
namespace one.forth.three {
class Program
{
static void Main(string[] args)
{
int i , sum = 0;
for(i = 1;i <= 100;i++)
{
sum = sum + i;
}
Console.WriteLine(“1到100的自然数的和为:” + sum);
}
} }
5、定义一个一维数组,用随机数为此赋值,用foreach循环输出其中的内容。
using System;using System.Collections.Generic;using System.Linq;using System.Text;
namespace first.five {
class Program
{
static void Main(string[] args)
{
int[] a = {0,1,2,3,4};
foreach(int i in a)
{
Console.WriteLine(a[i]);
}
}
} }
6、实现二维数组的输入和输出。
using System;using System.Collections.Generic;using System.Linq;
金陵科技学院实验报告
using System.Text;
namespace first.six {
class Program
{
static void Main(string[] args)
{
int[,] a = new int[2, 3] { { 1, 2, 3 }, { 4, 5, 6 } };
{
for(int i = 0;i < 2;i++)
{
for(int j = 0;j < 3;j++)
{ Console.WriteLine(a[i, j]);}
}
}
}
} }
7、实现数组型数组的输入和输出。
using System;using System.Collections.Generic;using System.Linq;using System.Text;
namespace first.seven {
class Program
{
static void Main(string[] args)
{
int[][] a = new int[][] { new int[] { 1, 2, 3 }, new int[] { 4, 5, 6 } };
for(int i = 0;i < a.Length;i++)
{
for(int j = 0;j < a[i].Length;j++)
{
Console.WriteLine(a[i][j]);
}
}
}
} }
六、实验体会(遇到问题及解决办法,编程后的心得体会)
刚开始编程的时候觉得无从下手,尽管我们已经学了好几种高级编程语言,但每个都
金陵科技学院实验报告
有其独特的地方,稍不留神就会混淆。
通过这次实验,我体会到课后复习巩固的重要性。在编程的时候,很多内容都不记得,需要去翻书。不得不说,实验是巩固课程的好方法!本次实验,我熟悉Visual Studio.NET开发环境;掌握了C#应用程序的基本操作过程;掌握了C#的数据类型,运算符以及表达式的使用;掌握了分支和循环语句的使用方法以及一维数组,二维数组及数组型数组的使用。
金陵科技学院实验报告
实验项目名称: 类与对象 实验学时: 6 同组学生姓名: 实验地点: 1318 实验日期: 10月26日-11月9日 实验成绩: 批改教师: 批改时间:
金陵科技学院实验报告
实验2 类与对象
一、实验目的、要求
(1)掌握类的定义和使用;
(2)掌握类的数据成员,属性的定义和使用;
(3)掌握方法的定义,调用和重载以及方法参数的传递;(4)掌握构造函数的定义和使用。
二、实验要求
(1)编写程序要规范、正确,上机调试过程和结果要有记录;(2)做完实验后给出本实验的实验报告。
三、实验设备、环境
安装有Visual Studio.NET软件。
四、实验步骤
1、分析题意;
2、根据题目要求,新建项目;
3、编写并输入相关的程序代码;
5、运行与调试项目;
6、保存项目。
五、实验内容
1、定义一个方法,实现两个数的交换(分别把参数按值传递和按引用传递)。
using System;using System.Collections.Generic;using System.Text;
namespace second.one {
class Program
{
static void Main(string[] args)
{
Swaper s = new Swaper();
Console.WriteLine(“输入x的值:”);
int a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(“输入y的值:”);
int b=Convert.ToInt32(Console.ReadLine());
金陵科技学院实验报告
Console.WriteLine(s.Swap(a, b));
Console.WriteLine(s.Swap(ref a,ref b));
}
class Swaper
{
public string Swap(int x, int y)
{
int temp;
temp = x;
x = y;
y = temp;
return 后:x={0},y={1}“,x,y);
}
public string Swap(ref int x, ref int y)
{
int temp;
temp = x;
x = y;
y = temp;
return string.Format(”按引用传参交换之后:x={0},y={1}“, x, y);
}
}
} }
2、定义一个方法,实现数组的排序。using System;using System.Collections.Generic;using System.Text;
namespace second.two {
class Program
{
string.Format(”
按
值
传
参
交
换
之
金陵科技学院实验报告
public class sort
{
public void change(int[] a)
{
Console.WriteLine(“排序前,数组顺序为:”);
show(a);
int i, j, m;
for(i = 0;i < 10;i++)
{
m = a[i];
j = ib;
}
}
static void Main(string[] args)
{
sum s = new sum();
int a = 10;
int b = 3;
int m, n;
s.ab(out m, out n, a, b);
Console.WriteLine(“{0}+{1}={2};{0}-{1}={3}”,a,b,m,n);
金陵科技学院实验报告
}
} }
5、用构造函数重载,实现矩形的面积,圆的面积,梯形的面积;
using System;using System.Collections.Generic;using System.Linq;using System.Text;
namespace secong.five {
class Program
{
public class square
{
public double area;
public square(){ }
public square(double a)
{
area = a * a * 3.14;
}
public square(double a, double b)
{
area = a * b;
}
public square(double a, double b, double h)
{
area =(a + b)/ 2 * h;
}
}
static void Main(string[] args)
{
double a, b, h,area;
a = 2;b = 5;h = 3;
金陵科技学院实验报告
square s = new square(a,b);
Console.WriteLine(“求矩形面积,长为a={0},宽为b={1},面积area={2}”,a,b,s.area);
square i = new square(a);
Console.WriteLine(“求圆形面积,半径a={0},面积area={1}”, a, i.area);
square j = new square(a, b, h);
Console.WriteLine(“求梯形面积,上底为a={0},下底为b={1},高为h={2}面积area={3}”, a, b,h, j.area);
}
} }
6、设计一个windows应用程序,在该程序中定义一个学生类和班级类,以处理每个学生的学号,姓名,语文,数学和英语成绩,要求:
1)能查询每个学生的总成绩。2)能显示全班前三名的名单。
3)能显示单科成绩最高分和不及格的学生名单。4)能统计全班学生的平均成绩。
5)能显示各科成绩不同分数段的学生人数的百分比。
Student类: using System;using System.Collections.Generic;using System.Text;namespace Test2_6 {
public class Student
{
public string stuNo;
public string name;
public double chinese;
public double math;
public double english;
public double sumScore
{
金陵科技学院实验报告
get { return chinese + math + english;}
}
} } StudentList类: using System;using System.Collections.Generic;using System.Text;namespace Test2_6 {
public class StudentList:Student
{
int snums;
public Student[] stu=new Student[50];
public StudentList()
{
snums = 0;
}
public void addstu(Student s)
{
stu[snums] = s;
snums++;
}
public int searchstu(string name)
{
int i;
for(i = 0;i < snums;i++)
{
if(stu[i].name == name)break;
}
if(i == snums)return-1;
else return i;
}
//给所有成绩排序,用后面实现前三名的排名
金陵科技学院实验报告
public void ProThree()
{
for(int i = 0;i < snums;i++)
{
int k = i;
for(int j = i + 1;j < snums;j++)
if(stu[j].sumScore > stu[k].sumScore)k = j;
if(k!= i)
{
Student temp;
temp = stu[k];
stu[k] = stu[i];
stu[i] = temp;
}
}
}
//显示单科成绩的最高分
public int HighScore(int k)
{
int p = 0;
if(k == 0)
{
for(int i = 1;i < snums;i++)
if(stu[i].math > stu[p].math)p = i;
}
else if(k == 1)
{
for(int i = 1;i < snums;i++)
if(stu[i].chinese > stu[p].chinese)p = i;
}
else
{
for(int i = 1;i < snums;i++)
if(stu[i].chinese > stu[p].chinese)p = i;
金陵科技学院实验报告
}
return p;
}
//显示不及格名单
public string BuhgName(int k)
{
string name=“ ”;
if(k == 0)
{
for(int i = 0;i < snums;i++)
if(stu[i].math < 60)name +=stu[i].name+“n”;
}
else if(k == 1)
{
for(int i = 0;i < snums;i++)
if(stu[i].chinese < 60)name += stu[i].name + “n”;
}
else
{
for(int i = 0;i < snums;i++)
if(stu[i].english < 60)name += stu[i].name + “n”;
}
return name;
}
public string getHL()
{
string Maxer = “ ”, Loser = “ ”;
Maxer += “单科数学最高:” + stu[HighScore(0)].name + “n”;
Maxer += “ 单科语文最高:” + stu[HighScore(1)].name + “n”;
Maxer += “ 单科英语最高:” + stu[HighScore(2)].name + “n”;
Loser += “单科数学挂科名单:” +BuhgName(0)+ “n”;
Loser += “单科语文挂科名单:” + BuhgName(1)+ “n”;
Loser += “单科英语挂科名单:” + BuhgName(2)+ “n”;
金陵科技学院实验报告
return Maxer + “n” + Loser;
}
//全班的平均成绩
public string SumScore()
{
double sum = 0;
double avg=0;
for(int i = 0;i < snums;i++)
{
sum = sum + stu[i].sumScore;
}
avg = sum / snums;
return “班级总分平均分:”+avg;
}
//各科成绩不同分数段的学生百分比
//英语成绩各分数段百分比
public string PerC()
{
double per1, per2, per3, per4, per5;
double sumC1 = 0, sumC2 = 0, sumC3 = 0, sumC4 = 0, sumC5 = 0;
for(int i = 0;i < snums;i++)
{
if((stu[i].chinese > 90)&&(stu[i].chinese <= 100))
{
sumC1++;
}
else if((80 <= stu[i].chinese)&&(stu[i].chinese < 90))
{
sumC2++;
}
金陵科技学院实验报告
else if((70<=stu[i].chinese)&&(stu[i].chinese < 80))
{
sumC3++;
}
else if((60<=stu[i].chinese)&&(stu[i].chinese < 70))
{
sumC4++;
}
else
{sumC5++;}
}
per1 = sumC1 / snums;
per2 = sumC2 / snums;
per3 = sumC3 / snums;
per4 = sumC4 / snums;
per5 = sumC5 / snums;
return “语文成绩百分比:”+“n”+“90~100:”+per1+“ 80~90:”+per2+“ 80~70:”+per3+“ 70~60:”+per4+“ 60以下的:”+per5;
}
//数学成绩各分数段百分比
public string PerM()
{
double per1, per2, per3, per4, per5;
double sumC1 = 0, sumC2 = 0, sumC3 = 0, sumC4 = 0, sumC5 = 0;
for(int i = 0;i < snums;i++)
{
if((stu[i].math> 90)&&(stu[i].math <= 100))
{
sumC1++;
}
else if((80 <= stu[i].math)&&(stu[i].math < 90))
{
金陵科技学院实验报告
sumC2++;
}
else if((70 <= stu[i].math)&&(stu[i].math < 80))
{
sumC3++;
}
else if((60 <= stu[i].math)&&(stu[i].math < 70))
{
sumC4++;
}
else
{ sumC5++;}
}
per1 = sumC1 / snums;
per2 = sumC2 / snums;
per3 = sumC3 / snums;
per4 = sumC4 / snums;
per5 = sumC5 / snums;
return string.Format(“数学成绩百分比:” + “n” + “90~100:” + per1 + “ 80~90:” + per2 + “ 80~70:” + per3 + “ 70~60:” + per4 + “ 60以下的:” + per5);
}
//英语成绩各分数段百分比
public string PerE()
{
double per1, per2, per3, per4, per5;
double sumC1 = 0, sumC2 = 0, sumC3 = 0, sumC4 = 0, sumC5 = 0;
for(int i = 0;i < snums;i++)
{
if((stu[i].english > 90)&&(stu[i].english <= 100))
{
sumC1++;
金陵科技学院实验报告
}
else if((80 <= stu[i].english)&&(stu[i].english < 90))
{
sumC2++;
}
else if((70 <= stu[i].english)&&(stu[i].english < 80))
{
sumC3++;
}
else if((60 <= stu[i].english)&&(stu[i].english < 70))
{
sumC4++;
}
else
{ sumC5++;}
}
per1 = sumC1 / snums;
per2 = sumC2 / snums;
per3 = sumC3 / snums;
per4 = sumC4 / snums;
per5 = sumC5 / snums;
return string.Format(“数学成绩百分比:” + “n” + “90~100:” + per1 + “ 80~90:” + per2 + “ 80~70:” + per3 + “ 70~60:” + per4 + “ 60以下的:” + per5);
}
} } From窗体代码: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;
金陵科技学院实验报告
using System.Windows.Forms;namespace Test2_6 {
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public StudentList sl = new StudentList();
private void btnAdd_Click(object sender, EventArgs e)
{
Student s = new Student();
s.stuNo = txtStuNo.Text;
s.name = txtName.Text;
s.chinese = Convert.ToDouble(txtChina.Text);
s.math = Convert.ToDouble(txtMath.Text);
s.english = Convert.ToDouble(txtEng.Text);
sl.addstu(s);
MessageBox.Show(“添加成功”);
}
private void btnSearch_Click(object sender, EventArgs e)
{
int pos = sl.searchstu(this.textBox1.Text);
if(pos!=-1)
{
label7.Text = this.textBox1.Text + “的总成绩:sl.stu[pos].sumScore;
}
else { MessageBox.Show(”不存在这个人!“);}
}
private void btnFinish_Click(object sender, EventArgs e)
{
label7.Text = ”前3名:“+”n“;
” + 金陵科技学院实验报告
for(int i = 0;i < 3;i++)
{
sl.ProThree();
label7.Text+= sl.stu[i].name+“n”;
}
label7.Text += sl.getHL()+“n”;
label7.Text += Convert.ToString(sl.SumScore())+“n”;
label7.Text += sl.PerC()+“n”;
label7.Text += sl.PerM()+“n”;
label7.Text += sl.PerE()+“n”;
}
} }
六、实验体会(遇到问题及解决办法,编程后的心得体会)
通过本次实验,我掌握了类的定义与使用;掌握了类的数据成员,属性的定义和使用;掌握了方法的定义,调用和重载以及方法参数的传递以及构造函数的定义和使用。值得注意的是:本次实验中return的使用以及所在的位置,类型转换时也经常用到
金陵科技学院实验报告
实验项目名称: 继承与多态 实验学时: 6 同组学生姓名: 实验地点: 1318 实验日期: 11月16日-11月30日 实验成绩: 批改教师: 批改时间:
金陵科技学院实验报告
实验3 继承与多态
一、实验目的、要求
(1)掌握类的继承性与多态性;
(2)掌握虚方法的定义以及如何使用虚方法实现多态;(3)掌握抽象类的定义以及如何使用抽象方法实现多态;
二、实验要求
(1)编写程序要规范、正确,上机调试过程和结果要有记录;(2)做完实验后给出本实验的实验报告。
三、实验设备、环境
安装有Visual Studio.NET软件。
四、实验步骤
1、分析题意;
2、根据题目要求,新建项目;
3、编写并输入相关的程序代码;
5、运行与调试项目;
6、保存项目。
五、实验内容
1、设计一个Windows应用程序,在该程序中首先构造一个学生基本类,再分别构造小学生、中学生、大学生派生类,当输入相关数据,单击不用的按钮时,将分别创建不同的学生类对象,并输出当前学生的总人数,该学生的姓名,学生类型,平均成绩。
Student类: using System;using System.Collections.Generic;using System.Text;namespace Test3_1 {
public abstract class Student
{
protected string name;
protected int age;
public static int number;
public Student(string name, int age)
{
this.name = name;
this.age = age;
金陵科技学院实验报告
number++;
}
public string Name
{
get { return name;}
}
public abstract double Average();
}
public class Pupil : Student
{
protected double chinese;
protected double math;
public Pupil(string name, int age, double chinese, double math)
: base(name, age)
{
this.chinese = chinese;
this.math = math;
}
public override double Average()
{
return(chinese + math)/ 2;
}
}
public class Middle : Student
{
protected double chinese;
protected double math;
protected double english;
public Middle(string name, int age, double chinese, double math, double english)
: base(name, age)
{
this.chinese = chinese;
this.math = math;
金陵科技学院实验报告
this.english = english;
}
public override double Average()
{
return(chinese + math + english)/ 3;
}
}
public class College : Student
{
protected double required;
protected double elective;
public College(string name, int age, double required, double elective)
: base(name, age)
{
this.required = required;
this.elective = elective;
}
public override double Average()
{
return(required + elective)/ 2;
}
} } Form窗体内的代码:
using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace Test3_1 {
public partial class Form1 : Form
{
金陵科技学院实验报告
public Form1()
{
InitializeComponent();
}
private void btnSmall_Click(object sender, EventArgs e)
{
Pupil),Convert.ToDouble(txtMath.Text));
lblShow.Text += “总人数:” +Convert.ToString(Student.number)+ “,” + “姓名:” + p.Name + “,” + “小学生” + “,” + “平均成绩为:” + p.Average()+“n”;
}
private void btnMiddle_Click(object sender, EventArgs e)
{
Middle Convert.ToInt32(txtAge.Text),m
=
new
Middle(txtName.Text,Convert.ToDouble(txtChinese.Text), p
=
new Pupil(txtName.Text,Convert.ToInt32(txtAge.Text),Convert.ToDouble(txtChinese.TextConvert.ToDouble(txtMath.Text),Convert.ToDouble(TxtEnglish.Text));
lblShow.Text += “总人数:” + Convert.ToString(Student.number)+ “,” + “姓名:” + m.Name + “,” + “中学生” + “,” + “平均成绩为:” + m.Average()+ “n”;
}
private void btnBig_Click(object sender, EventArgs e)
{
College Convert.ToInt32(txtAge.Text), Convert.ToDouble(txtMath.Text));
lblShow.Text += “总人数:” + Convert.ToString(Student.number)+ “,” + “姓名:” + c.Name + “,” + “大学生” + “,” + “平均成绩为:” + c.Average()+ “n”;
}
}
c
=
new
College(txtName.Text,Convert.ToDouble(txtChinese.Text),金陵科技学院实验报告
}
2、设计一个Windows应用程序,在该程序中定义平面图形抽象类和派生类圆,矩形和三角形。
Figure类代码: using System;using System.Collections.Generic;using System.Text;namespace Test3_2 {
public abstract class Figure
{
public abstract double Area();
}
public class Circle:Figure
{
double radius;
public Circle(double r)
{
radius = r;
}
public override double Area()
{
return radius * radius * 3.14;
}
}
public class JUxing:Figure
{
double chang;
double kuan;
public JUxing(double c, double k)
{
this.chang = c;
this.kuan = k;
}
金陵科技学院实验报告
public override double Area()
{
return chang * kuan;
}
}
public class San:Figure
{
double bian;
double heigth;
public San(double b, double h)
{
this.bian = b;
this.heigth = h;
}
public override double Area()
{
return bian * heigth / 2;
}
} } Form窗体代码: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace Test3_2 {
public partial class Form1 : Form
{
public Form1()
{
金陵科技学院实验报告
InitializeComponent();
}
private void btnCircle_Click(object sender, EventArgs e)
{
Circle c=new Circle(Convert.ToInt32(TxtChang.Text));
lblShow.Text = “圆的面积为:” + c.Area();
}
private void btnJu_Click(object sender, EventArgs e)
{
JUxing
j
=
new JUxing(Convert.ToInt32(TxtChang.Text),Convert.ToInt32(TxtHigh.Text));
lblShow.Text = “矩形的面积为:” + j.Area();
}
private void btnSan_Click(object sender, EventArgs e)
{
San
s
=
new
San(Convert.ToInt32(TxtChang.Text), Convert.ToInt32(TxtHigh.Text));
lblShow.Text = “三角形的面积为:” + s.Area();
}
} }
3、定义一个Person类,包含姓名字段和一个方法,早上8:30学生开始上课,教师开始讲课。分别用new关键字,虚方法,抽象类实现多态性。
New关键字: using System;using System.Collections.Generic;using System.Text;
namespace third.three {
class Program
{
static void Main(string[] args)
金陵科技学院实验报告
{
Student s=new Student(“学生”);
Teacher t=new Teacher(“教师”);
Console.WriteLine(s.name+s.work());
Console.WriteLine(t.name+t.work());
Console.ReadLine();
}
}
public class Person
{
public string name;
public interface method
{ string work();}
}
public class Student:Person
{
public Student(string name)
{ this.name = name;}
public string work()
{ return “早上8:30开始上课”;}
}
public class Teacher:Person
{
public Teacher(string name)
{ this.name = name;}
public string work()
{ return “开始讲课”;}
} } 虚方法: using System;using System.Collections.Generic;using System.Text;
金陵科技学院实验报告
namespace third.three.two {
class Program
{
static void Main(string[] args)
{
Student s = new Student(“张三”,“学生”);
PersonWork(s);
Teacher t=new Teacher(“李斯”,“教师”);
PersonWork(t);
}
private static void PersonWork(Person Person)
{ Console.WriteLine(Person.Work());}
}
public class Person
{
public string name;
public Person(string name)
{ this.name = name;}
public virtual string Work()
{ return string.Format(“Person{0}:早上8:30开始”,name);}
}
public class Student : Person
{
private string type;
public Student(string name, string type)
: base(name)
{ this.type = type;}
public override string Work()
{
return string.Format(“Person{0}:早上8:30开始上课”, name);
}
}
public class Teacher : Person
金陵科技学院实验报告
{
private string type;
public Teacher(string name, string type)
: base(name)
{ this.type = type;}
public override string Work()
{
return string.Format(“Person{0}:开始讲课”, name);
}
} }
抽象类: using System;using System.Collections.Generic;using System.Text;
namespace third.three.three {
class Program
{
static void Main(string[] args)
{
Student s = new Student(“张三”, “学生”);
PersonWork(s);
Teacher t = new Teacher(“李斯”, “教师”);
PersonWork(t);
}
private static void PersonWork(Person person)
{
Console.WriteLine(person.Work());
}
}
public abstract class Person
金陵科技学院实验报告
{
public string name;
public Person(string name)
{ this.name = name;}
public abstract string Work();
}
public class Student : Person
{
private string type;
public Student(string name, string type)
: base(name)
{
this.type = type;
}
public override string Work()
{
return string.Format(“Person{0}:早上8:30开始上课”, name);
}
}
public class Teacher : Person
{
private string type;
public Teacher(string name, string type)
: base(name)
{
this.type = type;
}
public override string Work()
{
return string.Format(“Person{0}:开始讲课”, name);
}
} }
金陵科技学院实验报告
六、实验体会(遇到问题及解决办法,编程后的心得体会)
通过本次实验,我理解了类的继承性与多态性;掌握了虚方法的定义以及如何用虚方法来实现多态;掌握了抽象类的定义以及如何用抽象方法来实现多态。这次实验与前两次不同,采用Windows应用程序,既涉及到代码段也涉及到界面的设计。所以,勉强通过实验。
金陵科技学院实验报告
实验项目名称: 接口、文件和流 实验学时: 6 同组学生姓名: 实验地点: A205 实验日期: 12月7日-12月21日 实验成绩: 批改教师: 批改时间:
金陵科技学院实验报告
实验4 接口、文件和流
一、实验目的
(1)掌握接口的定义及使用方法;
(2)掌握流,序列化和反序列化的概念和使用方法;(3)掌握流文件的读写操作类及其使用方法;
(4)掌握OpenFileDialog,SaveFileDialog等控件的使用。
二、实验要求
(1)编写程序要规范、正确,上机调试过程和结果要有记录;(2)做完实验后给出本实验的实验报告。
三、实验设备、环境
安装有Visual Studio.NET软件。
四、实验步骤
1、分析题意;
2、根据题目要求,新建项目;
3、编写并输入相关的程序代码;
5、运行与调试项目;
6、保存项目。
五、实验内容
1、定义一个Person类,包含姓名字段和一个方法,早上8:30学生开始上课,教师开始讲课。用接口来实现。
using System;using System.Collections.Generic;using System.Text;namespace Test4_1 {
class Program
{
static void Main(string[] args)
{
Student s = new Student(“张三”,“学生”);
Console.WriteLine(s.Work());
Teacher t = new Teacher(“李四”,“老师”);
Console.WriteLine(t.Work());
}
金陵科技学院实验报告
public abstract class Person
{
public string name;
public Person(string name)
{
this.name = name;
}
}
interface IPerson
{
string type { get;}
string Work();
}
public class Student :Person, IPerson
{
public string type
{
get { return string.Format(“老师”);}
}
public Student(string name, string type)
: base(name)
{
this.name=name;
}
public string Work()
{
return string.Format(“Person{0}:早上8:30开始上课”, name);
}
}
public class Teacher :Person, IPerson
{
public string type
{
金陵科技学院实验报告
get { return string.Format(“学生”);}
}
public Teacher(string name, string type)
: base(name)
{
this.name = name;
}
public string Work()
{
return string.Format(“Person{0}:早上8:30开始讲课”, name);
}
}
} }
2、声明一个接口Iplayer,包含5个接口方法:播放,停止,暂停,上一首和下一首。在该程序中定义一个MP3播放器类和一个AVI播放器类,以实现该接口。
MP3类(包含Iplayer接口,AVI类): using System;using System.Collections.Generic;using System.Text;namespace Test4_2 {
interface IPlayer
{
string Play();
string Stop();
string Pause();
string Pre();
string Next();
}
public class MP3:IPlayer
{
public string Play()
金陵科技学院实验报告
{
return “正在播放MP3歌曲!”;
}
public string Stop()
{
return “停止播放MP3歌曲!”;
}
public string Pause()
{
return “暂停播放MP3歌曲!”;
}
public string Pre()
{
return “播放上一首MP3歌曲!”;
}
public string Next()
{
return “播放下一首MP3歌曲!”;
}
}
public class AVI : IPlayer
{
public string Play()
{
return “正在播放AVI歌曲!”;
}
public string Stop()
{
return “停止播放AVI歌曲!”;
}
public string Pause()
{
return “暂停播放AVI歌曲!”;
}
金陵科技学院实验报告
public string Pre()
{
return “播放上一首AVI歌曲!”;
}
public string Next()
{
return “播放下一首AVI歌曲!”;
}
} } Form窗体里代码: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace Test4_2 {
public partial class Form1 : Form
{
IPlayer iplayer;
MP3 mp3;
AVI avi;
public Form1()
{
InitializeComponent();
}
private void btnMp3_Click(object sender, EventArgs e)
{
mp3 = new MP3();
iplayer =(IPlayer)mp3;
}
金陵科技学院实验报告
private void btnPlay_Click(object sender, EventArgs e)
{
label1.Text = iplayer.Play();
}
private void btnUp_Click(object sender, EventArgs e)
{
label1.Text = iplayer.Pre();
}
private void btnStop_Click(object sender, EventArgs e)
{
label1.Text = iplayer.Stop();
}
private void btnPause_Click(object sender, EventArgs e)
{
label1.Text = iplayer.Pause();
}
private void btnNext_Click(object sender, EventArgs e)
{
label1.Text = iplayer.Next();
}
private void btnAvi_Click(object sender, EventArgs e)
{
avi = new AVI();
iplayer =(IPlayer)avi;
}
} }
3、实现对文本文件的读写操作,用文件操作控件打开和保存文件。
using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.IO;namespace Test4_3
金陵科技学院实验报告
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnSave_Click(object sender, EventArgs e)
{
saveFileDialog1.ShowDialog();
StreamWriter
sw = StreamWriter(saveFileDialog1.FileName,true);
sw.WriteLine(DateTime.Now.ToString());
sw.WriteLine(txtSource.Text);
sw.Close();
}
private void btnShow_Click(object sender, EventArgs e)
{
StreamReader sr = StreamReader(saveFileDialog1.FileName);
txtShow.Text = sr.ReadToEnd();
sr.Close();
}
} }
4、实现对二进制文件的读写操作。
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.IO;
new
new
金陵科技学院实验报告
namespace Test4_4 {
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnSave_Click(object sender, EventArgs e)
{
FileStream
fs
= FileStream(@“d:Datastudent.dat”,FileMode.Append,FileAccess.Write);
BinaryWriter bw = new BinaryWriter(fs);
bw.Write(Int32.Parse(txtStuNo.Text));
bw.Write(TxtName.Text);
bool isMale;
if(rdoMan.Checked)
isMale = true;
else
isMale = false;
bw.Write(isMale);
fs.Close();
bw.Close();
}
private void btnShow_Click(object sender, EventArgs e)
{
lstShow.Items.Clear();
lstShow.Items.Add(“学号t姓名t性别”);
FileStream
fs
= FileStream(@“d:Datastudent.dat”,FileMode.Open,FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
fs.Position = 0;
while(fs.Position!= fs.Length)
{
new
new
金陵科技学院实验报告
int s_no = br.ReadInt32();
string name = br.ReadString();
string sex = “";
if(br.ReadBoolean())
sex = ”男“;
else
sex = ”女“;
string
result String.Format(”{0}t{1}t{2}“,s_no,name,sex);
lstShow.Items.Add(result);
}
br.Close();
fs.Close();
}
} }
5、实现对象序列化和反序化。
Student类: using System;using System.Collections.Generic;using System.Text;namespace Test4_5 {
[Serializable]
public class Student
{
public int sno;
public string name;
public bool sex;
public Student(int s_no, string name, bool isMale)
{
this.sno = s_no;
this.name = name;
this.sex = isMale;
=
金陵科技学院实验报告
}
} } StudentList类: using System;using System.Collections.Generic;using System.Text;namespace Test4_5 {
[Serializable]
public class StudentList
{
private Student[] list = new Student[100];
public Student this[int index]
{
get
{
if(index < 0 || index >= 100)
return list[0];
else
return list[index];
}
set
{
if(!(index < 0 || index >=100))
list[index] = value;
}
}
} } Form下的代码: using System;using System.Collections.Generic;using System.ComponentModel;
金陵科技学院实验报告
using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.IO;using System.Runtime.Serialization.Formatters.Binary;namespace Test4_5 {
public partial class Test9_32 : Form
{
private StudentList list = new StudentList();
private int i = 0;
public Test9_32()
{
InitializeComponent();
}
private void Test9_32_Load(object sender, EventArgs e)
{
}
private void btnSave_Click(object sender, EventArgs e)
{
string file = @”d:datastudent.dat";
Stream
stream
= FileStream(file,FileMode.OpenOrCreate,FileAccess.Write);
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(stream,list);
stream.Close();
}
private void btnAdd_Click(object sender, EventArgs e)
{
int sno = Int32.Parse(txtStuNo.Text);
bool isMale;
if(rdoMan.Checked)
isMale = true;
new
第五篇:《C程序设计》实验报告格式
中国计量学院 实 验 报 告
实验课程: C语言程序设计(2)实验名称: 综合实验 班 级: XXXXX 学 号: XXXXXX 姓 名: XX 实验日期: 2011/10/13
一、实验目的
1.熟练掌握用户自定义函数的定义及调用 2.掌握函数间的参数传递 3.掌握函数的嵌套调用及递归调用 4.掌握文件的基本操作
二、实验内容
1.编写程序:定义函数sum(n)计算整数n的各位数之和,函数类型是int。主函数输入整数n,将n的各个位数之和写入到design1.dat文件中,要求调用自定义函数sum。
2.定义函数fact(n)计算n的阶乘,函数返回值类型是double;定义函数cal(x,n)计算xn/n!,函数返回值类型是double,要求调用fact函数计算n!;定义函数main(),输入正整数n和实数x,计算并将下列算式的值写入到design2.dat文件中。要求
xx2x3xn调用函数cal(x,n)计算每一项。y1
1!2!3!n!
实验成绩: 指导教师签名:
三、算法分析及源程序
1.(1)算法分析:定义变量、数组等……
从键盘输入……
……(具体的算法描述)
输出……
(2)源代码:#include
(2)源代码:#include
四、实验数据分析及结论 1.上机调试,输入……
运行结果: ……
调试结果分析:运行结果符合要求。或者运行结果有错,分析错误原因。2.上机调试,输入……
运行结果: ……
调试结果分析:运行结果符合要求。或者运行结果有错,分析错误原因。