1、北 京 理 工 大 学 珠 海 学 院课 程 设 计 说 明 书_2012_2013_学年第_2_学期题目: 图书管理程序 学 院: 专业班级: 学 号: 学生姓名: 指导教师: 成 绩: 时 间: 2013 年 6 月 18 日北京理工大学珠海学院课程设计任务书2012 2013 学年第 2 学期学生姓名: 专业班级: 指导教师: 工作部门: 一、课程设计题目图书管理程序二、课程设计内容 使用文本命令行界面 用文件保存图书馆里的图书信息。 能实现图书信息的增、删、改、查等功能。三、进度安排(1)1-2 学时,选定题目、分析需求、理解需求;(2)3-4 学时,程序设计,定义数据类型、数据处理方
2、式;(3)5-10 学时,编写程序、调试、测试;(4)11-12 学时,编写设计报告;(5)13-16 学时,答辩。四、基本要求(1)使用 C+语言,源程序要有适当的注释,使程序容易阅读(2)学生可自动增加新功能模块(视情况可另外加分)(3)要求:建立文件操作类、界面显示类及相关接口类,用文件读写实现(5)写出课程设计报告,应不少于 3000 字(不含附录) ,同一组学生只需提交 1 份,但必须在报告中列明分工。课程负责人签名: 2013 年 6 月 18 日ii课程设计成绩评定表成绩评定权重姓 名 平时成绩20报告成绩50答辩成绩30总分总成绩(五分制)目 录第一章 设计内容1第二章 总体设
3、计22.1 模块化设计 22.2 程序运行示意图 3第三章 详细设计43.1 数据结构设计 43.2 程序模块设计 93.3 流程图 10第四章 调试与测试134.1 调试过程中的主要问题 134.2 测试结果 .13参考文献 18心得体会 190第一章 设计内容设计一个文本命令行界面的图书管理程序,登录系统,进行自助操作。程序具体功能有:(1) 创建书库:重新创建一个书库并输入新的图书信息保存到文件。(2) 图书借出:在文件里找出相应的图书并删除再保存到文件。(3) 图书归还:在文件里添加相应的图书并保存到文件。(4) 更改图书信息:在文件中找到相应的图书并修改保存到文件。(5) 打印图书信
4、息:打印出图书库的所有图书。(6) 查询借还记录:打印出创建图书以来的图书借还记录。北京理工大学珠海学院计算机学院课程设计1第二章 总体设计2.1 模块化设计为实现系统功能,本程序主要分为七个模块。它们分别为:登陆页面、创建书库、借书、还书、更改图书信息、查询图书信息、查询记录。这七个函数再通过主函数调用分别得以实现。主函数,首先提供了程序登录时的主界面,有让客户选择的菜单。然后,通过执行多分支选择语句switch 语句,分别实现其它各个函数的调用功能。其它各个函数的功能分别如下:int menu(); /功能菜单b *creat(); /创建图书int add(); /添加图书int sav
5、e(b *p); /保存文件void bprint(); /打印文件b *change(b *head); /修改信息b *load(b *head); /导入文件b *del(b *head); /删除图书void print(b *head);/打印链表void nprint(); /查看记录2.2 程序运行示意图2用户登陆主菜单选择操作序号1,创建书库 3,借出,存款2,归还图书 5,查看书库4.修改返回主菜单退出系统图 2-1 程序运行示意图北京理工大学珠海学院计算机学院课程设计3第三章 详细函数代码void delay() /延时函数int i;for(i=0;ia;system(“
6、cls“);return a;b *load(b *head) /导入文件内容b *p1,*p2;int m=0;FILE *fp;if(fp=fopen(“f2.txt“,“r“)=NULL)coutnum,coutnumnamenewsnext=p1;p2=p1;p1=(b *)malloc(len);p2-next=NULL;fclose(fp);n=m;delay();return (head);int save(b *p1) /将链表存为文件FILE *fp;if(fp=fopen(“f2.txt“,“w+“)=NULL)coutnum,p1-name,p1-news);p1=p1-
7、next;fclose(fp);coutp1-num;coutp1-name;coutp1-news;n+;if(n=1)head=p1;elsep2-next=p1;p2=p1;p1=(b *)malloc(len);system(“cls“);coutch;system(“cls“);while(ch=y|ch=Y);p2-next=NULL;save(head);system(“cls“);return (head);int add() /在文件尾添加图书信息char ch;char bookname20,booknews100;int booknum;FILE *fp;if(fp=fo
8、pen(“f2.txt“,“a+“)=NULL)北京理工大学珠海学院计算机学院课程设计7coutbooknum;coutbookname;coutbooknews;savereturn(booknum,bookname,booknews); /归还图书保存文件coutch;fprintf(fp,“%dt%st%sn“,booknum,bookname,booknews);coutstr0str1str2;coutnumber;while(number!=0)if(head=NULL)coutnump1=p1-next;if(number=p1-num)saveborrow(p1-num,p1-
9、name,p1-news); /借出图书保存文件if(p1=head)head=p1-next;elsep2-next=p1-next;elsecoutnumber;return head;b *change(b *head) /修改图书信息char s120,s2100;b *p1,*p2;int number,s;head=load(head); /导入文件10coutnumber;while(number!=0)if(head=NULL)coutnump1=p1-next;if(number=p1-num)coutnumnamenewss1;couts2;couts;strcpy(p1-
10、name,s1);strcpy(p1-news,s2);p1-num=s;coutnumber;save(head); /保存到文件return head;/主函数/int main()北京理工大学珠海学院计算机学院课程设计11b *head=0,*stu=0;int k;while(1)system(“cls“);k=menu();switch(k)case 1: head=creat();break;case 2: add();break;case 3: head=del(head);break;case 4: head=change(head);break;case 5: bprint();break;case 6: nprint();break;case 0: exit(0);return 0;第四章 测试结果121.登录界面2.新建书库北京理工大学珠海学院计算机学院课程设计133.归还图书4.借出图书145.修改信息6.查看书库7.查看借还记录北京理工大学珠海学院计算机学院课程设计15计算机学院课程设计答辩记录表专业学院 计算机学院 专业 软件工程 姓名 学号课程设计题目答辩日期 答辩时间答辩提问及其回答记录16计算机学院课程设计答辩记录表专业学院 计算机学院 专业 软件工程 姓名 学号课程设计题目答辩日期 答辩时间答辩提问及其回答记录