高级C语言专业知识汇编.doc

上传人:一*** 文档编号:817499 上传时间:2019-07-19 格式:DOC 页数:31 大小:435.50KB
返回 下载 相关 举报
高级C语言专业知识汇编.doc_第1页
第1页 / 共31页
高级C语言专业知识汇编.doc_第2页
第2页 / 共31页
点击查看更多>>
资源描述

《高级C语言专业知识汇编.doc》由会员分享,可在线阅读,更多相关《高级C语言专业知识汇编.doc(31页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、学号学号高级语言程序设计高级语言程序设计课程设计报告课程设计报告题目:题目:备忘录备忘录专业:专业:计算机科学与技术计算机科学与技术班级:班级:姓名:姓名:指导教师:指导教师:成绩:成绩:计算机与信息工程系计算机与信息工程系年月日年月日2012-2013 学年学年 第二学期第二学期目录1 设计内容及要求.21.1 设计内容.21.2 设计任务及具体要求.22 概要设计.32.1 该系统的功能简介.32.2 总体程序框图.32.3 各个模块之间的主要关系.43 3 设计过程或程序代码.53.1 各个模块的程序流程图及运行界面.53.2 对关键代码加以分析说明.74 程序调试分析.135 小结.1

2、4致谢.15参考文献.16附:源程序.301 设计内容及要求1.1 设计内容备忘录主要根据课程设计要求进行设计,能够进行个人的事件记录,可以将程序使用者的时间安排,重要事件,以及个人行程等事件做出具体详细的记述,并能够使使用者在程序上完成查看时间的功能,足以使得使用者避免忘记一些重要事件,也可以为使用者带来一些便利,帮助使用者节省了时间。电子备忘录相较于笔记本,其最大的好处在于可以不受纸张的限制,并切实的使用者可以在短时间内记述大量事件;查询时也可以节省大量的时间,使得使用者可以减短查询时间,方便快捷。同时,使用电子备忘录也是一种现代化的代表,将电子科技应用与人们的日常生活中,达到现代实惠的先

3、进水平。该系统功能主要包括三大模块:1)备忘录的信息录入2)备忘录信息的查看 3)进出备忘录系统1.2 设计任务及具体要求主要利用 C 语言的文件操作能力设计开发一个小型的备忘录系统,至少具有如下功能:备忘录的信息录入,备忘录的信息查询和退出备忘录系统。操作界面要符合用户的一般习惯,图形或文本界面都可以。要求:利用 C 语言编写一个备忘录程序,能实现一些基本的操作,达到一些基本的信息录入,查询,提醒以及编写等功能,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识; 提高自身用高级语言进行程序设计的能力,重点提高用 C 语言进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般

4、方法和步骤; 提高撰写技术文档的能力。并且对 C 语言的一些基本语句以及功能有一些更加深刻的认识和理解。能够利用 C 语言解决一些生活中的基本问题。2 概要设计2.1 系统的功能简介该系统的主要功能是实现重要信息的录入,包括录入的当前时间,事件的重要性以及提醒时间。能够在设定时间内对使用者提醒,避免使用者忘记重要事件,造成不必要的麻烦。2.2 总体程序框图图 2.1备忘录备忘录主菜单输入新备忘查询备忘录推出备忘录编辑备忘录提 醒 我通过备忘名称查询备忘 通过备忘时间查询备忘通过备忘名称编辑备忘通过备忘时间编辑备忘2.3 各个模块之间的主要关系该程序的功能主要是实现备忘录的录入,能在系统内对录入

5、的信息进行查询,并对相对重要的相应信息进行提醒。各个模块之间的关系是相互联系的。首先,主函数包含了所有的子函数。主函数是整个程序的核心。子函数之间也有联系的,对重要的信息查询,必须是在信息录入的情况下进行的。因此对重要事件信息的录入时非常重要的。在退出备忘录系统的子函数之间是没有多大联系的。3设计过程或程序代码3.1 各个模块的程序流程图图 3.1main()函数开始执行 显示备忘录主菜单判断 case 1调用 exit(0) 退出 程序case 2case 3case 4case 5调用 remind_me() 函数显示个 人备忘提醒 功能菜单调用modify_memo() 函数显示个 人备

