《C#一级实践课题(共22页).doc》由会员分享,可在线阅读,更多相关《C#一级实践课题(共22页).doc(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上软 件 学 院一级实践环节报告课题名称: 专 业: 计算机信息管理 班 级: 111 学 号: 学生姓名: 指导教师: 韩玉民 2012年 1 月 6 日目 录专心-专注-专业第1章 概述1.时间安排第19周(2012.01.022012.01.06)上午:8:0011:30; 下午:14:3017:30地点:2#楼102机房2.学分1学分3.课题项目系统要求:课题项目分为必做项目和拓展项目。必做项目每个学生必须完成,拓展项目可根据个人能力选做,将根据题目难度和完成情况给予加分。完成后要经过教师验收。必做题目1. P72:习题6 2. P72:习题7 3. P72:习
2、题8 4. P89:习题5 5. P89:习题6 6. P124:习题10 7. P124:习题11 8. P124:上机实验6 9. P157:习题9 10. P157:上机实验7程序设计使用Visual C# 控制台应用程序使用C# 程序设计语言本人完成的主要设计任务有:(1)循环求和;(2)杨辉三角;(3)计算的值;(4)数据排序;(5) 二维数组;(6)创建List类;(7)冒泡排序;(8)学生GPA成绩;(9)学生和教师;(10)图书管理。第2章 任务与实现2.1第4章习题6循环求和1.题目要求编写一个控制台应用程序项目,输入正整数n,计算s=1+(1+2)+(1+2+3)+(1+2
3、+3+n).2.设计思路使用While循环语句。流程图如图2-1 开始输入nSum=0,i=1i=n?j=1j 13) Console.WriteLine(输入的数值太大!); Else使用for语句控制输出数据: for (i = 0; i = n - 1; i+) for (j = 1; j 15 - i; j+) Console.Write( ); c = 1; Console.Write(0 , c); for (j = 1; j = i; j+) c = c * (i - j + 1) / j;使用if语句控制输出数据的位置: if (c 100) if (c 10) Console
4、.Write(0 , c); else Console.Write(0 , c); else Console.Write(0 , c); 运行结果如图2-2所示: 图2-2 题2.2程序运行结果2.3第4章习题8计算的值1.题目要求编写一个控制台应用程序项目,利用下列公式编程计算的值。/4=1-1/3+1/5-1/7+1/(4n-3)-1/(4n-1)(n=2000)2.设计思路使用if语句表达计算式中两个不同公式再把所有公式想加求出值。3.实现使用if语句:namespace T8chapter4_8 class Program static void Main(string args) d
5、ouble pi = 0.0; int i; for (i = 1; i = 2000; i+) if (i % 2 = 1) pi = pi + 1.0 / (2 * i - 1); else pi = pi - 1.0 / (2 * i - 1); pi = 4 * pi; Console.WriteLine(=0, pi); 运行结果如图2-3所示: 图2-3 题2.3程序运行结果2.4第6章习题5数据排序1.题目要求编写一个控制台应用程序项目,假设10个整数用一个一维数组存放,求其最大值和次大值2.设计思路建立一维数组使用Array.Sort(Array)进行排序。3.实现建立数组排序
6、:namespace T8chapter5_5 class Program static void Main(string args) int a = new int10 5, 98, 64, 25, 48, 31, 43, 54, 7, 56 ; Array.Sort(a); Console.WriteLine(最大值0, a9); Console.WriteLine(次大值0, a8);运行结果如图2-4所示: 图2-4 题2.4程序运行结果2.5 第6章习题6二维数组1.题目要求编写一个控制台应用程序项目,用二维数组存放5个考生4门功课的考试绩,求每位考生的平均成绩。2.设计思路建立二维
7、数组,使用for语句访问二维数组。3.实现主要代码为:namespace T8chapter5_6 class Program static void Main(string args) int i, j ; int, a = new int5, 4 84, 95, 47, 54 , 74, 58, 49, 79 , 87, 47, 86, 68 , 78, 68, 85, 75 , 98, 74, 58, 67 ; for (i = 0; i = 4; i+) int sum = 0; for (j = 0; j = 3; j+) sum += ai, j; Console.WriteLin
8、e(平均成绩:0, sum / 4);运行结果如图2-5所示: 图2-5 题2.5程序运行结果2.6第6章习题10创建List类1.题目要求编写一个控制台应用程序项目,创建List类,可以存储整数、实数、字符数据等(最多存放100个元素),并可以添加和删除元素等。用相关数据进行测试。2.设计思路创建List类定义储存范围为100构造函数,定义添加、删除元素3.实现主要代码:namespace T8chapter6_10class List private int Max = 100; /储存最多元素 private int num = 0; /实际存的元素 private object lis
9、t; /储存元素组 public List() /构造函数 list = new objectMax; public void add(object obj) /添加元素 listnum = obj; num+; public void delete(int pos) /删除元素 for (int i = pos + 1; i num; i+) listi - 1 = listi; num-; public object get(int pos) /获取指定元素位置 if (pos num) return listpos; else return null; public int getnum
10、() /获取实际元素个数 return num; public string disp() /获取所有元素 string s = ; for (int i = 0; i num; i+) s += listi + ; return s; class Program static void Main(string args) List list = new List(); list.add(meiy); list.add(60.45); list.add(6); list.add(a); Console.WriteLine(元素序列:0,list.disp(); Console.WriteLin
11、e(元素个数:0,list.getnum(); Console.WriteLine(位置的元素:0,list.get(1); Console.WriteLine(删除位置的元素); list.delete(2); Console.WriteLine(元素序列:0, list.disp();运行结果如图2-6所示: 图2-6 题2.6程序运行结果2.7第6章习题11冒泡排序1.题目要求编写一个控制台应用程序项目,输入若干个学生的英语和数学成绩,求出总分,并按总分从高到低排序。要求设计一个学生类Student,所有学生对象存放在Srudent对象数组中,通过一个方法对其按照总分进行降序排序,最终输
12、出排序后的结果。2.设计思路创建类,定义变量name eng math sum构造函数,使用get访问器采用冒泡排序排列数据,实现输出。3.实现主要代码:namespace T8chapter6_11 public class Student private string name; /姓名 private int eng, math, sum; /英语,数学,总成绩 public int psum get return sum; /get访问 public void inscore() Console.Write(姓名:); name = Console.ReadLine(); Consol
13、e.Write(英语:); eng = int.Parse(Console.ReadLine(); Console.Write(数学:); math = int.Parse(Console.ReadLine(); sum = eng + math; public void display() Console.WriteLine(t0t1t2t3, name, eng, math, sum); class Program const int Max = 100; static void sort(int n, params Student p)/采用冒泡排序法排序 int i, j; bool
14、A; Student tmp; for (i = 0; i = i; j-) if (pj + 1.psum pj.psum) tmp = pj + 1;/pj+1pj pj + 1 = pj; pj = tmp; A= true; if (A= false) break; static void Main(string args) int n, i; Student p = new StudentMax; /定义对象引用数组 Console.Write(输入n个学生:); n = int.Parse(Console.ReadLine(); for (i = 0; i n; i+) /创建对象
15、引用的实例 pi = new Student(); for (i = 0; i n; i+) Console.WriteLine(输入第0个学生数据:, i + 1); pi.inscore(); Console.WriteLine(排序前:); Console.WriteLine(t姓名t英语t数学t总分); for (i = 0; i n; i+) Console.Write(序号0:, i + 1); pi.display(); sort(n, p); /按总降序排序 Console.WriteLine(排序后:); Console.WriteLine(t姓名t英语t数学t总分); fo
16、r (i = 0; i n; i+) Console.Write(第0名:, i + 1); pi.display();运行结果如图2-7所示: 图2-7 题2.7程序运行结果2.8第6章上机实验6学生GPA成绩1.题目要求编写一个控制台应用程序项目,用于求学生的GPA。GPA是英文平均分的简称。美国大学的GPA是4个学分。课程1有4个学分,成绩是92(A);课程2有3个学分,成绩80(B);课程3有2个雪分,成绩98(A);课程4有6个学分,成绩70(C);课程5有3个学分,成绩89(B)。计算GPA有两种,一是常见算法GPA,另一个是标准算法GPA。计算常见算法GPA时,先将分数转换成点数
17、,其转换方法如下;90100对应点数为4.0,8089对应点数为3.0,7079对应点数为2.0;6069对应点数为1.0,其它为0.以上五项成绩GPA为常见算法GPA=(4*4+3*3+2*4+6*2+3*3)/(4+3+2+6+3)=3.00,标准算法GPA=(92*4+80*3+98*2+70*6+89*3)*4)/(4+3+2+6+3)*100)=3.31要求将学生课程分别设计成类Student和Course,计算一个学生GPA的输出结果如图。2.设计思路创建类,定义变量sno sname设置课程、分数数组使用if计算学生点数构造函数设置课程、分数可读可写3.实现主要代码:namesp
18、ace T8chapter6_上机6 class Student /学生类 int sno; /学号 string sname; /姓名 Course course; /Course类对象数组 int score; /课程成绩数组 double sgpa1; /常见GPA值 double sgpa2; /标准GPA值 public int psno /psno属性可读可写 get return sno; set sno = value; public string psname /psname属性可读可写 get return sname; set sname = value; public
19、void setcourse(params Course course1) /设置课程 course = new Coursecourse1.Length; for (int i = 0; i course1.Length; i+) coursei = course1i; public void setscore(int score1) /设置分数 score = new intscore1.Length; for (int i = 0; i score1.Length; i+) scorei = score1i; public void computegpa() /根据课程的学分以及学生成绩
20、计算GPA int i; double s, sumc = 0, sumgpa1 = 0, sumgpa2 = 0; for (i = 0; i = 90) s = 4.0; /点数 else if (scorei = 80) s = 3.0; else if (scorei = 70) s = 2.0; else if (scorei = 60) s = 1.0; else s = 0.0; sumgpa1 += coursei.pcredits * s; sumgpa2 += coursei.pcredits * scorei; sumc += coursei.pcredits; sgpa
21、1 = sumgpa1 / sumc; sgpa2 = sumgpa2 * 4 / sumc / 100; public void dispstud() /输出学生信息 Console.WriteLine(学号:0t姓名:1, sno, sname); Console.WriteLine( 课程名t学分t分数); for (int i = 0; i course.Length; i+) Console.WriteLine( 0t1t2, coursei.pcname, coursei.pcredits, scorei); public void dispgpa() /输出GPA Console
22、.WriteLine(常见算法GPA=0:n,标准算法GPA=1:n, sgpa1, sgpa2); class Course /课程类 string cname; /课程名 int credits; /课程学分 public Course() public Course(string name, int xf) /构造函数 cname = name; credits = xf; public string pcname /pcname属性,课程名可读可写 get return cname; set cname = value; public int pcredits /pcredits属性,
23、课程学分可读可写 get return credits; set credits = value; class Program static void Main(string args) Course course1 = new Course new Course(课程1,4),new Course(课程2,3), new Course(课程3,2),new Course(课程4,6),new Course(课程5,3); int score1 = new int 92, 80, 98, 70, 89 ; Student s1 = new Student(); s1.psno = 1; s1.
24、psname = 王华; s1.setcourse(course1); s1.setscore(score1); putegpa(); s1.dispstud(); s1.dispgpa(); 运行结果如图2-8所示: 图2-8 题2.8程序运行结果2.9第7章习题9学生和教师1.题目要求编写一个控制台应用程序项目,实现学生和教师数据输入和显示功能。学生类Student有编号、姓名、班号和成绩等字段,教师类有编号、姓名、职称和部门等字段。要求将编号、姓名输入和显示设计成一个类Person,并作为Student和Teacher的基类。需用相关数据进行测试。2.设计思路创建Parson类,定义变量
25、name no构造函数调用函数3.实现主要代码: public class Person /人类 private int no; /编号 private string name; /姓名 public void input() Console.Write( 编号:); no = int.Parse(Console.ReadLine(); Console.Write( 姓名:); name = Console.ReadLine(); public void disp() Console.WriteLine( 编号:0, no); Console.WriteLine( 姓名:0, name); public class Student : Person /学生类 private string sclass; /班号 private int degree; /成绩 public void input() base.input(); Console.Write( 班号:); sclass = Console.ReadLine(); Con