C语言程序设计通讯录.docx

上传人:小飞机 文档编号:3155390 上传时间:2023-03-11 格式:DOCX 页数:37 大小:55.05KB
返回 下载 相关 举报
C语言程序设计通讯录.docx_第1页
第1页 / 共37页
C语言程序设计通讯录.docx_第2页
第2页 / 共37页
C语言程序设计通讯录.docx_第3页
第3页 / 共37页
C语言程序设计通讯录.docx_第4页
第4页 / 共37页
C语言程序设计通讯录.docx_第5页
第5页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C语言程序设计通讯录.docx》由会员分享,可在线阅读,更多相关《C语言程序设计通讯录.docx(37页珍藏版)》请在三一办公上搜索。

1、C语言程序设计通讯录目录: 课 程 设 计 任 务 书 . 错误!未定义书签。 目录: . 1 一、目的. 2 二、基本情况. 2 三、时间安排. 3 四、设计和调试过程规范化要求. 3 五、设计内容和设计要求 . 4 六、考核方式. 5 一 通讯录的主要功能: . 6 一、问题描述:. 6 二、功能要求:. 6 三、算法提示:. 6 四、测试数据:. 7 二、课题的主要功能模块划分: . 7 三、主要功能的实现 . 8 一、按名字查找显示函数 void search( ) . 15 二、快速查找函数:void qseek( ). 15 四、程序调试: . 16 五、总结. 18 六、源程序

2、. 19 机械工程学院课程设计评分表 . 28 前 言 C语言程序设计课程设计是对学生的一种全面综合训练,它包括问题分析,总体结构设计,用户界面设计,程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。通常,课程设计的课题比平时的习题复杂得多,也更接近实际。课程设计着眼于理论与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养程序设计工作所需要的知识综合能力和动手能力;另一方面,能使书上的知识变“活”,使学生更好地深化理解和灵活掌握教学内容。为了达到上述目的,本课程设计安排了15个设计课题,训

3、练重点在于基本的程序设计方法和分析问题的能力,而不强调面面俱到。学生选其中一题进行设计,设计完毕写出课程设计报告,用A4纸打印成册;并将课程设计报告与源程序存盘。学习委员将课程设计报告与磁盘收齐后交指导老师。 一、目的 全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数和C语言基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后在专业课程中应用计算机系

4、统解决计算、分析、实验和设计等学习环节打下较扎实的基础。 二、基本情况 课程类别:必修课 2 课程学分:1学分 课程学时:1周 课程对象:汽服0901 三、时间安排 第一周 周日 上午 8:0012:00 第二周 周一 下午 14:0018:00 周三 上午8:0012:00 四、设计和调试过程规范化要求 1) 需求分析 分析系统功能需求以及用户操作流程。 2) 概要设计 在需求分析的基础上,确定系统总体框架(系统功能结构图)。 3) 详细设计 定义数据存储结构,并设计实现系统功能的具体算法,画出各算法的工作流程图。 4) 代码设计 根据所设计的算法,定义相应函数分别实现系统的各子功能模块,同

5、时由主程序提供友好的用户界面,使用户可通过选择主菜单来调用课程设计中要求完成的各个功能模块,子程序执行完后还可以返回到主菜单,继续选择其他功能执行。源程序要求书写规范,结构清晰。重点函数的重点变量,重点功3 能部分均要求给出清晰的程序注释。 5) 程序调试 程序编译、链接成功后,自己设计实现程序功能的一组或多组测试数据,并严格按照此测试数据进行测试,然后分析测试结果。如果程序不能正常运行或结果不正确,则需对程序进行单步调试,在调试过程中认真查找算法实现中存在的问题,并加以分析和改正。如果程序能够基本正确地运行,可考虑增加若干基本的容错功能;另外尽量对现有算法给出改进方案,并比较不同算法之间的优

6、缺点。 五、设计内容和设计要求 1设计内容: 设计与开发一个通讯录管理系统,对通讯录中的姓名、单位、电话、QQ 、mail等基本信息进行管理、主要功能如下: 1)输入记录; 2)显示记录; 3)按姓名查找显示记录; 4)删除记录; 5)插入记录; 6)记录保存为文件; 7)从文件中读记录; 8)按姓名排序; 9)显示单条记录; 2设计要求: 1)设计正确,方案合理。 4 2)界面友好,使用方便。 3)程序精炼,结构清晰。 4)设计报告5000字以上,含程序设计说明、系统的功能框图、流程图、源程序清单等。 5)实际操作过程中遇到的问题及解决方法:设计总结及心得体会. 6)上机演示。 附: 课程设

