




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言课程设计报告1417102-08 胡文锋一、实习时间2015年12月 28日2016年月1月1日二、实习地点信息楼403机房三、设计目的1.加深对C语言程序设计课程所学知识的理解,进一步巩固C语言语法规则。熟练掌握条件语句、循环、数组、函数、指针、文件的操作。2.学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备解决综合性实际问题的能力。3.程序设计方法包括结构化程序设计方法和面向对象程序设计方法,两者适用范围不同,互为补充。站在软件工程的高度,让学生初步了解用结构化的思想贯穿软件开发整个过程:软件需求分析(结构化分析方法SA)、软件设计(结构化设计方法SD)、程序编码(结构
2、化程序设计SP)。四、实习小组成员1417102-08 胡文锋1417102-18 谭斌1417102-28 仲光明五、指导老师 谭新良老师、徐述老师.六、设计题目 经过小组大部分组员的讨论,决定选取选题(2、8、10); 理由:1.界面综合度高,设计此界面要用到多种控件和图标,有利于大家熟练掌握和运用。 2.怎个系统简洁明了,适于初学者。 3.代码编写涉及面广,利用提高综合应用能力。七、基本思路及关键问题的解决方法1、基本思路:在拿到问题之后,我们先是从内心里面接受它,然后再分析问题,在分析的过程中,我们先各自进行独立的思考,在思考完以后,我们进行集体的讨论,相互交流,说出各自的想法,最后再
3、通过相互取长补短,最终汇成一个问题的答案。 2、关键问题的解决方法:第一,独立思考;第二,集体讨论;第三,通过上网和查阅书籍;第四,请教老师或是其他小组的同学。这是我们解决关键问题的方法。八、算法及流程图九、调试过程中出现的问题及相应解决办法1、调试过程中出现的问题:(1)程序不能运行;(2)程序运行出现错误;(3)程序出现死循环;2、解决方法:首先,找出错误的所在,然后分析错误的原因,最后再通过一些有效的途径解决问题。10、 课程设计体会 回顾这次课程设计,至今我仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整一个星期的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前
4、所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论和知识是远远不够的,只有把所学的理论知识与实际相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考能力。 做完这个课程设计,我们的自信一下子提高了,我们也会写程序了;尽管对于有些人这种程序会很简单,可对于我们C语言初学者来说,已经很不容易了。这次体验为以后的学习计算机的我们增强了信心。享受劳动成果的滋味实在美妙啊!很感谢这次的课程设计,它使我更加地体会到多看专业书的重要性,只有掌握了一定量的专业知识才能得心应手地解决诸多问题;另外,在做任何事倒
5、要有耐心,不要一遇到困难就退缩;在学习和工作中要时刻谨记“团结”二字,它好比通向成功的铺路石,不可或缺。人生的道路是曲折的,但正是因为曲折人生才光彩夺目,在人生的道路上,总遇到重重困难,但正是因为困难我们才变得更坚强。今后的路还很长,面对困难,让我们用行动去俘虏它吧! 十一、源程序(每句语言要有详细解释)第二题:#includestruct Student /设定一个包括学生学号、姓名、三科分数的结构体int NO;char name20;float score1,score2,score3;void main()float max(float x,float y); /声明函数maxstru
6、ct Student stu5000; /设定一个可容纳5000个结构体的量int i,n; /定义两个整形变量i,nfloat ave,sum,c,p5000=0; /定义四个浮点型变量ave,sum,c,p5000printf(the number of student:);scanf(%d,&n); /从键盘输入学生个数nprintf(put the imformation of student:);for(i=1;i=n;i+)scanf(%d %s %f %f %f,&stui.NO,&,&stui.score1,&stui.score2,&stui.score3)
7、; /从键盘输入学生信息 printf(n); /换行for(i=1;i=n;i+) /*求每一位学生的三科分数的平均数 三科总分*/ ave=(stui.score1+stui.score2+stui.score3)/3; sum=stui.score1+stui.score2+stui.score3; pi=sum; /每求出一个人的总分就将其保存for(i=1;i=n;i+)c=max(pi,pi-1); /比较每一位同学的总分并选出分值最大的赋值给cprintf(the bast score of students name:);for(i=1;iy?x:y; /比较形参x和形参y的大
8、小,并将大的赋值给zreturn(z); /将z的值返回给函数mzx第八题:#includeint main()int a500500=0; /给定一个500*500的二位数组并赋初值 int i,j,k,n=0,count; /设置整形变量i,j,k,n,count;printf(the number of n:); scanf(%d,&n); /按题目要求从键盘输入n的值 i=j=0,k=-1; /给i,j赋初值并设置开关k for(count=2;count=n*n;) /确定n*n方阵所有数值的范围if(k0) /对开关k进行判断其目的是为了确保每相隔一逆时针45度斜列数据进行一下操作
9、if(i=n-1) /此时表示进行到第四行的数据也是方阵数据的关键递增位置+j; /对列加一而行不变,即为了符合题目要求而确定数据递增的方向k=-k; /取k的相反数使下一次运算即下一斜列的运算发生改变 else if(j=0) /此时表示进行到第零列的数据也是方阵数据的另一关键递增位置+i; /对行加一而列不变,同样是为了符合题目要求而确定数据递增的方向k=-k; /取k的相反数使下一次运算即下一斜列的运算发生改变 else -j; /*列减一而行加一是为了 确保在这一斜列的数据是以此方向递增*/ +i; else /*此部分与以上类似,但若说以上是对奇数斜列进行操作的话那么一下操作即是针对
10、偶数斜列进行的*/ if(j=n-1) +i;k=-k; else if(i=0) +j;k=-k; else +j;-i; aji=count+; /确保此方阵数据是按规定方向递增 for(j=0;jn;j+) /按二维数组输出所有数据 for(i=0;in;i+) printf(%5d,aij); printf(n); /每输出n个数据进行换行处理,使其成为题目所需方阵 第十题:#include #include #define LEN sizeof(struct student)struct student /定义一个结构体变量long num;int score;struct stud
11、ent*next;struct student lista,listb; /函数声明int n,sum=0; /n,sum为全局变量,本文件模块中各函数均可使用它int main()struct student*creat(void); /函数声明struct student*insert(struct student * ,struct student*); /函数声明 void print(struct student*); /函数声明 struct student*ahead,*bhead,*abh;printf(input list a:n);ahead=creat(); /调用函数c
12、reat建立链表A,返回头地址sum=sum+n;printf(input list b:n);bhead=creat(); /调用函数creat建立链表B,返回头地址sum=sum+n;abh=insert(ahead,bhead); /调用insert函数,将两表合并print(abh); /输出合并后的链表return 0; struct student*creat(void) /定义函数也是建立一个单项动态链表。此函数返回一个指向链表头的指针 struct student*p1,*p2,*head; n=0; p1=p2=(struct student* )malloc(LEN); /
13、开辟一个新的单元,使p1,p2指向它 printf(input number&scores of student:n); printf(if number is 0,stop inputing.n); scanf(%ld,%d,&p1-num ,&p1-score); /输入第一个学生的学号和成绩给p1所指定的节点 head=NULL; while(p1-num!=0) n=n+1; if(n=1) head=p1; /吧p1所指的节点作为第一个节点 else p2-next=p1; /把p1所指的节点链接到表尾 p2=p1; /p2移到表尾 p1=(struct student*)mallo
14、c(LEN); /再开辟一个新的使p1指向它 scanf(%ld,%d,&p1-num,&p1-score); /读入一个学生数据给p1所指定节点 p2-next=NULL; /表尾节点的指针变量置UNLL return(head); struct student*insert(struct student*ah,struct student*bh) /定义insert函数,用来合并两个链表 struct student*pa1,*pa2,*pb1,*pb2; pa2=pa1=ah; /pa1,pa2都指向链表A pb2=pb1=bh; /pb1,pb2都指向链表B do while(pb1-
15、numpa1-num)&(pa1-next!=NULL) /当读入的链表B的地址大于链表A的地址且pa1所指的节点不是表尾时 pa2=pa1; /令pa2代替Pa1 pa1=pa1-next; /使pa1指向下一个节点 if(pb1-numnum) /如果读入的链表B的地址小于或等于于链表A的地址 if(ah=pa1) /判断pa1是否指向链表A ah=pb1; /如果成立,令pb1也指向链表A else /如果不成立 pa2-next=pb1; /令pb1指向链表A的链尾 pb1=pb1-next; /使pb1指向链表B的下一节点 pb2-next=pa1; /令pa1指向链表B的链尾 pa
16、2=pb2; /令pb2指向链表A pb2=pb1; /令链表B的链尾指向链表A while(pa1-next!=NULL)|(pa1=NULL&pb1!=NULL); /当链表A的链尾不是UNLL或者pa1为空且pb1不为空时 if(pb1!=NULL)&(pb1-numpa1-num)&(pa1-next=NULL) /判断是否pb1不为空且pb1所指的地址大于pa1且链表A的链尾不为空 pa1-next=pb1; /令pb1指向链表A的链尾 return(ah); void print(struct student*head) /建立输出函数 struct student*p; printf(There are %d record:n,sum); p=head; /将头指针赋值给p if(p!=NULL) do prin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 豚的拼音课件app
- 2025年北京市民间个人租赁无人机培训借款合同样本
- 2025年度智能家电研发生产三人股份合作合同
- 2025年度高品质不锈钢板材进出口贸易合同书
- 2025保姆家庭营养膳食及健康管理服务合同
- 2025版全株青贮玉米种植与收购农村电商合作合同范本
- 2025年生物质燃料供应与购买框架合同范本
- 2025年度轻钢结构建筑安全检测与维护合同
- 2025年智能家居采购与安装一体化服务合同范本
- 语言文字知识培训总结课件
- 消防监控考试题初级及答案
- 2025年太阳能海水淡化项目经济效益评估报告
- 2025年湖南湘西自治州州直事业单位招聘考试笔试试卷附答案
- 《小学开学第一课》课件
- 2025-2031年中国有源相控阵雷达行业市场发展形势及投资潜力研判报告
- 大货车货运安全知识培训课件
- 消防车辆事故课件
- 2026届四川省宜宾市普通高中高一化学第一学期期末统考试题含解析
- 北师大版八年级数学上册教案(全册完整版)教学设计含教学反思
- 国家自然科学基金联合申报协议书
- 新教科版五年级科学上册全册课件(精品PPT)
评论
0/150
提交评论