c语言课程设计书店存货清单(含源代码运行截图)
仓库库存管理系统源程序

仓库库存管理系统源程序#include<stdio.h>#include<stdlib.h>#include<string.h>#include<iostream.h>int shoudsave=0;struct item//物品信息定义{char code[10];//物品编码char name[20];//物品名称int num; //商品数量int level;//物品等级}item;typedef struct node{struct item data;struct node * next;}Node,*Link;//定义为链表void menu()//页面显示函数{system("cls");//清屏函数printf("***********************************《物品库存管理》*****************************\n");printf(" \n");printf("\n <1> 物品入库管理\n\t\n <2> 物品出库管理\n");printf("\n <3> 浏览库内物品信息\n\t\n <4> 修改物品信息\n");printf("\n <5> 保存物品信息\n\t\n <0> 退出库存管理\n");printf(" \n");cout<<"************************************************** ******************************"<<endl;printf("\n 请选择操作:");}void printstart(){printf("------------------------------------------\n");}void Wrong()//错误处理函数{printf("输入错误!\n");getchar();getchar();menu();return;}void Nofind(){printf("没有找到该物品!\n");}void printc()//本函数用于输出中文{printf(" 物品编码物品名称物品数量物品等级\n");}void printe(Node *p)//输出物品信息函数{cout<<endl<<" "<<p->data.code<<""<<p-><<" "<<p->data.num<<""<<p->data.level;}Node *Locate(Link l,char findmess[],char nameorcode[]) //用于定位连接中,符合要求的结点,并返回该指针{Node *r;if(strcmp(nameorcode,"code")==0)//{r=l->next;while(r!=NULL){if(strcmp(r->data.code,findmess)==0)return r;r=r->next;}}elseif(strcmp(nameorcode,"name")==0)//按名称查询{r=l->next;while(r!=NULL){if(strcmp(r->,findmess)==0)return r;r=r->next;}}return 0;}void Add(Link l)//增加物品函数{Node *p,*r,*s;char code[10];r=l;s=l->next;while(r->next!=NULL)r=r->next;while(l){system("cls");//清屏函数cout<<"请输入商品编码(输入'0'返回上一级菜单):"<<endl;scanf("%s",code);if(strcmp(code,"0")==0)break;while(s){if(strcmp(s->data.code,code)==0){printf("物品编码为'%s'的物品已经存在,如果要修改请选择'4 修改'!\n",code);printstart();printc();printe(s);printstart();printf("\n");return;}s=s->next;}p=(Node * )malloc(sizeof(Node));strcpy(p->data.code,code);printf("请输入物品名称:");scanf("%s",p->);getchar();printf("请输入物品数量:");scanf("%d",&p->data.num);printf("请输入物品等级:");scanf("%d",&p->data.level);p->next=NULL;r->next=p;r=p;shoudsave=1;}menu();}void Qur(Link l)//查询物品信息函数{int sel;char findmess[20];Node *p;if(!l->next){printf("\n没有信息可查询!\n");getchar();getchar();menu();}system("cls");//清屏函数printf("\n 1按物品编码查询\n 2按物品名称查询\n"); scanf("%d",&sel);if(sel==1)//{printf("请输入要查询的编码:\n");scanf("%s",findmess);p=Locate(l,findmess,"code");if(p){printf("\t\t\t\t查询结果\n");printstart();cout<<endl;printc();cout<<endl;printe(p);cout<<endl;printstart();getchar();getchar();return;}elseNofind();}elseif(sel==2)//{printf("请输入要查找的物品名称:");scanf("%s",findmess);p=Locate(l,findmess,"name");if(p){printf("\t\t\t查询结果\n");printstart();cout<<endl;printc();cout<<endl;printe(p);cout<<endl;printstart();getchar();getchar();menu();return;}elseNofind();}elseWrong();getchar();system("cls");//清屏函数menu();}void Del(Link l)//删除{int sel;Node *p,*r;char findmess[20];if(!l->next){system("cls");//清屏函数printf("\n您的仓库为空!\n");getchar();getchar();menu();return ;}system("cls");//清屏函数printf("\n 1按物品编码出仓\n 2按物品名称出仓\n"); scanf("%d",&sel);if(sel==1){printf("请输入要出仓的物品编码:");scanf("%s",findmess);p=Locate(l,findmess,"code");if(p){r=l;while(r->next!=p)r=r->next;r->next=p->next;free(p);printf("\n该物品已经成功出仓\n");shoudsave=1;getchar();getchar();menu();return ;}elseNofind();}elseif(sel==2){system("cls");//清屏函数printf("请输入要出仓的物品名:");scanf("%s",findmess);p=Locate(l,findmess,"name");if(p){r=l;while(r->next!=p)r=r->next;r->next=p->next;free(p);printf("\n该物品已经成功出仓!\n");shoudsave=1;getchar();getchar();menu();return;}elseNofind();}elseWrong();}void Modify(Link l)//物品信息修改{Node *p;char findmess[20];if(!l->next){system("cls");//清屏函数printf("\n您的库存为空,无需修改!\n");getchar();menu();return;}printf("请输入要修改的物品编码:");scanf("%s",findmess);p=Locate(l,findmess,"code");if(p){system("cls");//清屏函数printf("请输入新编码(原来的是%s):",p->data.code);scanf("%s",p->data.code);printf("请输入新名称(原来的是%s):",p->);scanf("%s",p->);getchar();printf("请输入新的物品数量(原来的是%d):",p->data.num);scanf("%d",&p->data.num);getchar();printf("请输入新的物品等级(原来的是%d):",p->data.level);scanf("%d",&p->data.level);printf("\n修改资料成功!\n");shoudsave=1;getchar();menu();return;}elseNofind();getchar();menu();}void Disp(Link l){int count=0;Node *p;p=l->next;if(!p){printf("\n 没有资料可以显示!\n");getchar();getchar();return;}printf("\t\t\t\t显示结果\n");printstart();printc();printf("\n");while(p){printe(p);p=p->next;}printstart();printf("\n");}void Save(Link l)//物品信息保存{FILE *fp;Node *p;int flag=1,count=0;fp=fopen("c:\\student","wb");if(fp==NULL){printf("\n重新打开文件时错误!\n");exit(1);}p=l->next;while(p){if(fwrite(p,sizeof(Node),1,fp)==1){p=p->next;count++;}else{flag=0;break;}}if(flag){system("cls");//清屏函数printf("\n 文件保存成功.(有%d条记录保存成功.)\n",count);shoudsave=0;getchar();getchar();menu();}fclose(fp);}void main()//主函数{menu();Link l;//链表Node *r;int sel;char ch;int count=0;l=(Node * )malloc(sizeof(Node));l->next=NULL;r=l;while(l){scanf("%d",&sel);if(sel==0){if(shoudsave==1){getchar();printf("\n 资料已改动,是否将改动的文件保存到文件中(y or n)?\n");scanf("%c",&ch);if(ch=='y' || ch=='Y')Save(l);}printf("\n 已退出系统!\n");break;}switch(sel){case 1:Add(l);break;//物品进库case 2:Del(l);break;//物品出库case 3:Qur(l);break;//查询物品case 4:Modify(l);break;//修改物品信息case 5:Save(l);break;//保存物品信息default:Wrong();getchar();break;}}}。
c语言课程设计之图书管理系统