7、计报告装订顺序:封面、任务书、目录、正文、评分、附件。 正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。 正文的内容:一、课题的主要功能;二、课题的功能模块的划分;三、主要功能的实现;四、程序调试;五、总结;六、附件。 正文总字数要求在5000字以上。 六、考核方式 指导老师负责验收程序的运行结果,并结合学生的工作态度、实际动手能力、创新精神和设计报告等进行综合考评,并按优秀、良好、中等、及格和不及格五个等级给出每位同学的课程设计成绩。具体考核标准包含以下几个部分: 1) 平时出勤 2) 系统需求分析、功能设计、数据结构设计及程序总体结构合理与否 3) 程

8、序能否完整、准确地运行,个人能否独立、熟练地调试程序 4) 设计报告 5) 独立完成情况。 5 一 通讯录的主要功能: 一 . 问题描述: 一 有个通讯录,要求该系统对通讯录的姓名,单位,电话,进行输入,显示 ,查找,删除,插入,保存等操作的管理。 二 . 功能要求: 1,本系统采用一个结构体数组,每个数据的结构应包括;姓名,单位,电话名称。 2, 本系统显示这样的菜单 请选择系统功能项 a 输入记录; b 显示全部纪录; c 查找记录; d 删除记录; e 插入记录; f 保存文件 ; g 读文件: 按序号显示记录; 按姓名排序; 快速查找记录; 复制文件。 三 算法提示: 1 数据结构;结

9、构体类型数组。 2 数据库结构;下表构成该系统的基本数据库。 姓 名 电 话 单 位 6 四 测试数据: 姓名 Zhang 电话 152 单位 二、课题的主要功能模块划分: 同 学 录 输 入 查 找 显 示 按姓名查找 显示记录 删 除 快 速 查 找 记 录.保 存 按序号查找 显示记录 按姓名查找 7 三、主要功能的实现 程序设计一般由两部分组成 算法和数据结构,合理地选择和实现一个数据 结构和处理这些数据结构具有同样的重要性 ,在通讯录管理程序中由于预计记录数相对于一个单位的学生人数或职工人数来说不会太大除了能够增加、删 除、保存等外更多的情况是查询,且能够实现快速查询 。所以选用静态

10、数组保存数据实现多种查询方式。 1 数据结构 由于使用静态数组需要预先估计记录数,所以先预定义一个常数M 表示 记录,也就是数组的大小,记录联系人的信息至少应有姓名、单位 、电话。所以定义每个数组元素的类型为结构体。由于数组存储是采用顺序存放在内存空间中占用连续空间,所以若干条记录通讯录的管理实质就是对顺序存储的线性表的管理结点结构如下: #define M 50 /*估计的记录数*/ typedef struct char name20; /*姓名*/ char units30; /*单位*/ char tele10; /*电话*/ ADDRESS; /*结构体类型名*/ 2 main主函数

11、 程序采用模块化设计可分块调试均由 ,主函数是程序的入口各模块独立。 主函数控制调用控制功能的实现通过循环执行一个开关语句,该语句的条件值是通过调用主菜单函数得到的返回值,根据该值 调用相应的各功能函数。同时设置一个断点 。即当返回值为一定条件时运行 exit函数结束程序 ,以免造成死循环。 8 10-1图 输出界面 3 m enu_select主菜单 直接利用输出函数 printf 输出字符串在屏幕上显示一个菜单并显示一个 之间的数字 提示输入 选项输入 011 ,将此数字作为菜单函数的返回值返回主函数,主函数根据 这个数字调用相应的功能函数, 制作简便, 操作简单界面如图 10-2 所示:

12、 9 图 10-2 主菜单界面 由于程序中很多地方用到了字符串输入语句会造成下一个字符不能正确读 入为了 在程序调用执行了各个函数后能够清晰地看到菜单 并输入新的选项。首先写了一条输出 信息printf(press any key enter menu.n)表示按任意键继续一条读字符语句 getch 等待输入字符,按任意键即可进入主菜单 ,读者 可以将这两条语句加上注释不执行来体会它的功能。 按照所见即所得的方式直接设计输出函数输出字符串达到菜单效果将精力 ,s)语句。让主要放在程序功能的实现上利用 do循环语句一直执行scanf(%s 用户输入 011 之间的数按照字符串形式输入。然后执行

13、c=atoi(s) 将字符串转化为数字,返回主函数 。如果输入范围不是 011,则循环等待重新输入。 既然是数字选项为什么不用整数格式输入而要按字符串输入。再将其转换呢, 如果按照整数格式输入,当用户输入了非数字字 符。例如 a 和 b 等 由于类型不同将导致程序出错。所以对于不参与运算的数据 表面上看是数字也应将其设为字符处理。例如电话号码,千万不要设为整数类型,程序设计技巧很多。所以读者在编程调试中应注意并仔细体会。 10 4 enter输入记录 输入记录时按照一条一行的格式输入,每个数据之间用空格分隔,较为清晰且 能直接反映数据之间的关系,但由于 scanf 函数的特性,在输入时数据用回

14、车分隔也是可以的,但与界面设计不吻合界面. 由于记录并不是一次性全部输入而是随时填加和删除的,而预先开辟的空 间数往往大于实际的记录数。所以程序设计为首先输入准备输入的记录数n, 然后用 for 循环语句循 环 n 次输入记录,通讯录的每一条记录有三个字段都 是字符串类用格式输入 scanf(%s%s%s,ti.name,ti.units,ti.tele) 完成输入三个字段用空格分隔输入完一条按 回车键 的记录数输入停止,返回记录数到主函数。 5 list显示所有记录 通讯录建立好后更频繁的操作是显示和查找记录本函数实现显示所有记 录功能输出界面如图10-3所示 继续输入下一条达到规定图 10

15、-3 输出界面 将主函数传递过来的数组输出 用 for 循环,循环次数由参数长度决定, 输 出时,为 了格式美观清晰设计一定的样式输出,注意利用格式输出函数根据 11 字段的长度设定输出的长度 ,每输出 10 个记录暂停一下,按任意键继续。 find查找记录 6 search和 查找指定姓名的记录采用顺序查找法,首先输入要查找记录的姓名 ;然后 顺序查找结点,如果没找到,则输出没找到信息。否则,显示找到的记录信息 因为程序多次用到了查找和显示记录,例如删除记录中,所以编写了一个 一条记录开始 将记录中的姓名字段和待比较find函数 专门进行查找,从第 的姓名字符串 s 进行比较一旦相等程序结束

16、 ,返回该记录的下标号 i 也就是记录所在的序号记录别人的信息就免不了要记录其姓名,地址,电话为了方便以后及时输入信息需要设立一个输入记录栏,为了显示所存内容 设立一个显示记录栏,有时 插入一些新的信息就在设立一个插入记录栏,同时为去掉过 时的信息,这是删除栏就必不可少,有时记录的信息比较多时,如果一个一个地用人力来找不仅难找,还要发费很多时间,显然不符合人们的要求,就必须要有一个查找方式,对 设计了两中普通方式和一种快速的查找方式, 两种普通方式其一是按姓名查找记录,其二是按姓名查找显示纪录,快速查找顾名思义其速度要比普通查找快,但是其要求比普通查找要克扣既在查找前必须按姓名排好序,最后是文

17、件的复制, 如果不相等则继续下一条比较 所有记录比较完毕循环结束返回,此时的下标变量 i 值,search函数通过调用 find得 到了整数 i,判断 i 的值如果大于 n-1 已超过实际记录数说明所有记录都进行过比较 没有找到查找不成功,否则 说明找调用输出函数 print显示该第 i 条记录。 7 delete删除记录 输入要删除记录的姓名,调用 find 函数如果没有该记录,显示没找到信息, 否则,调用 print 函数显示记录信息,接着显示是否确实要删除,请输入确认信息整数 0 或 11 表示是0 表示否如果输入了 1 ,则系统删除信,要删除数组中的某一条元素 实际 所做的操作是将其后

18、继记录依次前移一条,所以删除 开始依次将每个字段拷贝到前一条记录的相应字第 i 条记录用 for 语句从 i+1 段,即覆盖了前一条记录达到前移的目的,直到最后一条记录。注意前移记录的时候是逐个字段赋值,不能一个记录整体赋值 。由于删除了一条记录,记录数减 1,返回记录数程序结束,假如删除前则删 除第 i 条记录。 8 add插入记 输入要插入记录的信息保存到临时变量 temp 用字 然后再输入一个姓名, s 表示确定新记录插入在该记录之前调用 符串 find函数查找姓名为 s 的记录 12 得到该记录所 在的序号, n-1 条移动到 从最后一条记录开始向后移动,即第 条移动到 第 i 条移动

19、到第 i+1 条将新信息存入 第 n 条第 n-2 n-1 条 直到第 到第 i 条记录位置注意移动必须从后倒,否则从第 i 条开将会覆盖后面的信息数据而出错,如果 没有指定的记录则 find 函数返回的 i 值为 n,实际上一条记录也不会移动新信息将插 入到最后一个位置录插入在 i 位置。、 9 save保存记录到文件 然后确定文件的打开方式如果文件不能正常打开则退出程序否则先写入记 录数 n然 后用循 环语句文 件格式输出语句 fprintf(fp,%-20s%-30s%-10s,ti.name,ti.units, ti.tele)逐条写入记录每输出一条 写入一个换行符号写入后 recor

20、d.txt 文件可以用 Windows 下的记事本打开。 10 load从文件中读取记录 数据一旦输入保存到磁盘文件中后 更多的操作是将数据从文件读入内 进行显示 查找等各项操作 存 先定义一个指向文件的指针 按照 rb 的方record.txt ,用语句 fp=fopen(record.txt,rb) 。同式打开已经保存好的文件 时判断是否正常打开,则退出程序。 否则,利用格式输入函数先读出记录 数。然后利用循环语句用格式输入函数 fscanf(fp,%20s%30s%10s,ti.name,ti.units,ti.tele)将记录逐条读入读出的记录保存在结构体数组中。由于结构体数组是用数组

21、名作为参数而数组名是数组存放的单元首地址,所以它是一种地址传递方式数据的变动直接反映在参数所指的数组而记录数是按值传递 其值的改变不会影响到主函数 为了保证数据的正确性所以将记录数 、返回主函数。 11 display按序号查找记录 由于数组是按照顺序存储且对数组元素的访问可以直接按照其下标号实现 本函 访问记录问。所以设计了按照记录位置也就是记录的序号随机访数实现的是从文件中查找。所以先用 rb 方式打开记录文件 record.txt ,输入序号 id ,从文件读入记录数判断序号位置在记录数范围之内。由于记录是顺序存放所以指定序号 id 的存储位置首地址应为 (id-1)*sizeof(AD

22、DRESS) 利用函数 fseek 将记录指针移动到该位置读出记录,调用 print 函数显示它。 12 sort排序 冒泡排序是一种比较简单且常用的排序方法 具体的做法是假设待排序 13 记录的排序码 为 k1k2 kn, 先比较 k1 和 k2 如果 k1k2 , 则交换 k1 k2可能是刚交换来的和 k3 进行同样的处理和 k2 所代表的记录,然后 对 ,重复此过程直到处理完 kn-1 和 kn 这样从 k1 、 k2 到 kn-1、kn 的 n-1 次比较和交换的过程称为一次冒泡 这一步将最大的 k 值记录传到了最后也是最终排序的位置 重复这样的步骤不过第二次只需从 k1 、k2 到

23、kn-2、kn-1 作 n-2 次比较这样最多作 n-1 次冒泡,为了减少不必要的循环,设置一 个 表示本次冒泡是否出现过交换,如果没有交换 则说明本次比较已经flag 达到排序要 求 可以结束程序了。 本函数采用了冒泡排序方法按照姓名排序,所以排序码为记录的姓名对 语言来说 n 条记录的比较是从 数组的下标是从 0 开始的。所以 t0.name 的因为姓名是字符串比较用字 开 始到 tn-2.nametn-1.name t1.name 符串比较函数 strcmp 实 现移动记录借助于第三者临时结构体变量 temp移动要保持整条记录的移动所以三 个字段都要移动。对于字符串赋值便捷的方式 是用

24、strcpy 复制函数 ,否则就要用循环语 句逐字符移动冒泡排序的缺点是移动记录次数多 。所以对于记录字段数较多记录长度较长的不宜 选择冒泡排序。 13 qseek快速查找 排序是一种较为费时的运算,所以经过了排序而不加以利用未免可惜为此设 计了 一种在排序基础上实现的快速查找算二分查找法二分查找法是一种效率较高的检索方法检索时要求记录按检索码值的大小排序并且要求顺序存储 对于我们这个线性存储的通讯录经过排序后 ,就可以实施二分查找法 、按姓名查找将姓名字段作为检索码。 二分查找法 首先用检索的姓名值与中间位置的结点的姓名相比较这 比较结果。如果相等,则检 个中间结点。 将所有记录分成了前后两

25、个区间索完成 调用 print 函数显示 结点信息 若不相等再根据姓名比较该中间结点 的姓名字段的大小确定下一步检索 的范围。若大在后一个区间中检索 若小 在前一个区间中检索, 重复这样的步骤 直到或者找到满足条件的记录 或者确定没有这样的结点 。范围的具体划分设置变量 l 和 r 分别代表左边界和右边界 ,初值 l=0 ,r=n-1 当 l=r即左边界r 这样 的区间不可能存在 ,则说明左边界已大于右边界 败。 14 copy复制文件 ,查找失为了保存数据防止意外发生为数据做备份是很有必要的本函数是将文件读写功能结合到 rb方式打开 输入目标文件名然后利一起的应用,将事先保存的记录文件 re

26、cord.txt 按用文件格式读写函数将源文件中的信息写到目标文件中。 一 . 按名字查找显示函数 void search( ) 算法:通过调用名字查找函数,输入要查找的姓名.再调用find函数通过这一函数的循环找到与之姓名相应的的字符窜返回其所在序行数,然后调用输出函数显示指定的一条记录. 读入s in-1 ? 假 printf(“not found”) printf(ADDRESS temp) 二 . 快速查找函数:void qseek( ) 通过调用快速查找函数,确认再查找之前,记录以排好序,然后输入待查找姓名,利用折半查找,m=(I+r)/2如果中间接点姓名与待找姓名相等,则调用pri

27、ntf函数显示记录,并返回,if(strcmp(tm.name.s)r,现是没找到。 读入s 15 I=0, r=n-1 I=r m=(I+r)/2 strcmp(tm,name,s)=0 ? 真 假 printf(tm) strcmp(tm,name,s)r ? 假 四、程序调试: 一、先进行人工检查,即静态检查。 在写好一个程序以后,不要匆匆忙忙上机,而应对程序进行人工检查。这一步十分重要,它能发现程序设计人员由于疏忽而造成的多数错误。这一步往往容易被人忽视,总希望把一切都推给计算机去做,但这样会多占用机器时间,作为一个程序人员应当养成严谨的作风,每一步都要严格把关,不把问题留给后面的工序

28、。 为了更有效地进行人工检查,所编的程序应力求做到以下几点: 应当采用结构化程序方法编程,以增加可读性; 尽可能多加注释,以帮助理解每段程序的作用; 在编写复杂的程序时不要将全部语句都写在main函数中,而要多利用函数,用一个函数来实现一个单独的功能。各函数之间除用参数传递数据外,尽量少出现耦合关系,这样便于分别检查和处理。 二、在人工检查无误后,再上机调试。 通过上机发现错误称为动态检查。在编译时会给出语法错误的信息,调试时可以根据提示信息具体找出程序中出错之处并改正。应当注意的是有时提示出错的地方并不是真正出错的位置,如果在提示出错的行找不到错误的话应当到上一行再找。有时提示出错的类型并非

29、绝对准确,由于出错的情况繁多且各种错误互有关联,因此要善于分析,找出真正的错误,而不要只从字面意义上找出错信息,16 钻牛角尖。 如果系统提示的出错信息很多,应当从上到下逐一改正。有时显示出一大片出错信息往往使人感到问题严重,无从下手。其实可能只有一二个错误。例如,对使用的变量未定义,编译时就会对所有含该变量的语句发出出错信息。这时只要加上一个变量定义,就所有错误都消除了。 三、在改正语法错误”和“警告(warning)”)后,程序经过连接就得到可执行的目标程序。运行程序,输入程序所需数据,就可得到运行结果。应当对运行结果作分析,看它是否符合要求。有的初学者看到运行结果就认为没问题了,不作认真

30、分析,这是危险的。 有时,数据比较复杂,难以立即判断结果是否正确。可以事先考虑好一批“试验数据”,输入这些数据可以很容易判断结果正确与否。例如解方程。事实上,当程序复杂时很难把所有的可能情况全部都试到,选择典型的临界数据作试验即可。 四、运行结果不对,大多属于逻辑错误。对这类错误往往需要仔细检查和分析才能发现。可以采用以下办法: 1.将程序与流程图仔细对照,如果流程图是正确的,程序写错了,是很容易发现的。例如,复合语句忘记写花括弧,只要一对照流程图就能很快发现。 2.如果实在找不到错误,可以采用“分段检查”的方法。在程序不同的位置设几个printf函数语句,输出有关变量的值,逐段往下检查。直到

31、找到在某一段中数据不对为止。这时就已经把错误局限在这一段中了。不断减小“查错区”,就能发现错误所在。 3.也可以用“条件编译”命令进行程序调试。这种方法可以不必一一去掉printf函数语句,以提高效率。 4.如果在程序中没有发现问题,就要检查流程图有无错误,即算法有无问题。如有则改正之,接着修改程序。 5.有的系统还提供debug工具,跟踪程序并给出相应信息,使用更为方便,请查阅有关手册。 总之,程序调试是一项细致深入的工作,需要下功夫,动脑子,善于积累经验。在程序调试过程中往往反映出一个人的水平,经验和态度。希望大家给以足够的重视。上机调试程序的目的决不是为了“验证程序的正确”,而是“掌握调

32、试的方法和技术”,要学会自己找问题,这样慢慢自己就会写出错误较少的实用17 程序。 五、总结 课程设计是培养学生综合运用所学知识 ,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握程序开发技术是十分重要的,而C语言又是最常见,功能最强大的一种高级语言,因此做好C语言课程设计是十分必要的。 回顾起此次课程设计,至今我们仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整半个月的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前

33、所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体,指针,链表通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍。 我做的是通讯录系统,虽然是很简单的一个小的程序,但对我一个初学者来说却是

34、一个很大的困难。更加是第一次做课程设计,所以第一天下午在机房做了一个下午却丝毫没有进展,最主要是不知从何开始,这个时候才知道上课老师们不厌其烦的教导是多么的宝贵,这个时候才后悔上课的时候没有认真的听讲。可是现在一切都晚了,还好时间还算是充裕,只好拿出书本重新复习一下。特别是结构体,指针的部分,几乎是一片空白。不过经过几天的努力,大体上把课本上的知识点看了一遍,知识点也都基本是撑握了,所以下一步就是开始正式的编程序了。不过毕竟是个新手,还是不知如何下手,于是就在网上下了一篇类似的程序,经过仔细的研究,终于读懂了C语言编程的基本过程和方法。 经过一波三折,终于开始正式编程。 编程是一件很枯燥很无聊

35、的事情,但是出于完成作业,得到学分的压力,还必须强迫自己坚持下去,按照老师所说的模块化思想,分部分的进行编写。而且18 编程是一件高精度、模范化的事情,稍有疏乎都会影响全局,也可能因为某一处的小的错误而导致整个程序的无法运行。所以认真仔细就是非常重要的了。开始的时候真的感觉编程是一件很无聊的事情,不过当一个程序运行成功的时候那种喜悦是无法言语的,那种成就感是无法比拟的。又经过几天的努力,终于把程序完成了,尽管程序还是有很多错误和漏洞,不过还是很高兴的。无论如何是自己的劳动成果,是自己经过努力得到的成绩,同时也是学习C语言的一次实践作业,自己进步的证明。 通过这次课程设计,使我对C语言有了更进一

36、步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对C语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对C语言中经常出现的错误也不了解,通过实践的学习,我认识到学好计算机要重视实践操作,不仅仅是学习C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。 在课程设计过程中,收获知识,提高能力的同时,我也学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中

37、怎么样去克服心理上的不良情绪。因此在以后的生活和学习的过程中,我一定会把课程设计的精神带到生活中,不畏艰难,勇往直前。 六、源程序 /*头文件*/ #include stdio.h /*I/O函数*/ #include stdlib.h /*标准库函数*/ #include string.h/*字符串函数*/ #include ctype.h /*字符操作函数*/ #define M 50 /*定义常数表示记录数*/ typedef struct /*定义数据结构*/ 19 char name20; /*姓名*/ char units30; /*单位*/ char tele10; /*电话*/ ADDRESS; /*以下是函数原型*/ int enter(ADDRESS t); /*输入记录*/ void list(ADDR

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号