6、忘修改 功能菜单调用search_memo() 函数显示个 人备忘查询 功能菜单调用input_memo() 函数实现 个人备忘 输入功能判断 判断 case 1case 1case 2case 2调用 search_by _name() 函数实现个 人备忘的名 称查询功能调用 search_by_ event_date() 函数实现个 人备忘的时 间查询功能调用 modify_ name() 函数实现个 人备忘的名 称修改功能调用 modify_by_e vent_date() 函数实现个 人备忘的时 间时间功能备忘录备忘录开始3.2 对关键代码加以分析说明1 ) 函数 名称:main()函

7、数 功能:实现个人备忘录的主菜单显示功能和各个函数功能的调用功能函数 参数:void函数返回值:void2 ) 函数 名称:input_memo()函数 功能:实现个人备忘内容的输入功能函数 参数:void函数返回值:void3 ) 函数 名称:search_memo()函数 功能:实现个人备忘内容查询功能的菜单函数 参数:void函数返回值:void4 ) 函数 名称:search_by_name()函数 功能:实现个人备忘内容通过备忘名称查询的功能函数 参数:void函数返回值:void5 ) 函数 名称:search_by_event_date()函数 功能:实现个人备忘内容通过备忘时间

8、查询的功能函数 参数:void函数返回值:void6 ) 函数 名称:modify_memo()函数 功能:实现个人备忘内容修改功能的菜单函数 参数:void函数返回值:void7 ) 函数 名称:modify_by_name()函数 功能:实现个人备忘内容通过备忘名称修改的功能函数 参数:void函数返回值:void8 ) 函数 名称:modify_by_event_date()函数 功能:实现个人备忘内容通过备忘时间修改的功能 函数 参数:void 函数返回值:void9 ) 函数 名称:remind_me() 函数 功能:实现个人备忘的提醒功能 函数 参数:void 函数返回值:void

9、4设计结果与分析1)运 行 备 忘 录 程 序 运行程序,进入备忘录系统的主菜单,按照系统提示进行操作,完成系统 的操作图 4.12) 输入数字进行菜功能的选择,输入数字 1,执行输入新备忘的功能, 调用输入新备忘的函数显示结果如下:图 4.2 3)输入数字 2,执行个人备忘的查询功能,调用备忘查询函数,显示备 忘查询的功能菜单。结果如下:图 4.34)输入数字 1,执行通过个人备忘的名称查询功能,调用备忘名称查询 函数,显示通过备忘名称查询的结果,如下:图 4.4 5)输入数字 2,执行通过个人备忘的时间查询功能,调用备忘时间查询 函数,显示通过备忘时间查询的结果,如下:图 4.56)返回主

10、菜单,输入数字 3,执行个人备忘的修改功能,调用备忘修改 函数,显示备忘修改的功能菜单。结果如下: 图 4.6 7)输入数字 1,执行通过个人备忘的名称修改功能,调用备忘名称修改 函数,显示通过备忘名称修改的结果,如下:图 4.7 8)输入数字 2,执行通过个人备忘的时间修改功能,调用备忘时间修改 函数,显示通过备忘时间修改的结果,如下:图 4.8 9)返回主菜单,输入数字 4,执行个人备忘的提醒功能,调用备忘提醒 函数,显示备忘提醒的功能菜单。结果如下:图 4.9当把程序写好并进行调试时,并不是一帆风顺的,总会遇到很多在调试时遇到的错误。(1)首先在定义函数时,不能输入汉字。否则会程序会显示

11、错误。(2)如果要调用查询函数,增词函数,删除函数,修改函数等要在主函数前面进行申明,否则会显示警告。(3)如果程序在运行的过程中,对于一个循环语句,如果你返回的值始终是真的,那么程序将进如死循环。(4)对应该有花括弧的复合语句,忘记加花括弧。(5)所调用的函数在调用语句之后才定义,而又在调用前未加说明。5 小 结在这次的课程设计中,我利用 C 语言完成了一个小型的备忘录系统,能够对信息进行录入与查询,并能够提醒用户。通过实验,基本上掌握了 C 语言的基本用法与功能。对于所学知识有了更深的认识。 在本课程设计的设计过程中,我刚开始感觉到有点头痛。要通过一学期 C 语言的学习后将所学知识运用起来

12、有点困难,但回过头来再去看教课书,对于这些知识点有关的背景,概念和解决方案更进一步的理解,感觉也不是很难。另外我还体会了从事 C 语言课程设计工作需要特别谨慎认真地态度和作风,一点都不能马虎。每个细微的细节都必须十分注意,如果不认真思考,就会出现或大或小的错误。如果把早期的错误隐藏下来,对后面的工作影响就会很大,甚至有时会推倒很多前面做的工作。有时候,我自己觉得我写的程序非常正确,但是就是编译通不过,在查找错误的过程中,面临着否认自己的过程,非常的痛苦,而且由于自己的经验及各方面的能力的不足,所以进展的速度非常的缓慢,往往几天的时间没有一点进展。这时候,我一般是先自己通过书本,手册和资料找解决

