《《高级语言程序设计》课程设计报告.doc》由会员分享,可在线阅读,更多相关《《高级语言程序设计》课程设计报告.doc(12页珍藏版)》请在三一办公上搜索。
1、高级语言程序设计课程设计报告 姓 名: 学 号: 专 业: 班 级: 指导老师: 设计时间: 目录1. 课程设计名称.(3)2. 使用工具软件.(3)3. 课程设计内容简介.(3)4. 得意之处.(6)5. 创意的技术实现.(8)6. 课程设计中目前存在的问题.(12)7. 设计实践过程中的自我感受.(12)8. 参考文献.(13)1、课程设计名称:学生成绩处理2、使用工具软件:Micrsoft Visual C+3、课程设计内容简介 3.1课程设计的基本结构流程 (1)项目二:学生成绩处理结构数组且初始化定义六个成员的结构表达式1表达式2循环体表达式3 for循环假 真 把结构数组n初始 化
2、的数据输出来 运用结构变量成员的加法、除法运算和结构变量的赋值运算求出总分及平均分用冒泡法对学生成绩进行排序 (2) 项目三:打印复杂图 表达式1表达式2 假循环体真表达式33.2运行环境 (1)项目二:学生成绩处理 (2)项目三:打印复杂图形 4、 得意之处: 课程设计程序中我认为最满意、最得意的地方 (1)项目二:学生成绩处理 对学生成绩的总分进行排序 double temp,tempa,tempg0,tempg1,tempg2; char *tempn,*tempx,*tempg; /定义字符型指针int k,m;for(k=1;k=3;k+) /用冒泡法对学生成绩进行排序 for(m=
3、0;mnm+1.score) /按总分的高低进行排序 (两两相比,前者比后者大,则交换位置即小的向前移) /结构变量成员的赋值运算 temp=nm.score,tempa=nm.aver,tempg0=nm.grade0,tempg1=nm.grade1,tempg2=nm.grade2,tempn=nm.name,tempx=nm.xuehao,tempg=nm.gender;nm.score=nm+1.score,nm.aver=nm+1.aver,nm.grade0=nm+1.grade0,nm.grade1=nm+1.grade1,nm.grade2=nm+1.grade2,nm.na
4、me=nm+1.name,nm.xuehao=nm+1.xuehao,nm.gender=nm+1.gender;nm+1.score=temp,nm+1.aver=tempa,nm+1.grade0=tempg0,nm+1.grade1=tempg1,nm+1.grade2=tempg2,nm+1.name=tempn,nm+1.xuehao=tempx,nm+1.gender=tempg; /此时最小的在最前面,越往后总分越高for(k=0;k=3;k+) /使用for循环,把结构数组n的数据输出来 (从总分低到高依次输出)coutnk.xuehao nk.name nk.gender n
5、k.grade0 nk.grade1 nk.grade2 nk.score nk.averendl; (2) 项目三:打印复杂图形int i,j; /i确定行数,j确定列数for(i=1;i5;i+) /此for循环语句循环4次,来确定有4行for(j=1;ji+6;j+) /此for循环语句循环多少次来决定一共输出多少*和 if(j=6-i)cout ;elsecout*; /输出左边前4行的*for(j=1;j8;j+)/此for循环语句循环多少次来决定一共输出多少*和 if(j=8-i*2)cout ;elsecout*; /输出右边前4行的* coutn; /输出前4行的*5、创意的技
6、术实现 5.1课程设计中重点创意的技术实现技巧 (1)项目二:学生成绩处理 结构数组的定义、初始化、赋值和使用;指针的赋值运算; 用冒泡法对学生成绩进行排序; (2)项目三:打印复杂图形 If选择语句; For循环语句的嵌套使用; 5.2程序的源代码 (1)项目二:学生成绩处理#include#includestruct result /结构的结构名为result,含有6个成员 char *xuehao; /学号 成员xuehao是一个char型的指针char *name; /姓名 成员name是一个char型的指针char *gender; /性别 成员gender是一个char型的指针do
7、uble grade3; /各科成绩(语文 数学 英语) 成员grade是一个double型的一维数组double score; /总分 double aver; /每个学生的平均分;void main() /定义了一个结构变量n,n是一个一维数组名,也是一个结构数组名,该结构数组n被初始化,它有4个元素,每个元素是一个具有结构模式result的结构变量struct result n4=1301,郭富城,男,95,99,92,1302,贾静文,女,98,99,99,1303,容嬷嬷,女,75,85,56,1304,刘德华,男,95,96,97; cout 显 示 成 绩 单n;cout=end
8、l;cout 学号 姓名 性别 语文 数学 英语endl;cout-endl;for(int l=0;l4;l+) /使用for循环,把结构数组n初始化的数据输出来cout nl.xuehao nl.name nl.gender nl.grade0 nl.grade1 nl.grade2endl; coutendlendl; cout 每 个 学 生 成 绩 总 分:endl;cout=endl;for(int i=0;i4;i+)ni.score=ni.grade0+ni.grade1+ni.grade2; /求总分 (结构变量成员的加法运算和结构变量的赋值运算)for(int j=0;j4
9、;j+)nj.aver=(nj.grade0+nj.grade1+nj.grade2)/3; /求平均分(结构变量成员的加法、除法运算和结构变量的赋值运算)cout学号 姓名 性别 语文 数学 英语 总分 平均分endl;cout-endl;for(int p=0;p4;p+) /使用for循环,把结构数组n的数据输出来coutnp.xuehao np.name np.gender np.grade0 np.grade1 np.grade2 np.score np.averendl; coutendlendl;cout 总 分 按 升 序 排 序:n;cout=endl;cout学号 姓名 性
10、别 语文 数学 英语 总分 平均分endl; cout-endl;double temp,tempa,tempg0,tempg1,tempg2; char *tempn,*tempx,*tempg; int k,m; for(k=1;k=3;k+) /用冒泡法对学生成绩进行排序 for(m=0;mnm+1.score) /按总分的高低进行排序(两两相比,前者比后者大,则交换位置即小的向前移) /结构变量成员的赋值运算temp=nm.score,tempa=nm.aver,tempg0=nm.grade0,tempg1=nm.grade1,tempg2=nm.grade2,tempn=nm.na
11、me,tempx=nm.xuehao,tempg=nm.gender;nm.score=nm+1.score,nm.aver=nm+1.aver,nm.grade0=nm+1.grade0,nm.grade1=nm+1.grade1,nm.grade2=nm+1.grade2,nm.name=nm+1.name,nm.xuehao=nm+1.xuehao,nm.gender=nm+1.gender;nm+1.score=temp,nm+1.aver=tempa,nm+1.grade0=tempg0,nm+1.grade1=tempg1,nm+1.grade2=tempg2,nm+1.name=
12、tempn,nm+1.xuehao=tempx,nm+1.gender=tempg; /此时最小的在最前面,越往后总分越高for(k=0;k=3;k+) /使用for循环,把结构数组n的数据输出来 (从总分低到高依次输出) coutnk.xuehao nk.name nk.gender nk.grade0 nk.grade1 nk.grade2 nk.score nk.averendl; coutendlendl;cout 总 分 按 降 序 排 序:n;cout=endl;cout学号 姓名 性别 语文 数学 英语 总分 平均分endl; cout-endl; double temp1,te
13、mp1a,temp1g0,temp1g1,temp1g2;char *temp1n,*temp1x,*temp1g;int k1,m1; for(k1=1;k=3;k1+) /用冒泡法对学生成绩进行排序 for(m1=0;m1nm1+1.score) /按总分的高低进行排序(两两相比,前者比后者大,则交换位置即小的向前移)temp1=nm1.score,temp1a=nm1.aver,temp1g0=nm1.grade0,temp1g1=nm1.grade1,temp1g2=nm1.grade2,temp1n=nm1.name,temp1x=nm1.xuehao,temp1g=nm1.gend
14、er;nm1.score=nm1+1.score,nm1.aver=nm1+1.aver,nm1.grade0=nm1+1.grade0,nm1.grade1=nm1+1.grade1,nm1.grade2=nm1+1.grade2,nm1.name=nm1+1.name,nm1.xuehao=nm1+1.xuehao,nm1.gender=nm1+1.gender;nm1+1.score=temp1,nm1+1.aver=temp1a,nm1+1.grade0=temp1g0,nm1+1.grade1=temp1g1,nm1+1.grade2=temp1g2,nm1+1.name=temp1
15、n,nm1+1.xuehao=temp1x,nm1+1.gender=temp1g; /此时最小的在最前面,越往后总分越高for(k1=3;k1=0;k1-) /使用for循环,把结构数组n的数据输出来 (从总分高(后)到低(前)依次输出)coutnk1.xuehao nk1.name nk1.gender nk1.grade0 nk1.grade1 nk1.grade2 nk1.score nk1.averendl; (2)项目三:打印复杂图形#includevoid main()int i,j;for(i=1;i5;i+) /此for循环语句循环4次,来确定有4行for(j=1;ji+6;
16、j+) if(j=6-i)cout ;elsecout*; /输出左边前4行的*for(j=1;j8;j+)if(j=8-i*2)cout ;elsecout*; /输出右边前4行的* cout1;i-) /此for循环语句循环3次,来确定有3行for(j=1;ji+5;j+)if(j=7-i)cout ;elsecout*; /输出左边后3行的*for(j=1;j8;j+)if(j=10-i*2)cout ;elsecout*; /输出右边后3行的* coutn; /输出后3行的*6、 课程设计中目前存在的问题(1)项目二中打印复杂图形不够灵活;(2)两个项目中没有一个完善的菜单指南;7、 设计实践过程中的自我感受 (1)某项功能的操作是容易实现的,但要做到界面操作灵活方 便,是需要更多的知识和时间的。 (2)当完成一项功能,哪怕是一项很简单的功能时,会感觉很开心,会觉得有成就感。 (3)遇到困难时,多找资料分析原因。 8、 参考文献 C+语言程序设计(第2版) 编著:吕凤翥 Visual C+程序设计案例教程 主编:谭建辉