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

上传人:第*** 文档编号:30997397 上传时间:2018-02-03 格式:DOC 页数:11 大小:778.50KB
返回 下载 相关 举报
《高级语言程序设计》课程设计报告模板及示例_第1页
第1页 / 共11页
《高级语言程序设计》课程设计报告模板及示例_第2页
第2页 / 共11页
《高级语言程序设计》课程设计报告模板及示例_第3页
第3页 / 共11页
《高级语言程序设计》课程设计报告模板及示例_第4页
第4页 / 共11页
《高级语言程序设计》课程设计报告模板及示例_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《《高级语言程序设计》课程设计报告模板及示例》由会员分享,可在线阅读,更多相关《《高级语言程序设计》课程设计报告模板及示例(11页珍藏版)》请在金锄头文库上搜索。

1、 高 级 语 言 程 序 设 计 课 程 设 计 报 告(20142015 年度第二学期)题 目 通讯录管理专 业 计算机科学与技术班 级 2014 级 B 班小组成员 李丽丽 2009022899 班 级 2009 级计本四班高级语言程序设计课程设计成 绩 评 定学号 姓名 成绩 备注2009022899 李丽丽指导教师: Comment U1: 一级标题黑体五号,页面设置为上下左右页边距为 2厘米装订时在左装订,用 2个订书针就可以Comment L2: 后面简要描述设计的功能Comment U3: 二级及及其他标题宋体五号,正文宋体五号,行间距固定值 16磅高级语言程序设计课程设计报告1

2、摘要:通过本课程设计,对程序控制结构、数组、结构体、函数、文件等的应用进行综合训练,并初步接触软件设计的基本步骤。本设计实现关键词:控制结构,数组,结构体,函数,文件一、课程设计的目的与要求通过实践训练,进一步掌握 C语言程序控制结构、数组、结构体、函数、文件的使用方法,提高程序编写调试的实际能力,培养初步的工程设计能力和综合分析、解决问题的能力。具体如下:1. 学习和实践在分析和设计计算机应用系统所需要的知识,包括功能分析和模块划分、函数设计、数据的结构分析、设计和存取操作;2. 熟悉 Visual C+的代码编制和调试过程;3. 初步培养文档的编写能力;4. 培养协作能力和团队精神。二、设

3、计正文1. 概述1.1课题题目:通讯录管理1.2系统的主要目标:本系统目标是实现通讯录管理的功能,对姓名、群组、住宅电话、手机、Email、地址和备注信息进行输入、删除、查找和修改,数据存储于二进制文件。 1.3 系统的开发环境及运行环境:操作系统: Windows XP Pro SP2开发工具: Visual C+ 6.02. 系统分析1. 输入记录:将每一个职工的姓名、 ID 号以及基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个记录。 该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。2. 显示记录:根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平

4、均工资。3. 修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。4查找记录:可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。5. 删除记录:可删除数据文件中的任一记录。6恢复记录:能恢复被删除的任一记录。7. 统计: (A) 计算各项工资平均工资及总工资, (B) 统计符合指定条件(如职工工资前三项之和在 2000 元以上、20001500 元、15001000 元) 以内的工资职工人数及占总职工人数的百分比。(C)按字符表格形式打印全部职工工资信息表及平均工资( 包括各项总的平均工资)。8 保存数据文件功能。9.打开数据文件功能。3. 系统

5、设计3.1 功能模块划分高级语言程序设计课程设计报告2欢迎画面主菜单显示功能查找功能删除功能输入功能保存与读取退出程序添加功能修改功能统计功能按 ID 号查找按姓名查找修改 ID 号 修改姓名修 改 职 务 工 资修 改 基 本 工 资修改医保修改津贴修改公积金3.2 模块接口设计(1)主程序模块 tel.cpp仅包含 main()函数,提供对系统的主要控制。在用户未选择退出程序时,通过一个循环不断显示菜单。当用户选中某个操作后,根据返回的菜单代码 select 调用各函数完成相应的操作。(2)菜单模块 menu.cpp将显示菜单用单独的函数实现,使菜单界面独立于其它程序代码,便于修改和维护。

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

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

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

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

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

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

