
C语言图书销售管理系统.doc
21页目录图书销售管理系统设计 2一、设计要求 2二、总体设计思路 21. 主要功能:系统主要包括八个功能模块 32. 总体思路框图 3三、主要参数和函数 41. 全局变量 42. 主要函数 5四、程序调试及整体实现 141. 主菜单运行界面 142. 图书信息录入界面 143. 图书信息浏览界面 144. 图书查询界面 155. 图书信息修改界面 166. 图书信息删除界面 167. 图书信息排序主界面 178. 购书清单界面 17五、体会总结 18附件 19 图书销售管理系统设计一、 设计要求1. 图书信息包括:序号、书名、作者、出版单位、价格2. 系统以菜单方式工作v3. 图书信息录入功能(图书信息用文件保存)--输入v4. 图书信息的删除与修改功能5. 图书信息浏览功能--输出v6. 查询功能--算法:(按书名/作者查询)7. 排序功能--算法:(按书名排序/按价格排序)8. 图书购买功能:统计选购图书的总价,给出清单,屏幕输出参考以下的实际购书单二、 总体设计思路1. 主要功能:系统主要包括八个功能模块1) 图书信息的录入:将所要录入的图书信息包括序号、书名、作者、出版社、价格等录入一个文本文件中。
每录入一本书,系统提示是否继续,若不继续,则返回主界面2) 图书信息的查询:将所有图书信息包括序号、书名、出版社、作者、价格等显示在屏幕上,最后返回主界面3) 图书信息的查询:通过输入图书名称或作者完成图书信息的查找,并在屏幕上显示,返回主界面4) 图书信息的修改:通过输入序号,判断此图书是否存在,若不存在则提示用户重新输入图书序号,若存在则要求输入要修改图书的序号,对该图书重新录入信息录入后,提示是否继续,如不继续,则返回主界面 5) 图书信息的删除:通过输入序号,判断此图书是否存在,若存在, 则提示用户是否显示删除后的信息,若不存在则提示用户重新输入图书序号,删除完毕后,返回主界面6) 图书信息的排序:通过输入书名或价格,提示用户输入想要使用的排序方式,排序后的信息显示在屏幕上,返回主界面7) 图书的购买:通过输入要购买的图书序号,计算出总本书和总价格并连同其他购买信息一并显示在屏幕上8) 退出系统:返回主页面2. 总体思路框图图书销售管理系统退出系统图书信息排序图书信息删除图书信息修改图书信息查询图书购买清单图书信息浏览图书信息录入图1. 总体思路框图三、 主要参数和函数1. 全局变量1) 定义一个存放图书信息的结构体struct book,并定义此类型的变量struct book list[N],用来表示图书数组。
struct book /*定义结构体类型*/{ int num; /*序号为整型*/ char name[40]; /*书名为字符串*/ char author[20]; /*作者为字符串*/ char publish[50]; /*出版社为字符串*/ float price; /*价格为浮点型*/ };struct book list[N]; /*定义struct book类型的变量 list N个*/2) int Count=0,定义全局变量,用来表示图书的个数,初始值为02. 主要函数1) 主函数main(),控制整个系统的执行流程,使系统菜单可以循环执行根据图书馆信息管理系统的要求,可设计一个主函数,及定义多个用户自定义函数通过将switch语句与break语句联合使用来实现多分支选择结构程序的设计case1至case7分别实现不同的功能,并能返回主界面;case0直接返回主界面程序代码:void main() { int choice1; printf(" *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*\n"); printf(" * 欢迎进入图书销售管理系统 *\n"); printf(" *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*\n"); do { printf("##################################################"); /*显示菜单*/ printf("功能选项: \n"); printf(" 1 : 图书信息录入 \n"); printf(" 2 : 图书信息浏览 \n"); printf(" 3 : 图书信息查询 \n"); printf(" 4 : 图书信息修改 \n"); printf(" 5 : 图书信息删除 \n"); printf(" 6 : 图书信息排序 \n"); printf(" 7 : 图书的购买 \n"); printf(" 0 : 退出系统 \n"); printf("###############################################################"); printf("\t请选择操作:"); scanf("%d", &choice1); switch (choice1) /*菜单选择*/ { case 1 : input();break; case 2 : show_bookinformation(list); break ; case 3 : check_bookinformation (list); break ; case 4 : modify_bookinformation (list); break ; case 5 :delete_bookinformation(list);break ; case 6 :reorder_bookinformation(list);break; case 7 :buytotal(list);break; case 0 :break ; } }while (choice1!=0); printf("谢谢! 欢迎下次使用使用!\n");}2) 打开数据文件函数open(),把文件的信息打开到一个结构体数组中。
定义指向文件的指针读取数据,若指针指向NULL,则显示“无法操作,无文件信息!!!”,要调用fopen、fclose和fread函数程序代码:void open(){ int i; FILE *fp; if((fp=fopen("book.txt","rb+"))==NULL) { printf("无法操作,无文件信息!!!\n"); exit(0);} for(i=0;i 在for循环下,一次提示用户输入图书序号、书名、作者、出版社以及价格每循环一次,提示用户是否继续,当选“1”时继续输入图书信息,选“2”时返回主界面;每循环一次Count自增1程序代码:void input(){ int i,k,j,t; for(j=0;list[j].num!=0;j++) t=j+1; for(i=t;i 此函数运行时利用open函数打开数据文件,读取信息;利用for循环,当输入序号与循环中的某一对应数据相同时,将后一个赋值给前一个从而把要删除的图书信息删除掉如果i=0,则直接输出“图书销售系统没有你要输出的图书信息!!!”删除后会显示“删除成功”,同时Count自减1;最后还要执行read函数,重新记录图书信息程序代码:void delete_bookinformation (struct book list[]){ int j,k,d,i=0; open(); print。