13、办法,实在没辙才向老师同学请教。在开始编写程序的时候,我看到别人的程序功能非常的详细,而且界面非常漂亮,总是希望自己的程序也非常的完善,但是,发现编一个好的程序不是一蹴而就的事情,需要长时间的积累和经验。在反反复复的学习中,我终于作出一个简单的程序,虽然这个程序的功能非常简单,而且在实际运用中还有些不足,因为工资的的内容非常丰富,我涉及到的仅仅是工资管理的一部分简单内容,离实际的客户需求肯定还有差距。由于我的知识浅薄,经验不足及阅历颇浅,在该系统的设计方面还有很多不足,比如功能过少,界面不醒目等问题,我会在以后的学习过程中,根据具体要求不断的修改、完善,争取使系统慢慢趋于完美。致谢在这次 C

14、语言课程设计中,我遇到了一些困难,因为通过书本以及自身的不足所难以解决。所以我想任课老师进行了询问。他给予了我一些代码以及注意事项上的帮助,使我能够完成这次课程设计。在此,我对他们表示感谢!感谢他们在我面对困难时给了我帮助和支持。也感谢那些给我帮助的所有同学!参考文献1谭浩强著.C 程序设计.清华大学出版社,1999 年第二版2谭浩强,张基温,唐永炎编著.C 语言程序设计.高等教育出版社,19923谭浩强编著.QBASIC 语言教程.电子工业出版社,19974谭浩强.C 程序设计M.清华大学出版社,20055Herbert Schildt 著.戴健鹏译.C 语言大全.电子工业出版社,1994

15、年第二版6美SCHILDTH.C 语言大全M.王子恢等译.电子工业出版社,2001源程序#include #include #include #define Namelength 60 #define Datelength 50 #define Contentlength 800 struct memo char nameNamelength; char event_dateDatelength; char contentContentlength; char remind_dateDatelength; ;void input_memo(); void search_memo(); void

16、 modify_memo(); void modify_name(); void modify_by_event_date(); void remind_me(); void remind(); void search_by_name(); void search_by_event_date();void main() FILE *fp; int number_menu; char a;printf(“nn*-*-*-* 欢 迎 使 用 备 忘 录 *-*-*-*n“); loop:printf(“nn*-*-*-* 备 忘 录 主 菜 单 *-*-*-*n“); printf(“ =“);p

