1、用户手册目录1、引言 2编写目的 2项目背景 2参考资料 22、总体设计 2需求概述 2系统结构图 33、程序描述 3M1身份验证 3M2主菜单模块 4M3插入模块 5删除模块 7M5查询模块 9M6显示功能 11M7借出模块 12M8归还模块 13M9读入模块 15M10备份模块 16M11退出模块 174、测试计划执行情况 19权限功能 19插入功能 19插入功能 20删除操作 21查询模块 21显示模块 22借出模块 23归还模块 24文件读入模块 25文件备份模块 26退出模块 265、评价结果 26软件能力 26缺陷和限制 26建议: 26测试结论 271、引言编写目的:设计一图书馆
2、管理系统以代替现有的管理管理系统。本说明书读者为软件设计者。项目背景:该软件由学生个人设计,无开发部门和主管部门,主要供学生练习使用。该软件独立于其它软件系统。参考资料: 万晓东 施玉霞等著软件技术基础教程 09年7月 谭浩强 著C语言程序设计 第三版 张志航 王珊珊等著程序设计语言C 07年9月2、总体设计需求概述录入功能: 输入相关数据浏览功能: 以列表方式列出所有记录信息信息查询功能: 根据书名匹配查询,并将查询结果列出借出归还功能: 根据借出与归还的书籍信息修改相应数据插入与删除功能:插入一条新的图书信息,删除某图书的信息信息的备份与读入功能:将输入文件进行备份和从指定文件读入数据设置
3、访问权限功能:只有输入正确密码才可以进行操作 否则无权操作系统结构图3、程序描述M1身份验证功能:验证身份性能:输入项:预设密码输出项:欢迎语句算法: int keyword=111,a;printf(Please input keyword:);scanf(%d,&a);if(a!=keyword) exit(0);elseprintf(Welcome!);测试要求:运行正常。M2主菜单模块功能:选择功能性能:输入项:数字0-9输出项:对应功能项算法: intDisplay_MainMenu() /*显示菜单的函数*/char x;dosystem(cls);printf(*n);print
4、f(1.Create BookListn);printf(2.Display All Booksn);printf(3.Insert a BookInformationn);printf(4.Delete a Bookn);printf(5.Borrow a Bookn);printf(6.Return a Bookn);printf(7.Queryn);printf(8.Add Records From a Filen);printf(9.Write to a Filen);printf(0.Goodbyen);printf(*n);printf(Please choose from 0-9
5、:);printf(n); x=getchar();while(x9);return(x-0);测试要求:运行正常。M3插入模块功能:插入新信息性能:输入项:书名 数量输出项:成功提示算法: Book *Insert(Book *head,Book *s) /*插入结点的函数*/ Book *p0,*p1,*p2; p1=head;p0=s; /*使p1指向第一个结点,p0指向要插入的结点*/ if(head=NULL) /*原来的链表是空表*/ head=p0;p0-next=NULL; /*使p0作为首结点*/while(strcmp(p0-Name,p1-Name)0&(p1-next!
6、=NULL) p2=p1; p1=p1-next; if(strcmp(p0-Name,p1-Name)next=p1;if(head=p1) head=p0;else p2-next=p0; else p1-next=p0; p0-next=NULL; return(head);Book *Insert_a_record(Book *head) Book *newrecord;newrecord=(Book *)malloc(LEN); /*动态分配存储空间*/scanf(%s%d,newrecord-Name,&newrecord-all);newrecord-borrow=0;newre
7、cord-left=newrecord-all;head=Insert(head,newrecord);printf(Insert successfullyn); /*输出插入成功的信息*/return(head);测试要求:运行正常。删除模块功能:删除信息性能:输入项:所删书名输出项:成功提示算法: Book *Delete(Book *head,char *name) Book *p1,*p2;if(head=NULL)printf(Sorry No record!n); p1=head;while(strcmp(p1-Name,name)!=0&p1-next!=NULL) /*p1不是
8、要找的结点,且后面还有结点*/ p2=p1;p1=p1-next; /*p1后移一个结点*/ if(strcmp(p1-Name,name)=0) /*找到了*/ if(p1=head)head=p1-next; /*若p1为首指针,使下一结点为首指针*/ else p2-next=p1-next; /*否则将下一结点地址赋给前一结点地址*/ printf(delete %s successfullyn,name); /*输出删除成功的信息*/ return(head);Book *Delete_a_record(Book *head) char name20,ch; Book *p;scan
9、f(%s,name);getchar(); /*接收回车*/ p=Query(head,name); if(p=NULL) printf(Cannot Find %sn,name); /*找不到结点*/else printf(Delete %s, Y/N?n,name);ch=getchar();system(pause);if(ch=y|ch=Y)while(p!=NULL) head=Delete(head,name); /*删除所有与输入相同的记录*/ p=Query(head,name); return(head);测试要求:运行正常。M5查询模块功能: 查询功能性能:输入项:查询书名
10、输出项:相应书籍信息算法: Book *Query(Book *head,char *name) Book *p; p=head;while(strcmp(name,p-Name)!=0&p-next!=NULL) p=p-next; if(strcmp(name,p-Name)=0) /*找到了,返回结点地址*/return(p); else /*找不到返回空指针*/return(NULL);voidQuery_a_record(Book *head) char name20; Book *p;scanf(%s,name); p=Query(head,name);if(p!=NULL) /*
11、找到了*/ printf(Find successfullyn%s total:%d left:%d borrow:%dn,p-Name,p-all,p-left,p-borrow); elseprintf(Cant find the records of %sn,name); /*找不到*/测试要求:运行正常。M6显示功能功能: 显示所有信息性能:输入项:相应的菜单序号输出项:所有书籍信息算法: void Display(Book *head) Book *p;inti; p=head;printf(NumBookName Total Left Borrown);for(i=1;p!=NUL
12、L;i+) printf(%-5d%-14s%-10d%-10d%-5dn,i,p-Name,p-all,p-left,p-borrow); p=p-next;if(i%10=0) system(pause); /*按回车翻页显示*/printf(NumBookName total left borrown); 测试要求:运行正常。M7借出模块功能:借出书籍性能:输入项:所借书名 数量输出项:成功信息算法: Book *Borrow_a_Book(Book *head) char name20,ch;int n; Book *p;scanf(%s%d,name,&n);getchar(); /
13、*接收回车*/ p=Query(head,name); if(p=NULL) printf(Cannot Find %sn,name); /*找不到结点*/elseprintf(Are you sure to borrow? %s, Y/N?n,name);ch=getchar();system(pause);if(ch=y|ch=Y)head=Borrow(head,name,n);return(head);测试要求:运行正常。M8归还模块功能:归还书籍性能:输入项:所换书名 数量输出项:成功提示算法: Book *Return_a_Book(Book *head) char name20,
14、ch;int n; Book *p;scanf(%s%d,name,&n);getchar(); /*接收回车*/ p=Query(head,name); if(p=NULL) printf(Cannot Find %sn,name); /*找不到结点*/elseprintf(Are you sure to return? %s, Y/N?n,name);ch=getchar();system(pause);if(ch=y|ch=Y)head=Return(head,name,n);return(head);Book *Return(Book *head,char *name,int sum)
15、 Book *p1; p1=head;while(strcmp(p1-Name,name)!=0&p1-next!=NULL) /*p1不是要找的结点,且后面还有结点*/ p1=p1-next; /*p1后移一个结点*/ if(strcmp(p1-Name,name)=0) /*找到了*/ p1-borrow=p1-borrow-sum; p1-left=p1-left+sum;return(head);测试要求:运行正常。M9读入模块功能:从文件读入信息性能:输入项:文件名输出项:成功提示算法: Book *AddfromText(Book *head,char *filename) FIL
16、E *fp;intn,i;if(fp=fopen(filename,r)=NULL) printf(Cannot find file:%sn,filename); /*打不开所指定文件*/return(head);fscanf(fp,%d,&n); /*待插入记录个数*/for(i=0;iName,&p-all,&p-left,&p-borrow); head=Insert(head,p); /*插入结点*/ printf(Add from %s successfullyn,filename);fclose(fp);return(head);测试要求:运行正常。M10备份模块功能:数据备份性能
17、:输入项:所建文档名输出项:成功提示算法: Book *WritetoText(Book *head,char *filename)FILE *fp;Book *p;if(head=NULL) printf(No Record!n);return(head);fp=fopen(filename,w); /*打开文件*/ p=head;while(p!=NULL) fprintf(fp,%-14s%-10d%-10d%-10dnn,p-Name,p-all,p-left,p-borrow); /*文件输出*/ p=p-next;printf(Write to %s successfullyn,f
18、ilename); /*输出写到文件完毕的信息*/fclose(fp);return(head);测试要求:运行正常。M11退出模块功能:退出程序性能:输入项:数字0输出项:再见语句算法: void Quit(Book *head)Book *p,*p1,*p2;FILE *fp;char filename=last; p2=p1=head;if(head!=NULL) fp=fopen(filename,w); /*打开文件*/ p=head;while(p!=NULL) fprintf(fp,%s %d %d %dn,p-Name,p-all,p-left,p-borrow); /*文件输
19、出*/ p=p-next;printf(Write to %s successfullyn,filename); /*输出写到文件完毕的信息*/fclose(fp);while(p1!=NULL) /*p1指向的结点不是空指针*/ p2=p1-next; free(p1); /*释放存储空间*/ p1=p2; /*p1后移一个结点*/ 测试要求:运行正常。4、测试计划执行情况权限功能测试数据:输入正确密111测试结果:成功进入主界面,说明本模块功能正常插入功能测试数据:无测试结果:菜单显示正常。本模块功能正常。插入功能测试数据:history 100测试结果:调用显示函数显示结果。本模块功能正
20、常。删除操作测试数据:history测试结果调用显示函数显示结果:输出结果正确,说明本模块功能正常。查询模块测试数据:预输入数据 history 100 physics 200 查询history测试结果:显示结果 history 100 0 0说明本模块运行正常。显示模块上述过程已经对本功能进行了测试。结果:显示模块运行正常。借出模块测试数据:预输入数据 history 100physics 200 调用借出函数借 history 50maths 100测试结果调用显示函数显示结果:归还模块测试数据:预输入数据 history 100physics 200 调用归还函数还 history 50测试结果:文件读入模块测试数据:文本文档 a.txt测试结果:调用显示函数显示结果测试结果正确。文件备份模块测试数据: 测试数据采用上一步写入的数据测试结果退出模块测试数据: 无测试结果 成功退出程序 并生自动成备份文件 last.txt 退出模块运行正常。5、评价结果软件能力: 软件各项功能复合预期,各子程序运行正常缺陷和限制:每次登陆后必须手工调入上一次的备份文件以恢复系统数据,给操作者带来不便建议: 完善系统的数据库功能,提供安全可靠的数据保存功能。测试结论: 本软件测试通过。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1