欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    《高级语言程序设计》课程设计报告及示例.docx

    • 资源ID:14749462       资源大小:222.63KB        全文页数:15页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《高级语言程序设计》课程设计报告及示例.docx

    1、高级语言程序设计课程设计报告及示例高级语言程序设计课程设计报告(20142015年度第二学期)题 目 通讯录管理专 业 计算机科学与技术班 级 2014级B班小组成员 李丽丽2009022899班 级 2009级计本四班高级语言程序设计课程设计成绩评定学号姓名成绩备注2009022899李丽丽指导教师:摘要:通过本课程设计,对程序控制结构、数组、结构体、函数、文件等的应用进行综合训练,并初步接 触软件设计的基本步骤。本设计实现 关键词:控制结构,数组,结构体,函数,文件一、课程设计的目的与要求通过实践训练,进一步掌握 C语言程序控制结构、数组、结构体、函数、文件的使用方法,提高程序 编写调试的

    2、实际能力,培养初步的工程设计能力和综合分析、解决问题的能力。具体如下:1.学习和实践在分析和设计计算机应用系统所需要的知识 ,包括功能分析和模块划分、函数设计、数据的结构分析、设计和存取操作;2.熟悉Visual C+的代码编制和调试过程;3.初步培养文档的编写能力;4.培养协作能力和团队精神。二、设计正文1.概述1.1课题题目:通讯录管理1.2系统的主要目标:本系统目标是实现通讯录管理的功能,对姓名、群组、住宅电话、手机、 Email、地址和备注信息进行输入、删除、查找和修改,数据存储于二进制文件。1.3系统的开发环境及运行环境:操作系统: Win dows XP Pro SP2开发工具:

    3、Visual C+ 6.02.系统分析1.输入记录:将每一个职工的姓名、ID号以及基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个记录。?该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。2.显示记录:根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平均工资。3.修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。4查找记录:可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。5.删除记录:可删除数据文件中的任一记录。6恢复记录:能恢复被删除的任一记录。7.统计:(A)计算各项工资平均工资及总工资 ,(B)?统

    4、计符合指定条件(如职工工资前三项之和在 2000元以上、20001500元、 15001000元)以内的工资职工人数及占总职工人数的百分比。 (C)按字符表格形式打印全部职工工资信息表及平均工资 (?包括各项总的平均工资)。8 保存数据文件功能。9.打开数据文件功能。3.系统设计3.1功能模块划分3.2模块接口设计(1)主程序模块tel.cpp仅包含main()函数,提供对系统的主要控制。 在用户未选择退出程序时, 通过一个循环不断显示菜单。当用户选中某个操作后,根据返回的菜单代码 select调用各函数完成相应的操作。(2)菜单模块menu.cpp将显示菜单用单独的函数实现,使菜单界面独立于

    5、其它程序代码,便于修改和维护。 Menu函数仅显示主菜单,SubMe nu2函数仅显示更新联系人子菜单,这样各个菜单便于单独显示、清屏。用户选择操作后, 函数返回对应的菜单代码。各函数功能描述如下:int Menu (void); 主菜单,显示第一级菜单:查看通信录、更新通信录、备份通信录、退出。int SubMenu2(void); “更新通信录”子菜单,显示:新增联系人、编辑联系人、删除联系人、返回王菜单。menu.cpp模块各函数之间的关系如图 8.28所示:menu.cpp图8.28 menu.cpp 模块各函数间的关系结构图MenuSubMenu2菜单代码(3 )查看模块 brows

    6、.cpp以列表或单条记录的方式输出通信录。各函数功能描述如下:void List(Tel tel, Index pAlphabet); 按 pAlphabet 中指针数组的排序方式,调用 PrintOne 函数显示tel中所有的联系人,并显示排序后的序号 i,便于用户选择联系人。void Prin tHead(void); 输出表头。void Prin tBottom(void);输出表尾。void PrintOne(Tel r, int i);仅输出一个联系人r的信息,并显示序号i,便于用户选择联系人。void Prin t(Tel r);调用PrintOne函数输出表头及一个联系人的信息,

    7、不显示序号。(4)更新模块edit.cpp各函数功能描述如下:void New(Tel tel, I ndex *pAlphabet);新增联系人。添加到 tel数组中第一个空着的位置。之后需要对 pAlphabet重新排序。void Edit(Tel tel, I ndex *pAlphabet);编辑联系人。编辑之后需要对 pAlphabet重新排序。void Delete(Tel tel, I ndex *pAlphabet); 删除联系人。此处做逻辑删除,仅将姓名赋空串。删除之后需对pAlphabet重新排序。void Input(Tel *r, Tel tel, int menu);

    8、输入联系人信息。新增或编辑联系人时,调用该函数来输入一个联系人的信息。如果是新增(此时菜 单代码menu=21),当用户选择只输入姓名时,需要为除姓名以外的信息设置缺省值;否则,除姓名以外 的信息缺省保持不变。int Duplicate(char *name, Tel tel, char *original);姓名查重。在新增或编辑联系人前,调用该函数来检查是否有重名的情况。新增联系人时,如果新输 入的串name与tel数组中已存在的姓名一样则返回 1;否则,返回0。编辑时可以输入与联系人原来的姓名original 样的串。int Select(); 选择联系人序号。删除或修改用户选择的联系人

    9、时,调用该函数来限制序号在有效范围内。返回对应的数组下标。(5 )排序模块sort.cpp利用指针数组对通信录运用选择法排序。各函数功能描述如下:void SortByAlphabet(Tel tel, I ndex *pAlphabet);调用SelectSort函数,利用pAlphabet中的指针数组,对 tel数组按音序排序。void SelectSort(I ndex *p);用选择法对指针数组 p排序。(6)文件操作模块file.cpp完成系统与文件有关的操作。各函数功能描述如下:int Load(Tel tel. Index *pAlphabet); 读取。将通信录文件 fName

    10、读入内存 tel,并对 pAlphabet排序。返回读取的记录数。int Save(Tel tel); 保存。将通信录tel以fName (全局变量)为名保存到磁盘。此时做物理删除: 姓名为空串的联系人表示已删除,不存入通信录文件。返回写入文件的记录数。int Copy(void); 备份通信录。复制通信录文件。操作成功时返回 1;否则返回0。3.3系统流程描述1输入:输入职工工资资料通过结构体的数组来进行操作,先头定义数组 em,先输入需要输入的职工人数 m,然后进入循环,每次循环将各项输入结构体数组对应项的对应成员中, 当循环次数等于人数时, 完成全部员工的资料输入,退出循环。同时将数据储

    11、存在 ckerk_list文件中并自动保存至磁盘。注:如首次使用,尚未输入数据,请先输入数据。输入的数据将自动保存。 再次选择输入功能时原数据将被覆盖。2保存:将输入的资料存入磁盘读取文件clerk_list,若文件不存在,打印“打开失败并退出。若存在,则通过循环语句将输入到结 构体数组的数据逐个输入磁盘。3读取:读取磁盘中的资料打开文件clerk_list,若文件不存在,打印“打开失败”并退出。若存在,读取文件中的数据,并返回 职工人数。4显示:显示职工工资资料先通过读取函数的返回值确定职工人数 m,再通过循环将员工工资资料逐个打印,当循环次数达到 m时退出循环。其中总工资由程序计算,总工资

    12、 =基本工资+职务工资+津贴-医疗保险-公积金5删除:删除某员工的资料打印员工资料并提示输入要删除职工的姓名,输入后若该职工不存在则打印“查无此人” ;若存在,则显示该职工资料并询问是否确定删除。若确定,则删除。删除时,通过对比输入的姓名与资料中的姓名做对比从而确定要删除的项 i,从第i项开始,将后一项的各成员的值赋给前一项各对应的成员,完成对第 i项的删除。6添加:添加新的员工资料而不覆盖原有资料打印原有职工资料,询问要添加的职工人数并询问是否确定添加。逐个逐项输入员工信息,之后程序计算其总工资。完成后显示“添加成功” ,打印新的员工资料并自动保存。添加的方法为:定义一个相同类型的结构体数组

    13、,将原有项复制后增添新的项,并保存新的数组。7查找:按ID好查询与按姓名查找员工资料根据提示输入要查询的ID号或姓名,程序通过循环语句将输入的数字与以保存的结构体数组中的数据对比,若相同,则打印“已找到”及该员工的资料;当循环次数等于人数时结束循环,若至结束循环时也没有找到相同的,则打印“查无此人” 。8修改:修改特定员工的特定资料打印员工信息并提示输入要修改资料的职工姓名。按提示确定要修改,确定要修改的项目,输入要修改成的结果并将该结果赋给对应项的对应成员,完成对特定职工特定项目的修改。9统计通过循环对结构体数组中的每一项经行统计, 计算工资总额为,将工资总额除以人数计算出平均工资。根据每名

    14、职工的资料计算基本工资、职务工资、津贴之和在 1000-1500圆1500-2000圆2000圆以上的员工占总员工的百分比4.详细设计4.1.数据结构设计系统的主要功能是管理联系人的信息,大部分模块中都用到联系人的信息。联系人的结构定义如下:typedef struct Teleph onechar name20; / 姓名int group;/ 群组:1.朋友2.同事3.家人4.其他char home15; 住宅电话char mobile15; 手机 char email20;/Email char add20; 地址char memo20; 备注Tel;sort.cpp模块中利用指针数组对

    15、通信录排序,排序用的索引结构的定义如下:typedef struct in dexint len; / 数组长度Tel *telMaxLe n; / 指针数组,ln dex;菜单代码菜单项代码子菜单项代码查看通信录1新增联系人21更新通信录2编辑联系人22删除联系人23返回主菜单20备份通信录3退出0联系人分组方式代码分组方式朋友同事家人其他代码1234全局变量const int MaxLen=500; / 最多可存放 500个联系人信息 char fName20=tel.dat; / 磁盘文件:通信录文件名int Len; / 全局变量,通信录中当前联系人总数4.2人机对话(输入/输出格式)

    16、设计(1)菜单操作考虑使用键盘方式,用户输入菜单项前的 0,1,2等数字字符来选择对应的菜单项,由 menu.cpp模块转换成相应的菜单代码。用户选择菜单项并完成相应的操作后刷新菜单。(2)显示与选择联系人对通信录更新时系统自动按音序排序。显示整个通信录时在每个联系人前面显示排序后的序号,用户 按序号选择联系人进行操作。对于操作结果为单个联系人的情况不显示序号。(3)输入联系人信息通过新增或更新输入联系人信息时,可以选择只输入姓名还是输入联系人的完整信息。当用户选择只 输入联系人姓名时,其余部分系统自动设成空值。系统只提供了“ 1.朋友2.同事3.家人4.其他”四种联系人分组方式。用户输入 1

    17、.4来指定联系人的分组。当用户未指定时,系统自动设为 4,代表“其他”分组。输入联系人姓名时系统自动检查有无重名的情况。更新输入时可以输入原来的姓名。4.3控制结构设计对每个函数的控制结构进行设计,以 PAD图描述(1)主程序模块select=显d 菜单select2d(2)更新模块新增 void New(Tel tel, Index *pAlphabet)修改 void Edit(Tel tel, Index *pAlphabet)删除 void Delete(Tel tel, Index *pAlphabet)二用户选抒的联忝人厅巧(3)排序模块void SortByAlphabet(Te

    18、l tel, Index *pAlphabet)选择排序 void SelectSort(Index *p)(4)文件操作模块从磁盘读取通信录 int Load(Tel tel, I ndex *pAlphabet) e(Tel tel)扌|开文件fName循环匕将诃中非空的数据写Afout走闭文件fout备份通信录int Copy(void)5.编码和测试选用Visual C+6.0作为开发工具:控制部分通过函数代码实现,数据部分采用数据文件实现永久存 储,采用数组存储系统运行过程中的数据。测试要点1主菜单、子菜单是否能正确显示和刷新;对于选择的非法菜单号是否能识别和处理;2排序是否正确,是

    19、否正确地处理了已逻辑删除的联系人;3在增加、修改、删除联系人后,排序是否正确;4保存、载入时,是否能正确地从数据文件读取数据;是否能正确地从备份的数据文件读取数据;5各模块分开调试,组合后的正确性。三、 课程设计总结或结论1.通过这次高级语言程序设计课程设计的实践训练,进一步掌握程序控制结构、数组、结构体、函 数、文件的使用方法,提高程序编写调试的实际能力,初步建立软件工程的设计思想,培养初步的综合分 析、解决问题的能力。2.本系统基本实现了关键的功能模块,在功能上基本满足了用户的需求,但是由于时间较紧,有些 模块以及整个系统还有许多不完善的地方,如界面不美观,操作性不太友好等。四、 参考文献1张海藩软件工程导论(第4版)北京:清华大学出版社, 2005234


    注意事项

    本文(《高级语言程序设计》课程设计报告及示例.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开