您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > C语言-图书借阅管理系统
成绩评定表学生姓名任春雷班级学号1203050126专业计算机科学与技术课程设计题目图书借阅系统评语组长签字:成绩日期201年月日课程设计任务书学院信息科学与工程学院专业计算机科学与技术学生姓名任春雷班级学号1203050126课程设计题目图书借阅系统实践教学要求与任务:设计一个图书借阅系统,功能包括:图书管理子系统,由管理员负责录入书籍(包括ISBN号、书名、作者、数量等信息),废旧图书销毁等功能;图书借阅子系统(保存用户名、借阅的书的ISBN号、借阅日期等信息),负责图书的借阅、归还、续借、超期罚款等功能;查询子系统,包括可以查询书库中的书、客户借阅情况等,信息保存到文件中。工作计划与进度安排:第14周:问题分析,方案设计,软件编码和调试;第19周:软件测试,书写课设报告,答辩。指导教师:201年月日专业负责人:201年月日学院教学副院长:201年月日一、实训题目和实训任务1.实训题目图书借阅系统2.实训任务设计一个图书借阅系统,功能包括:图书管理子系统,由管理员负责录入书籍(包括ISBN号、书名、作者、数量等信息),废旧图书销毁等功能;图书借阅子系统(保存用户名、借阅的书的ISBN号、借阅日期等信息),负责图书的借阅、归还、续借、超期罚款等功能;查询子系统,包括可以查询书库中的书、客户借阅情况等。(可以自己发挥);信息保存到文件中。3.题目分析一个学校的图书馆,其图书借阅管理系统应有如下几个功能:1,图书管理员将图书的ISBN号,书名,书名,作者,价格等输入到系统中存储区来,以便以后使用。而且还能修改图书的内容。2,读者可以按照图书的ISBN号或书名,作者到系统中查找并借阅所需要的图书,每人借阅图书的数量不超过20本。3,建立文件,将信息保存在文件中。方法:1,建立一个关于图书的结构体,内含ISBN号,书名,作者,出版社和价格。2,InsertDoc函数,负责新书信息的插入。3,voidsort_maopao函数,用冒泡法将图书的ISBN号以由小到大的顺序进行排列。4,voidDeleteDoc函数,将废旧图书信息进行删除。5,voidPrint_Book_Doc函数,输出图书的信息,方便读者选书。6,voidsearch_book函数,进行图书的查询。7,voidinfo_change函数,将图书信息进行修改。8,主函数,用switch-case结构进行函数的调用。4.开发工具和环境开发工具:VisualC++6.0,CodeBlock10.05,等环境:Windows7二、软件设计1.关键技术分析设计一个图书借阅系统,功能包括:图书管理子系统,由管理员负责录入书籍(包括ISBN号、书名、作者、数量等信息),废旧图书销毁等功能;图书借阅子系统(保存用户名、借阅的书的ISBN号、借阅日期等信息),负责图书的借阅、归还、等功能;查询子系统,包括可以查询书库中的书,信息保存到文件中。2.软件模块设计图2-2-13.软件界面设计图2-3-1图书管理系统信息录入图书排序信息删除信息浏览信息查询信息修改图书借阅三、软件测试及运行结果1.测试方案选择1,输入01大学英语李梦华上海外语3802大学物理许嵩宁科学出版社51选择2,输出图3-2-1选择7,输出图3-2-22.测试结结果图3-2-1图3-2-2四、收获和体会1.实习收获在编程实践中,我才知道自己基础知识的不足,通过一段时间的努力学习,我的基础知识更加牢固,尤其是后面指针,结构体,链表,文件的知识了解的更加深入。其次是知识的运用,以前学到的知识都是片面的了解,一到编程序时就无从下手,现在能熟练的应用各种知识,使知识得到应用。最后是编程的技巧,从整体构型到各个函数的应用都有了很大的进步。2.实习体会通过一段时间的编程实践,使我c语言的知识了解的更加深刻,知识面更加宽广。同时,在编程实践中遇到了很多困难,明显的了解到自己知识运用能力的不足,通过查书和与同学交流,使我取得了很大的进步。在编程过程中,与同学的交流使我获得了很大的进步,老师的指导更是使我获益匪浅,一些难懂的知识经老师点拨瞬间变得豁然开朗。以前看到能力强的同学编数百行的程序就吓住了自己,总觉得自己不行,但经过努力,当程序运行出来时才觉得,原来编程并不是很难,这极大地增加了自己的自信心,为以后的学习和工作打下了良好地基础,我认为这才是我最重要的收获。五、源代码清单#includestdio.h#includemath.h#includestring.h#includestdlib.hstructbooks_list{charwriter[20];/*作者名*/chartitle[20];charISBN[20];/*书名*/charpublishinghouse[20];/*出版单位*/intprice,borrowed;/*价格*/structbooks_list*next;/*链表的指针域*/};structbooks_list*Create_Books_Doc();/*新建链表*/voidInsertDoc(structbooks_list*head);/*插入*/voidsort_maopao(structbooks_list*head);//排序voidDeleteDoc(structbooks_list*head,intnum);/*删除*/voidPrint_Book_Doc(structbooks_list*head);/*浏览*/voidsearch_book(structbooks_list*head);/*查询*/voidinfo_change(structbooks_list*head);/*修改*/voidsave(structbooks_list*head);/*保存数据至文件*//*新建链表头节点*/structbooks_list*Create_Books_Doc(){structbooks_list*head;head=(structbooks_list*)malloc(sizeof(structbooks_list));/*分配头节点空间*/head-next=NULL;/*头节点指针域初始化,定为空*/returnhead;}/*保存数据至文件*/voidsave(structbooks_list*head){structbooks_list*p;FILE*fp;p=head;fp=fopen(data.txt,w+);/*以写方式新建并打开data.txt文件*/fprintf(fp,--------编号-------书名---------------作者----------出版社-----------价格\n);/*指针从头节点开始移动,遍历至尾结点,依次输出图书信息*/while(p-next!=NULL){p=p-next;fprintf(fp,%-6.6s%-15.10s%-10.10s%-10.10s%-10.10d\n,p-ISBN,p-title,p-writer,p-publishinghouse,p-price);}fprintf(fp,\n);fclose(fp);printf(已将图书数据保存到data.txt文件\n);}voidsort_maopao(structbooks_list*head){structbooks_list*tail,*p,*q,*p1,*t;//p1等于headt等于headq保存p的next节点p1=(structbooks_list*)malloc(sizeof(structbooks_list));for(t=head-next;t!=NULL;t=t-next)for(p=head-next,p1=head;p-next!=NULL;p=p-next,p1=p1-next){if(strcmp(p-ISBN,p-next-ISBN)0){q=p-next-next;tail=p-next;tail-next=NULL;p-next=q;p1-next=tail;tail-next=p;p=p1;}}save(head);//保存文件}/*插入*/voidInsertDoc(structbooks_list*head){/*定义结构体指针变量s指向开辟的新结点首地址p为中间变量*/structbooks_list*s,*p;charflag='Y';/*定义flag,方便用户选择重复输入*/p=head;/*遍历到尾结点,p指向尾结点*/while(p-next!=NULL){p=p-next;}/*开辟新空间,存入数据,添加进链表*/while(flag=='Y'||flag=='y'){system(cls);p-borrowed=0;s=(structbooks_list*)malloc(sizeof(structbooks_list));printf(\n请输入图书编号:);fflush(stdin);scanf(%s,s-ISBN);printf(\n请输入图书书名:);fflush(stdin);scanf(%s,s-title);printf(\n请输入图书作者名:);fflush(stdin);scanf(%s,s-writer);printf(\n请输入图书出版社:);fflush(stdin);scanf(%s,s-publishinghouse);printf(\n请输入图书价格:);fflush(stdin);scanf(%d,&s-price);printf(\n);p-next=s;/*将新增加的节点添加进链表*/p=s;/*p指向尾节点,向后移*/s-next=NULL;printf(━━━━添加成功!━━━━);printf(\n继续添加?(Y/N):);fflush(stdin);scanf(%c,&flag);printf(\n);if(flag=='N'||flag=='n'){break;}elseif(flag=='Y'||flag=='y'){continue;}}save(head);/*保存数据至文件*/system(cls);return;}/*查询操作*/voidsearch_book(structbooks_list*head){structbooks_list*p;chartemp[20];p=head;if(head==NULL||head-next==NULL)/*判断数据库是否为空*/{printf(━━━━图书库为空!━━━━\n);}else{printf(请输入您要查找的书名:);fflush(stdin);scanf(%s,temp);/*指针从头节点开始移动,遍历至尾结点,查找书目信息*/while(p-next!=NULL){p=p-next;if(strcmp(p-title,temp)==0){printf(\n图书已找到!\n);printf(\n);printf(编号:%s\t\n,p-ISBN);printf(书名:%s\t\n,p-writer);printf(作者名:%s\t\n,p-writer);printf(出版单位:%s\t\n,p-publishinghouse);printf(价格:%.2d\t\n,p-price);}if(p-next==NULL){printf(\n查询完毕!\n);}}}return;}/*浏览操作*/voidPrint_Book_Doc(structbooks_list*head){structbooks_list*p;if(head==NULL||head-next==NULL)/*判断数据库是否为空*/{printf(\n━━━━没有图书记录!━━━━\n\n);return;}p=head;printf(\n\n\n\t\t编号书名作者出版单位价格\n);/*指针从头节点开始
本文标题:C语言-图书借阅管理系统
链接地址:https://www.777doc.com/doc-3418658 .html