① c语言经典编程282例的前言
学会站在巨人的肩膀上!
软件开发的终极目标是完成满足用户需求的软件。一个软件往往包含复杂的功能,作为一名程序员,需要在有限的时间内实现它们,这对于新手而言并不容易。为什么富有开发经验的程序员编程效率非常高呢?答案就是他们做过类似的程序,适当修改以前的代码,就可以满足现在的要求。因此,如何快速积累编程经验就成了新手的当务之急。显然,单单依靠项目来积累编程经验是非常慢的。
本书图文并茂、难易并举,汇集了282个日常开发中应用广泛的实例,内容涵盖了C语言编程的方方面面。每个实例分为实例说明、实现过程和技术要点3部分进行讲解。通过对本书的学习,不仅能快速掌握相关知识点,还可以逐步提升编程能力。
本书内容
本书以C语言的基础知识结构为框架,给出了每部分知识中可能遇到的疑难问题或开发技巧。本书共分17章,主要包括初识C语言、简单的C程序、算法入门、常用数据类型、运算符与表达式、数据输入与输出函数、选择和分支结构程序设计、循环结构、数组、函数编程基础、指针、常用数据结构、位运算操作符、存储管理、预处理和函数类型、文件读写、图形图像处理。
为了更清晰地阐述问题和给出问题的解决方案,本书设置了以下栏目。
* 实例说明:详细描述本实例的用途,并给出实例的运行结果图。
* 实现过程:逐步讲解如何解决本实例的问题,并给出关键代码、注意事项等。
* 技术要点:对本实例使用的关键技术进行总结,方便日后使用。
本书特色
* 贴近应用。本书精选的实例都真正来自开发一线。以实例形式进行讲解,使其更容易被读者接受。
* 横向链接。本书知识框架与《C语言开发入门及项目实战》一书相对应,可以在学习完《C语言开发入门及项目实战》一书的基础上使用本书,以提高自己的技能。
* 解析透彻。本书对每个问题的相关知识进行细致地讲解,并进行知识拓展,使读者不仅知其然而且知其所以然。
* 授人以渔。本书在讲解技术的同时,还注重对读者能力的培养,使读者掌握分析问题与解决问题的能力。
本书配套资源
本书提供了内容丰富的配套资源,包括源程序、素材,以及模块库、案例库、题库、素材库等多项辅助内容,读者朋友可以通过如下方式获取。
第1种方式:
(1)登录清华大学出版社的网站,在网页右上角的搜索文本框中输入本书书名(注意区分大小写和留出空格),或者输入本书关键字,或者输入本书ISBN号(注意去掉ISBN号间隔线“-”),单击“搜索”按钮。
(2)找到本书后单击超链接,在该书的网页下侧单击“网络资源”超链接,即可下载。
第2种方式:
访问本书的新浪微博C语言图书,找到配套资源的链接地址进行下载。
读者人群
本书非常适合以下人员阅读:
? C语言编程行业的开发人员
? 有一定语言基础,想进一步提高技能的人员
? 大中专院校的老师和学生
? 即将走向工作岗位的大学毕业生
? 相关培训机构的老师和学员
? C语言编程爱好者
② c语言实训心得3000字
你可以这样写:
下面是我的实训心得:
一、明确学习目的
学习编程对大多数IT业人员来说都是非常有用的。学编程,做一名编程人员,从个人角度讲,可以解决在软件使用中所遇到的问题,改进现有软件,可以为自己找到一份理想的工作添加重要得砝码,有利于在求职道路上谋得一个好的职位;从国家的角度,可以为中国的软件产业做出应有的贡献,一名优秀的程序员永远是被争夺的对象。学习编程还能锻炼思维,使我们的逻辑思维更加严密;能够不断享受到创新的乐趣,将一直有机会走在高科技的前沿,因为程序设计本身是一种创造性的工作。知识经济时代给我们带来了无限的机会,要想真正掌握计算机技术,并在IT行业里干出一番事业来,有所作为,具有一定的编程能力是一个基本条件和要求。
二、打好基础
学编程要具备一定的基础,总结之有以下几方面:
1、数学基础 从计算机发展和应用的历史来看计算机的数学模型和体系结构等都是有数学家提出的,最早的计算机也是为数值计算而设计的。因此,要学好计算机就要有一定的数学基础,出学者有高中水平就差不多了。
2、逻辑思维能力的培养学程序设计要有一定的逻辑思维能力,“逻思力”的培养要长时间的实践锻炼。要想成为一名优秀的程序员,最重要的是掌握编程思想。要做到这一点必须在反复的实践、观察、分析、比较、总结中逐渐地积累。因此在学习编程过程中,我们不必等到什么都完全明白了才去动手实践,只要明白了大概,就要敢于自己动手去体验。谁都有第一次。有些问题只有通过实践后才能明白,也只有实践才能把老师和书上的知识变成自己的,高手都是这样成材的。
三、注意理解一些重要概念
一本程序设计的书看到的无非就是变量、函数、条件语句、循环语句等概念,但要真正能进行编程应用,需要深入理解这些概念,在理解的基础上应用,不要只简单地学习语法、结构,而要吃透针这些语法、结构的应用例子,做到举一反三,触类旁通。
四、掌握编程思想
学习一门语言或开发工具,语法结构、功能调用是次要的,最主要是学习它的思想。关键是学一种思想,有了思想,那么我们就可以触类旁通。
五、多实践、多交流
掌握编程思想必须在编程实际工作中去实践和体会。编程起步阶段要经常自己动手设计程序,具体设计时不要拘泥于固定的思维方式,遇到问题要多想几种解决的方案。这就要多交流,各人的思维方式不同、角度各异,各有高招,通过交流可不断吸收别人的长处,丰富编程实践,帮助自己提高水平。亲自动手进行程序设计是创造性思维应用的体现,也是培养逻辑思维的好方法。
六、养成良好的编程习惯
编程入门不难,但入门后不断学习是十分重要的,相对来说较为漫长。在此期间要注意养成一些良好的编程习惯。编程风格的好坏很大程度影响程序质量。良好的编程风格可以使程序结构清晰合理,且使程序代码便于维护。如代码的缩进编排、变量命令规则的一致性、代码的注释等。
七、上网学编程
在网上可以学到很多不同的编程思想、方法、经验和技巧,有大量的工具和作品及相关的辅导材料供下载。
八、加强计算机理论知识的再学习
学编程是符合“理论→实践→再理论→再实践”的一个认识过程。一开始要具有一定的计算机理论基础知识,包括编程所需的数学基础知识,具备了入门的条件,就可以开始编程的实践,从实践中可以发现问题需要加强计算机理论知识的再学习。程序人人皆可编,但当你发现编到一定程度很难再提高的时候,就要回头来学习一些计算机科学和数学基础理论。学过之后,很多以前遇到的问题都会迎刃而解,使人有豁然开朗之感。因此在学习编程的过程中要不断地针对应用中的困惑和问题深入学习数据结构、算法、计算机原理、编译原理、操作系统原理、软件工程等计算机科学的理论基础和数理逻辑、代数系统、图论、离散数学等数学理论基础知识。这样经过不断的学习,再努力地实践,编程水平一定会不断提高到一个新高度。
③ C语言高级编程及实例剖析的前言
C语言功能强大,具有丰富灵活的控制与数据结构、简洁而高效的语句表达、清晰的程序结构、良好的移植性、较小的空间开销等优点,已被广泛应用于系统软件与应用软件的开发中。.
本书以深化程序设计语言C语言为目的,以具体常见的计算机硬件与操作系统为背景,讲述在微机上编写精巧、美观、友好的应用软件。本书内容与实例并进,对C语言编程做了深入和具体的探讨。涉及的知识面广,从内存管理,到文本屏幕界面设计,再到文件操作、图形图像操作、中断、通信技术、基本总线接口编程和游戏开发应用,几乎涵盖了C语言编程的方方面面。通过对本书的学习,读者将对C语言高级编程有一个深刻的理解和掌握。
本书在内容安排上采用内容与实例并进的方式。每一章中,先讲述相关内容,然后通过实例解析讲述内容的具体应用。实例解析注重对实例的分析,对方法的详细讲解,以及对知识点的归纳总结。本书对各个实例以需求分析、源代码解析、运行结果和归纳总结为主线进行剖析,通过实例来讲解知识点,又通过相应的知识点来分析实例。通过研读,读者可以很快掌握此方面的知识,并较快将其应用到工程开发中。在结构安排上,充分考虑了层次性和内容上的循序渐进。
本书包括9章,主要内容如下。
第1章为内存管理,主要针对优化内存使用、提高内存的使用效率、提高程序运行速度。该章介绍了PC的存储器结构和基本的堆管理函数,包括学生信息数据库实例和巧用内存管理创建通信录实例。通过本章的学习,读者将对亡语言的内存管理有一个清晰的了解和认识。
第2章为文本屏幕界面设计,包括文本方式控制、窗口设置和文本屏幕输出函数、清屏和光标操作函数、屏幕移动与存取函数、状态查询函数等内容。该章还详细剖析了创建弹出式菜单实例、文本方式下拉式菜单和将屏幕分为两个窗口进行对话的实例。通过本章的学习,读者可以掌握如何对文本屏幕界面进行操作。..
第3章为文件高级操作,介绍标准文件的基本输入输出操作和一些实用的文件处理方法,包括文件的加密与解密、文件的分割与合并等。通过本章的学习,读者将会逐步掌握一些实用的文件处理技巧。
第4章为图形图像,介绍如何使用Turbo C提供的图形函数绘制基本的图形(包括画点、线、矩形和条形图,画圆、椭圆和扇形图等)、对图形的颜色控制函数、封闭图形的填色函数及有关画图函数、屏幕操作函数、图形方式下的文本输出函数、动画技术、菜单生成技术、图形程序使用环境、直接存储存取和SVGA编程,还介绍使用这些基本图形的实际应用,图形图像综合应用——用动画演示排序算法。通过本章的学习,读者将逐步掌握如何使用C语言绘制图形。
第5章为中断,介绍中断的基本概念、鼠标中断编程的应用、键盘中断编程的应用和用中断方式制作的菜单等。通过本章的学习,读者将掌握对鼠标和键盘的中断控制。
第6章为通信技术,主要介绍Winsock编程基础、Cscoket编程技术、串并口编程,双机连接方法等,并通过双机并口通信实例和网络通信编程实例的剖析讲述了通信技术的实际应用。通过本部分的学习,读者将逐步掌握通信技术。
第7章为基本总线接口编程,主要介绍ISA总线、PCI总线、PCI总线配置和采用中断方式的信号采集程序。通过本章的学习,读者将对总线接口编程有一定了解。
第8章为游戏开发,介绍DOS环境下的C语言游戏编程,是综合实例。魔方游戏实例,实际上是对直接写屏、中断、多任务、内存技术、动画技术、显示技术和优化算法等各种编程技术,及内存、声卡、键盘、鼠标等各种硬件原理和硬件编程的综合应用。
第9章是综合开发实例——信息管理系统。本部分将重点向读者介绍如何采用模块化程序设计思想来设计一个综合的C程序,提高读者编写大型程序的能力。
本书主要针对C语言程序设计的高级读者,适合已经熟悉和掌握了C语言的基础知识,想用C语言开发更完美的软件,更为深入地了解C语言的一些细节和使用技巧的读者。本书可以使学习过C语言语法的初学者快速成长为C语言编程高手,也可以作为工程人员的参考手册。
本书由王为青、刘变红编着,参与本书编辑和修改的还有徐强、刘艳伟、吴洋、房明浩、严雨、王亮、梅乐夫、刘艳袆等同志。在此,对以上人员致以诚挚的谢意!
由于本书涉及的范围比较广泛,作者的经验有限,书中难免有不足或错误之处,敬请各位读者批评指正。
④ 大一第一学期C语言实训心得500字左右,急 急 急,在线等
楼主在这中间加减点东西,就可以用
过C语言实训,让我加深了对C语言的了解,而不只是单单的在课本中学到的那些理论,平时乏味的课程,通过自己动手亲自编写,变的生动有趣,而在自己动手的过程中,出现的问题很多,比理论要难的多,当一个程序写完以后,经常会有很多错误而没法解决。不过,通过几天的实训,逐渐积攒了一些经验,有些错误可以很快就看出来。
这次实训有很大的收获,让我对C语言有了更深的认识,平时在课堂上学到的东西可以自己动手编写,将其转化成一些实用的技能。如果是一个程序写完一处错误也没有,会有种成就感,于是兴趣就来了,兴趣来了,自然学的东西也就多了,能把理论变成实际的技能,让我对C语言有了浓厚的兴趣和更深层的认识。
C语言是一个有序的学习,学了最基本的替换,然后扩展到循环,嵌套,条理很清楚,不是一个零散的知识,实际上所有的课程都如此,不过通过实训我也知道了自己的不足,存在的很多问题。
比如自己写的写的小程序出了问题,不会解决了就叫老师帮忙,虽然说一定意义上增加了师生之间的感情,但是会养成一种依赖的心理,碰到问题了个想到的是求助而不是自己独立解决,所以以后要多多锻炼自己的信心和增加自己的能力,争取做到老师不在身边的时候也可以完成一些简单的程序编写与错误排除。
还有自己的基础知识不扎实,遇到的问题,没有很好的逻辑思维,亲自编写一个陌生的程序的时候会有种无法下手的感觉,找不到突破口。通过实训,逐渐理清了顺序,对于简单的程序和一些相对比较繁琐的嵌套,循环,不在是看着一头雾水。其实只要理清了思路,把基础知识掌握了,然后有条不紊的分析,一步一步理解,C语言还是很有意思的课程。
自己亲自动手编写程序让我增加了对C语言程序开发环境的了解,在上课的时候老师就讲,学习C语言最重要的是学习C语言的逻辑思维,不管以后从事什么行业,学习C语言都对自己的职业很有帮助,如果是从事编程工程工作的话,就更有帮助了,即使以后的编程工作可能不用C语言,但是拥有扎实的C语言基础是对工作很有用的。
当初在初步接触C语言的时候,看着一堆“奇形怪状”的符号,觉得甚是无聊,通过这次实训,摆脱了那种似懂非懂的状态!
感谢学校安排这次实训和老师的耐心讲解,让我学到了很多知识,在实训过程中,同学之间的相互探讨,老师的循循善诱,最终让我们达到了举一反三的效果,在学知识的同时,也增加了同学老师之间的感情。希望以后还会有更多类似的实训课程,在有限的大学时间内学到更多的实用技能,为以后的工作打下一个良好的基础
⑤ c语言程实训报告模板
C/C++面向对象程序设计实训报告
系部名称 计算机工程系 专业 网路安全 指导教师
学生姓名 班级
实训
时间 年 月 日---------- 年 月 日
实训项目和地点:
实训项目:C++程序的设计与应用
地点:
实训目的:
在实践过程中,使我们进一步巩固C++程序设计课程所学知识,更加深入地了解面向对象程序设计的主要技术特点以及C++语言的强大编程功能指导学生利用获取信息的手段进一步获取新知识,以解决实训过程中遇到的技术难点,从中提高自学能力;按照软件开发的基本要求引导我们完成实训课题,以便我们了解软件开发的几个重要环节;提高我们的编程技术,使程序的编写更趋于专业化,为从业打下良好的基础、培养我们分工协作的团队精神。
实训设备及器材:
1、计算机配置:Celeron cpu 2.66GHz 1G内存 计算机一台
2、操作系统平台: Windows XP
3、软件开发平台:Visual C++ 6.0
4、其它应用软件:Microsoft Access / SQL Server 、Word、Visio等
实训的步骤和内容:
设计题目:输入4个整数,要求按由大到小的顺序输出
第1步、问题描述:
输入4个整数,要求按由大到小的顺序输出。
第2步、基本思路:
利用选择法进行排序。
第3步、编写程序:
#include<stdio.h>
void main()
{
int a,b,c,d,t;
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
if(a<b)
{t=a;
a=b;
b=t;}
if(a<c)
{t=a;
a=c;
c=t;}
if(a<d)
{t=a;
a=d;
d=t;}
if(b<c)
{t=b;
b=c;
c=t;}
if(b<d)
{t=b;
b=d;
d=t;}
if(c<d)
{t=c;
c=d;
d=t;}
printf("%d,%d,%d,%d",a,b,c,d);
}
第4步、运行结果:_
输入:5,7,9,4
输出:9,7,5,4
实训结果分析及其心得体会:
通过C++实训,让我加深了对C语言的了解,而不只是单单的在课本中学到的那些理论,平时乏味的课程,通过自己动手亲自编写,变的生动有趣,而在自己动手的过程中,出现的问题很多,比理论要难的多,当一个程序写完以后,经常会有很多错误而没法解决。不过,通过几天的实训,逐渐积攒了一些经验,有些错误可以很快就看出来。
这次实训有很大的收获,让我对C语言有了更深的认识,平时在课堂上学到的东西可以自己动手编写,将其转化成一些实用的技能。如果是一个程序写完一处错误也没用,会有种成就感,于是兴趣就来了,兴趣来了,自然学的东西也就多了,能把理论变成实际的技能,让我对C语言有了浓厚的兴趣和更深层的认识。
C语言是一个有序的学习,学了最基本的替换,然后扩展到循环,嵌套,条理很清楚,不是 一个零散的知识,实际上所有的课程都如此,不过通过实训我也知道了自己的不足,存在的很多问题。
比如自己写的写的小程序出了问题,不会解决了就叫老师帮忙,虽然说一定意义上增加了师生之间的感情,但是会养成一种依赖的心理,碰到问题了第一个想到的是求助而不是自己独立解决,所以以后要多多锻炼自己的信心和增加自己的能力,争取做到不在身边的时候也可以完成一些简单的程序编写与错误排除。
还有自己的基础知识不扎实,遇到的问题,没有很好的逻辑思维,亲自编写一个陌生的程序的时候会有种无法下手的感觉,找不到突破口。通过实训,逐渐理清了顺序,对于简单的程序和一些相对比较繁琐的嵌套,循环,不在是看着一头雾水。其实只要理清了思路,把基础知识掌握了,然后有条不紊的分析,一步一步理解,C语言还是很有意思的课程。
自己亲自动手编写程序让我增加了对C语言程序开发环境的了解,不管以后从事什么行业,学习C语言都对自己的职业很有帮助,如果是从事编程工程工作的话,就更有帮助了,即使以后的编程工作可能不用C语言,但是拥有扎实的C语言基础是对工作很有用的。
当初在初步接触C语言的时候,看着一堆“奇形怪状”的符号,觉得甚是无聊,通过这次实训,摆脱了那种似懂非懂的状态!
感谢学校安排这次实训和老师的耐心讲解,让我学到了很多知识,在实训过程中,同学之间的互相探讨,老师的循循善诱,最终让我们达到了举一反三的效果,在学知识的同,也增加了同学老师之间的感情。希望以后还会有更多类似的实训课程,在有限的大学时间内学到更多的实用技能,为以后的工作打下一个良好的基础。
⑥ C语言实训
在初学C语言的一个学期后,我们进行了C语言实训阶段,尝试自己编写一个比较复杂的程序系统。在为期两周的时间中,我们同组的同学共同的感受是:C语言实训和平时上课所接触的程序是有很大不同的,所经受的考验和克服的困难是平时所无法比拟的。好在同组的搭档们精诚合作,分工明确,有问题共同解决,攻克了C语言实训的复杂程序。在这里,我作为其中的参与者,自然感触良多。 刚开始接触到C的时候,我已经学过一些有关VB的内容,这个在算法和思维上稍微有点帮助。回想本学期的学习,首先,最基本的,是C的数据格式,让我们知道整数,浮点数以及字符常量在C中的运用。然后,在学会了数据转化,以及熟练的可以对各种数据处理之后,我开始进行有关数据结构,像数组,结构体等的学习,因为有的东西从现有的知识来看都是非常简单的,还没有联系到指针等等一些复杂的概念。可是,仅仅学会这些是远远不够的,C语言中,还有很多更加经典、重要、实用的知识。 说说函数。虽说很多程序语言都有函数这一内容,但我觉得C语言的函数是最有魅力的了。学习函数的方法是比较简单的,只有两个字“牢记”,即:牢记函数的功能,牢记函数的用途以及如何输入输出。函数从本质上讲是一段通用程序,用它可以帮助我们节约很多编程的时间,学习C语言的“高人”都说,一个聪明的编程者在编写程序前往往总是先找自己所编写的程序中有多少是可以用函数来代替的。比如,大家可以作一个比较字符串的实验,用C语言中的strcmp()函数只要一句话,而自己编写的话,30句都很难实现,可想而知函数的实用和快捷。在我们C语言实训的代码中,函数更是得到了充分的应用,可以说,实训题目的复杂代码,就是用无数个函数的调用和嵌套积累出来的。 要注意的是,有的同学刚刚开始的时候,都是被一些大的程序激励的,所以当开始的时候看到繁琐的数据转化和简单的算法,都觉得很无聊,都想自己做几个自己满意的程序来看看,虽然这种想法很好,但是,我们说,没有基础,纯粹是搬照一些现成设计方法,是不足取的。要知道,程序设计讲究的是个人的思维的,假如刚开始就被一些现成的思想束缚住,以后就会觉得很无趣。 我们知道,指针其实是C语言的灵魂,许多的数据结构在我们学到这里之前都可以说是精通了。所以我们的任务就是,让数据结构在指针中运行。当然,刚刚开始接触到这些新的东西,是一件非常痛苦的事情,所以我们一定要用非常形象的思维去看待指针,不能太固化。所以,新的东西,比如结构体在指针中的表现方法,数组及多维数组在结构体中的运用,都一点一点的加了进来,同时丰满了我们对原来C的数据机构,数据表示的理解。当我们完成了这三步的学习,我们已经可以自豪的说,我们的基础都扎实了,可以进一步的学习有关算法,设计概念等等深层次的东西了。 但是,指针,结构体,这些太抽象的东西,在学习C语言的时候我们就有点“似懂非懂”,可是在眼下的C语言实训中,像这么重要的C语言知识,一定要达到能熟练掌握,实际运用的程度。在实训的大程序中,结构体在指针中的表现方法,数组及在结构体中的运用等具体的技术环节,都得到了体现,不会指针,我们的工作是没法展开的。所以,在实训期间,大家在巩固基本知识的基础上,逐块攻克实训课题,克服了困难,自信心得到了提高。 最后,谈谈我们组的程序软件。商店商品管理系统,是一个比较利于应用,解决实际问题,方便实际管理的程序。设计代码比较复杂,结构比较严谨。在程序编写的1周左右的时间里,组员们遇到了上述的困难,包括程序设计构思,甚至是指针等某些知识点的欠缺,导致的工作中出现的困难。但是,当大家一起团结协作,解决了这些困难之后,发现自己也可以编写复杂的、应用性的程序了,更发现自己对C语言这门学科的兴趣也提高了。 当然,我们编写的商店商品管理系统,还存在很多疏漏和不合理之处。比如,程序复杂冗长,如果时间充裕,我们将在不改变程序运行结果的基础上,简化程序,使每一句更加精辟,总体上更加简化。另外,在程序的外观上,我们由于时间问题,没有做更多的修饰,运行起来显得比较死板、枯燥乏味。如果增添一些色彩和其他效果,我们的程序也许会更加完美。 以上就是我的C语言实训个人总结
⑦ 帮忙写一份C语言课程实训报告
程序:
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
#include<dos.h>
#define swap(x,y,t) ((t)=(x),(x)=(y),(y)=(t))
#define N 30
#define C 15
#define ok 1
#define error 0
typedef int status;
typedef struct stud
{
long num;
char name[C];
int high_math;
int english;
int physics;
int program;
int database;
int total;
int ave;
}student;
student chengji[N];
int number,ave[N];
status assert(int x)
{
if(x>=0&&x<=100)
return ok;
else
return error;
}
status create_chengjilist()
{
int num,i;
print("\n正在创建学生成绩表,请稍等.........\n");
sleep(6);
print("请输入学生的数目(<30):");
scanformat("%d",&num);
while(num>N)
{
print("\n你输入的人数太多!");
print("\n请重新输入:");
scanformat("%d",&num);
}
for(i=0;i<num;i++)
{
print("\n输入第%d个学生的成绩信息:\n",i+1);
print("学号:");
scanformat("%ld",&chengji[i].num);
print("\n姓名:");
scanformat("%s",chengji[i].name);
print("\n高等数学:");
scanformat("%d",&chengji[i].high_math);
while(!assert(chengji[i].high_math))
{
print("\n输入非法格式.");
print("\n请重新输入.");
scanformat("%d",&chengji[i].high_math);
}
print("\n英语:");
scanformat("%d",&chengji[i].english);
while(!assert(chengji[i].english))
{
print("\n输入非法格式.");
print("\n请重新输入.");
scanformat("%d",&chengji[i].english);
}
print("\n物理:");
scanformat("%d",&chengji[i].physics);
while(!assert(chengji[i].physics))
{
print("\n输入非法格式.");
print("\n请重新输入.");
scanformat("%d",&chengji[i].physics);
}
print("\n程序设计:");
scanformat("%d",&chengji[i].program);
while(!assert(chengji[i].program))
{
print("\n输入非法格式.");
print("\n请重新输入.");
scanformat("%d",&chengji[i].program);
}
print("\n数据库:");
scanformat("%d",&chengji[i].database);
while(!assert(chengji[i].database))
{
print("\n输入非法格式.");
print("\n请重新输入.");
scanformat("%d",&chengji[i].database);
}
chengji[i].total=chengji[i].high_math+chengji[i].english+chengji[i].physics+chengji[i].program+chengji[i].database;
chengji[i].ave=chengji[i].total/5;
}
print("\n学生成绩表创建成功!!!\n");
return num;
}
void show(int data)
{
int i;
print("\n学生成绩表的所有信息:\n");
for(i=0;i<data;i++)
{
if(!(chengji[i].name[0]==''))
{
print("\n第%d个学生信息:",i+1);
print("\n学号:");
print("%ld",chengji[i].num);
print("\n姓名:");
print("%s",chengji[i].name);
print("\n高等数学:");
print("%d",chengji[i].high_math);
print("\n英语:");
print("%d",chengji[i].english);
print("\n物理:");
print("%d",chengji[i].physics);
print("\n程序设计:");
print("%d",chengji[i].program);
print("\n数据库:");
print("%d",chengji[i].database);
print("\n总分:");
print("%d",chengji[i].total);
print("\n平均分:");
print("%d",chengji[i].ave);
}
}
}
status search_num(int v,long d)
{
int i;
for(i=0;i<v;i++)
{
if(chengji[i].num==d)
break;
}
if(i==v)
{
print("\n成绩表中不存在该生.");
return;
}
else
{
print("\n查找学生的信息是:\n");
print("\n学号:");
print("%ld",chengji[i].num);
print("\n姓名:");
print("%s",chengji[i].name);
print("\n高等数学:");
print("%d",chengji[i].high_math);
print("\n英语:");
print("%d",chengji[i].english);
print("\n物理:");
print("%d",chengji[i].physics);
print("\n程序设计:");
print("%d",chengji[i].program);
print("\n数据库:");
print("%d",chengji[i].database);
print("\n总分:");
print("%d",chengji[i].total);
print("\n平均分:");
print("%d",chengji[i].ave);
return i;
}
}
void search_name(int s)
{
int i;
char string[C];
print("\n请输入要查找学生的姓名:");
scanformat("%s",string);
for(i=0;i<s;i++)
{
if(!strcmp(string,chengji[i].name))
break;
}
if(i==s)
{
print("\n成绩表中不存在该生.");
return;
}
else
{
print("\n该生的成绩记录:\n");
print("\n学号:");
print("%ld",chengji[i].num);
print("\n姓名:");
print("%s",chengji[i].name);
print("\n高等数学:");
print("%d",chengji[i].high_math);
print("\n英语:");
print("%d",chengji[i].english);
print("\n物理:");
print("%d",chengji[i].physics);
print("\n程序设计:");
print("%d",chengji[i].program);
print("\n数据库:");
print("%d",chengji[i].database);
print("\n总分:");
print("%d",chengji[i].total);
print("\n平均分:");
print("%d",chengji[i].ave);
}
}
void searchlist(int t)
{
int i;
long num;
char ch;
while(1)
{
print("\n1.学号.\n2.姓名");
print("\n你想通过什么查询.请选择:");
scanformat("%d",&i);
switch(i)
{
case 1:
print("\n请输入要查找学生的学号:");
scanformat("%ld",&num);
search_num(t,num);
break;
case 2:
search_name(t);
break;
default:
print("\n非法输入.");
break;
}
print("\n想继续查询吗?Y or N?:");
scanformat("%ch",&ch);
if(ch=='N'||ch=='n')
break;
}
}
void show_menu()
{
print("==================================");
print("\n1.显示成绩表中所有的学生成绩信息.");
print("\n2.查询学生的成绩信息.");
print("\n3.加入学生的成绩信息.");
print("\n4.删除学生的成绩信息.");
print("\n5.显示各科目的平均分.");
print("\n6.显示学生成绩排名情况.");
print("\n7.退出学生成绩管理系统.");
print("\n================================");
print("\n请选择你想要的操作:");
}
status insertlist(int m)
{
char ch;
print("\n请输入加入学生的成绩信息:\n");
while(1)
{
print("\n输入第%d个学生的成绩信息:\n",m+1);
print("学号:");
scanformat("%ld",&chengji .num);
print("\n姓名:");
scanformat("%s",chengji .name);
print("\n高等数学:");
scanformat("%d",&chengji .high_math);
while(!assert(chengji .high_math))
{
print("\n输入非法格式.");
print("\n请重新输入.");
scanformat("%d",&chengji .high_math);
}
print("\n英语:");
scanformat("%d",&chengji .english);
while(!assert(chengji .english))
{
print("\n输入非法格式.");
print("\n请重新输入.");
scanformat("%d",&chengji .english);
}
print("\n物理:");
scanformat("%d",&chengji .physics);
while(!assert(chengji .physics))
{
print("\n输入非法格式.");
print("\n请重新输入.");
scanformat("%d",&chengji .physics);
}
print("\n程序设计:");
scanformat("%d",&chengji .program);
while(!assert(chengji .program))
{
print("\n输入非法格式.");
print("\n请重新输入.");
scanformat("%d",&chengji .program);
}
print("\n数据库:");
scanformat("%d",&chengji .database);
while(!assert(chengji .database))
{
print("\n输入非法格式.");
print("\n请重新输入.");
scanformat("%d",&chengji .database);
}
chengji .total=chengji .high_math+chengji .english+chengji .physics+chengji .program+chengji .database;
chengji .ave=chengji .total/5;
print("\n成功的加入一个学生的成绩信息.");
m=m+1;
print("\n想继续吗?Y or n?:");
scanf("%c",&ch);
if(ch=='N'||ch=='n')
return m;
}
}
void deletelist(int n)
{
char ch,string[C];
int i;
long xuehao;
string[0]='\0';
print("\n请输入你想删去的学生的学号:");
scanf("%ld",&xuehao);
print("\n你要删去的学生的信息:\n");
i=search_num(n,xuehao);
print("\n你真的要删去该生的成绩信息吗?Y or N ?:");
scanformat("%c",&ch);
if(ch=='Y'||ch=='y')
{
strcpy(chengji[i].name,string);
print("\n你已经成功的删去了该生的成绩信息!!\n");
return;
}
else
return;
}
void show_average()
{
int sum1=0,sum2=0,sum3=0,sum4=0,sum5=0,i;
print("\n正在计算各科目的平均分,请稍等.........");
sleep(5);
for(i=0;i<number;i++)
if(!(chengji[i].name[0]==' '))
{
sum1+=chengji[i].high_math;
sum2+=chengji[i].english;
sum3+=chengji[i].physics;
sum4+=chengji[i].program;
sum5+=chengji[i].database;
}
print("\n高等数学:%d",sum1/number);
print("\n英语:%d",sum2/number);
print("\n物理:%d",sum3/number);
print("\n程序设计:%d",sum4/number);
print("\n数据库:%d",sum5/number);
}
status search_ave(int average)
{
int i;
for(i=0;i<number;i++)
{
if(chengji[i].name[0]==' ')
continue;
if(ave[i]==average)
{
ave[i]=0;
return i;
}
}
return -1;
}void search_paiming()
{
int numb[N],i,j,temp,k,m=0;/*??????*/
for(i=0;i<number;i++)
numb[i]=chengji[i].ave;
for(i=number;i>=0;i--)
{
for(j=i-1;j>=0;j--)
if(numb[j]<numb[i])
{
swap(numb[j],numb[i],temp);
i=j;
}
}
print("\n学生成绩排名:\n");
print("名次 学号 姓名 平均分");
for(i=0;i<number;i++)
{
k=search_ave(numb[i]);
if(k>=0&&chengji[k].name[0]!=' ')
{
print("\n第%d名:",m+1);
print(" %ld",chengji[k].num);
print(" %s",chengji[k].name);
print(" %d",chengji[k].ave);
m++;
}
}
print("\n");
}
main()
{
int choice,i;
number=create_chengjilist();
while(1)
{
print("\n");
show_menu();
scanformat("%d",&choice);
switch(choice)
{
case 1:
show(number);
break;
case 2:
searchlist(number);
break;
case 3:
number=insertlist(number);
break;
case 4:
deletelist(number);
break;
case 5:
show_average();
break;
case 6:
for(i=0;i<number;i++)
ave[i]=chengji[i].ave;
search_paiming();
break;
case 7:
saveconsole("student.txt");
return;
default:
print("\n非法输入!");
break;
}
}
}
⑧ c语言atm实训报告前言
你只需要按那个模版就行,那些内容就改成你的作业 班级: 学号: 姓名: 实验9 指针 一、实验目的 (1)掌握指针概念,并定义与使用它。 (2)使用数组的指针和指向数组的指针变量。 (3)使用字符串的指针和指向字符串的指针变量。 二、实验内容 1. 将一个3*3的矩阵转置,用函数实现。 2. 有n个人围成一圈,顺序排号。
⑨ C语言课程设计前言
C语言作为一门最通用的语言,在过去很流行,将来依然会如此。几乎每一个理工科或者其他专业的学生毫不例外地要学习它。记得大学里,很多学校都把谭浩强教授的《C程序设计》作为入门教材,这是绝佳的选择。然而,要更进一步,更全面而深入地学习呢?显然有点力不从心。本书正是为了弥补这个缺憾而写的,希望能对想比较全面而深入学习C语言程序设计的人有所帮助。
从C语言产生到现在,它已经成为最重要和最流行的编程语言之一。在各种流行编程语言中,都能看到C语言的影子,如Java的语法与C语言基本相同。学习、掌握C语言是每一个计算机技术人员的基本功之一。
C语言具有高级语言的强大功能,却又有很多直接操作计算机硬件的功能(这些都是汇编语言的功能),因此,C语言通常又被称为中级语言。学习和掌握C语言,既可以增进对于计算机底层工作机制的了解,又为进一步学习其他高级语言打下了坚实的基础
从入门到精通:本书分上下两篇,上篇针对初学者,从C语言的基础开始,使略有计算机基础的人都能容易地学会C语言编程。下篇则介绍了C语言的高级程序设计技巧,包括常用算法、底层控制鼠标、绘图、加密、压缩等应用。
适用多种操作系统:本书实例都通过GCC编译器调试,读者不仅可在Windows环境下使用本书学习C语言,也可在Linux环境下使用本书学习C语言。循序渐进:本书编写顺序按C语言的知识点循序渐进地介绍。例如,先介绍数据的存储,再介绍数据的输入/输出;先介绍简单的程序设计概念,再介绍指针等C语言的难点。重点突出:指针是C语言的重点和难点,本书用了大量的篇幅,从不同方面对其进行讲解,并列举了大量的实例,帮助读者理解并掌握指针。
然后在加点这本书分几章,各是什么内容,主要针对的是C语言什么功能,最后写些祝福大家学习进步之类的话就可以了