




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课 程 设计 20092009 20102010 学年第二学期学年第二学期 设计题目设计题目 通讯录通讯录 院(系)院(系) 数数理学院理学院 专专 业业 数学与应用数学数学与应用数学 程序设计语言课程设计报告 2 课程名称课程名称程序设计语言课程设计程序设计语言课程设计课程代码课程代码b704010b704010 设计题目设计题目 1 1 算术练习算术练习 2 2 个人收支管理个人收支管理 3 3 通讯录通讯录 4 4 成绩记录簿成绩记录簿 5 5 图书借阅管理图书借阅管理 6 6日程表管理日程表管理 题目序号题目序号 3 3 设计时间设计时间20102010 年年 7 7 月月 5 5 日日20102010 年年 7 7 月月 1515 日日 系(院)系(院)理学院理学院专业专业 数学与应用数学数学与应用数学班级班级 09*11109*111 一、一、课程设计任务(条件)课程设计任务(条件) 、具体技术参数(指标)、具体技术参数(指标) 1.在指导书提供的课程设计题目中选择一题或自选(但需经过指导教师认可) 2.每个题目限一人完成,题目选定后不可更换。 3.用户提供的主操作界面应该方便用户的操作。 4.最后提交的课程设计成果包括: a)课程设计报告电子稿。 c)源程序文件。 d)可执行程序文件。 二、二、对课程设计成果的要求(包括课程设计说明书、图纸、图表、实物等软硬件要求)对课程设计成果的要求(包括课程设计说明书、图纸、图表、实物等软硬件要求) 1.分析课程设计题目的要求; 2.写出详细设计说明; 3.编写程序代码,调试程序使其能正确运行; 4.设计完成的软件要便于操作和使用,有整齐、美观的使用界面; 5.设计完成后提交课程设计报告和源代码文件的电子文档。 三、三、课程设计工作进度计划:课程设计工作进度计划: 第一天 选择课程设计题目,分析课题的要求,确定设 计方案; 第二天 按功能模块编写详细设计说明和程序流程图; 第三六天 编写与调试程序; 第七天 写课程设计报告; 第八天 提交课程设计报告并答辩; 四、四、主要参考资料主要参考资料 1谭浩强c 程序设计(第三版)北京:清华大学出版社,2005 2谭浩强c 程序设计题解与上机指导(第三版)北京:清华大学出版社,2005 3 herbert schildtc 语言大全(第四版) 北京:电子工业出版社, 2004 4程序设计语言课程设计指导书 指导教师(签名):黄飞鸿黄飞鸿 教研室主任(签名):黄飞黄飞 鸿鸿 2010 年 7 月 5 日 2010 年 7 月 5 日 程序设计语言课程设计报告 3 目录目录 摘要摘要 1概述概述.4 1.1课程设计目的4 1.2课程设计要求4 1.3设计要求具体说明4 2详细设计说明详细设计说明.4 2.1总体设计方案4 2.2程序描述4 2.3功能结构4 2.4主要模块描述4 2.5采用的算法4 3程序测试程序测试.5 4课程设计总结课程设计总结.5 5软件使用说明软件使用说明.5 6附录(参考文献,原代码:)附录(参考文献,原代码:).5 程序设计语言课程设计报告 4 摘要摘要: 一个良好的通讯录能够方便用户增/删/查/改信息.获取用户。要的信息. 汇 编语言也是计算机应用中重要的语言之一. 用汇编语言程序代码编写通讯录, 理解和掌握复杂的汇编语言应用程序的编程.本程序将主要完成的功能为姓名查 询模块: 查询,输入姓名可以查询该人其他信息;在屏上提示:选择“1”:输入姓 名,按姓名查询,显示查询结果;选择“0”:结束.通过此次设计巩固和加深子程 序调用、参数传送、bios 功能调用 int 10h 和宏定义;将课本上的子程序调 用和宏定义等有关知识和实际应用有机的结合起来,提高分析和解决实际问题 的能力;通过对通讯录汇编语言程序代码的阅读、修改、设计,理解和掌握复 杂的汇编语言应用程序的编程,从而提高自身实践编程能力。 关键词关键词 汇编语言程序 bios 功能调用 int 10h 宏定义 abstract: a good address book can be user-friendly by / delete / search / to information. user access. to the information. compilation of computer language is the language of one of the most important. assembly language code with the preparation of contacts, understanding and mastering complex assembly language application programming. this procedure will be mainly complete by the name of enquiry modules: for enquiries, enter the name of the person can find other information; choose “1“: enter the name, by name enquiries, search results; search results; option“ 0 “: the end. through this design to consolidate and deepen the subroutine calls, send parameters, bios function calls int 10h and acer definition of textbooks on the subroutine calls and acer definition of the relevant knowledge and practical application of combining organic and improve analysis and the ability to solve practical problems through the contacts of the assembly language code to read, 程序设计语言课程设计报告 5 edit, design, understand and master the complex assembly language application programming, improve their own practice of programming capacity. key words assembly language program bios function calls int 10h acer definition 1 概述概述 1.1课程设计目的 本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完程序 设计语言课程后进行的一次全面的综合练习。本课程设计的目的和任务: 1.巩固和加深学生对 c 语言课程的基本知识的理解和掌握; 2.掌握 c 语言编程和程序调试的基本技能; 3.利用 c 语言进行基本的软件设计; 4.掌握书写程序设计说明文档的能力 5.提高运用 c 语言解决实际问题的能力。 程序设计语言课程设计报告 6 1.2 课程设计要求课程设计要求 1.分析课程设计题目的要求; 2.写出详细设计说明; 3.编写程序代码,调试程序使其能正确运行; 4.设计完成的软件要便于操作和使用,有整齐、美观的使用界面; 5.设计完成后提交课程设计报告和源代码文件的电子文档。 1.3 设计要求具体说明设计要求具体说明 基本功能: a)添加个人信息 b)查询个人信息 c)删除个人信息 d)修改个人信息 e)信息排序 f)输出全部信息 拓展功能: 采用文件形式对通讯录进行操作,包括: a)写入文件 b)读取文件 创新(自拟)功能: 程序实现的其它功能由个人自拟。 通讯录至少应该有以下数据项:姓名,家庭住址,手机号码,邮编,e-mail。 输入信息时要检查数据项手机、邮编、e-mail 的合法性,手机号码:11 位数字;邮编: 6 位数字;e-mail:包含字符,且两边都非空。 对通讯录应该包含有以下操作(包括基本功能和拓展功能): a)向通讯录中添加信息; b)在通讯录中按姓名或手机号查找个人信息; c)删除通讯录中的个人信息; d)修改通讯录中的个人信息,并保存入文件; e)按不同数据项排序后列表输出通讯录中所有人的信息。通讯录中记录的数量 没有限制。 f)写入文件和从文件读将通讯录中的数据入数据。 程序启动时先从文件读入数据,如果文件中没有数据则给出提示;写入文件时有 两种方式,一为覆盖所有原有的内容; 二为只将本次操作所修改的个人信息写入文 件 g)程序启动时先从文件读入数据,如果文件中没有数据则给出提示退出程序。 程序设计语言课程设计报告 7 2详细设计说明详细设计说明 2.1总体设计方案 本程序分为九个大模块,每个大模块又分为若干个小模块,每个模块用来实现一个 特定的功能;本程序运用了结构体来存放联系人的信息,并定义了结构体数组使数据的管理 转化为对结构数组的操作,从而实现了通讯录的输入,输出,存档,读取,删除以及查找和分类显 示等功能。 2.2程序描述 本程序有三大主要特点: 1、 本程序功能比较强大,建立了一个比较健全的通讯录系统; 2、 本程序秉着人文主义的原则,使用了大量人性化的语句,能够给使用者提供一个 温馨的使用环境,能够让使用者感觉到人性化关怀; 3、 本程序结构清晰,能够很方便的添加功能,将来能很方便的对其进行改进! 安排本程序的目的及意义: 这样安排本程序是为了方便程序的模块化及将来的改进。 设计本程序的目的及意义: 设计本程序的目的在于: 1、 编写一个比较完美的 c 程序; 2、 考验一个人的聪明才智; 3、 考察一个人的思维的敏锐程度及缜密程度; 4、 考察一个人的编程能力及对事情的专注程度。 它的意义在于: 1、 锤炼思维,通过本程序的编写来提高思维的敏锐度; 2、 加深对教材内容的理解和提高对教材知识的掌握程度; 3、 使学生掌握一定的编程技巧及提高学生的认知力; 4、 提高学生分析问题、综合解决问题的能力。 2.3 功能结构 本程序具有九个大功能,每个大功能又有若干个小功能,具体功能如下: 1、 添加个人信息; 2、 查询个人信息;它又分为:按手机号码查询、按姓名查询、按家庭电话号码 查 询和按 qq 号码查询这四个小功能; 3、 删除个人信息;它又分为按按手机号码删除和按姓名删除这两个小功能; 4、修改个人信息;它又分为按按手机号码修改和按姓名修改这两个功能,这两个 功能又都具有修改项目这个小功能; 5、信息排序;它又分为按按手机号码排序和按姓名排序这两个功能,这两个功能 又都具有输出全部信息这个功能; 程序设计语言课程设计报告 8 6、输出全部信息 7、写入文件 8、读取文件 9、 删除所有 功能结构图: 2.4 主要模块描述 通讯录管理系统主要用数组来实现,其数组元素是结构体类型,整个系统 由如下几个功能模块组成: (1) 添加个人信息模块。添加个人信息模块主要将用户通过键盘输入的数据 存入数组的工作,数据记录的结构由结构体定义,包含联系人的相关信 息。 设计说明: 本程序定义了结构体 person,为全局变量,用于存放联系人的基本信息: struct person char name15; 程序设计语言课程设计报告 9 char sex2; int nianling; long int youbian; char addr50; char celephone22; char homephone22; char company20; char email40; long int qq; per500; 然后定义了 void newrecord()函数(新添纪录函数) 用来实现数据的输入,每次输入都依“姓名(name),性别(sex) ;年龄 (nianling) ;地址(addr) ;手机号码(celephone);家庭电话(homephone) ; 公司名称(company) ;电子邮箱(email);qq 号码(qq) ;”的次序分别以字 符数组的形式将用户在键盘上输入的数据存入内存中先前定义的结构体 数组中。 操作说明:请按提示操做;请输入正确的信息;本程序有自动查错功能。 流程图: 程序设计语言课程设计报告 1 0 开始 输入 pernum. name strlen()1 5 y 输入 pernum. sex n pernum. nianling n 输入 pernum. youbian n 输入 pernum. addr n 输入 pernum. celephone n strlen(pernu m.sex)=0 pernum.nianling110 pernum.youbian999999 strlen(pernum.addr)50|strlen(pernum .addr)20|strlen(p any)30|strlen(per num.email)16000000 00|pernum.qq #include #include #include struct person char name15; char sex2; int nianling; long int youbian; char addr50; char celephone22; char homephone22; char company20; char email40; long int qq; per500; int num=0;/*外部变量 num 为文件中的纪录数*/ file *fp; void mainmenu();/*主菜单*/ void newrecord();/新添纪录*/ void xiugaimenu();/*修改菜单*/ void xiugaibyname();/*按姓名修改*/ void xiugaibycelephone();/*按手机号码修改*/ void xiugaixiangmu(int a);/*修改项目*/ void searchmenu();/*查询菜单*/ void searchbyname();/*按姓名查询*/ void searchbycelephone();/*按手机号码查询*/ void searchbyhomephone();/*按家庭电话号码查询*/ void searchbyqq();/*按 qq 查询*/ void deletemenu();/*删除菜单*/ void deleteall();/*删除所有信 息*/ void deleteone();/*删除单个*/ void showall();/*输 出 全 部 信 息*/ void readfromfile();/*读取文件*/ void writetofile();/*写入文件*/ / 程序设计语言课程设计报告 2 3 void deletebycelephone(); /*按手机号码删除*/ void deletebyname();/*按姓名删除*/ void listbycelephone();/*按手机号码排序*/ void listbyname();/*按姓名排序*/ void listmenu();/*排序菜单*/ void main()/*主函数*/ system(“cls“); readfromfile(); while (1) mainmenu(); /*主函数结束*/ void mainmenu()/*主菜单函数*/ int a; system(“cls“); system(“color 2a“); printf(“nt 您 好! 欢 迎 使 用 通 讯 录!n“); printf(“ 1: 添 加 个 人 信 息n“); printf(“ 2: 查 询 个 人 信 息n“); printf(“ 3: 删 除 个 人 信 息n“); printf(“ 4: 修 改 个 人 信 息n“); printf(“ 5: 信 息 排 序n“); printf(“ 6: 输 出 全 部 信 息n“); printf(“ 7: 写 入 文 件n“); printf(“ 8: 读 取 文 件n“); printf(“ 9: 删除所有n“); printf(“ 0: 退 出 n“); printf(“ 请输入您的数字选择: “); loop1: scanf(“%d“, switch (a) case 1:newrecord();break; case 2:searchmenu();break; case 3:deletemenu();break; 程序设计语言课程设计报告 2 4 case 4:xiugaimenu();break; case 5:listmenu();break; case 6:showall();break; case 7:writetofile();break; case 8:readfromfile();break; case 9:deleteall();break; case 0:exit(0); default:printf(“对不起!您的输入有误!请重新输入: “);goto loop1; void newrecord()/*添加纪录*/ int a; system(“cls“); system(“color 2a“); loop: printf(“nnnntt 请输入您要添加的联系人的信息: n“); printf(“n 请输入姓名:n“); name: scanf(“%s“, if(strlen()15) printf(“对不起!您的输入有误!请重新输入“); goto name; printf(“n 请输入性别:n“); sex: scanf(“%s“, if(strlen(pernum.sex)=0) printf(“对不起!您的输入有误!请重新输入“); goto sex; printf(“n 请输入年龄:“); nianling: scanf(“%d“, if(pernum.nianling110) printf(“对不起!您的输入有误!请重新输入“); goto nianling; printf(“n 请输入邮编n“); youbian: scanf(“%d“, if(pernum.youbian999999) printf(“对不起!您的输入有误!请重新输入“); goto youbian; 程序设计语言课程设计报告 2 5 printf(“n 请输入地址n“); addr:scanf(“%s“, if(strlen(pernum.addr)50|strlen(pernum.addr)20|strlen(pany)30|strlen(pernum.email)1600000000|pernum.qq=0); perj+1=tmp; printf(“ntt 排序成功,是否显示?(1 代表继续;2 代表不继续)“); printf(“ 请输入您的数字选择: “); scanf(“%d“, if (k=1) showall(); return; void listbycelephone()/*按手机号码排序*/ 程序设计语言课程设计报告 4 1 int i,j,k; struct person tmp; for (i=1;i=0); perj+1=tmp; printf(“ntt 排序成功,是否显示?(1 代表继续;2 代表不继续)“); printf(“ 请输入您的数字选择: “); scanf(“%d“, if (k=1) showall(); return; void showall()/*输 出 全 部 信 息*/ int i,j; system(“cls“);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 设备维修说明
- 青海省西宁市2025届九年级下学期中考二模地理试卷(含答案)
- 自动控制原理第五版 胡寿松课后习题答案
- 贵州省黔东南州2023-2024学年八年级下学期期末考试语文试卷(含答案)
- 财务会计人员岗位职责
- 打造独具特色的文旅商品品牌之路
- 道德与法治(河北卷)(考试版A3)
- 建筑施工特种作业-建筑电工真题库-5
- 森林防火管护题目及答案
- 扫盲运动题目及答案高中
- 2023-2024学年四川省凉山州小学数学五年级下册期末自测试卷
- 十小咒注音版
- 2021国开电大操作系统形考任务 实验报告-进程管理实验
- 中医药膳学全解共94张课件
- 重庆市各县区乡镇行政村村庄村名居民村民委员会明细及行政区划代码
- 学生公寓维修改造工程施工组织设计
- 小学高段语文审题能力的培养
- 护理人文关怀质量评价标准
- 【北师大版】七年级上册数学 第四章 图形的全等 单元检测(含答案)
- 《教育学原理》期末考试试卷试题A及答案
- 安全知识进校园宣传课件——XX小学
评论
0/150
提交评论