三峡大学理学院2010级物理学专业
《高级语言程序设计》课程设计
说明书
设计题目:图书管理系统设计
班 级:C语言课程设计(1班) 学 号:**********
姓 名:幻想泡沫
完成日期:2012年12月13日
目 录
1.设计任务 ................................................................................................................. 3 2.需求分析 ................................................................................................................. 3 3.总体设计 ................................................................................................................. 4 4.详细设计 ................................................................................................................. 4 5.遇到的问题与解决办法 ....................................................................................... 21 6.课程设计总结 ....................................................................................................... 22 7.参考文献: ........................................................................................................... 22 8.附录 ....................................................................................................................... 22
1.设计任务
设计一个图书管理系统,其主要任务能够对图书及借书者的基本信息进行管理,该系统主要要实现如下功能:
1.管理和维护功能:添加图书或借书者,删除图书或借书者;
2.查询功能:查询单本图书的基本信息及借阅状态,浏览图书的基本信息。 3.还书和借书功能。
图 书 管 理 系 统 登陆系统 图书信息录入 图书信息浏览 图书信息查询 图书信息删除 图书信息修改 图书信息追加 按书名查询 按作者查询 图1图书管理系统功能图
还 书 借 书
2.需求分析
1.图书管理信息采用文件保存,因而要提供文件的输入输出操作; 2.输入图书信息后对图书信息进行确认,因而要提供浏览操作;
3.要实现对图书基本信息的查询,则要提供查找操作(提供按书名、作者
名查询两种查询方式)和显示操作;
4.要实现对撤销图书信息的删除,则要提供文件记录的删除操作; 5.办理借书或还书手续需要提供修改操作;
6.购买新书后要录入新书信息,则要提供文件信息的追加操作; 7.输入密码登录系统,则要提供口令检验操作; 8.提供键盘式选择菜单以实现功能选择。
3.总体设计
整个图书管理系统被设计为口令登陆模块、数据录入模块、数据浏览模块、数据查询模块、数据删除模块、数据修改模块、数据追加模块和主菜单模块。其中数据查询模块包括按书名查询和按作者名查询两个子模块,数据修改模块包括还书和借书模块。系统功能图如图1。
4.详细设计
为了免去函数声明,这里采取将定义的函数放在主函数前,如下问整个程序的结构(函数内容见后文):
#include\#include\#include\#include\#define M 1
typedef struct bookManageInfo{ }BOOK;
void sign_on( ){ } //定义口令检查函数 void input( ) { } //定义录入函数 void list( ) { } //定义浏览函数 static int g1; //定义全局变量g1 void search_by_name( ){ } //定义按书名查询函数 void search_by_writer( ){ } //定义按作者名查询函数 void search( ){ } //定义查询菜单函数 void del( ){ } //定义删除函数 void returner( ){ } //定义还书函数 void borrower( ){ } //定义借书函数
void revise( ){ } //定义修改菜单函数
void append( ){ } //定义追加函数 void main( ){ } //主函数
数据结构采用如下结构体,设计图书信息结构体:
struct bookManageInfo {
char bookName[20]; //图书名称 char bookCode[20]; //图书编号 float price; //图书价格 char author[10]; //作者
int state; //存在状态,0 代表可出借,1 代表已借出 char borrowerName[10];//借书人姓名
int sex; //借书人性别,0 代表女,1 代表男 char stuNo[10]; //借书人学号 }BOOK;
为了简化编程步骤,这里采用typedef定义上述结构体BOOK类型。
(1) 口令登入模块:登陆图书管理系统时有三次机会输入登陆密码,若密码输
入正确,进入管理系统;若密码始终输入错误,则结束程序运行。
口令检查函数如下: void sign_on() {
char str[20]; int x;
printf(\欢迎来到图书管理系统!\\n\
printf(\\
printf(\您有三次输入密码的机会!\\n\\n\ for(x=0;x<3&&strcmp(str,\ { printf(\请输入登录密码(abc123):\ gets(str);
if(strcmp(str,\ printf(\密码错误!\\n\\n\ }
if (x==3)
{printf(\抱歉,登路失败!\\n\ printf(\登陆成功!\\n\\n\
printf(\请按任意键的登录系统!\ getch(); }