C语言实训报告
- 格式:doc
- 大小:159.50 KB
- 文档页数:30
C语言实训总结报告范文篇一:C语言实训这个星期,我们迎来了C语言实训——一次至为重要的实训。
在这个星期里,同学们都很认真的做着那20多道实训题目,遇到不懂的互相请教,或请问老师。
非常感谢老师对我们的帮助,这次实训使我受益匪浅,收获了很多。
通过C语言实训,让我加深了对C语言的了解,而不只是单单的在课本中学到的那些理论,平时乏味的课程,通过自己动手亲自编写,变的生动有趣,而在自己动手的过程中,出现的问题很多,比理论要难的多,当一个程序写完以后,经常会有很多错误而没法解决。
不过,通过几天的实训,逐渐积攒了一些经验,有些错误可以很快就看出来。
这次实训有很大的收获,让我对C语言有了更深的认识,平时在课堂上学到的东西可以自己动手编写,将其转化成一些实用的技能。
如果是一个程序写完一处错误也没有,会有种成就感,于是兴趣就来了,兴趣来了,自然学的东西也就多了,能把理论变成实际的技能,让我对C语言有了浓厚的兴趣和更深层的认识。
C语言是一个有序的学习,学了最基本的替换,然后扩展到循环,嵌套,条理很清楚,不是一个零散的知识,实际上所有的课程都如此,不过通过实训我也知道了自己的不足,存在的很多问题。
比如自己写的写的小程序出了问题,不会解决了就叫老师帮忙,虽然说一定意义上增加了师生之间的感情,但是会养成一种依赖的心理,碰到问题了第一个想到的是求助而不是自己独立解决,所以以后要多多锻炼自己的信心和增加自己的能力,争取做到老师不在身边的时候也可以完成一些简单的程序编写与错误排除。
还有自己的基础知识不扎实,遇到的问题,没有很好的逻辑思维,亲自编写一个陌生的程序的时候会有种无法下手的感觉,找不到突破口。
通过实训,逐渐理清了顺序,对于简单的程序和一些相对比较繁琐的嵌套,循环,不在是看着一头雾水。
其实只要理清了思路,把基础知识掌握了,然后有条不紊的分析,一步一步理解,C 语言还是很有意思的课程。
自己亲自动手编写程序让我增加了对C语言程序开发环境的了解,在上课的时候老师就讲,学习C语言最重要的是学习C语言的逻辑思维,不管以后从事什么行业,学习C语言都对自己的职业很有帮助,如果是从事编程工程工作的话。
c语言实验报告c语言实验报告5篇随着社会一步步向前发展,我们使用报告的情况越来越多,我们在写报告的时候要注意涵盖报告的基本要素。
其实写报告并没有想象中那么难,以下是小编收集整理的c语言实验报告,欢迎阅读与收藏。
c语言实验报告1学号:__________ 姓名:__________ 班级:__________ 日期:__________指导教师:__________ 成绩:__________实验六综合实验一、实验目的1、掌握C语言中的变量、数组、函数、指针、结构体等主要知识点。
2、掌握C程序的结构化程序设计方法,能使用C语言开发简单的应用程序。
3、掌握C程序的运行、调试方法等。
二、实验内容编写一个学生信息排序程序。
要求:1、程序运行时可输入n个学生的信息和成绩(n预先定义)。
2、学生信息包括:学号、英文姓名、年龄;学生成绩包括:语文、数学、计算机。
3、给出一个排序选择列表,能够按照上述所列信息(学号、姓名、年龄、语文、数学、计算机)中的至少一个字段进行排序,并显示其结果。
1、使用函数方法定义各个模块。
三、实验步骤与过程物理实验报告·化学实验报告·生物实验报告·实验报告格式·实验报告模板四、程序调试记录c语言实验报告2第一章基础掌握1.1 实验目的掌握C程序设计编程环境Visual C++,掌握运行一个C程序的基本步骤,包括编辑、编译、链接和运行。
(]1.2 实验要求在报告中记录建立、保存C程序实习过程。
1.3 实验基本内容编写程序,在屏幕上显示一个短句“Hello World”(1)程序:1)编译如下程序:#includeVoid main(){printf (“Hello World! ”);}2)链接。
执行Build-命令。
3)运行。
执行Build Execute 命令。
显示结果。
4)关闭程序工作区。
(2)运行结果:输出结果:Hello World!总结:掌握C语言程序设计的基本框架,能够编写简单的程序。
最新c语言实验报告心得体会范文(精选3篇)最新c语言实验报告范文篇1做完这个课程设计,我们的自信一下子提高了;尽管对于有些人这种程序会很简单,可对我们c语言初学者来说,已经很不容易了。
这次体验为以后的学习计算机的我们增强了信心。
享受劳动成果的'滋味实在很美妙啊!虽然对着电脑做程序,有点累有点热,可是当看到劳动成果时,真是别有一番滋味在心头啊!世上无难事,只怕有心人,的确如此。
做完这个程序最大的收获就是感受到了集体的力量,当然个人的智慧也是很重要的哦!忙碌了一个多星期,在大家的共同努力下,我们总算将此程序设计出来。
尽管不是自己独立完成,但仍然很高兴,因为在设计的过程中,让我了解到要设计一个程序,查找资料是至关重要的,在他人的基础上,再根据自己所学进行修改与调试,最后设计出自己想要的程序,这过程艰辛,但只要你持之以恒,成功指日可待。
最新c语言实验报告心得体会范文篇2现在,计算机和网络已经深入到了我们生活中的方方面面,也已经成了生活中不可缺少的一部分,网络成了我们获取知识和信息的一种便捷工具,现在的网民也在不断的增多,所以,了解和学习网络知识是我们作为一名大学生迫切所需的。
我通过这一学期的学习,对网页设计有了初步的认识和了解,并基本掌握了Dreamweaver的应用。
在学习了网页设计的同时,我更加深入的了解了关于计算机和网络的知识。
基于对计算机基础与C语言的基本掌握,学习网页设计的基础部分便显得较为轻松。
虽然如此,在设计过程中依然出现了很多的问题,但通过看书,上网查询,等方式,不断的学习、解决、提高,设计出的网页不论是外观还是内容,都在不断的进步、改善。
可以说在自己动手,不断实践的过程中,网页设计水平得到了很大的提高。
通过对网页设计书籍的翻阅,我学习到了一些关于建设网站和制作网页的知识,在实践查阅资料时,对flash也有所了解。
我还了解了一些基础的网络技术。
通过学习,我对计算机有了更深层次得到了解,也有了更浓厚的兴趣。
C语言课程实习(优秀范文5篇)第一篇:C语言课程实习课程实习一、C程序上机操作方法及运行环境编写一个C程序,输入a, b, c,d四个值,输出其中最小者。
#includemain(){int a,b,c,d,t;printf(“Please input numbers:”);scanf(“%d,%d,%d,%d”,&a,&b,&c,&d);t=min(min(min(a,b),c),d);printf(“min number is:%dn”,t);}int min(int x,int y){int z;if(xz=x;elsez=y;return(z);}运行结果:Please input numbers:4,6,3,9min number is:3课程实习二、C程序上机操作方法及运行环境从键盘输入三个字符,要求输出这三个字符,并输出它们的ASCII 码及其ASCII码的平方根和的平方。
#include#includevoid main(){char ch1,ch2,ch3;float t;scanf(“%c,%c,%c”,&ch1,&ch2,&ch3);t=sqrt(ch1)+sqrt(ch2)+sqrt(ch3);printf(“%c,%dn”,ch1,ch1);printf(“%c,%dn”,ch2,ch2);printf(“%c,%dn”,ch3,ch3);printf(“%fn”,t*t);}运行结果:a,b,ca,97b,98c,99881.984683课程实习三、循环结构程序设计1)输入两个正整数m和n;2)如果m=n输出最大公约数m程序结束;3)若m>n则m=m-n否则n=n-m;4)返回到2)(循环)。
#includevoid main(){int m,n;scanf(“%d%d”,&m,&n);while(m!=n){if(m>n)m=m-n; else n=n-m;}printf(“%dn”,m); }运行结果:34,24课程实习四、循环结构程序设计打印下面的图案# # # # ## # # ## # ## ##includevoid main(){int i,j;for(i=1;i<=4;i++) {for(j=1;jprintf(“ ”);for(j=5;j>=i;j--) printf(“*”); putchar('n');}}课程实习五、数组的应用输入一个0到150之间的十进制整数,要求把此数转化为二进制形式。
C语言程序设计实习报告一、实习目的1. 巩固和加深对C语言程序设计的理解。
2. 掌握C语言编程的基本技巧和方法。
3. 提高分析问题、解决问题的能力。
4. 学会将理论知识应用于实际编程中。
二、实习内容XXX语言基础语法练习变量、数据类型、运算符、表达式等基础语法练习。
控制结构(顺序、分支、循环)的实现。
函数的定义和调用方式练习。
2. 模块化程序设计将一个大的程序分解成多个模块,每个模块完成特定的功能。
通过模块间的调用和传递数据来实现整个程序的功能。
3. 文件操作与文件读写文件的打开、关闭、读写操作练习。
文件格式的转换和数据统计处理。
4. 预处理指令与宏定义使用预处理指令进行条件编译和宏定义替换。
练习使用常见的预处理指令如include、define、ifdef等。
5. 结构体、链表与指针结构体的定义和使用。
链表的创建、插入、删除、遍历等操作。
指针的概念和指针运算。
深入理解指针与数组、结构体等数据结构的关系。
6. 位运算与嵌入式系统编程学习位运算符的使用和位段操作的实现。
嵌入式系统的基本概念和编程方法。
7. 综合项目实践参与或独立完成一个综合性C语言程序设计项目。
项目可以包括基于命令行参数的程序设计、基于文件操作的程序设计、基于网络编程的程序设计等。
三、实习过程1. 理论学习:通过教材、网络资源等途径学习C语言的基础知识和编程技巧。
2. 上机实践:在计算机上编写和调试C语言程序,不断巩固所学知识。
3. 问题解决:遇到问题时,通过查阅资料、请教老师或同学等方式解决问题。
4. 团队合作:在小组项目中与他人协作,共同完成任务。
四、实习收获1. 知识技能方面:深入理解了C语言的基本概念和编程技巧,掌握了模块化程序设计和文件操作等常用算法。
2. 解决问题能力方面:学会了如何分析问题、寻找解决方案并通过实践验证解决方案的正确性。
3. 团队协作能力方面:学会了与他人合作,共同完成任务,提高了团队协作能力。
4. 职业素养方面:培养了耐心、细致的工作态度和勇于尝试、敢于创新的探索精神。
c语言实习报告3篇c语言实习报告1在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。
在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,更多的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。
由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。
包括了程序模块处理.简单界面程序.高级界面程序.程序的添加修改.用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。
上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。
对于程序设计语言的.学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。
学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。
因为学时所限,课程不能安排过多的上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。
为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。
课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:1.加深对课堂讲授内容的理解课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。
然而要使用c语言这个工具解决实际问题,又必须掌握它。
通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。
对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。
学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。
C课程设计一、课程设计目旳《C语言课程设计》是信息类专业旳主要实践性课程。
目旳在于学习完《C语言程序设计》课程后进行旳一次全方面旳综合练习。
经过课程设计, 一方面能够结合课程旳教学内容循序渐进地进行设计方面旳实践训练, 另一方面, 在参加一系列子项目旳实践过程中, 还能提升怎样综合利用所学知识处理实际问题旳能力, 以及取得有关项目管理和团队合作等众多方面旳详细经验。
为后续课程: 面对对象程序设计、Visual C++, 数据构造, 软件工程, 软件技术基础等奠定必要旳实践基础。
设计目旳如下:1、进一步培养学生构造化程序设计旳思想, 加深对高级语言基本语言要素和控制构造旳了解。
2、针对C语言中旳要点和难点内容进行训练, 独立完毕有一定工作量旳程序设计任务, 同步强调好旳程序设计风格。
3.掌握C语言旳编程技巧和上机调试程序旳措施。
4.掌握程序设计中旳常用算法。
二、课程设计题目及要求1.基础训练题目1.1基础1.1.1写出下面程序旳输出成果。
1)#include <stdio.h>main( ){int x;x=-3+4*5-6;printf(“%d\n”,x);x=3+4%5-6; printf(“%d\n”,x);x=-3*4%4-6/5; printf(“%d\n”,x);x=(7+6)%5/2; printf(“%d\n”,x);}2) # include<stdio.h>main(){int x=5;int y=6;int z=7;printf(" %d\n %d\n %d\n %d\n %d\n %d\n %d\n",x>y,y>x,x!=y,x==z-2,x=x-2,x>=z,x<=z); }3 ) #include <stdio.h>main(){int x=0,y=-1,z=1;printf("%d,%d,%d,%d,%d,%d",x&&y,x||y,y&&z,y||z,x&y,x|y);}1.2顺序构造1)已知三角形旳底和高, 求三角形旳面积法一、#include <stdio.h>main(){float a,b;scanf("a=%f,b=%f",&a,&b);printf("MJ=%.2f",(a*b)/2.0);}法二、#include <stdio.h>main(){float a,b,s;scanf("a=%f,b=%f",&a,&b);s=a*b/2;printf("s=%.1f",s);}2)若已知某银行一年定时旳存款年利率, 输入存款额, 计算三年后本利之和并输出。
c语言实习心得体会作为一个计算机科学与技术专业的学生,我在大学期间选择了参加一次C语言实习。
通过这次实习,我深刻地体会到了学习和应用C 语言的重要性,提高了自己的编程能力,同时也增加了对计算机底层原理的理解。
在这篇文章中,我将分享我在C语言实习中的体会和心得。
实习的第一天,我们首先进行了一些关于C语言的基础知识的学习。
这些基础知识包括了C语言的语法规则、数据类型、运算符、流程控制等。
通过这些学习,我对于C语言的基本语法和使用有了一个较全面的了解。
同时,老师也教给了我们如何使用C语言进行简单的程序设计,如如何编写一个求和的程序、如何编写一个判断素数的程序等。
这些小程序的编写对于我们理解C语言的逻辑以及动手能力的提升非常有帮助。
在实习过程中,我们还学习了C语言的高级特性,如指针、结构体和动态内存分配等。
指针作为C语言非常重要的一个概念,掌握了指针的使用,我们可以更加灵活地操作内存,提高程序的效率。
在学习指针的过程中,我意识到了指针的重要性和使用的灵活性,通过运用指针,我们可以更好地解决一些问题,并且提高程序的性能。
而学习结构体的过程中,我对于数据的组织和管理有了更深入的理解,这对于将来的工作和学习中都是非常有帮助的。
在实习过程中,我们还学习了C语言的文件操作和输入输出。
文件操作是C语言非常常用的一个功能,通过文件操作,我们可以读取和保存数据,实现数据的长期存储和传输。
在学习文件操作时,我意识到了数据的重要性和安全性。
在实际的应用中,我们经常需要将数据存储到文件中,通过文件操作,我们可以实现数据的读取和保存。
而对于输入输出的学习,提高了我们程序的灵活性和可扩展性。
在以后的编程工作中,我相信这些知识会发挥非常重要的作用。
除了上述的基础知识学习,我们在实习过程中还进行了一些实际的编程练习和项目开发。
这些练习和项目开发对于我们提高编程能力和实践能力非常有帮助。
通过实际的编程练习,我们可以将之前学习的知识运用到实际的项目中,更好地理解和掌握这些知识。
c语言实训报告万能模板C 语言实训报告一、实训目的本次 C 语言实训的主要目的是通过实际的编程实践,加深对 C 语言基础知识的理解和掌握,提高编程能力和解决实际问题的能力。
具体包括:1、熟练掌握C 语言的基本语法、数据类型、控制结构等基础知识。
2、学会运用 C 语言进行程序设计,能够独立完成简单的程序编写和调试。
3、培养良好的编程习惯和代码规范,提高程序的可读性和可维护性。
4、锻炼分析问题和解决问题的能力,培养逻辑思维和创新思维。
二、实训环境本次实训使用的开发环境为具体的开发环境名称和版本,操作系统为具体的操作系统名称和版本。
三、实训内容1、基础语法练习变量和数据类型的使用,包括整型、浮点型、字符型等。
运算符和表达式的运用,如算术运算符、关系运算符、逻辑运算符等。
控制结构的实现,如顺序结构、选择结构(ifelse、switch)和循环结构(for、while、dowhile)。
2、数组和指针数组的定义、初始化和使用,包括一维数组和多维数组。
指针的概念和基本操作,如指针的定义、赋值和指针与数组的关系。
3、函数函数的定义、声明和调用,包括无参函数和有参函数。
函数的参数传递方式,值传递和地址传递。
函数的返回值类型和返回值的使用。
4、结构体和共用体结构体的定义和使用,结构体变量的定义、初始化和成员访问。
共用体的概念和简单应用。
5、文件操作文件的打开、关闭、读写操作。
文本文件和二进制文件的处理。
四、实训步骤1、需求分析仔细阅读实训题目,明确程序要实现的功能和要求。
分析问题的输入和输出,确定所需的数据结构和算法。
2、设计方案根据需求分析,设计程序的总体框架和模块划分。
确定每个模块的功能和接口,绘制程序流程图或编写伪代码。
3、代码实现根据设计方案,使用 C 语言编写程序代码。
遵循良好的编程习惯和代码规范,添加必要的注释。
4、调试测试使用开发环境提供的调试工具,对编写的程序进行调试。
检查语法错误、逻辑错误和运行时错误,并进行修改。
c语言实习报告篇一:C语言实习报告设计报告一,实验目的:通过上机实习,熟练掌握循环语句、选择语句、指针以及结构体的运用技巧。
在实习中通过实际操作,编写程序,发现问题,最后解决问题,提升对c语言实用性的理解,在实践中巩固各知识点。
C语言是一种计算机程序设计语言。
它既具有高级语言的特点,又具有汇编语言的特点,上机实习可以帮助我们更好地理解这种结构式的中级语言以及其各式各样的数据类型和高效率的运算程序,为我们进一步学习C++打下坚实基础。
同时,在实习过程中,通过互相发现问题,共同解决问题,不仅锻炼了我们的合作能力,而且也让我们发现了一些自己的个人误区以及其他人容易犯的错误,从而在今后的学习中更加谨慎,达到事半功倍的效果;通过询问老师,也让我们养成了不耻下问的好习惯,这将很有利于以后的学习。
闲乐-一个人闲。
不如大家一块儿乐/retype/zoom/9861aabdfd0a79563c1e72adpn=2&x=0&y=0&r aww=312&rawh=443&o=jpg_6_0_______&type=pic&aimh=443&md5sum=5742db4fcffa47783d15ae929b606fc2&sign=17301 cfe1e&zoom=&png=276-8578&jpg=0-25354"target="_blank">点此查看2,程序:#include int main() { int a[11],i,j,t,b,c,temp1,temp2,temp3; //定义一个数组a[11],用以存放学生的成绩 printf("从键盘输入10个学生成绩:\n"); for(i=0;i printf("10个学生成绩数组:\n"); for(i=0;i printf("\n"); printf("再输入一个学生的成绩\n");scanf("%d",&b); //再输入一个学生的成绩c=a[9]; if(b printf("11个学生成绩数组:\n"); for(i=0;i for(i=0;i printf("排好序的成绩单进行反序存放为:\n");for(i=0;i 3,运行结果://输入11个学生成绩 //排好序的成绩单进行反序存放 //输出反序存放后的学生成绩数组2,根据条件进行学生成绩排名Sort1篇二:C语言实训报告《C语言程序设计》实训报告课题名称:通讯录管理系统专业:计算机信息管理班级:09信管(1)班学号:姓名:指导教师:XX 年 7 月 1 日目录1 课程设计目的 12 课程设计题目 13 课程设计报告内容 14 结论 105 结束语 106 参考书目 107 程序运行 108 附录:(源程序清单) 12一、课程设计题目《通讯录管理系统》二、实训目的(1)掌握结构化程序设计的基本方法,基本掌握面向对象程序设计的基本思路和方法。
《C语言程序设计与数据结构》实训报告课题名称:通讯录管理系统专业:软件技术(开发方向)班级:软件G083学号:15姓名:徐阳指导教师:黄爽2008 年12月25 日目录1 课程设计目的 (1)2 课程设计题目 (1)3 课程设计报告内容 (1)4 结论 (10)5 结束语 (11)6 参考书目 (11)7 附录:(源程序清单) (12)一、课程设计题目《商场销售管理管理系统》二、实训目的(1)掌握结构化程序设计的基本方法,基本掌握面向对象程序设计的基本思路和方法。
(2)掌握C++的基本概念和基础知识。
(3)通过训练能够读懂较为复杂的C++语言源程序并具备基本C++语言程序设计的能力。
(4)熟练掌握各种常用类的定义,继承,文件的应用,为更好的理解面向对象打下更好的基础。
(5)通过实训,培养自己编写、调试、分析大型应用程序的能力。
(6)掌握面向对象的基本原理,提高学生综合程序设计的能力。
(7)培养自己独立解决问题,查找资料的能力。
同学之间相互帮助,相互交流,相互合作的团队精神。
(8)培养自己良好的学习兴趣,独立的编程风格。
(9)通过实训检查自己学习上的不足,达到熟练掌握C++语言的基本知识和技能。
三、课程设计报告内容3.1功能要求该系统运行在DOS环境下,人机界面为命令行文本界面。
完成的任务是对若干人的通信录信息进行管理,且数据保存到文件中。
实现的主要功能是:登陆: 判断用户输入的密码正确性,并限制用户只能有三次机会输入,若超过则关闭计算机。
添加:增加一个或几个人的通信录信息。
删除:删除已输入的通信录信息。
查询:根据输入的姓名查找通信录信息。
修改:根据输入的姓名修改通信录信息。
显示:输出所有通信录信息。
3.2 设计环境所使用的语言采用标准C,开发工具可选用在DOS环境下的Turbo C或Win-TC,也可在Windows环境下的C++Builder。
3.3 数据结构本系统是对通信录的信息进行管理,通信录记录的信息采用C的结构体数据类型描述,定义如下:struct ren /*定义个人资料结构体类型*/{ int num; /*编号*/char name[10]; /*姓名*/char tel[12]; /*电话号码*/char email[20]; /*email地址*/char qq[12]; /*QQ*/char address[50]; /*住址*/};3.4实现方法及主要算法分析(1)口令设计模块:调用strcmp函数判断输入是否与密码正确。
getch()读入一个字符不回显在屏幕上,不用回车结束。
getchar()将字符输入到缓冲区直到输入回车才返回给系统。
调用system("shutdown -s ")关闭计算机。
(2)主界面的设计:主界面采用文本菜单的形式,各功能调用通过菜单进行选择。
采用循环处理,以便执行完某项处理后,仍可选择其他项处理。
在循环内先显示提示信息,然后读取用户输入,使用switch语句对用户的输入进行判断,分别调用相应的模块,当某模块结束后再次回到文本菜单,直到用户选择结束程序菜单,才退出循环,从而退出系统。
(3)外部文件的类型:文件采用的二进制的文件,对文件的读写采用顺序文件的方式,并使用fread和fwrite等函数对文件进行操作。
(4)清屏函数:一般由上一级菜单屏幕进入下一级菜单屏幕或由下一级菜单屏幕返回上一级菜单屏幕都需要清除屏幕原来显示的内容。
同时在调用程序的过程中,记录需要清屏的位置,然后修改代码,加入clrscr()函数清屏。
(5)提示信息:一般的输入与输出需有相应的提示信息,以增加用户的交互性,增加输出的可读性,以帮助用户使用程序。
(6)设置颜色:textbackground()、textcolor()函数设置背景和前景颜色(7)光标定位:gotoxy(列,行); 光标定位3.5模块设计根据功能要求,本系统为五大主要模块,具体模块如表所示。
表通讯录管理管理系统的模块3.6处理流程(1)口令设计模块(2)通讯录主界面模块(3)增加记录模块(4)显示记录模块(5)删除记录(6)修改记录- 8 -- 9 -四、结论通信录管理系统的编写,看似杂乱无头绪,实际上却并不如此。
它的每一个功能都能分成模块,有句话说的好,大事化小,小事化了。
C语言编程也正式如此,把一个大的程序分为若干相互独立的模块,这样使完成每一个模块的工作变得单纯而明确,这样不仅降低了难度还使得思路清晰,很容易编写出要做的程序,从而为设计一些较大的软件打下了良好的基础。
分析问题:通讯录管理的整体功能都包括登陆限制、增加成员、删除成员、查看成员、修改成员、登陆口令五大板块,而查看有包括姓名查看,电话查看,QQ查看,E-mail查看四个模块。
(1)设计的数据对象包括整形:编号。
字符型:姓名、电话、E-mail、QQ、地址。
(2)数据结构线性数据结构,定义人数上限为100.算法的设计:(1)自顶向下现有全局,在进行整体设计,然后再进行下层的设计,逐步实现精细化。
采用这种方法能够做到胸有全局,能全盘考虑,不至于顾此失彼,头重脚轻。
(2)逐步细化一步步地将上层的任务分解成较小的、易于实现的任务,知道可以很简单实现为止。
编写源程序:(1)不求速度,但求质量!一步一个脚印,编写程序时候宁可速度慢些也要尽量保证质量,做到尽量不出错。
(2)精力集中,全神贯注!写程序时候最忌讳三心二意,这样才能思路清晰保证质量。
(3)保持一个良好的编程心态,不要被长长的代码吓到,更不要厌烦,既然同样都是写,为什么不仲满激情的去写那?程序的编译与运行:(1)查找错误是一件让人闹心的事,但是要注重技巧,注意平时经验的积累。
才能在最快的时间找出错误(2)用心去查找,也许你会发现错误并不是很难找(3)程序编译成功不要满足现状,要积极测试程序的可用性,对功能不理想,存在缺点的地方,积极的改进,完善。
- 10 -五、结束语在实训过程中,使我良好的锻炼了自己,首先是兴趣方面,通过编写通讯录管理系统使我更加喜欢编程,使我从以前的迷茫状态中解脱出来,使我了解了编程的真正意义。
我想这对我以后的人生有着很大的帮助。
其次通过编写通讯录管理系统使我对写程序有了一定的思路,不像以前无从下手,使我理解了算法的意义,使我懂得了模块化思想的好处。
通过一个星期的编写代码,使我对书本上的知识有了更深的理解,甚至有很多不懂的问题在这过程中自然而然的理解了。
对期末考试更有了信心。
在黄爽老师的悉心指导下,我对C语言有了更深刻的理解,对程序的算法,数据的定义,程序的改错等方面的能力有了很大提高,自身的注意力,耐心,和对编程的兴趣有了很大增长,使我获益匪浅。
六、参考书目:[1] 周成义,汤德俊,钟菊,《C语言程序设计与数据结构》,中国铁道出版社,北京,2007年8月[2](美)克尼汉,(美)里奇著,徐宝文,李志译 ,《C程序设计语言》,机械工业出版社 2004年01月[3]七、附录:(源程序清单)- 11 -/*通讯录程序*/#include "stdio.h"#define size 100#define len sizeof(struct ren)struct ren{ int num;char name[10];char tel[12];char email[20];char qq[12];char address[50];} ren[size];FILE *fp;void index();void add();void del();void edit();void search();void display();void login();char pause();void pause2();int load_rec();char search_name();char search_qq();char search_email();main(){login();getch();- 12 -}void login(){ int i=0,count=0;char ch,in_psw[20],psw[20]="123";textbackground(6);textcolor(3);clrscr();while(1){gotoxy(25,12);printf("请输入密码:");while ((ch=getch())!=13){in_psw[i++]=ch;printf("*") ;if(i>=20)break;}in_psw[i]='\0';if(strcmp(in_psw,psw)==0){gotoxy(25,13);printf("密码正确!!!");getch();index();break;}else{count++;- 13 -gotoxy(25,13);printf("密码错误重新输入!!!");getch();if(count>=3){gotoxy(25,14);printf("密码错误次数过多");gotoxy(25,15);printf("所以你必须关机!");getch();system("shutdown -s ");break;}}clrscr();}}void index()/*主界面模块*/{ char select;/*实现菜单*/while(1){ clrscr();printf("\n\t 通讯录");printf("\n\t=======================");printf("\n\t 1 增加记录");printf("\n\t 2 删除记录");printf("\n\t 3 修改记录");printf("\n\t 4 显示所有记录");printf("\n\t 5 查找记录");- 14 -printf("\n\t 6 退出");printf("\n\t=======================");printf("\n\t 请选择:(1-6)");select=getch();switch(select){ case'1':add();break;case'2':del();break;case'3':edit();break;case'4':display();break;case'5':search();break;case'6':exit(0);default:printf("\n\t请选择正确的数字范围");getch();}}}char pause(){ char c;while(1){ c=getch();if(c=='Y'||c=='y'||c=='N'||c=='n')break;}- 15 -return(c);}void pause2(){ printf("\n按任意键继续...");getch();}int load_rec(){int num=0; /*文件的记录数*/fp=fopen("txl.dat","rb");while(!feof(fp)){ fseek(fp,num*len,0);fread(&ren[num],len,1,fp);num=num+1;}fclose(fp);return(num-1);}void add(){ int n;char c='y';if((fp=fopen("txl.dat","rb"))==NULL)n=load_rec(); while(c=='Y'||c=='y')else{clrscr();/*清屏*/printf("\n输入数据");printf("\n=========================");- 16 -printf("\n请输入姓名:");scanf("%s",ren[n].name);printf("\n请输入电话:");scanf("%s",ren[n].tel);printf("\n请输入E_MAIL:");scanf("%s",ren[n].email);printf("\n请输入QQ号码:");scanf("%s",ren[n].qq);printf("\n请输入地址:");scanf("%s",ren[n].address);printf("\n\t=========================");ren[n].num=n+1;printf("\n\t编号\t姓名\t电话\temail\tQQ\t地址");printf("\n\t%d\t%s\t%s\t%s\t%s\t%s\n",ren[n].num,ren[n].name,ren[n].tel,ren[n].email,ren[n].qq,ren[n].address);printf("\n输入是否正确(Y/N):");c=pause(); /*等待'Y','y','N','n'键处理函数*/if(c=='n'||c=='N'){ printf("\n重新输入数据");pause2();/*等待任意键处理函数*/c='y';continue;}fp=fopen("txl.dat","ab+");fseek(fp,len,2);fwrite(&ren[n],len,1,fp);/*fwrite(buffer,size,count,fp)fclose(fp);/*文件关闭*/n=n+1; /*数组下标不断加1*/printf("\n是否继续输入(Y/N):");- 17 -c=pause();/*等待'Y','y','N','n'键处理函数*/}}void del(){int n,i,j,m,count=0,count1=0;char del_name[10],c;clrscr();if((fp=fopen("txl.dat","ab"))==NULL){printf("文件找不到...");pause2();}n=load_rec();gotoxy(25,12);printf("请输入要删除的姓名:");scanf("%s",del_name);clrscr();for(i=0;i<n;i++){ clrscr();if(strcmp(ren[i].name,del_name)==0){ count++;printf("找到第%d个记录",count);printf("\n\t编号\t姓名\t电话\temail\tQQ\t地址");printf("\n\t=============================================="); printf("\n\t%d\t%s\t%s\t%s\t%s\t%s\n",ren[i].num,ren[i].name,ren[i].tel,ren[i].email,ren[i].qq,ren[i].address);printf("真的删除吗?(Y/N):");c=pause(); /*等待'Y','y','N','n'键处理函数*/if(c=='y'||c=='Y'){ count1++;for(j=i;j<n;j++){ ren[j].num=ren[j+1].num-1;strcpy(ren[j].name,ren[j+1].name);strcpy(ren[j].tel,ren[j+1].tel);strcpy(ren[j].email,ren[j+1].email);strcpy(ren[j].qq,ren[j+1].qq);strcpy(ren[j].address,ren[j+1].address); }i--;printf("\n记录已删除!");getch();} }}fp=fopen("txl.dat","wb+");rewind(fp);for(m=0;m<n-count1;m++){fseek(fp,m*len,0);fwrite(&ren[m],len,1,fp); }fclose(fp);if(i>=n){printf("\n记录没有找到!");pause2();}}void edit(){ int n,i,j,m,count=0;char edit_name[10],c;clrscr();if((fp=fopen("txl.dat","ab"))==NULL){printf("文件找不到...");pause2();}n=load_rec();gotoxy(25,12);printf("请输入要修改的姓名:");scanf("%s",edit_name);clrscr();for(i=0;i<n;i++){clrscr();if(strcmp(ren[i].name,edit_name)==0){count++;printf("找到第%d个记录",count);printf("\n\t编号\t姓名\t电话\temail\tQQ\t地址");printf("\n\t=============================================="); printf("\n\t%d\t%s\t%s\t%s\t%s\t%s\n",ren[i].num,ren[i].name,ren[i].tel,ren[i].email,ren[i].qq,ren[i].address);printf("\n是否修改记录?(Y/N):");c=pause();loop: if(c=='y'||c=='Y'){printf("\n\t请输入修改后的数据:");printf("\n\t=========================");printf("\n请输入姓名:");scanf("%s",ren[i].name);printf("\n请输入电话:");scanf("%s",ren[i].tel);printf("\n请输如的E-MAIL:");scanf("%s",ren[i].email);printf("\n请输入QQ号码:");scanf("%s",ren[i].qq);printf("\n请输入的地址:");scanf("%s",ren[i].address);printf("\n\t=========================");printf("\n\t编号\t姓名\t电话\temail\tQQ\t地址"); printf("\n\t%d\t%s\t%s\t%s\t%s\t%s\n",ren[i].num,ren[i].name,ren[i].tel,ren[i].email,ren[i].qq,ren[i].address);printf("\n输入是否正确(Y/N):");c=pause();if(c=='n'||c=='N'){ printf("\n重新输入数据");pause2();c='y';goto loop;}}}}fp=fopen("txl.dat","wb+");rewind(fp);for(m=0;m<n;m++){fseek(fp,m*len,0);fwrite(&ren[m],len,1,fp); }fclose(fp);if(count==0){printf("没有您要查找的记录!");pause2(); }else printf("文件尾部 ");}void display() /*浏览所有记录*/{ int n,i;clrscr();if((fp=fopen("txl.dat","rb"))==NULL){printf("\n文件找不到...");pause2();}n=load_rec();printf("\t\t\t\t共有%d条记录",n);getch();printf("\n\t编号\t姓名\t电话\temail\tQQ\t地址");printf("\n\t===============================================");for(i=0;i<n;i++){printf("\n\t%d\t%s\t%s\t%s\t%s\t%s\n",ren[i].num,ren[i].name,ren[i].tel,ren[i].email,ren[i].qq,ren[i].address); if(i>0&&(i+1)%10==0){pause2();clrscr();printf("\n\t编号\t姓名\t电话\temail\tQQ\t地址");printf("\n\t==============================================="); }}printf("\n\t已显示所有记录");pause2();}void search(){char select;while(1){ clrscr();printf("\n\t 查找方式");printf("\n\t=======================");printf("\n\t 1 按姓名查找");printf("\n\t 2 按qq查找");printf("\n\t 3 按E-mail查找");printf("\n\t 4 返回上一级菜单");printf("\n\t=======================");printf("\n\t 请选择:(1-4)");select=getch();switch(select){ case'1':search_name();break;case'2':search_qq();break;case'3':search_email();break;case'4':index();default:printf("\n\t请选择正确的数字范围");getch();}}}char search_name(){int i,count=0,n;char _name[10] ,c;clrscr();if((fp=fopen("txl.dat","ab"))==NULL){printf("文件找不到...");pause2();}n=load_rec();gotoxy(25,12);printf("请输入要查找的姓名:");scanf("%s",_name);clrscr();printf("\n\t编号\t姓名\t电话\temail\tQQ\t地址");printf("\n\t=============================================="); for(i=0;i<n;i++){if(strcmp(ren[i].name,_name)==0){ count++;printf("\n\t%d\t%s\t%s\t%s\t%s\t%s\n",ren[i].num,ren[i].name,ren[i].tel,ren[i].email,ren[i].qq,ren[i].address);} }if(count==0){clrscr();gotoxy(25,12);printf("对不起,没有这个人名!!!");getch();}else{printf("\t一共%d条记录",count); getch();}}char search_qq(){int i,count=0,n;char _qq[12] ,c;clrscr();if((fp=fopen("txl.dat","ab"))==NULL){printf("文件找不到...");pause2();}n=load_rec();gotoxy(25,12);printf("请输入要查找的QQ:");scanf("%s",_qq);clrscr();printf("\n\t编号\t姓名\t电话\temail\tQQ\t地址");printf("\n\t=============================================="); for(i=0;i<n;i++){if(strcmp(ren[i].qq,_qq)==0){ count++;printf("\n\t%d\t%s\t%s\t%s\t%s\t%s\n",ren[i].num,ren[i].name,ren[i].tel,ren[i].email,ren[i].qq,ren[i].address);}} if(count==0){ clrscr();gotoxy(25,12);printf("对不起,没有这个QQ!!!");getch();}else{printf("\t一共%d条记录",count); getch();}}char search_email(){int i,count=0,n;char _email[20] ,c;clrscr();if((fp=fopen("txl.dat","ab"))==NULL){printf("文件找不到...");pause2();}n=load_rec();gotoxy(25,12);printf("请输入要查找的email:");scanf("%s",_email);clrscr();printf("\n\t编号\t姓名\t电话\temail\tQQ\t地址");printf("\n\t=============================================="); for(i=0;i<n;i++){if(strcmp(ren[i].email,_email)==0){ count++;printf("\n\t%d\t%s\t%s\t%s\t%s\t%s\n",ren[i].num,ren[i].name,ren[i].tel,ren[i].email, ren[i].qq,ren[i].address); }}if(count==0){clrscr();gotoxy(25,12);printf("对不起,没有这个email!!");getch();}else{printf("\t一共%d条记录",count); getch();}}。