《C语言程序》课程设计 图书管理系统Word格式文档下载.docx

上传人:b****2 文档编号:5798531 上传时间:2023-05-05 格式:DOCX 页数:22 大小:28.93KB
下载 相关 举报
《C语言程序》课程设计 图书管理系统Word格式文档下载.docx_第1页
第1页 / 共22页
《C语言程序》课程设计 图书管理系统Word格式文档下载.docx_第2页
第2页 / 共22页
《C语言程序》课程设计 图书管理系统Word格式文档下载.docx_第3页
第3页 / 共22页
《C语言程序》课程设计 图书管理系统Word格式文档下载.docx_第4页
第4页 / 共22页
《C语言程序》课程设计 图书管理系统Word格式文档下载.docx_第5页
第5页 / 共22页
《C语言程序》课程设计 图书管理系统Word格式文档下载.docx_第6页
第6页 / 共22页
《C语言程序》课程设计 图书管理系统Word格式文档下载.docx_第7页
第7页 / 共22页
《C语言程序》课程设计 图书管理系统Word格式文档下载.docx_第8页
第8页 / 共22页
《C语言程序》课程设计 图书管理系统Word格式文档下载.docx_第9页
第9页 / 共22页
《C语言程序》课程设计 图书管理系统Word格式文档下载.docx_第10页
第10页 / 共22页
《C语言程序》课程设计 图书管理系统Word格式文档下载.docx_第11页
第11页 / 共22页
《C语言程序》课程设计 图书管理系统Word格式文档下载.docx_第12页
第12页 / 共22页
《C语言程序》课程设计 图书管理系统Word格式文档下载.docx_第13页
第13页 / 共22页
《C语言程序》课程设计 图书管理系统Word格式文档下载.docx_第14页
第14页 / 共22页
《C语言程序》课程设计 图书管理系统Word格式文档下载.docx_第15页
第15页 / 共22页
《C语言程序》课程设计 图书管理系统Word格式文档下载.docx_第16页
第16页 / 共22页
《C语言程序》课程设计 图书管理系统Word格式文档下载.docx_第17页
第17页 / 共22页
《C语言程序》课程设计 图书管理系统Word格式文档下载.docx_第18页
第18页 / 共22页
《C语言程序》课程设计 图书管理系统Word格式文档下载.docx_第19页
第19页 / 共22页
《C语言程序》课程设计 图书管理系统Word格式文档下载.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

《C语言程序》课程设计 图书管理系统Word格式文档下载.docx

《《C语言程序》课程设计 图书管理系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《《C语言程序》课程设计 图书管理系统Word格式文档下载.docx(22页珍藏版)》请在冰点文库上搜索。

《C语言程序》课程设计 图书管理系统Word格式文档下载.docx

1图书管理2图书查找3图书借还4图书的新增与修改

第一章绪论

1.1选题背景

随着社会的发展及知识经济时代的到来,管理信息系统在各行各业发挥着越来越重要的作用。

但在高校的图书管理中,避免了手工操作而带来的一些不必要的问题。

1.2系统目标

本系统的目标是将高校图书管理工作实现计算机管理,从而大幅度提高工效率,提高实施管理的准确性、科学性;

使担负管理的工作人员从繁杂的手工劳作中解脱出来,更好实施针对图书借阅管理在手工操作遇到的问题。

1.3系统目的

通过本项课程设计,可以培养独立思考、综合运用所学有关相应知识的能力,能更好的巩固《C语言程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!

更加了解了c语言的好处和其可用性!

同时增加了同学之间的团队合作精神!

更加也体会到以后在工作中团队合作的重要性和必要性!

第二章问题定义(或系统分析)

2.1题目分析

一、目的要求

本课程设计任务的目的是要求学生按照分析、设计、编码、调试和测试的软件开发过程独立完成管理系统设计,以及C语言算法的掌握,并能最终实现本系统的功能要求,通过这个程序可以学习到以前调试短程序没有的的经验。

【题目要求】

(1)为各项操作功能设计一个菜单。