17、rintf(“n 1 输 入 新 备 忘; “);printf(“n “);printf(“n 2 查 询 备 忘; “);printf(“n “);printf(“n 3 编 辑 备 忘; “);printf(“n “);printf(“n 4 提 醒 我; “); printf(“n “);printf(“n 5 退 出 备 忘; n“);printf(“ =“);printf(“n请 输 入 菜 单 功 能 的 数 字:“);a = getch(); if(a=1mb = (a - 0); else printf(“nn您 输 入 的 数 字 是 :%c“,a);printf(“nn对

18、不 起,您 的 输 入 有 误,请 输 入 正 确 的 菜 单 功 能 数 字,谢 谢。 n“);goto loop;switch(mb) case 1:modify_name();goto loop;case 2:modify_by_event_date();goto loop;case 3:break;default:printf(“n对 不 起,您 的 输 入 有 误,请 输 入 正 确 的 菜 单 功 能 数 字,谢 谢。nn“);goto loop; void modify_name() struct memo i; FILE *fp; int j=0,k=0,l=0; long o

19、ffset;char nameNamelength=n,a,m,e,:; char new_nameNamelength;printf(“n请 输 入 您 要 修 改 的 备 忘 名 称:“); scanf(“%s“,new_name);for(j=0;jsizeof(new_name);) if(new_namej=n) break; else j+; for(l=0; lj; l+) name5+l=new_namel; if(fp=fopen(“memo“,“r+“)=NULL) printf(“n对 不 起,无 法 打 开 文 件!n“); exit(1); while(!feof(f

20、p) offset=ftell(fp); fscanf(fp,“%s%s%s%s“,i.name,i.event_date,i.content,i.remind_date);if(!strcmp(name,i.name) k=1; break; if(k) printf(“n已 经 查 到,结 果 如 下:n“); printf(“=“); printf(“n您 查 询 的 结 果 是 :nn“); printf(“%snn“,i.name); printf(“%snn“,i.event_date); printf(“%snn“,i.content); printf(“%snn“,i.remi

21、nd_date); printf(“=“); printf(“n请 输 入 新 备 忘 n“); printf(“=“); printf(“n请 输 入 新 备 忘 的 名 称 :“); scanf(“%s“,i.name); printf(“n请 输 入 新 备 忘 的 时 间 :“); scanf(“%s“,i.event_date); printf(“n请 输 入 新 备 忘 的 内 容 :“); scanf(“%s“,i.content); printf(“n请 输 入 新 备 忘 的 提 醒 时 间 :“); scanf(“%s“,i.remind_date); fseek(fp,o

22、ffset,SEEK_SET); fprintf(fp,“nname:%snevent date:%sncontent:%snremind_date:%sn“,i.name,i.event_date,i.content,i.remind_date); printf(“n恭 喜 您,编 辑 成 功!n“); printf(“=n“); else printf(“n对 不 起,没 有 查 询 结 果,请 重 新 输 入,谢 谢。“); fclose(fp); void modify_by_event_date() struct memo i; FILE *fp; int j=0,k=0,l=0;

23、long offset;char event_dateDatelength=e,v,e,n,t,_,d,a,t,e,:; char new_event_dateDatelength;printf(“n请 输 入 您 要 修 改 的 备 忘 时 间 :“); scanf(“%s“,new_event_date);for(j=0;jsizeof(new_event_date);) if(new_event_datej=n) break;elsej+; for(l=0; lj; l+) event_date11+l=new_event_datel; if(fp=fopen(“memo“,“r+“)=

24、NULL) printf(“n对 不 起,无 法 打 开 文 件!n“); exit(1); while(!feof(fp) offset=ftell(fp); fscanf(fp,“%s%s%s%s“,i.name,i.event_date,i.content,i.remind_date);if(!strcmp(event_date,i.event_date) k=1; break; if(k) printf(“n已 经 查 到,结 果 如 下:n“); printf(“=“); printf(“n您 查 询 的 结 果 是 :nn“);printf(“%snn“,i.name); prin

25、tf(“%snn“,i.event_date); printf(“%snn“,i.content); printf(“%snn“,i.remind_date); printf(“=“); printf(“n请 输 入 新 备 忘 n“); printf(“=“); printf(“n请 输 入 新 备 忘 的 名 称 :“); scanf(“%s“,i.name); printf(“n请 输 入 新 备 忘 的 时 间 :“); scanf(“%s“,i.event_date); printf(“n请 输 入 新 备 忘 的 内 容 :“); scanf(“%s“,i.content); pr

26、intf(“n请 输 入 新 备 忘 的 提 醒 时 间 :“); scanf(“%s“,i.remind_date); fseek(fp,offset,SEEK_SET); fprintf(fp,“nname:%snevent date:%sncontent:%snremind_date:%sn“,i.name,i.event_date,i.content,i.remind_date); printf(“n恭 喜 您,编 辑 成 功!n“); printf(“=n“); else printf(“n对 不 起,没 有 查 询 结 果,请 重 新 输 入,谢 谢。n“);fclose(fp);

27、 void remind_me() remind(); void remind() struct memo i; FILE *fp; int j=0, k=0, l=0; char remind_dateDatelength=r,e,m,i,n,d,_,d,a,t,e,:; char new_remind_dateDatelength;if(fp=fopen(“memo“,“r“)=NULL) printf(“对 不 起,无 法 打 开 文 件!n“); exit(1); printf(“n请 输 入 提 醒 时 间 ( 返 回 上 级 菜 单,请 输 入 0 ): “); scanf(“%s

28、“,new_remind_date);if (new_remind_date != 0) for(j=0; jsizeof(new_remind_date); ) if(new_remind_datej=n) break; else j+; for(l=0; lj; l+) remind_date13+l=new_remind_datel; while(! feof(fp) fscanf(fp,“%s%s%s%sn“,i.name,i.event_date,i.content,i.remind_date);if(!strcmp(remind_date,i.remind_date) printf(“n备 忘 提 醒:n“); printf(“=“); printf(“n您 今 天 有 备 忘 事 项:nn“); printf(“%snn“,i.name); printf(“%snn“,i.event_date); printf(“%snn“,i.content); printf(“%snn“,i.remind_date); printf(“=“);k=1; break; if(!k) printf(“n对 不 起,没 有 提 醒 ! 请 重 新 输 入,谢 谢。n“); fclose(fp);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com