附件6南京工程学院课程设计说明书(论文)题目商品库存管理系统课程名称高级语言程序设计(C)院(系、部、中心)通信工程专业多媒体通信班级媒通111学生姓名张瑜学号208110515设计地点信息楼C216指导教师袁璟设计起止时间:2012年3月5日至2012年3月9日目录1.课程设计题目.................................................... 错误!未指定书签。
2.软件功能描述.................................................... 错误!未指定书签。
3.软件总体设计.................................................... 错误!未指定书签。
3.1数据结构描述与定义......................................... 错误!未指定书签。
3.2模块设计................................................... 错误!未指定书签。
4.测试结果与分析.................................................. 错误!未指定书签。
5.课程设计总结.................................................... 错误!未指定书签。
附录:源程序清单................................................... 错误!未指定书签。
1.课程设计题目商品库存管理系统要求:设计数据结构实现商品的入库,出库,查询等功能,读/写文件功能(1,整个系统均用C语言实现;(2,可以利用数组、指针、链表来实现数据结构设计;(3,管理系统具有输入、显示、查询、删除、排序、插入、保存、读取等基本功能;(4,系统的各个功能模块都用函数的形式来表示;(5,可以将信息保存在文件中;(6,可以将信息从文件中读取出来。
c++程序设计图书馆管理系统【附源代码】

《基于C++的面向对象程序设计实验报告》题目:媒体库管理系统课程实验 学院:太原工业学院 系别:计算机工程系 专业:计算机科学与技术 制作人:刘创 学号:132054137 班级:13205412014年7月1号媒体库管理系统课程实验设计目录第一章:总体功能介绍1.1 问题描述 (3)1.2 功能介绍 (3)1.2.1 添加物品 (3)1.2.2 显示物品库 (3)1.2.3 查询物品 (3)1.2.4 编辑物品 (3)1.2.5 删除物品 (3)1.2.6 统计物品信息 (3)1.2.7 物品存盘 (4)1.2.8 读出物品 (4)第二章:课程设计理念2.1 设计理念 (4)2.2 设计过程 (4)2.3 主菜单的实现 (5)2.4 次菜单的实现 (5)第三章:各功能模块的实现及调试3.1 添加物品 (6)3.2 显示物品库 (6)3.3 查询物品 (7)3.4 编辑物品 (8)3.5 删除物品 (9)3.6 统计物品信息 (9)第四章:调试过程中的问题4.1 程序中遇到过的问题 (10)4.2 问题的解决与编写后的感受 (10)第四章:总结 (11)第五章:参考文献 (11)第七章:附源代码 (11)第一章:总体功能介绍1.1 问题介绍图书馆中的资料很多,如果能分类对其资料流通进行管理,将会带来很多方便,因此需要有一个媒体库管理系统。
图书馆共有三大类物品资料:图书、视频光盘、图画。
这三类物品共同具有的属性有:编号、标题、作者、评级(未评级,一般,成人,儿童)等。
其中图书类增加出版社、ISBN号、页数等信息;视频光盘类增加出品者的名字、出品年份和视频时长等信息;图画类增加出品国籍、作品的长和宽(以厘米计,整数)等信息。
1.2 功能介绍1.2.1 添加物品添加物品:主要完成图书馆三类物品信息的添加,要求编号唯一。
当添加了重复的编号时,则提示数据添加重复并取消添加;当物品库已满,则提示不能再添加新的数据。
c语言课程设计图书馆管理系统源程序

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <malloc.h>#define LEN sizeof(struct message_student) /*一个结构体数组元素的长度*/#define numsubs 5 /*学科数目*/typedef struct message_student/*结构体定义*/{char number[6];char name[20];int age;int birthday;char sex[4];char address[20];float subject[numsubs];float score;float average;int index;}student;int numstus; /*学生数目*/student *pointer;/*指向结构体数组的指针*/int lens;int menu_select(); /*函数声明*/int openfile(student stu[]);int findrecord(student stud[]);int writetotext(student stud[]);void welcome();void display1();void showtable();void sort(student stu[]);void deleterecord(student stu[],int i);void addrecord(student stud[]);void display(student stud[],int n1,int n2);void amendrecord(student stud[]);void count(student stud[]);void sortnum(student stud[]);void sortnum2(student stud[]);void sortname(student stud[]);void sortname2(student stud[]);void sortcount(student stud[]);void sortcount2(student stud[]);void statistic(student stud[]);void display1();void main(){int i=1;char str[2];lens=100;pointer=(student *)malloc(lens*LEN);numstus=0;welcome();system ("color 1f");while(i>0){i=menu_select();switch(i){case 1:addrecord(pointer);break; /*增加学生信息*/case 2:findrecord(pointer);break; /*查询学生信息*/case 3:amendrecord(pointer);break;/*修改学生信息*/case 4:sort(pointer);break; /*学生信息排序*/case 5:statistic(pointer);break;/*统计信息*/case 6:openfile(pointer);break;/*打开文件*/case 7:writetotext(pointer);break;/*保存文件*/case 8:display(pointer,0,numstus-1);break;/*显示记录*/case 0:if(numstus!=0) printf("是否保存当前记录?(y/n)");gets(str);if(str[0]=='y'||str[0]=='Y')writetotext(pointer);i=-1;break;/*退出系统*/default:printf("请输入数字0~8:\n");i=1; /*输入错误*/ }}printf("\t\t谢谢使用!!!欢迎再次使用本系统。
C语言 图书信息管理系统 最终源代码

C语言图书信息管理系统最终源代码#include<stdio.h>#include"string.h"struct book /* book2 是用来装用户要录入图书的信息*/{long num,time;char name[12],writer[12],fenlei[8],danwei[10];int pay;}stu[100];struct book1{long num,time;char name[12],writer[12],fenlei[8],danwei[10];int pay;}stu1[100];struct book2 /* book 是用来装cc.dat 文件中的图书信息*/{long num,time;char name[12],writer[12],fenlei[8],danwei[10];int pay;}stu2[100];denglu(){char a[15]="drzhang",b[15]="29257966",c[15],d[15];L3:system("cls");printf(" 欢迎登陆图书管理系统\n\n");printf("请输入姓名:");gets(c);printf("请输入密码:");gets(d);if(strcmp(a,c)==0&&strcmp(b,d)==0)return 0;else{printf("输入错误请重新输入\n\n");printf("1.重新输入 2.退出系统\n\n");printf("请输入.....");switch(getch()){case 49: goto L3;break;default: return 56;break;}}}/*此功能实现的是开始菜单的显示和具体功能的选择*/start(){printf("******************************欢迎使用图书管理系统******************************");printf("* 功能目录:*");printf("* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *");printf("* || || *");`printf("* || 1、图书查询2、图书浏览3、录入图书4、删除与修改5、备份与还原|| *");printf("* || || *");printf("* || || *");printf("* || || *");printf("* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *");printf("* 使用说明:如要选择“图书查询”,直接输入:1 退出:0 *");printf("************************************************************************* *******");printf("你想要做什么:");return getch(); /*输入选择对应功能的值,返回输入的值,即:用于判断选择的功能*/ }/*实现备份功能,以防图书信息出错带来的麻烦,不必看懂*/beifen(){FILE *fp1,*fp2;int i,a;jieshuo();system("cls");printf("\n\n请选择\\ 备份(B)| 浏览备份(L)/ \\ 还原(H)/ \\ 退出(Q)/ \n");switch(getch()){case 'B':case 'b':if((fp1=fopen("cc","r"))==NULL){printf("不能打开次文件\n");exit(0);}if((fp2=fopen("cc01","w"))==NULL){printf("不能打开次文件\n");exit(0);}fscanf(fp1,"%d",&a);fprintf(fp2,"%d\n",a);printf("\n\n确认备份吗?(Y/N)");switch(getch()){case 'Y':case 'y':for(i=0;i<a;i++){fscanf(fp1,"%ld %s %s %s %s %ld %d",&stu[i].num,stu[i].name,stu[i].writer,stu[i].fenlei,stu[i] .danwei,&stu[i].time,&stu[i].pay);fprintf(fp2,"%ld\t%s\t%s\t%s\t%s\t%ld\t%d\n",stu[i].num,stu[i].name,stu[i].writer,stu[i].fenlei,st u[i].danwei,stu[i].time,stu[i].pay);}printf("\n\n备份成功!\n\n是否打开浏览备份文件?(Y/N)");switch(getch()){case 'Y':case 'y':fclose(fp1);fclose(fp2);liulan02();break;case 'N':case 'n':break;}break;case 'N':case 'n':break;}fclose(fp1);fclose(fp2);break;case 'H':case 'h':if((fp1=fopen("cc01","r"))==NULL){printf("不能打开此文件\n");exit(0);}if((fp2=fopen("cc","w"))==NULL){printf("不能打开此文件\n");exit(0);}fscanf(fp1,"%d",&a);fprintf(fp2,"%d\n",a);printf("\n\n确认还原吗?(Y/N)");switch(getch()){case 'Y':case 'y':for(i=0;i<a;i++){fscanf(fp1,"%ld %s %s %s %s %ld %d",&stu[i].num,stu[i].name,stu[i].writer,stu[i].fenlei,stu[i] .danwei,&stu[i].time,&stu[i].pay);fprintf(fp2,"%ld\t%s\t%s\t%s\t%s\t%ld\t%d\n",stu[i].num,stu[i].name,stu[i].writer,stu[i].fenlei,st u[i].danwei,stu[i].time,stu[i].pay);}printf("\n\n还原成功!\n\n是否打开浏览还原文件?(Y/N)");switch(getch()){case 'Y':case 'y':fclose(fp1);fclose(fp2);liulan();break;case 'N':case 'n':break;}break;case 'N':case 'n':break;}fclose(fp1);fclose(fp2);break;case 'l':case 'L':liulan02();break;case 'Q':case 'q':break;}}/* 在屏幕上打印查询菜单*/chaxun(){jieshuo();system("cls");printf("******************************欢迎使用图书查询系统******************************");printf("* 查询方式:*");printf("**");printf("* 1、书名2、作者名3、出版时间*");printf("**");printf("* 4、价格5、分类号6、出版单位*");printf("**");printf("* 使用说明:如要选择“书名”,直接输入:1 退出:0 *");printf("************************************************************************* *******");printf("\n请输入你要怎么查询:");chaxun01(); /*打印完毕后,进入chaxun()函数,执行用户需要的查询功能*/}/*此程序段实行查询的各种功能*/chaxun01(){FILE *fp;char ch[8];int a=0,i,j,k,n=0,c,d;long b;if((fp=fopen("cc","r"))==NULL) /*说明:cc.dat 文件装着图书的信息,*/ {printf("不能打开此文件\n");exit(0);} /*并且文件开记录的是图书的书量,后*/ fscanf(fp,"%d",&a); /*从文件中读出图书数*/ /*面依次才是具体信息。
c语言图书销售系统(源代码)

#include <stdio.h>#include <string。
h〉#include <malloc.h〉#include 〈stdlib。
h〉#include 〈time.h〉#include <conio。
h>#define LEN sizeof(struct book)#define VLEN sizeof(struct vip)#define SLEN sizeof(struct sales)struct vip *vhead=NULL;struct vip *v1,*v2;struct sales *shead=NULL;struct sales *s1,*s2;int V,S;/*结构体定义*/struct book{char bnum [12];/*书号*/char bname [41];/*书名*/char author [20];/*作者*/float price; /*书价*/int acount; /*书存在本数*/struct book *next;};struct sales{float count;struct sales *snext;};struct vip{char vnum[12];char vname[41];int level;float persum;float discount;struct vip *vnext;};/*函数声明*/void loadbook(); /*自动读入书库信息*/void welcome();/*欢迎界面显示*/ void inputbook();/*增加书本信息*/void loadvip();void loadsales(); /*自动录入销售信息*/void daysales(); /*日销售额*/void monthsales();/*月销售额*/void yearsales(); /*年销售额*/void search();/*查询书数量*/void search_by_bnum(); /*通过书号查询*/void search_by_bname();/*通过书名查询*/void search_by_author();/*通过作者查询*/void buy(); /*购买书籍*/void list(); /*列出书库信息*/void listvip();void listsales();/*列出销售信息*/void delet();/*删除书目*/void delet_by_bnum();/*通过书号删除*/void delet_by_bname();/*通过书名删除*/void delet_by_author();/*通过作者删除*/void save();/*保存记录*/void redef(); /*修改密码*/void bover(); /*显示已售完的书*/void buy_by_huiyuan();/*会员买书*/void buy_by_feihuiyuan();/*非会员买书*/void exit0(); /*退出*/int menu();/*主菜单*/void print2(); /*显示查询菜单*/void printdelete();/*显示删除菜单*/struct book *head=NULL,*head2=NULL;/*head和head2分别用于书库的头指针和已购书的头指针*/struct book *p1,*p2,*p3,*p4,*p5,*p6; /*p1、p2、p3用于操作书库图书,p4、p5、p6用于操作已购书*/int save_flag=0; /*图书信息变动标志*/int buy_flag=0;/*买书时,是否调用过查询功能标志*/int shan_flag=0;/*删书时,是否调用过显示已售完书功能标志*/int T=0;/*记录导入的书本数*/char mima[11]=”123456”;/*初始密码*/void bookmanage();void salesmanage(); /*销售统计*/int main() /*主函数*/{welcome(); /*欢迎界面显示*/loadbook();loadsales();loadvip(); /*自动导入书库信息*/while(1){switch(menu()){case 1:system(”cls”);bookmanage();break;case 2:system(”cls");buy();break;case 3:system("cls");listvip();break;case 4:system("cls”);;salesmanage();break;case 5:system(”cls");;break;case 0:system(”cls”);exit0();break;default:{printf("\n选择错误,请按主菜单提示输入您的正确选择(0~8)\n”);printf("按任意键返回继续:");rewind(stdin);/*清空缓冲区*/getch();}}}return 0;}/*菜单*/int menu(){int choice;system(”cls");/*系统清屏*/printf(”\n *************************主菜单*************************\n\n”);printf(” 1.图书管理\n\n”);printf(" 2。
c语言课程设计图书管理系统设计

北京工业大学耿丹学院实训报告图书管理系统设计一设计目的1.通过本系统实现对图书管理操作;2.进一步掌握和利用C语言进行设计的能力;3.进一步理解和运用结构化程序设计的思想和方法;4.初步掌握开发一个小型使用系统的基本方法;5.掌握书写设计开发文档的能力;6.能应用C语言中的各个知识要点二设计内容1.新书入库:图书信息包括书名,书号,库存量,现存量(库存量减去借走的图书)共4项.首先输入3本书的信息,并将其存数组book中.当有新书入库时,先判断数组中是否有此书(即比较书名或书号),若有则修改库存量,现存量的信息;若无此书,则将该书的信息添加到数组中,并将其库存量设为-1,将其标专为下次要购入的图书。
2.图书查询:(1)输入一个书号,在文件中查找此书,若找到则输出此书的全部信息;若找不到则输出查找失败的信息。
(2)查询所有要购入的图书的书名和书号。
3.借阅管理(1)每个读者的信息包括姓名,编号,借阅图书1,借阅图书2,借阅图书3,输入3个读者的信息并存入数组reader中.(2)借书登记:输入读者的姓名及所借图书的书号,先判断姓名是否在读者数组中,若有则将书号存入reader数组中,同时修改book数组中此书的现存量.若reader数组中无此姓名,则应提示错误。
(3)还书管理:输入读者的姓名,所还图书的书号,修改reader数组和book数组中相应的项。
4.输出全部图书信息和全部读者信息。
5.退出系统。
三设计原理及算法本程序是由一个主函数、7个子函数组成,其中4个子函数完成的功能依次是:借阅图书、归还图书、注册图书、注销图书、刚开始会有一个选择界面,让使用者可以选择想实现的功能。
注册图书:利用结构体数组实现学生成绩的数据结构设计,用输入函数可以完成若干条记录的输入;注销图书:输入需要住校图书的书名,函数就会将与其相对应的图书信息给删除;归还图书:输入需要归还图书的书名,函数就会将与其相对应的图书信息返回;借阅图书:利用子函数实现借阅输出:用函数printf语句来实现将所有的数据都输出在界面上;流程图:主函数:四.程序运行图 1. 主菜单开始 输出说明 Menu a==1a==2 a==3 a==4ynnnny yyy 操作选单 借阅图书归还图书注册图书注销图书结束 a==5退出程序2.借阅图书3. 归还图书4. 归还图书五.编程源代码#include <stdio.h>#include <stdlib.h>#include <conio.h>int b;struct BOOK{int id,usr[10],total,store,days[10]; char name[31],author[21];}books[100];/*上面是结构体的定义,用于存放书籍及借书的信息。
图书管理系统c语言版 源码 课程设计

C代码1./*************************2.* 运行环境:vc6.03.*************************/4.5.#include <stdio.h> /*头文件名*/6.#include <string.h>7.#include <stdlib.h>8.#define Max 3 /*定义最大借书权限(可更改)*/9.10.typedef struct book /*图书类型*/11.{12.char book_num[10];13.char book_name[20];14.int book_kc;15.int book_xc;16.struct book *next;17.}BK;18.19.typedef struct borrow /*借书数目类型*/20.{21.char borrow_book_num[10];22.}BO;23.24.typedef struct reader /*读者类型*/25.{26.char reader_num[10];27.char reader_name[10];28.int right;29.BO borrow[Max]; /*嵌套借书数目类型*/30.struct reader * next;31.}RD;32.33.BK *h_book; /*图书指针*/34.RD *h_reader; /*读者指针*/35.36.int Menu(); /*主菜单*/37.void Menu_select(); /*主菜单选择函数*/38.void Init(); /*初始化函数*/39.void Init_reader(); /*初始化读者*/40.void Init_book(); /*初始化图书*/41.void Insert_New_Book(); /*增加新书*/42.void Insert_New_Reader(); /*增加新读者*/43.void del_old_book(); /*删除旧图书*/44.void del_old_reader(); /*删除旧读者(就是已经不存在或毕业的同学)*/45.void book_not_enough(); /*库存不足信息函数*/46.int Find(); /*查找函数*/47.void Find_Select(); /*查找选择菜单*/48.void Find_Reader(); /*查找读者*/49.void Find_Book(); /*查找图书*/50.void Borrow_Book(); /*借书函数*/51.void Return_Book(); /*还书函数*/52.void about(); /*"关于系统的说明"函数*/53.int Print(); /*打印函数*/54.void Print_Select(); /*打印选择函数*/55.void Print_book(); /*打印图书信息*/56.void Print_reader(); /*打印读者信息*/57.void Save(); /*保存信息函数*/58.void Save_Reader(); /*保存读者信息*/59.void Save_Book(); /*保存图书信息*/60.void Load(); /*加载信息函数*/61.void Load_Reader(); /*加载读者信息*/62.void Load_Book(); /*加载图书信息*/63.64.int Menu()65.{ int sn;66.printf("\n\t\t图书管理系统主菜单\n");67.printf("=================================================\n");68.printf("*\t0----退出系统 6----关于系统 \t*\n");69.printf("*\t1----新书入库 7----旧书出库 \t*\n");70.printf("*\t2----增新读者 8----删旧读者 \t*\n");71.printf("*\t3----图书查询 9----输出全部信息\t*\n");72.printf("*\t4----借书登记 10----库存不足图书\t*\n");73.printf("*\t5----还书管理 11----保存当前信息\t*\n");74.printf("=================================================\n");75.printf("请选择相应代码:"); /*代码选择模式(下同)*/76.for(;;)77.{ scanf("%d",&sn);78.fflush(stdin);79.if(sn<0||sn>11)80.printf("\n错误!请重新输入:");81.else break;82.}83.return sn;84.}85.86.void Menu_select()87.{88.for(;;) /*循环调用模式,保证能进行重复操作(下同)*/89.{90.switch(Menu())91.{ case 0:92.system("cls");93.Save();94.printf("\n\n\t文件保存成功!\n");95.printf("\n\n\tGoodBye!\n");96.getch();97.exit(0);98.case 1:Insert_New_Book();break; /*功能调用*/99.case 2:Insert_New_Reader();break;100.case 3:Find_Select();break;101.case 4:Borrow_Book();break;102.case 5:Return_Book();break;103.case 6:about();break;104.case 7:del_old_book();break;105.case 8:del_old_reader();break;106.case 9:Print_Select();break;107.case 10:book_not_enough();break;108.case 11:Save(); Load();109.printf("\n文件保存成功!按任意键进行下步操作....");110.getch(); system("cls");break;111.default:printf("\n错误!");exit(0);112.}113.}114.}115.116.117.void Init() /*初始化*/118.{119.Init_reader();120.Init_book();121.}122.123.void Init_reader() /*初始化读者信息(从键盘输入一组数据)*/ 124.{125.RD *p0;126.int i;127.printf("\n读者初始化开始,请输入读者信息..\n包括编号.姓名..\n");128.p0=(RD *)malloc(sizeof(RD));129.h_reader=p0;130.printf("\n请输入读者的信息:\n");131.printf("ReaderNo.:"); /*输入读者编号(唯一)*/132.scanf("%s",p0->reader_num);133.printf("ReaderName:"); /*输入读者姓名(不唯一)*/134.scanf("%s",p0->reader_name);135.p0->right=0;136.for(i=0;i<Max;i++)137.strcpy(p0->borrow[i].borrow_book_num,"0");138./*所借图书直接置为0(即没有借书)*/139.p0->next=NULL;140.printf("\n读者信息初始化完毕!按任意键继续下一步操作..\n");141./*头接点建立完毕*/142.getch();143.system("cls");144.}145.146.void Init_book() /*初始化图书信息(从键盘输入一组数据)*/ 147.{148.BK *p0;149.printf("\n图书初始化开始,请输入图书信息..\n包括编号.书名.数量..\n");150.p0=(BK *)malloc(sizeof(BK));151.h_book=p0;152.printf("\n请输入图书信息:\n");153.printf("BookNo.:"); /*输入图书编号(唯一)*/154.scanf("%s",p0->book_num);155.printf("BookName:"); /*输入图书名称(不唯一)*/156.scanf("%s",p0->book_name);157.printf("Number:"); /*输入图书数量*/158.scanf("%d",&p0->book_kc);159.p0->book_xc=p0->book_kc; /*开始时图书现存量和库存量相等*/160.p0->next=NULL;161.printf("\n图书信息初始化完毕!按任意键继续下一步操作..\n");162.getch();163.system("cls");164.}165.166.................167.168.void main()169.{170.FILE *fp_book,*fp_reader;171.if((fp_book=fopen("Book.dat","rb"))==NULL||(fp_reader =fopen("Reader.dat","rb"))==NULL)172.{173.about(); /*第一次启动系统,则进行初始化,否则进行加载*/ 174.Init();175.}176.else177.Load();178.179.Menu_select(); /*调用主菜单*/180.}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《C语言课程设计》实验课题:书店存货清单学院:专业班级:学号姓名:一.使用的子函数void welcome();//欢迎界面void function();//主功能主界面void subfunction(int); //次功能提示界面void read();//读取文件到内存void add();//创建以及添加void buy();//查询购买功能的实现void save();//文件的存储void login();//登陆二、编写思路1.定义结构体struct information//书店存货结构体{char title[100];//书名char author[100];//作者char press[100];//出版社float date;//出版日期double price;//价格int count;//当前图书数量int position;//在清单中的位置}lists[N];2. 欢迎函数void welcome()//欢迎界面{printf("************************************************************* *******************\n");printf(" ★---您好,欢迎使用书店存货清单系统!---★\n\n");printf(" books.txt正在导入中...请您稍等...\n\n");read();//读取}3.主功能函数void function()//主功能主界面{printf("************************************************************* *******************\n");printf(" --------☆ 请选择功能☆-------- \n\n"" --------☆ 1.录入书籍☆-------- \n\n"" --------☆ 2.购买书籍☆-------- \n\n"" --------☆ 3.存储书籍☆-------- \n\n"" --------☆ 0.退出程序☆-------- \n\n");printf("************************************************************* *******************\n\n");int c;scanf("%d",&c);switch(c){case 1:add();break;case 2:buy();break;case 3:save();break;case 0:exit(0);break;default:printf("输入错误!正在返回...\n");function();break;}}4.次功能函数void subfunction(int k)//次功能提示界面{printf("************************************************************* *******************\n");printf(" --------☆ 请选择功能☆-------- \n\n"" --------☆ 1.返回上级☆-------- \n\n"" --------☆ 2.录入书籍☆-------- \n\n"" --------☆ 3.购买书籍☆-------- \n\n"" --------☆ 4.存储书籍☆-------- \n\n"" --------☆ 0.退出程序☆-------- \n\n");printf("************************************************************* *******************\n\n");int c;scanf("%d",&c);switch(c)//次功能选择的实现{case 1:function();break;case 2:add();break;case 3:buy();break;case 4:save();break;case 0:exit(0);break;default:printf("输入错误!正在返回...\n");subfunction(k);break;}}5.读取函数void read()//读取文件到内存{FILE *fp;fp=fopen("books.txt","r");//文件是否正常打开if(fp==NULL){printf("对不起,文件不存在!\n\n");printf("************************************************************* *******************\n");exit(0);}//从文件读取到内存for(;i<N;i++){if(feof(fp)) break;fscanf(fp,"%s",lists[i].title);fscanf(fp,"%s",lists[i].author);fscanf(fp,"%s",lists[i].press);fscanf(fp,"%f",lists[i].date);fscanf(fp,"%lf",lists[i].price);fscanf(fp,"%d",lists[i].count);fscanf(fp,"%d",lists[i].position);}i--;fclose(fp);}6.添加函数void add()//创建以及添加{printf("请输入书名:\n");scanf("%s",lists[i].title);printf("请输入作者:\n");scanf("%s",lists[i].author);printf("请输入出版社:\n");scanf("%s",lists[i].press);printf("请输入出版日期:\n");scanf("%f",&lists[i].date);printf("请输入价格:\n");scanf("%lf",&lists[i].price);printf("请输入数量:\n");scanf("%d",&lists[i].count);printf("请输入序号:\n");scanf("%d",&lists[i].position);i++;//全局变量的自增function();}7.查询购买函数void buy()//查询购买功能的实现{printf("请输入书名:\n");//输入书名搜索char str[50],c;int n;scanf("%s",str);int k;for(k=0;k<=i;k++)if(!strcmp(lists[k].title,str)){printf("书名:");printf("%s",lists[k].title);printf("\n");printf("作者:");printf("%s",lists[k].author);printf("\n");printf("出版社:");printf("%s",lists[k].press);printf("\n");printf("出版日期:");printf("%.2f",lists[k].date);printf("\n");printf("价格:");printf("%.2lf",lists[k].price);printf("\n");printf("数量:");printf("%d",lists[k].count);printf("\n");printf("序号:");printf("%d",lists[k].position);printf("\n");printf(" 请输入所需数量:"); fflush(stdin);scanf("%d",&n);if(n<=lists[k].count){printf("总价为:%.2lf\n",n*lists[k].price); }elseprintf("所需数量不在库存范围内\n");printf("是否还想买其他书籍?(Y/N)\n");fflush(stdin);scanf("%c",&c);if(c=='y'||c=='Y')buy();elsebreak;}if(lists[k].title[0]=='\0')printf("您查找的信息不存在或已删除,请重新查找\n"); subfunction(k);}8.存储函数void save()//文件的存储{FILE *fp;fp=fopen("books.txt","w+");int j;for(j=0;j<i;j++){fprintf(fp,"%s",lists[j].title);fprintf(fp,"\n");fprintf(fp,"%s",lists[j].author);fprintf(fp,"\n");fprintf(fp,"%s",lists[j].press);fprintf(fp,"\n");fprintf(fp,"%.2f",lists[j].date);fprintf(fp,"\n");fprintf(fp,"%.2lf",lists[j].price);fprintf(fp,"\n");fprintf(fp,"%d",lists[j].count);fprintf(fp,"\n");fprintf(fp,"%d",lists[j].position);fprintf(fp,"\n");}fclose(fp);printf("文件已存储!\n");}9.登陆函数void login()//登陆{char name[10];char code[10];char name1[10]="sdchqd";char code1[10]="666666";int j=0,d=0;char c;printf("************************************************************* *******************\n");printf("\t\t\t\t书店存货清单系统\n");printf("\t\t\t\t 请您登录\n");while(j<3){printf("\t\t\t\t 请输入用户名:\n\t\t\t\t ");int a,b;for(a=0;(c=getchar())!='\n';a++)name[a]=c;name[a]='\0';printf("\t\t\t\t 请输入密码:\n\t\t\t\t ");for(b=0;(c=getchar())!='\n';b++)code[b]=c;code[b]='\0';if (!strcmp(name,name1)==0||!strcmp(code,code1)==0)printf("\t\t\t 用户名或密码错误!\n\n");else{d=1;break;}j++;}if(d==1) welcome();else if(d==0)exit(0);}三、程序运行1、开始运行程序首先在桌面新建一个命名为books的txt文件。