软件技术综合实验课程设计解读

上传人:奇异 文档编号:97460947 上传时间:2022-05-27 格式:DOCX 页数:22 大小:144.17KB
返回 下载 相关 举报
软件技术综合实验课程设计解读_第1页
第1页 / 共22页
软件技术综合实验课程设计解读_第2页
第2页 / 共22页
软件技术综合实验课程设计解读_第3页
第3页 / 共22页
点击查看更多>>
资源描述
井冈山大学电子与信息工程学院软件技术综合实验(20152016年度第一学期)课程名称:软件技术综合实验学 院:班 级:姓 名:学 号:任课教师:成 绩:2015年10月20日成绩评定指导教师评语成绩成绩备注指导教师:日 期:目录一、设计要求1 .问题描述1.2 .需求分析1.二、概要设计1 .主界面设计 1.2 .存储结构设计 2.3 .系统功能设计2.三、模块设计.2.1 .模块设计2.2 .系统子程序及功能设计33 .函数主要调用关系图 .3四、详细设计4.1.数据类型定义4.五、测试分析6.1. 通讯录的建立 6.2. 插入通讯记录 7.3. 查询通讯记录 7.4. 删除通讯记录 8.5. 显示通讯录信息 8.六、用户手册9.七、调试报告9.学生通讯录管理系统一、设计要求1 .问题描述纸质的通讯录已经不能满足大家的要求, 容易丢失、查找困难等问题是纸质 通讯录所不能克服的缺点。“学生通讯录管理系统”是为了帮助老师、同学,或 者其他一些需要使用通讯录的人员进行管理和分析的一种应用程序。2 .需求分析(1)输入数据建立通讯录。(2)查询通讯录中满足要求的信息。(3)插入新的通讯录信息。(4)删除不需要的通讯录信息。(5)查看所有的通讯录信息。二、概要设计1 .主界面设计为了实现学生通讯管理系统各功能的管理,设计一个含有多个菜单项的主控 菜单子程序以链接系统的各项子功能,方便用户使用本系统。本系统主控菜单运 行界面如图1所示。统系录 息 讯文录录记近记录系 用的讯讯讯讯理 使艮通通诵通官 迎讯人询除一畲查删显退 B V B V A 12 3 4 5 0*.口人 欢3 迎使用 通讯录系 g充苴 M*M M K*MM MT*it请选择。-5 :2 .存储结构设计本系统主要采用链表结构类型来表示存储在“学生通讯录管理系统”中的信 息。其中,链表结点由4个分量构成:通讯录成员学号、通讯录成员姓名、通讯 录成员电话号码、指向该结构体的指针。止匕外,本系统还设置了一个全局变量 seat表示通讯录中成员的序号。3 .系统功能设计本系统设置了 5个子功能菜单,5个子功能的设计描述如下。(1)建立通讯录系统。可以一次输入多个成员通讯录的信息,建立通讯录。该功能由creatIncreLink()函数实现。(2)插入通讯记录。每次可以插入一个成员通讯录的信息,如果要连续插入多个成员通讯录信息必须多次选择该功能。该功能由insertYouXu()函数实现。(3)查询通讯记录。可以按两种方式查询所需要的通讯录成员记录,一是按学号查询,二是按姓名查询。分别由 searchNum()函数和searchName()a数实现。(4)删除通讯记录。可以对通讯录中不再需要的信息进行删除。 有三种删除 方式:按序号进行删除,按学号进行删除和按姓名进行删除。 分别由deleteElem() 函数,delNum()函数和delName()函数实现。(5)显示通讯录记录。可以查看通讯录中所有的通讯录成员记录。该功能由printList()函数实现。三、模块设计1 .模块设计主程序模块本程序包含两个模块:主程序模块和链表程序模块。具调用关系如图2所示链表操作模块图2模块调用示意图2 .系统子程序及功能设计本程序共设置10个子程序,各程序的函数名及功能说明如下,其中大部分insertYouXu(LinkList L,LinkList Elem)/函数都是链表的基本操作函数。(1) LinkList creatIncreLink()(2) deleteElem(LinkList L,int i)素(3) delName(LinkList L,char n口)(4) delNum(LinkList L,int n)(5) void/链表的创建/从通讯录中按序号删除第i个元/按姓名删除通讯者记录/按学号删除通讯者记录插入一条通讯录/打印指针地址为L的通讯录/查找位于当前地址元素的前一/按姓名查找通讯者记录/按学号查找通讯者记录设定界面的颜色和大小,调用链(6) printList(LinkList 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所示。图中数字是个函数 的编号。图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所示学号姓名电御31001001100211878423128784231387842314图5插入通讯录记录3 .查询通讯记录在主菜单下,用户输入3并回车,可以按照两种方式查询通讯录。 一种是 按照学号查询,另一种方式是按照姓名查询。可按照提示操作,运行结果如图 6 所示。:找杳- 功择 ft口-学按姓按2人找,输查号技CT ER 0 “于的州口 IrtnAE01:第rzrpTfl号XJn制图6查询通讯录记录4 .删除通讯记录在主菜单下,用户输入4并回车,进行通讯录记录的删除。可以按三种方式进行删除操作:按序号、按学号和按姓名。图 7是按序号删除的运行结果g皆|埼嬴式 1.按序号2 .按学号3 .按姓名 融通讯录姓名 电话号码11001李四8784231321002主五87842314图7删除通讯录记录5 .显示通讯录信息主菜单下,用户输入5并回车,查看通讯录中所有的成员信息。运行结果 如图8所示。选择功能:5当前通讯录内容如下;羊号 姓名电话号码11001李四8784231321002主五87842314ITTIZxL:图8:显示通讯录信息六、用户手册(1)本程序执行文件为“学生通讯管理系统.exe”。(2)进入本系统之后,用户可在该界面下输入各子类菜单前对应的序号并回 车,执行相应子菜单命令。(3)本系统没有提供直接修改通讯录信息的功能的,课通过删除和插入操作 完成修改功能。(4)本系统对于学生通信录的管理十分有意义,解决了纸质通信录的弊端。七、调试报告(1)在程序的录入工程中由于自己的粗心,导致程序出错,花费了大量时 问调试。(2)链表的创建比较麻烦,得逐个录入,有待完善。(3)总体而言,本程序还是有很大的价值,解决了纸质通信录带来的大部 分问题。八、主要程序清单#include #include #include #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 /盾1为空表,插到头结点之后p=prior(L,p);Elem-next=p-next;p-next=Elem;/8.主函数。设定界面的颜色大小,调用工作区模块函数 void main()LinkList L=NULL;printf(n*n);printf(*n);printf(*n);printf(AA欢迎使用通讯录系统1 .通讯录的建立2 .插入通讯记录3 .查询通讯记录*n);printf(4.删除通讯记录*n);printf(*5.显示通讯录信息*n);printf(*0.退出管理系统*n);printf(n*AA欢迎使用通讯录系统*?)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; else printf(通讯录中无记录! n); break;case 4:int way; /删除方式n);printf(请选择删除方式:1.按序号2.按学号3.按姓名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);elseprintf(无该学号,删除失败!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);elsen);printf(无该学号,删除失败! 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、我扑在书上,就像饥饿的人扑在面包上。 iWj尔基14、书到用时方恨少、事非经过不知难。一一陆游15、读一本好书,就如同和一个高尚的人在交谈一一歌德16、读一切好书,就是和许多高尚的人谈话。一一笛卡儿17、学习永远不晚。一一高尔基18、少而好学,如日出之阳;壮而好学,如日中之光;志而好学,如炳烛之光。一一刘向19、学而不思则惘,思而不学则殆。一一孔子20、读书给人以快乐、给人以光彩、给人以才干。一一培根
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 营销创新


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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