12、数组对应项的对应成员中,当循环次数等于人数时,完成全部员工的资料输入,退出循环。同时将数据储存在 ckerk_list 文件中并自动保存至磁盘。注:如首次使用,尚未输入数据,请先输入数据。输入的数据将自动保存。再次选择输入功能时原数据将被覆盖。保存:将输入的资料存入磁盘读取文件 clerk_list,若文件不存在,打印“打开失败并退出。若存在,则通过循环语句将输入到结构体数组的数据逐个输入磁盘。读取:读取磁盘中的资料打开文件 clerk_list ,若文件不存在,打印“打开失败”并退出。若存在,读取文件中的数据,并返回职工人数。显示:显示职工工资资料先通过读取函数的返回值确定职工人数 m,再通

13、过循环将员工工资资料逐个打印,当循环次数达到m 时退出循环。其中总工资由程序计算,总工资 =基本工资+职务工资+ 津贴- 医疗保险-公积金删除:删除某员工的资料打印员工资料并提示输入要删除职工的姓名,输入后若该职工不存在则打印“查无此人” ;若存在,则显示该职工资料并询问是否确定删除。若确定,则删除。删除时,通过对比输入的姓名与资料中的姓名做对比从而确定要删除的项 i,从第 i 项开始,将后一项的各成员的值赋给前一项各对应的成员,完成对第 i 项的删除。添加:添加新的员工资料而不覆盖原有资料打印原有职工资料,询问要添加的职工人数并询问是否确定添加。逐个逐项输入员工信息,之后程序计算其总工资。完

14、成后显示“添加成功” ,打印新的员工资料并自动保存。添加的方法为:定义一个高级语言程序设计课程设计报告5相同类型的结构体数组,将原有项复制后增添新的项,并保存新的数组。查找:按 ID 好查询与按姓名查找员工资料根据提示输入要查询的 ID 号或姓名,程序通过循环语句将输入的数字与以保存的结构体数组中的数据对比,若相同,则打印“已找到”及该员工的资料;当循环次数等于人数时结束循环,若至结束循环时也没有找到相同的,则打印“查无此人” 。修改:修改特定员工的特定资料打印员工信息并提示输入要修改资料的职工姓名。按提示确定要修改,确定要修改的项目,输入要修改成的结果并将该结果赋给对应项的对应成员,完成对特

15、定职工特定项目的修改。统计 通过循环对结构体数组中的每一项经行统计,计算工资总额为,将工资总额除以人数计算出平均工资。根据每名职工的资料计算基本工资、职务工资、津贴之和在 1000-1500 圆 1500-2000 圆 2000 圆以上的员工占总员工的百分比4. 详细设计4.1. 数据结构设计 系统的主要功能是管理联系人的信息,大部分模块中都用到联系人的信息。联系人的结构定义如下:typedef struct Telephonechar name20; /姓名int group;/群组:1.朋友 2.同事 3.家人 4.其他char home15;/住宅电话char mobile15;/手机c

16、har email20;/Emailchar add20;/地址char memo20;/备注Tel;sort.cpp 模块中利用指针数组对通信录排序,排序用的索引结构的定义如下:typedef struct indexint len; /数组长度Tel *telMaxLen; /指针数组,Index;菜单代码菜单项 代码 子菜单项 代码查看通信录 1更新通信录 2 新增联系人 21Comment L4: 可以改为流程图、伪代码、自然语言描述均可高级语言程序设计课程设计报告6编辑联系人 22删除联系人 23返回主菜单 20备份通信录 3退出 0联系人分组方式代码全局变量const int MaxLen=500; /最多可存放 500个联系人信息cha

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号