欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > DOC文档下载
 

《C语言程序》课程设计报告书-图书管理系统

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

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

《C语言程序》课程设计报告书-图书管理系统

吉林工程技术师范学院?C语言程序?课程设计报告书设计题目: 图书管理系统 专业: 通信工程 班级:T-0741 学生姓名: xx 学号:xx指导教师: xx xxx 2021年6月 信息工程学院目 录摘 要 02第一章 绪论 04第二章 问题定义(或系统分析) 05第三章 总体设计与详细设计 07第四章 编码实现09第五章 调试与测试12第六章 总结与心得15附录:1源代码162参考资料24摘 要 当今计算机应用在生活中可以说是无处不在,因此作为二十一世纪的大学生来说掌握程序开发技术是十分重要的.而C语言又是最常见的,功能最强大的一种语言.因此,做好C语言课程设计是非常必要的.课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程。从拿到题目到完成整个编辑的几个星期里,不仅稳固了以前学过的知识,还可以学到很多新的东西。我做的图书资料管理系统,虽然是一个小程序,但对我这样一初学者来说确实是一个很大的困难,以至于好几节课程设计下来还是没什么太大的进展。在图书管理系统中,要为每一个借阅者建立一个帐户,并给借阅者发放借阅卡,帐户中存储借阅者的个人信息,借阅信息,以及预定信息。持有借阅卡的借阅者可以借阅书刊,反还书刊,查询书刊信息,预定书刊并取消预定,但这些操作都是通过图书管理员进行的,即借阅者不直接与系统交互,而是图书管理员充当借阅者的代理与系统交互。在借阅书刊时,需要输入所借阅的书刊的名字,书刊的ISBN/ISSN号,然后输入借阅者的图书卡号和借阅者名,完成后提交所添表格,系统验证借阅者是否有效,假设有效,借阅请求被接受,系统查询数据库系统,看借阅者所借阅书刊是否存在,假设存在,那么借阅者可以借阅书刊,建立并在系统中存储借阅记录。借阅者还书后,删除关于所还书刊的借阅记录。如果借阅者所借阅的书刊已被借出,借阅者还可以预定该书,一旦借阅者预定的书刊可以获得,就将书刊直接寄给预定人。 这个程序主要考察了学生对结构体,指针,文件的操作,以及C语言算法的掌握,所以完成此道题目要求较强的设计能力,尤其是一种大局意识。如何调试程序也非常重要,通过这个程序可以学到以前调试短程序没有的的经验。【关键字】1图书管理 2图书查找 3图书借还 4图书的新增与修改第一章 绪论1.1选题背景随着社会的开展及知识经济时代的到来,管理信息系统在各行各业发挥着越来越重要的作用。但在高校的图书管理中,防止了手工操作而带来的一些不必要的问题。1.2系统目标本系统的目标是将高校图书管理工作实现计算机管理,从而大幅度提高工效率,提高实施管理的准确性、科学性;使担负管理的工作人员从繁杂的手工劳作中解脱出来,更好实施针对图书借阅管理在手工操作遇到的问题。1.3系统目的 通过本项课程设计,可以培养独立思考、 综合运用所学有关相应知识的能力,能更好的稳固?C语言程序设计?课程学习的内容,掌握工程软件设计的根本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!更加了解了c语言的好处和其可用性!同时增加了同学之间的团队合作精神!更加也体会到以后在工作中团队合作的重要性和必要性! 通过C语言课程设计,使学生了解高级程序设计语言的结构,掌握根本的程序设计过程和技巧,掌握根本的分析问题和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。第二章 问题定义(或系统分析)2.1题目分析 一、目的要求 本课程设计任务的目的是要求学生按照分析、设计、编码、调试和测试的软件开发过程独立完成管理系统设计,以及C语言算法的掌握,并能最终实现本系统的功能要求,通过这个程序可以学习到以前调试短程序没有的的经验。【题目要求】 1为各项操作功能设计一个菜单。应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作工程; 2要求以上功能分别用函数实现。并要求用C语言的文件操作语句将以上所有结果保存在文件XX.txt。【输入/输出要求】 1应用程序运行后,先显示一个菜单,然后用户根据需要选择相应的操作工程。进入每个操作后,根据程序的提示输入相应的信息; 2要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。菜单中的每一个选项都对应一个子程序,子程序的算法几乎囊获了所有C语言学过的技巧。目前社会管理系统开展飞快,教务管理信息系统也是有了很大的开展。本系统完全独立开发,力求使系统功能简明,但功能全易操作。它适应了时代开展,适应了我国教育深化改革、全面实施素质教育的需要;从技术角度分析,这项开发工作所涉及的专业技术如下:操作系统采用Windows 2000以上的版本;在数据管理系统上,我们可采用了Microsoft Office Access,开发工具选用Microsoft Visual Basic .NET2003;从经济角度分析, 采用计算机管理不但可以提高工作效率,而且还可以节省人力、物力、财力,降低了人工处理产生的错误第三章 总体设计与详细设计图书数据:书号,书名,作者,出版时间,价格,册数,页数借书人信息:姓名,单位,所借书目,借阅时间等1.借书模块:输入书名编号借书证号如书库中有书并且册数大于0,那么进行借书,借书日期由系统时间提供2.还书模块:登记借书证号进行还书操作同时提供有无超时有那么给予罚款处理。3.图书管理:对书库中书进行管理 新书入库 旧书删除 对库存量进行统计和查询4.查询模块:对书库中书进行查询 根据书名进行查询 根据书号进行查询 根据出版社进行查询 对借阅书进行查询 对一段时间或某书进行查询和统计第四章 编码实现1、增加图书功能,id自动排号 根据图书类型和图书状态,显示用户信息int add_books(Book* head, Book* book_for_add)    Book* p = head;    if (!p)        return -1;    while (p->_next)            p = p->_next;    ;    p->_next = book_for_add;    book_for_add->_id = p->_id+1;    book_for_add->_prev = p;    book_for_add->_next = NULL;    book_for_add->_count = 0;    book_for_add->_status = 0;    return 0;2、查找书名称,返回查找到的数量,书名可能有重复的,一本书可能也有很多本,但是ID却是唯一的 int search_books_by_name(Book* book_head, char* name)    int count = 0;    Book* p = book_head;    while (p)            if (strcmp(p->_name, name) = 0)                    print_book(p);            +count;                p = p->_next;        return count; 3、借书,返回该书的指针,否那么就返回NULL,可能不存在图书,或者已经被借走了 Book* borrow_books(Book* book_head, int id)    Book* p = book_head;    while (p)            if (p->_id = id)            break;        p = p->_next;        if (!p)/* 不存在 */        return NULL; 4、还书,正常归还就返回该书的指针,否那么就返回NULL还书要登记 Book* return_books(Book* book_head, int id)    Book* p = book_head;    while (p)            if (p->_id = id && p->_status != 0)                    p->_status = 0; 第五章 调试与测试1、主菜单2、添加图书3、列出图书4、查找5、借书6、还书运行的结果说明: 在Visual C+ 6.0在此环境下运行比拟好,其界面能正常运行。第六章 总结与心得首先我觉得,用到的程序段不必太高级,因为天下事皆有上下之分,决定优劣的不是集体中的某局部的强弱,起决定作用的是组合内各元素的和谐,要能在一个集体中各尽其用,每个人都能发挥自己的长处,防止自己的短处,那么这个集体的组合能量是最优的。选择什么等级的C语言就是关键,最后我决定运用文件,我的理解是;必须建立一个文件,它能够保存新的录入文挡,又能在提示语的要求下读出文档。然而,这只是万里长征的第一步,后面的路还很长,困难还有很多,可是我能成功的编译一个程序,能够在思路卡壳的情况下,继续前进,我在此很感谢给予我耐心解答的老师和同学,是他们为我小程序的成功起到了关键性的作用,那么多个日夜,如此多的困难,同学们勤恳塌实,从开始到结束,始终热情高涨,我感谢这种气氛,感谢学校提供的良好条件。在课程设计过程中,我学到了很多人生哲理,懂得怎么样去制定方案,怎么样去实践方案,并掌握了在执行过程中附录 源代码汉字菜单的编写可参照以下代码:#include <stdio.h>#include <stdlib.h>#include <string.h>#define BORROWED     1#define NOBORROW     0/* 定义图书结构 */struct Book    int   _id;            / 编号,唯一    char _name32;    / 图书的名称,不唯一    int   _type;        / 图书的类型,不唯一    int   _status;        / 图书的状态,借出/没有借出    int   _count;        / 图书借出的次数    struct Book* _next; / 下一本书    struct Book* _prev; / 上一本书;/* 定义图书类型 */typedef struct Book Book;/* 操作的目录提示 */char book_menu32 =    "add books",    "list books",    "search books",    "borrow books",    "return books",    "exit",    "",;/* 操作的目录提示1 */char book_menu_sub32 =    "search books by name",    "search books by type",    "",;/* 添加图书类型,用户信息显示 */char book_types32 =    "type0",    "type1",    "type2",    "",;/* 添加图书状态,用户信息显示 */char book_status32 =    "noborrow",    "borrowed",    "",;/* 增加图书,id自动排号 */int add_books(Book* head, Book* book_for_add)    Book* p = head;    if (!p)        return -1;    while (p->_next)            p = p->_next;    ;    p->_next = book_for_add;    book_for_add->_id = p->_id+1;    book_for_add->_prev = p;    book_for_add->_next = NULL;    book_for_add->_count = 0;    book_for_add->_status = 0;    return 0;/* 建立图书管理链表 */Book* create_list(Book* book_head)    if (book_head)            book_head->_prev = book_head;        book_head->_next = NULL;        book_head->_id = 1;        book_head->_count = 0;        book_head->_status = 0;        return book_head;/* 释放链表 */void free_list(Book* book_head)    Book *p, *p1;    p = book_head;    while(p)            p1 = p->_next;        free(p);        p = p1;    /* 打印图书信息 */void print_book(Book* book)    printf("id:%d, name:%s, type:%s, status:%s, times:%d n",           book->_id, book->_name, book_typesbook->_type,           book_statusbook->_status, book->_count);/* 列出所有登记的图书 */void list_books(Book* book_head)    Book* p = book_head;    while (p)            print_book(p);        p = p->_next;    /* 借书,返回该书的指针,否那么就返回NULL,可能不存在图书,或者已经被借走了 */Book* borrow_books(Book* book_head, int id)    Book* p = book_head;    while (p)            if (p->_id = id)            break;        p = p->_next;        if (!p)/* 不存在 */        return NULL;    if (p->_status != 0) /* 已经被借走 */        return NULL;    p->_status = 1; /* 借书登记 */    p->_count+;     /* 被借阅次数+1 */    return p;/* 查找书名称,返回查找到的数量,书名可能有重复的,一本书可能也有很多本,但是ID却是唯一的 */int search_books_by_name(Book* book_head, char* name)    int count = 0;    Book* p = book_head;    while (p)            if (strcmp(p->_name, name) = 0)                    print_book(p);            +count;                p = p->_next;        return count;/* 查找书类型,返回查找到的数量,一个类型会有很多书 */int search_books_by_type(Book* book_head, int type)    int count = 0;    Book* p = book_head;    while (p)            if (p->_type = type)                    print_book(p);            +count;                p = p->_next;        return count;/* 还书,正常归还就返回该书的指针,否那么就返回NULL */Book* return_books(Book* book_head, int id)    Book* p = book_head;    while (p)            if (p->_id = id && p->_status != 0)                    p->_status = 0; /* 还书登记 */            break;                p = p->_next;        return p;/* 打印操作选项 */void print_menu(char menus32)    int no = 0;    printf("nPLEASE SELECT ID LIKE 1 or 2 .n");    while (strlen(menusno)            printf("%d   t%sn", no+1, menusno);        +no;        printf("OPTION(");    while (no)            printf("/%d", no-);        printf("):");/* 主函数 */int main(void)    char key = 0;    char ss128;    int loop = 1;    Book first_book, *pBooks, *pTmp;    strcpy(first_book._name, "nihao");    first_book._type = 0;    pBooks = create_list(&first_book);    while (loop)            print_menu(book_menu);        gets(ss);        key = ss0 - 48;        if(key < 0 | key > 6)            printf("Error input !n");        else            printf("INPUT:%dn", key);        switch (key)                case 1: / add books            pTmp = (Book*)malloc(sizeof(Book);            if(pTmp)                            printf("Add_Book input name:");                gets(ss);                strncpy(pTmp->_name, ss, 31);                print_menu(book_types);                gets(ss);                key = ss0 - 48;                if(key <= 0 | key > (sizeof(book_types)/32) )                    key = 1;                pTmp->_type = key - 1;                add_books(pBooks, pTmp);                        break;        case 2: / list books            list_books(pBooks);            break;        case 3: / search books            print_menu(book_menu_sub);            gets(ss);            key = ss0 - 48;            printf("INPUT:%dn", key);            switch (key)                        case 1: / search books by name                printf("input book name:");                gets(ss);                key = search_books_by_name(pBooks, ss);                if(key = 0)                    printf("no found!n");            case 2: / search books by type                print_menu(book_types);                gets(ss);                key = ss0 - 48;                key = search_books_by_type(pBooks, key-1);                if(key = 0)                    printf("no found!n");            default:                break;                        break;        case 4: / borrow books            printf("Borrow books, input book id:");            gets(ss);            key = atoi(ss);            pTmp = borrow_books(pBooks, key);            if (!pTmp)                printf("borrow books failed: %dn", key);            else                            printf("borrow books successful!n");                print_book(pTmp);                        break;        case 5: / return books            printf("Return books, input book id:");            gets(ss);            key = atoi(ss);            pTmp = return_books(pBooks, key);            if (!pTmp)                printf("return books failed: %dn", key);            else                            printf("return books successful!n");                print_book(pTmp);                        break;        case 6: / exit            loop = 0;            break;        default:            break;                printf("-pause-");        gets(ss);        free_list(pBooks);    return 0; 参考资料1 湛为芳C语言程序设计技术清华大学出版社,20062 谭浩强C程序设计第三版清华大学出版社,20053 谭浩强C程序设计题解与上机指导第三版.清华大学出版社,2001

注意事项

本文(《C语言程序》课程设计报告书-图书管理系统)为本站会员(e****s)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

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




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


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