欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    软件技术综合实验课程设计解读(共24页).doc

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

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

    软件技术综合实验课程设计解读(共24页).doc

    精选优质文档-倾情为你奉上井冈山大学电子与信息工程学院软件技术综合实验 ( 20152016年度第一学期)课程名称: 软件技术综合实验 学 院: 班 级: 姓 名: 学 号: 任课教师: 成 绩: 2015年 10 月 20 日专心-专注-专业成 绩 评 定一、 指导教师评语二、 成绩成绩备注 指导教师: 日 期: 年 月 日目录一、设计要求11问题描述12需求分析1二、概要设计11.主界面设计12.存储结构设计23系统功能设计2三、模块设计21模块设计22系统子程序及功能设计33函数主要调用关系图3四、详细设计41数据类型定义4五、测试分析61. 通讯录的建立62. 插入通讯记录73. 查询通讯记录74. 删除通讯记录85. 显示通讯录信息8六、用户手册9七、调试报告9学生通讯录管理系统一、设计要求1问题描述 纸质的通讯录已经不能满足大家的要求,容易丢失、查找困难等问题是纸质通讯录所不能克服的缺点。“学生通讯录管理系统”是为了帮助老师、同学,或者其他一些需要使用通讯录的人员进行管理和分析的一种应用程序。2需求分析 (1) 输入数据建立通讯录。 (2) 查询通讯录中满足要求的信息。 (3) 插入新的通讯录信息。 (4) 删除不需要的通讯录信息。 (5) 查看所有的通讯录信息。二、概要设计1.主界面设计为了实现学生通讯管理系统各功能的管理,设计一个含有多个菜单项的主控菜单子程序以链接系统的各项子功能,方便用户使用本系统。本系统主控菜单运行界面如图1所示。2.存储结构设计 本系统主要采用链表结构类型来表示存储在“学生通讯录管理系统”中的信息。其中,链表结点由4个分量构成:通讯录成员学号、通讯录成员姓名、通讯录成员电话号码、指向该结构体的指针。此外,本系统还设置了一个全局变量seat,表示通讯录中成员的序号。3系统功能设计本系统设置了5个子功能菜单,5个子功能的设计描述如下。 (1)建立通讯录系统。可以一次输入多个成员通讯录的信息,建立通讯录。该功能由creatIncreLink() 函数实现。 (2)插入通讯记录。每次可以插入一个成员通讯录的信息,如果要连续插入多个成员通讯录信息必须多次选择该功能。该功能由insertYouXu()函数实现。 (3)查询通讯记录。可以按两种方式查询所需要的通讯录成员记录,一是按学号查询,二是按姓名查询。分别由searchNum()函数和searchName()函数实现。 (4)删除通讯记录。可以对通讯录中不再需要的信息进行删除。有三种删除方式:按序号进行删除,按学号进行删除和按姓名进行删除。分别由deleteElem()函数,delNum()函数和delName()函数实现。 (5)显示通讯录记录。可以查看通讯录中所有的通讯录成员记录。该功能由printList()函数实现。三、模块设计1模块设计 本程序包含两个模块:主程序模块和链表程序模块。其调用关系如图2所示。主程序模块链表操作模块图2 模块调用示意图2系统子程序及功能设计 本程序共设置10个子程序,各程序的函数名及功能说明如下,其中大部分函数都是链表的基本操作函数。 (1)LinkList creatIncreLink() /链表的创建 (2)deleteElem(LinkList L,int i) /从通讯录中按序号删除第i个元素 (3)delName(LinkList L,char n) /按姓名删除通讯者记录 (4)delNum(LinkList L,int n) /按学号删除通讯者记录 (5)void insertYouXu(LinkList L,LinkList Elem)/插入一条通讯录 (6)printList(LinkList L) /打印指针地址为L的通讯录 (7)prior(LinkList L,LinkList p) /查找位于当前地址元素的前一元素的地址 (8)searchName(LinkList L,char n) /按姓名查找通讯者记录 (9)int searchNum(LinkList L,int n) /按学号查找通讯者记录 (10)viod main() /主函数。设定界面的颜色和大小,调用链表操作模块3函数主要调用关系图 本系统10个子程序之间的主要调用关系如图3所示。图中数字是个函数的编号。568910main()123457图3 系统函数调用关系图四、详细设计1数据类型定义typedef struct LNodeint number;double telenum;char name20;struct LNode *next;LNode,*LinkList;2系统主要子程序详细设计 (1)建立链表的函数,主要用来建立通讯录。LinkList createIncreLink()/创建一个存放通讯录成员的非递减有序表,返回头结点地址LinkList L=(LinkList)malloc(LEN);/头结点L->next=NULL;LinkList p;int num=1,number;double telenum;char name20;printf("请输入学生学号、姓名和电话号码,建立通讯录,以'-1'为输入结束标志n");printf("请输入学号%d:",num);scanf("%d",&number);printf("请输入姓名%d:",num);char temp=getchar();gets(name);printf("请输入电话号码%d:",num);scanf("%lf",&telenum);while(number>=0)p=(LinkList)malloc(LEN);/新结点p->number=number;p->telenum=telenum;strcpy(p->name,name);insertYouXu(L,p);/有序的插入新结点num+;printf("请输入学号%d:",num);scanf("%d",&number);printf("请输入姓名%d:",num);temp=getchar();gets(name);printf("请输入电话号码%d:",num);scanf("%lf",&telenum);return(L); (2)显示链表中所有结点的信息,用于查看通讯录所有的记录。 void printList(LinkList L)/打印头结点地址为L的通讯录printf("n-n");printf(" 学号 姓名 电话号码n");printf("-n");LinkList p=L;int n=1;if(L=NULL | L->next=NULL)printf("该通讯录中没有元素n");/判断通讯录是否为空elsewhile(p->next != NULL)printf("%2d %-9d",n,p->next->number);printf(" %-5s %.0fn",p->next->name,p->next->telenum);p=p->next;n+;printf("-n");return ;五、测试分析1. 通讯录的建立在主菜单下,用户输入1并回车,然后按照提示建立通讯录,分别输入通讯录成员的学号,姓名,电话号码,运行结果如图4所示。图4 通讯录的建立2. 插入通讯记录 在主菜单下,用户输入2并回车,可以插入一个新的通讯录成员的信息,依次输入学号,姓名和电话号码,运行结果如图5所示。图5 插入通讯录记录3. 查询通讯记录在主菜单下,用户输入3并回车,可以按照两种方式查询通讯录。一种是按照学号查询,另一种方式是按照姓名查询。可按照提示操作,运行结果如图6所示。图6 查询通讯录记录4. 删除通讯记录 在主菜单下,用户输入4并回车,进行通讯录记录的删除。可以按三种方式进行删除操作:按序号、按学号和按姓名。图7是按序号删除的运行结果。图7 删除通讯录记录5. 显示通讯录信息 主菜单下,用户输入5并回车,查看通讯录中所有的成员信息。运行结果如图8所示。 图8:显示通讯录信息六、用户手册 (1)本程序执行文件为“学生通讯管理系统.exe”。 (2)进入本系统之后,用户可在该界面下输入各子类菜单前对应的序号并回车,执行相应子菜单命令。 (3)本系统没有提供直接修改通讯录信息的功能的,课通过删除和插入操作完成修改功能。 (4)本系统对于学生通信录的管理十分有意义,解决了纸质通信录的弊端。七、调试报告(1)在程序的录入工程中由于自己的粗心,导致程序出错,花费了大量时间调试。(2)链表的创建比较麻烦,得逐个录入,有待完善。(3)总体而言,本程序还是有很大的价值,解决了纸质通信录带来的大部分问题。八、主要程序清单#include <stdio.h>#include <stdlib.h>#include <string.h>#define NULL 0#define LEN sizeof(LNode)int seat; /通讯录成员的序号typedef struct LNode /用于通讯录节点 int number;double telenum;char name20;struct LNode *next;LNode,*LinkList;/7.找到位于当前地址元素的前一元素的地址LinkList prior(LinkList L,LinkList p)if(L->next=NULL)return (L);LinkList p_prior=L;while(p_prior->next !=p)p_prior=p_prior->next;return (p_prior);/5.插入一个元素,使原有序表仍为有序void insertYouXu(LinkList L,LinkList Elem)LinkList p=L->next;while(p!=NULL && Elem->number>=p->number)if(p->number=Elem->number)printf("重复输入!n");return;p=p->next; /确定Elem插入的位置if(p=NULL)p=prior(L,p);Elem->next=NULL;p->next=Elem;else /若为空表,插到头结点之后p=prior(L,p);Elem->next=p->next;p->next=Elem;/8.主函数。设定界面的颜色大小,调用工作区模块函数void main()LinkList L=NULL;printf("n* 欢迎使用通讯录系统*n");printf(" * 1.通讯录的建立 *n");printf(" * 2.插入通讯记录 *n");printf(" * 3.查询通讯记录 *n");printf(" * 4.删除通讯记录 *n");printf(" * 5.显示通讯录信息 *n");printf(" * 0.退出管理系统 *n");printf("n* 欢迎使用通讯录系统*n");int flag=0; /通讯录是否建立int menu; /菜单选项printf("请选择0-5:");scanf("%d",&menu);while(menu!=0)switch(menu) /用于调用菜单的语句case 1:L=creatIncreLink(); /调用函数实现通讯录的建立printf("建立通讯录:");printList(L);flag=1;break;case 2:if(flag=1)int number,telenum;char name20;printf("请输入通讯者的学号和姓名:n");printf("请输入学号:n");scanf("%d",&number);printf("请输入姓名:");char temp=getchar();gets(name);printf("请输入电话号码:");scanf("%d",&telenum);LinkList p=(LinkList)malloc(LEN); /新结点p->number=number;strcpy(p->name,name);p->telenum=telenum;insertYouXu(L,p); /有序地插入新结点printf("插入后:");printList(L);elseprintf("n ERROR:通讯录还没有建立,请先建立通讯录n");break;case 3:int way,n,s; /查找方式char na20;if(L!=NULL)if(flag)printf("请选择查找方式:n");printf(" 1.按学号; 2.按姓名");scanf("%d",&way);if(way=1)printf("n请输入学号:");scanf("%d",&n);s=searchNum(L,n); /查找通讯录成员if(s=0)printf("无此通讯者,查找失败!n");else if(way=2)printf("n请输入姓名:");char temp=getchar();gets(na);s=searchName(L,na);if(s=0)printf("无此通讯者,查找失败!n");elseprintf("通讯录中无记录!n");break;elseprintf("通讯录中无记录!n");break;case 4:int way; /删除方式printf("请选择删除方式:1.按序号 2.按学号 3.按姓名 n");scanf("%d",&way);if(way=1)int n;printf("请输入通讯录序号:");scanf("%d",&n);printf("删除后:n");deleteElem(L,n); /按序号删除printList(L);else if(way=2)int n,f;printf("请输入学号:");scanf("%d",&n);f=delNum(L,n); /按学号删除if(f!=0)printf("删除后:n");printList(L);else printf("无该学号,删除失败!n");else if(way=3)char na20;int f;printf("n请输入姓名:");char temp=getchar();gets(na);f=delName(L,na); /按节点删除if(f!=0)printf("删除后:n");printList(L);elseprintf("无该学号,删除失败!n");else printf("ERROR!n");break;case 5:printf("当前通讯录内容如下:n");printList(L); /打印通讯录break;case 0:exit(0);default:printf("n 没有此功能,重新输入n");printf("选择功能:");scanf("%d",&menu); 读书的好处1、行万里路,读万卷书。2、书山有路勤为径,学海无涯苦作舟。3、读书破万卷,下笔如有神。4、我所学到的任何有价值的知识都是由自学中得来的。达尔文5、少壮不努力,老大徒悲伤。6、黑发不知勤学早,白首方悔读书迟。颜真卿7、宝剑锋从磨砺出,梅花香自苦寒来。8、读书要三到:心到、眼到、口到9、玉不琢、不成器,人不学、不知义。10、一日无书,百事荒废。陈寿11、书是人类进步的阶梯。12、一日不读口生,一日不写手生。13、我扑在书上,就像饥饿的人扑在面包上。高尔基14、书到用时方恨少、事非经过不知难。陆游15、读一本好书,就如同和一个高尚的人在交谈歌德16、读一切好书,就是和许多高尚的人谈话。笛卡儿17、学习永远不晚。高尔基18、少而好学,如日出之阳;壮而好学,如日中之光;志而好学,如炳烛之光。刘向19、学而不思则惘,思而不学则殆。孔子20、读书给人以快乐、给人以光彩、给人以才干。培根

    注意事项

    本文(软件技术综合实验课程设计解读(共24页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开