应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目;

(2)要求以上功能分别用函数实现。

并要求用C语言的文件操作语句将以上所有结果保存在文件XX.out。

【输入/输出要求】

(1)应用程序运行后,先显示一个菜单,然后用户根据需要选择相应的操作项目。

进入每个操作后,根据程序的提示输入相应的信息;

(2)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。

菜单中的每一个选项都对应一个子程序,子程序的算法几乎囊获了所有C语言学过的技巧。

目前社会管理系统发展飞快,教务管理信息系统也是有了很大的发展。

本系统完全独立开发,力求使系统功能简明,但功能全易操作。

它适应了时代发展,适应了我国教育深化改革、全面实施素质教育的需要;

从技术角度分析,这项开发工作所涉及的专业技术如下:

操作系统采用Windows2000以上的版本;

在数据管理系统上,我们可采用了MicrosoftOfficeAccess,开发工具选用MicrosoftVisualBasic.NET2003;

从经济角度分析,采用计算机管理不但可以提高工作效率,而且还可以节省人力、物力、财力,降低了人工处理产生的错误

第三章总体设计与详细设计

图书数据:

书号,书名,作者,出版时间,价格,册数,页数

借书人信息:

姓名,单位,所借书目,借阅时间等

1.借书模块:

输入书名

编号

借书证号(如书库中有书并且册数大于0,则进行借书,借书日期由系统时间提供)

2.还书模块:

登记借书证号

进行还书操作

同时提供有无超时

有则给予罚款处理。

3.图书管理:

对书库中书进行管理

新书入库

旧书删除

对库存量进行统计和查询

4.查询模块:

对书库中书进行查询

根据书名进行查询

根据书号进行查询

根据出版社进行查询

对借阅书进行查询

对一段时间或某书进行查询和统计

第四章编码实现

增加图书功能,id自动排号

根据图书类型和图书状态,显示用户信息

intadd_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;

_prev=p;

_next=NULL;

_count=0;

_status=0;

return0;

};

查找书名称,返回查找到的数量,书名可能有重复的,一本书可能也有很多本,但是ID却是唯一的

intsearch_books_by_name(Book*book_head,char*name)

intcount=0;

Book*p=book_head;

while(p)

if(strcmp(p->

_name,name)==0)

print_book(p);

++count;

}

returncount;

}

借书,返回该书的指针,否则就返回NULL,可能不存在图书,或者已经被借走了

Book*borrow_books(Book*book_head,intid)

if(p->

_id==id)

break;

p)/*不存在*/

returnNULL;

还书,正常归还就返回该书的指针,否则就返回NULL

还书要登记

Book*return_books(Book*book_head,intid)

_id==id&

&

_status!

=0)

第五章调试与测试

运行的结果说明:

在VisualC++6.0

在此环境下运行比较好,其界面十分友好并且能正常运行。

第六章总结与心得

首先我觉得,用到的程序段不必太高级,因为天下事皆有高低之分,决定优劣的不是集体中的某部分的强弱,起决定作用的是组合内各元素的和谐,要能在一个集体中各尽其用,每个人都能发挥自己的长处,避免自己的短处,那么这个集体的组合能量是最优的。

选择什么等级的C语言就是关键,最后我决定运用文件,我的理解是;

必须建立一个文件,它能够保存新的录入文挡,又能在提示语的要求下读出文档。

然而,这只是万里长征的第一步,后面的路还很长,困难还有很多,可是我能成功的编译一个程序,能够在思路卡壳的情况下,继续前进,我在此很感谢给予我耐心解答的老师和同学,是他们为我小程序的成功起到了关键性的作用,那么多个日夜,如此多的困难,同学们勤恳塌实,从开始到结束,始终热情高涨,我感谢这种氛围,感谢学校提供的良好条件。

在课程设计过程中,我学到了很多人生哲理,懂得怎么样去制定计划,怎么样去实践计划,并掌握了在执行过程中

附录

源代码

汉字菜单的编写可参照以下代码:

#include"

stdio.h"

