




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
成绩:-高级程序设计语言课程设计报告学 院: 班 级: 学 号: 姓 名: 1. 引言:编一程序,实现将输入的一个无符号整数转换为二进制,八进制表示,分别存入字符数组中并输出。(提示:算法采用模拟人工法。)注:计算机模拟人工是编程中常用的方法,这种方法要求编程者首先分析在人工方式下解决问题的过程,从中找出步骤和规律,然后编写程序,按照人工解决问题的步骤和规律进行操作。2. 算法设计:开始输入x调用二进制子函数1计算对应的二进制输出二进制,八进制数结束调用八进制子函数2计算对应的八进制主函数开始输入n,i,str20n=x;i=0; str20=0n0stri=n%2+0;n/=2; i+调用子函数3输出二进制数结束N子函数1开始输入n,i,str10n=x; i=0;str10n0stri=n%8+0;n/=8;i+;调用子函数3输出八进制数结束子函数2开始输入i,*si ,*si-输出字符si换行返回调用函数结束子函数33. 调试报告:对于该程序首先分析在人工方式下解决问题的过程,从中找出步骤和规律,然后编写程序,按照人工解决问题的步骤和规律进行操作。难点是找出规律,在调试过程中,注意区分字符串和字符使用的地方,本程序调用函数,为函数编写提供方便,避免混淆各个语句的功能,例如:在输出二进制数的函数中,首先调用 TentoB函数,调用函数中,使用while循环,输出“二进制”以后,调用print函数,再使用一个while循环,输出对应的二进制数,同理,输出八进制也可采用输出二进制类似的方法。本程序避免了繁杂的编写,调用函数是本程序的亮点,也是核心部分。编写本程序后的心得与体会:通过编程,我学到了一些C语言的特点: C是结构式语言结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。 C语法限制不太严格、程序设计自由度大,一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。而C语言允许程序编写者有较大的自由度。C语言允许直接访问物理地址,可以直接对硬件进行操作,因此既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。C语言数据结构丰富, C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能, 支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。4.运用的知识点;在设计该程序时,主要运用的知识点是函数的调用和while循环,分析在人工方式下解决问题的过程,从中找出步骤和规律,在主函数中调用两个计算对应二进制和八进制的函数,在子函数1和子函数2中又分别调用子函数3,函数的多次调用,使程序编写简洁,提高了编写的效率,读起来也比较容易理解。5.附录:编写源程序:#include void print(int i,char *s) while(i-) printf(%c,si); printf(n);void TentoB(int n)int i=0;char str10;while(n0)stri=n%8+0; n/=8; i+;printf(八进制 :);print(i,str);void TentoA(int n)int i=0;char str20=0;while(n0)stri=n%2+0;n/=2;i+;printf(二进制:);print(i,str);void main()int x;scanf(%d,&x);TentoA(x);TentoB(x);调试结果:实训项目单编制部门:电子工程系 编制人:陈伟 审核人: 编制日期 :2011年7月1日项目编号Item No.C0002项目名称Item根据条件进行学生成绩排名训练对象Class电科专业一年级学生学时Time4课程名称CourseC程序设计教材TextbookC程序设计教程谭浩强主编目的Objective1 复习数组,选择,循环结构程序设计2 掌握函数的定义,调用,声明,以及参数的两种传递方式内容(方法,步骤,要求或考核标准)一 实训设备与工具个人计算机(奔腾486档以上),Windows操作系统,Turbo C2.0或visual C+6.0编译开发环境二 实训步骤,方法与要求1, 学生成绩管理系统设计学生成绩管理系统1、 成绩录入2、 成绩查询3、 成绩统计4、 退出2, 程序说明:有N个学生,每个学生的数据包含学号(不重复)、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统,使之能提供以下功能:(1) 主菜单如图1所示:(2) 各菜单项功能a,成绩录入:输入学生的学号、姓名及三门课的成绩;b,成绩查询:查询不及格学生成绩的记录。c,成绩统计:计算学生的平均分;d,退出系统:退出整个系统(即主菜单)。3, 在项目报告中画出程序流程图,说明程序设计的算法,附主要程序段。4, 在项目报告中说明知识点。5, 在项目报告中说明程序设计过程中的难点、解决问题的办法及编程小结或体会。三 评分方法1, 是否能正确编写C程序予以实现各题的要求(50分)2, 项目报告中,流程图和算法描述(20分),知识点描述(20分),难点及解决问题的办法或体会(10分)1.画出C002项目实训单(学生成绩管理系统)中的N-S流程图:for(i=0;i10;i+)输入第i个学生的学号、姓名for(j=0;j3;j+)输入第i个学生第j门课的成绩average=0for(i=0;i10;i+)sum=0for(j=0;j3;j+)计算第i个学生的3门课程总分sun第i个学生的平均分stui.aver第i个学生的第j门成绩stui.scorej60是否输出相关信息在表中继续查找输出全体学生的数据(包括学号、姓名、三门课程、平均分)输出不及格学生的学号、三门课程的成绩及平均分2.编写C002源程序:#include /*调用库函数*/#define N 8 /*宏定义N=8*/struct student /*定义结构体变量*/char num6;char name8;float score3;float aver; stuN;void main()int i,j,t;float sum,average;/*输入数据*/for(i=0;iN;i+)printf(input scores of student %d:n,i+1);printf(No.:);scanf(%s,stui.num);/*输入学生的学号*/printf(name:);scanf(%s,); /*输入每个学生的姓名*/for(j=0;j3;j+)printf(score %d:,j+1);scanf(%f,&stui.scorej); /*输入每个学生的三门课程的成绩*/*计算*/average=0;for(i=0;iN;i+)sum=0;for(j=0;j3;j+)sum+=stui.scorej; /*计算每个学生三门课程的总和*/stui.aver=sum/3;/*计算每个学生的平均分*/if(stui.score0|stui.score1|stui.score2)60) /*查找一门课程不及格的学生*/t=i; /*输出*/printf(n*学生成绩管理系统*n);printf(-1.成绩录入-n);printf(-2.成绩查询-n);printf(-3.成绩统计-n);printf(-4.退出-n);printf( No. name score1 score2 score3 averagen);for(i=0;iN;i+)printf(%5s%10s,stui.num,);/*输出每个学生的学号姓名*/for(j=0;j3;j+)printf(%9.2f,stui.scorej);/*输出每个学生的三门课程成绩*/printf( %8.2fn,stui.aver);/*输出每个学生的平均分*/printf(Hisscoresare:%6.2f,%6.2f,%6.2f,average:%5.2f.n,stut.score0,stut.score1,stut.score2,stut.aver); /*输出有一门课程不及格的学生的三门课程及平均分*/3.程序调试结果:4. 知识点的运用我制作的“学生成绩管理系统”主要运用结构体变量相关的知识点,首先定义字符型的学号和姓名以及浮点型的课程成绩和平均分,然后设计一个主函数,输入学生的学号、姓名、成绩,在输入函数中,用两个for循环分别输入学生的学号、姓名、三门课程的成绩,通过结构体变量名与成员名之间的关系,对结构体中的信息进行操作。在计算函数中,首先通过结构体变量名与成员名之间的关系,计算出每个人的总分,继而算出每个人的平均分。在查找函数函数中,运用逻辑关系“或(|)”,对每个学生的成绩是否及格做出判断。在输出的各个函数中,按照表格的形式,用for循环输出各个学生的信息,并根据结构体变量名与成员名之间的关系,输出有一门不及格学生的三门课程成绩和平均分。该程序主要运用结构体变量名与成员名之间的关系和for循环,使程序简洁,更易于发现各种错误并改正错误,提高了程序的可读性和运行效率。5. 难点的解决及心得体会:该程序的难点在于输入学生的学号对应的姓名和三门课程的成绩,以及对各个学生的信息的操作。我定义一个结构体变量,通过两个for循环嵌套输入学生的学号、姓名、三门课程的成绩,并按相同的方式进行输出。在对学生的信息操作中,通过结构体变量名与成员名之间的关系,查找有一门不及格课程的学生,并输出该学生的三门课程成绩及平均分。心得体会:的程序编写和调试,我受益匪浅,学到了很多以前不知道的东西:(1) 学会了认识调试中产生的各种错误,通过分析引起错误的原因并改正。有时候会出现很多错误,而其中的某些错误有可能都是一个错误引起的。因此,改正一个错误,会有多个错误同时消失。(2) 通过查书和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版外汇市场交易手续费支付合同
- 2025年度航空航天材料采购合同规范范本
- 2025年度企业环保审批代办服务合同
- 2025版配餐服务食品安全责任协议书版范本
- 2025版历史文化遗址保护与修复居间服务协议
- 2025版挖掘机租赁项目安全生产责任书
- 2025版新能源充电桩售后服务及保障合同
- 2025版水利工程土方施工合同
- 2025年公积金贷款二手房买卖合同及合同解除条件条款
- 2025年度高端会所室内涂料施工服务协议
- 茂县生活垃圾资源化综合利用项目环评报告
- 蒙台梭利教学法PPT完整全套教学课件
- 4月份公路养护工作计划
- 保安员在岗培训法律-2
- 初中英语中考专题训练阅读理解-应用文篇
- YC/T 210.2-2006烟叶代码第2部分:烟叶形态代码
- GB/T 20671.1-2006非金属垫片材料分类体系及试验方法第1部分:非金属垫片材料分类体系
- 熵权法教学讲解课件
- 医师病理知识定期考核试题与答案
- 课堂因“融错·容错·溶措”而精彩
- 安宁疗护服务流程
评论
0/150
提交评论