C语言实训报告(模版).doc
《C语言实训报告(模版).doc》由会员分享,可在线阅读,更多相关《C语言实训报告(模版).doc(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语言程序设计实训报告课题名称: 科 学 计 算 器 专 业: 班 级: 学 号: 姓 名: 指导教师: 刘 宝 锺 2014 年 6 月 日目 录1 课程设计目的 12 课程设计题目 13 课程设计报告内容 14 结论 105 结束语 116 参考书目 117 附录:(源程序清单) 12一、课程设计题目科学计算器二、实训目的(1)掌握结构化程序设计的基本方法,基本掌握面向对象程序设计的基本思路和方法。(2)掌握C的基本概念和基础知识。(3)通过训练能够读懂较为复杂的C语言源程序并具备基本C语言程序设计的能力。(4)熟练掌握各种常用类的定义,继承,文件的应用,为更好的理解面向对象打下更好的基础
2、。(5)通过实训,培养自己编写、调试、分析大型应用程序的能力。(6)掌握面向对象的基本原理,提高学生综合程序设计的能力。(7)培养自己独立解决问题,查找资料的能力。同学之间相互帮助,相互交流,相互合作的团队精神。(8) 培养自己良好的学习兴趣,独立的编程风格。(9) 通过实训检查自己学习上的不足,达到熟练掌握C语言的基本知识和技能。 三、课程设计报告内容3.1功能要求该系统运行在DOS环境下,人机界面为命令行文本界面。完成的任务是对若干人的通信录信息进行管理,且数据保存到文件中。实现的主要功能是:= 登陆: 判断用户输入的密码正确性,并限制用户只能有三次机会输入,若超过则关闭计算机。= 添加:
3、增加一个或几个人的通信录信息。= 删除:删除已输入的通信录信息。= 查询:根据输入的姓名查找通信录信息。= 修改:根据输入的姓名修改通信录信息。= 显示:输出所有通信录信息。3.2 设计环境所使用的语言采用标准C,开发工具可选用在DOS环境下的Turbo C或Win-TC,也可在Windows环境下的C+Builder。(你使用的什么环境就填什么)3.3 数据结构本系统是对通信录的信息进行管理,通信录记录的信息采用C的结构体数据类型描述,定义如下: struct ren /*定义个人资料结构体类型*/ int num; /*编号*/ char name10; /*姓名*/ char tel12
4、; /*电话号码*/ char email20; /*email地址*/ char qq12; /*QQ*/ char address50; /*住址*/;3.4实现方法及主要算法分析(1)口令设计模块:调用strcmp函数判断输入是否与密码正确。getch()读入一个字符不回显在屏幕上,不用回车结束。getchar()将字符输入到缓冲区直到输入回车才返回给系统。调用system(shutdown -s )关闭计算机。(2)主界面的设计:主界面采用文本菜单的形式,各功能调用通过菜单进行选择。采用循环处理,以便执行完某项处理后,仍可选择其他项处理。在循环内先显示提示信息,然后读取用户输入,使用s
5、witch语句对用户的输入进行判断,分别调用相应的模块,当某模块结束后再次回到文本菜单,直到用户选择结束程序菜单,才退出循环,从而退出系统。(3) 外部文件的类型:文件采用的二进制的文件,对文件的读写采用顺序文件的方式,并使用fread和fwrite等函数对文件进行操作。(4)清屏函数:一般由上一级菜单屏幕进入下一级菜单屏幕或由下一级菜单屏幕返回上一级菜单屏幕都需要清除屏幕原来显示的内容。同时在调用程序的过程中,记录需要清屏的位置,然后修改代码,加入clrscr()函数清屏。(5)提示信息:一般的输入与输出需有相应的提示信息,以增加用户的交互性,增加输出的可读性,以帮助用户使用程序。(6)设置
6、颜色:textbackground()、textcolor()函数设置背景和前景颜色(7)光标定位:gotoxy(列,行); 光标定位3.5模块设计根据功能要求,本系统为五大主要模块,具体模块如表所示。表 通讯录管理管理系统的模块main()主控函数add()增加个人资料del()删除个人资料edit()修改个人资料search()查找个人资料主函数display()浏览所有信息login()限制登陆口令pause()等待Y、y、n、Y键输入pause2()等待任意键输入load_rec()统计记录数search_name()按姓名查找个人资料search_qq()按QQ查找个人资料searc
7、h_email()按EMAIL查找个人资料3.6处理流程(1)口令设计模块提示输入正确结束提示关闭计算机输入次数超过3次密码正确?输入密码提示输入密码设置背景和前景颜色开始(2)通讯录主界面模块清屏显示菜单输入选项至select增加记录删除记录修改记录显示所有记录查找记录结束开始(3)增加记录模块 (4)显示记录模块清屏输入通信录数据打开数据文件移动指针到文件尾部将所输出数据写到文件关闭文件是否继续清屏打开数据文件将所有记录读入到数组ren中关闭文件显示ren中所有记录返回开始函数开始函数返回提示输入(5)删除记录清屏提示输入姓名输入姓名打开数据文件将所有记录读入到数组ren中关闭文件在数组r
8、en中搜索姓名相同的字段查找到?显示该记录删除?删除该记录打开数据文件将所有记录读入到数组ren中关闭文件返回开始函数(6)修改记录清屏提示输入姓名输入姓名打开数据文件将所有记录读入到数组ren中关闭文件在数组ren中搜索姓名相同的字段查找到?显示该记录修改?修改该记录打开数据文件将所有记录读入到数组ren中关闭文件返回开始函数开始函数清屏显示菜单输入选项至按姓名查找按QQ查找按Email查找返回开始函数开始函数开始函数清屏清屏清屏提示输入姓名提示输入QQ输入姓名输入Email输入QQ打开数据文件打开数据文件打开数据文件将所有记录读入到数组ren中将所有记录读入到数组ren中将所有记录读入到数
9、组ren中关闭文件在数组ren中搜索姓名相同的字段并显示关闭文件在数组ren中搜索QQ相同的字段并显示关闭文件在数组ren中搜索Email相同的字段并显示返回返回返回提示输入Email(7)查找主模块(8)按姓名查找,按QQ查找,按EMAIL查找模块四、结论通信录管理系统的编写,看似杂乱无头绪,实际上却并不如此。它的每一个功能都能分成模块,有句话说的好,大事化小,小事化了。C语言编程也正式如此,把一个大的程序分为若干相互独立的模块,这样使完成每一个模块的工作变得单纯而明确,这样不仅降低了难度还使得思路清晰,很容易编写出要做的程序,从而为设计一些较大的软件打下了良好的基础。分析问题:通讯录管理的
10、整体功能都包括登陆限制、增加成员、删除成员、查看成员、修改成员、登陆口令五大板块,而查看有包括姓名查看,电话查看,QQ查看,E-mail查看四个模块。(1) 设计的数据对象包括整形:编号。字符型:姓名、电话、E-mail、QQ、地址。(2) 数据结构线性数据结构,定义人数上限为100.算法的设计:(1) 自顶向下 现有全局,在进行整体设计,然后再进行下层的设计,逐步实现精细化。采用这种方法能够做到胸有全局,能全盘考虑,不至于顾此失彼,头重脚轻。(2) 逐步细化 一步步地将上层的任务分解成较小的、易于实现的任务,知道可以很简单实现为止。编写源程序:(1) 不求速度,但求质量!一步一个脚印,编写程
11、序时候宁可速度慢些也要尽量保证质量,做到尽量不出错。(2) 精力集中,全神贯注!写程序时候最忌讳三心二意,这样才能思路清晰保证质量。(3) 保持一个良好的编程心态,不要被长长的代码吓到,更不要厌烦,既然同样都是写,为什么不仲满激情的去写那? 程序的编译与运行:(1) 查找错误是一件让人闹心的事,但是要注重技巧,注意平时经验的积累。才能在最快的时间找出错误(2) 用心去查找,也许你会发现错误并不是很难找(3) 程序编译成功不要满足现状,要积极测试程序的可用性,对功能不理想,存在缺点的地方,积极的改进,完善。 五、结束语在实训过程中,使我良好的锻炼了自己,首先是兴趣方面,通过编写通讯录管理系统使我
12、更加喜欢编程,使我从以前的迷茫状态中解脱出来,使我了解了编程的真正意义。我想这对我以后的人生有着很大的帮助。其次通过编写通讯录管理系统使我对写程序有了一定的思路,不像以前无从下手,使我理解了算法的意义,使我懂得了模块化思想的好处。通过一个星期的编写代码,使我对书本上的知识有了更深的理解,甚至有很多不懂的问题在这过程中自然而然的理解了。对期末考试更有了信心。在黄爽老师的悉心指导下,我对C语言有了更深刻的理解,对程序的算法,数据的定义,程序的改错等方面的能力有了很大提高,自身的注意力,耐心,和对编程的兴趣有了很大增长,使我获益匪浅。六、参考书目:1 周成义,汤德俊,钟菊,C语言程序设计与数据结构,
13、中国铁道出版社,北京,2007年8月2(美)克尼汉,(美)里奇 著,徐宝文,李志 译, C程序设计语言,机械工业出版社2004年01月3 七、附录:(源程序清单)/*通讯录程序*/#include stdio.h#define size 100#define len sizeof(struct ren) struct ren int num; char name10; char tel12; char email20; char qq12; char address50; rensize; FILE *fp; void index(); void add(); void del(); void
14、 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(); void login() int i=0,count=0; char ch,in_psw20,psw20=123;textbackground(6); textcolor(3); clrscr(); while(1) gotoxy(25
15、,12); printf(请输入密码:); while (ch=getch()!=13) in_pswi+=ch; printf(*) ; if(i=20) break; in_pswi=0; if(strcmp(in_psw,psw)=0) gotoxy(25,13); printf(密码正确!); getch(); index(); break; else count+; gotoxy(25,13); printf(密码错误重新输入!); getch(); if(count=3) gotoxy(25,14); printf(密码错误次数过多); gotoxy(25,15); printf(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 报告 模版
限制150内