C语言程序设计书店租书信息管理系统.docx
《C语言程序设计书店租书信息管理系统.docx》由会员分享,可在线阅读,更多相关《C语言程序设计书店租书信息管理系统.docx(10页珍藏版)》请在冰豆网上搜索。
C语言程序设计书店租书信息管理系统
学生课程实验报告书
课程:
《C语言程序设计》
级系
专业班
学号姓名
指导教师:
2010--2011学年第2学期
书店租书信息管理系统
一.实训目的
通过集中训练,进一步掌握C语言的编程设计与开发,并以十字交叉链表为背景,训练数据结构的设计技术。
通过编制一个信息管理系统,学会分析问题、建立数学模型、确定研究算法、编制程序流程图、编制程序、调试程序及数据分析项目设计开发步骤。
掌握结构体、十字交叉链表的存取方法,函数、C语言设计方法、不同功能模块的调用使用方法等。
二.实训项目
信息管理系统借鉴
1.图书类别基本信息参考:
中文字段名
类型及长度
举例
编号
char
‘0’表示教辅,‘1’表示少儿等
类别名称
char[10]
中小学教辅
续费率
double
会员出租折扣率
double
2.图书基本信息参考:
中文字段名
类型及长度
举例
类别
char
‘0’表示教辅
图书编号
char[10]
“200900011”
图书名称
char[30]
小学语文阅读训练80篇
作者
char[20]
出版社
char[30]
长春出版社
售价
double
租价
double
会员价
double
库存数
int
上架日期
char[11]
2009/04/20
架位
char[3]
3.图书租阅基本信息参考:
中文字段名
类型及长度
举例
类别
char
‘0’表示教辅
图书编号
char[10]
“200900011”
姓名
char[20]
身份证
char[19]
租书日期
char[11]
2010/01/20
可租天数
int
5
应还日期
char[11]
2010/01/25
归还日期
char[11]
2010/01/28
续费
double
三.开发工具
这里我通过VC++6.0作为开发工具,运用C语言的结构体、链表指针、十字链表等技术实现该书店租书管理系统。
该书店租书管理系统主要实现功能模块有:
基本信息录入模块、基本信息修改模块、信息删除模块、基本信息查询模块、图书归还模块。
四.实训项目设计
1、数据结构设计及用法说明
1、程序中的struct设计
structguest
{
chargno[10];//顾客编号
chargname[20];//顾客姓名
chargID[30];//身份证号
chargaddr[30];//顾客地址
chargtel[13];//顾客电话
intday;//可租用日期
structguest*next;//指向下一个顾客
structbook*info;//指向图书节点
};
structbook_info
{/*图书基本信息*/
charcate_id;//如'a'代表类别
charbook_id[10];//如‘100000’图书编号,该编号是唯一的
charbook_name[30];//书名英文
charbook_author[20];//作者tonyzeng
charbook_press[30];//出版社福建出版社
doubleprice;//售价
doublerent_price;//租价
doublemember_price;//会员价
intinventory;//库存量
charshelves_time[11];//上架时间'2009/09/09'
charshelves[6];//书架'第5架位'
inttimes;/*租阅次数*/
structbook_info*next;//指向图书下一个点
structbook_rent*rent;//连接到租阅信息
};
structcategory
{/*图书类别基本信息*/
charcate_id;//类别'a'
charcate_name[10];//类别名称'教育'
doublerenew_rate;//续费
doublediscount;//会员折扣率
structcategory*next;//指向下一个信息点
structbook_info*info;//指向图书节的
};
structrented_history//存放归还的历史记录
{
structbook_rent*rent;//创建指向租阅信息的指针
structrented_history*next;//指向自身的指针
};
2、程序中的使用
通过如下声明创建首结点:
structrented_history*history_1;//创建历史租阅信息首结点
structcategory*head_1;//创建第一级类别首结点
3、操作方法
1 在主函数中通过调用程序中创建的首结点
2 在相应的函数中调用首结点的指针
3 函数中创建相应结构体,通过获得首结点指针完成相应语句功能的调用
4 完成相应操作后,返回相应首结点指针,退回主函数
2、程序结构(流程图)
1、某类别所有图书信息的查询
2、图书类别录入流程图
3、各模块的功能
1.图书类别录入模块:
该模块用于将图书进行分类,如教育、科学、文学等类别,通过相应的类别代码来表示这些类别信息,然后在添加其他相应的数据信息,实现图书的类别有效的管理。
2.图书基本信息录入模块:
在类别信息录入后,相应在各个类别录入相关的图书基本信息如英语、数学、读者、青年博览等图书,并且录入各图书相应的售价、租价、会议价、上架时间、架位等信息,完成图书数据的管理。
3.图书租阅信息录入模块:
录入图书类别已经图书的基本信息后,如果有读者需要进行借阅图书,则调用该功能函数,通过输入读者借阅的图书类别已经图书编码来确定所租的图书,同时记录该用户身份证、姓名,并且记录借阅时间和应还时间等。
4.图书类别信息修改模块:
当输入错误或者需要修改时,调用该功能进行类别信息修改。
5.图书基本信息修改模块:
当信息输入错误或需要修改时,通过该模块修改相应信息。
6.图书租阅信息修改模块:
当信息录入错误或要修改时,调用该模块进行相应的修改。
7.图书类别删除模块:
当某类别需要删除的话,如果该类别不存在图书信息,则给予删除,若该类别存在图书信息,则提醒该删除操作会造成数据丢失,若执意要删除则给予相应的删除释放内存操作。
8.图书基本信息删除模块:
当某图书需要进行删除时,若该图书租借信息为空则给予删除,若存在租借信息则提醒删除会造成数据丢失,若执意删除则给相应的删除操作。
9.图书归还模块:
当租阅后的图书,需要归还给书店时,则进入该模块,执行相关的图书归还操作,并且将归还的图书记录下来,以便以后查询使用。
10.条件查询模块:
输入相应的条件,查询相关的信息。
如查询类别信息,就调用输出函数;查询图书信息就是输入类别调用相关函数;查询租阅信息就输入类别和图书编码。
11.统计图书逾期模块:
用于查询哪些租阅的图书已过期,以方便系统管理员通知相关的租阅该图书的人员,尽快归还图书。
12.统计图书租阅次数模块:
用于统计图书被租阅的次数,以方便管理员对相关图书的进货管理。
4、试验结果
1.主界面
2、2.1进入信息录入系统
2.2图书信息录入
2.3租阅信息录入
3.3.1修改类别模块
3.3.2修改图书基本信息模块
4.4.1删除图书信息
5.5.1按条件查询
体会:
1.在编写代码初级阶段时,由于没有考虑指针函数调用的好处,麻木的编写代码。
结果发现整天代码偏乱,冗余度很低。
之后就不断的继续修改代码,增加了很多的工作量,而且使程序的可读性不够高。
2.经过好几次的修改后,程序代码可读性有进一步的提高,也掌握了指针间的互相调用过程等信息。
3.在这次编程中,让我深刻体会到指针的功能强大性,让我进一步认识到指针的使用方法。
4.进一步的掌握了c语言的用法,对结构体、指针、数组、十字链表等等一些信息都有了更深刻了认识,并且能够熟练的掌握。
5.在完成作业中,因为很多数据的随意增删改致使截图不能很完善。
很多数据混乱