.main()

{charc;

inti;

do

clrscr();

for(i=0;

i<

80;

i++)

printf("

*"

);

\t1:

addbooks\n"

\t2:

listbooks\n"

\t3:

sreachbooks\n"

\t4:

borrowbooks\n"

\t5:

returnbooks\n"

printf(“\t6:

exit\n”)

\t请选择输入选项[1\\2\\3\\4\\5\\6]:

\n"

c=getchar();

}while(c!

='

1'

c!

2'

3'

4'

5'

!

=’6’);

getchar();

switch(c)

{case'

:

input();

case'

del();

find();

arrange();

case‘5’:

right();

case'

6'

exit(0);

按任意键返回主菜单:

}while

(1);

#include<

stdio.h>

stdlib.h>

string.h>

#defineBORROWED 

1

#defineNOBORROW 

0

/*定义图书结构*/

structBook

int 

_id;

//编号,唯一

char_name[32];

//图书的名称,不唯一

_type;

//图书的类型,不唯一

_status;

//图书的状态,借出/没有借出

_count;

//图书借出的次数

structBook*_next;

//下一本书

structBook*_prev;

//上一本书

/*定义图书类型*/

typedefstructBookBook;

/*操作的目录提示*/

charbook_menu[][32]=

"

addbooks"

listbooks"

searchbooks"

borrowbooks"

returnbooks"

exit"

"

/*操作的目录提示1*/

charbook_menu_sub[][32]=

searchbooksbyname"

searchbooksbytype"

/*添加图书类型,用户信息显示*/

charbook_types[][32]=

type0"

type1"

type2"

/*添加图书状态,用户信息显示*/

charbook_status[][32]=

noborrow"

borrowed"

/*增加图书,id自动排号*/

/*建立图书管理链表*/

Book*create_list(Book*book_head)

if(book_head)

book_head->

_prev=book_head;

_id=1;

returnbook_head;

/*释放链表*/

voidfree_list(Book*book_head)

Book*p,*p1;

p=book_head;

while(p)

p1=p->

free(p);

p=p1;

/*打印图书信息*/

voidprint_book(Book*book)

id:

%d,name:

%s,type:

%s,status:

%s,times:

%d\n"

book->

_id,book->

_name,book_types[book->

_type],

book_status[book->

_status],book->

_count);

/*列出所有登记的图书*/

voidlist_books(Book*book_head)

/*借书,返回该书的指针,否则就返回NULL,可能不存在图书,或者已经被借走了*/

Book*borrow_books(Book*book_head,intid)

=0)

/*已经被借走*/

_status=1;

/*借书登记*/

_count++;

/*被借阅次数+1*/

returnp;

/*查找书名称,返回查找到的数量,书名可能有重复的,一本书可能也有很多本,但是ID却是唯一的*/

/*查找书类型,返回查找到的数量,一个类型会有很多书*/

intsearch_books_by_type(Book*book_head,inttype)

_type==type)

/*还书,正常归还就返回该书的指针,否则就返回NULL*/

Book*return_books(Book*book_head,intid)

/*还书登记*/

/*打印操作选项*/

voidprint_menu(charmenus[][32])

intno=0;

\nPLEASESELECTIDLIKE1or2..\n"

while(strlen(menus[no]))

%d 

\t%s\n"

no+1,menus[no]);

++no;

OPTION("

while(no)

/%d"

no--);

):

/*主函数*/

intmain(void)

charkey=0;

charss[128];

intloop=1;

Bookfirst_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=ss[0]-48;

if(key<

0||key>

6)

Errorinput!

else

INPUT:

%d\n"

key);

switch(key)

case1:

//addbooks

pTmp=(Book*)malloc(sizeof(Book));

if(pTmp)

Add_Bookinputname:

strncpy(pTmp->

_name,ss,31);

print_menu(book_types);

=0||key>

(sizeof(book_types)/32))

key=1;

pTmp->

_type=key-1;

add_books(pBooks,pTmp);

case2:

//listbooks

list_books(pBooks);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2