C++图书库存管理器

合集下载

C语言:书店管理系统

C语言:书店管理系统

C语言:书店管理系统#include "stdio.h"#include <string.h>#define MAXNUM 1000typedef struct{char isbn[10]; /*书号*/char bkname[20]; /*书名*/char author[10]; /*作者*/float price; /*单价*/int num; /*数量(单位:册)*/} BOOK;int bknum;BOOK bk[MAXNUM];rdata(){FILE *fp;if ((fp=fopen("e:\\lth019\\bkstore\\bookdata.txt","rb"))==NULL){printf("Can not open the file!\n");return;}fread(&bknum,sizeof(int),1,fp);fread(bk,sizeof(BOOK),bknum,fp);fclose(fp);}bklist(){int i;clrscr();printf(" Isbn bkname author price num\n"); printf("----------------------------------------------------------------\n");for(i=0;i<bknum;i++)putout();printf("-------------------------BOOK LIST END---------------------------\n");printf("Press any key to return...");getch();}void wdata(){FILE *fp;if ( (fp=fopen("e:\\lth019\\bkstore\\bookdata.txt","wb"))==NULL) {printf("Can not open the file!\n");return;}fwrite(&bknum , sizeof(int) , 1 , fp);fwrite(bk, sizeof(BOOK), bknum, fp);fclose(fp);}void bookin(){char s[10],bn[20],au[10];int i,nn;float pp;printf("input isbn(000 to end input):");scanf("%s",s);while(strcmp(s,"000")!=0){if ((i=found(s))<bknum){ printf("Have found!\n");putout();printf("input the number:");scanf("%d",&nn);bk[i].num+=nn;{putout();getch();}printf("input isbn(000 to end input):");scanf("%s",s);}else{printf("A new book input,\nPlease input bkname,author,price,num\n");strcpy(bk[i].isbn,s);scanf("%s%s",bn,au);strcpy(bk[i].bkname,bn);strcpy(bk[i].author,au);scanf("%f%d",&pp,&nn );bk[i].price=pp;bk[i].num=nn;bknum++;{putout();getch();}printf("input isbn(000 to end input):");scanf("%s",s);break;}}}showsold(BOOK sold[],int n){int i;printf("\n\n\n -------------The Books are selling-----------------\n");for(i=0;i<n;i++)printf(" %-10s%-20s%-10s%-8.2f%-8d\n",sold[i].isbn,sold[i].bkname,sold[i].author,sold[i].price,sold[i].num);}int found(char isbn[]){int i;for(i=0;i<bknum;i++)if(strcmp(isbn,bk[i].isbn)==0) break;return i;}void booksale(){ char isbn[10];BOOK sold[100];int soldnum=0,i;float total=0;clrscr();printf("Please input isbn(000 to end input):");scanf("%s",isbn);while(strcmp(isbn,"000")!=0){if((i=found(isbn))<bknum)if(bk[i].num>0)sold[soldnum++]=bk[i],bk[i].num--;else{printf("\Not enough!Pressany key to continue...");getch();} else{printf("\Not enough!Pressany key to continue...");getch();}clrscr();for(i=0,total=0;i<soldnum;i++)total+=sold[i].price;if(soldnum){ showsold(sold,soldnum);printf(" ----------------------------------------------\n");printf("\n The total %8.2f\n\n\n",total);}printf("\n input isbn(000 to end input):");scanf("%s",isbn);}}void search(){ char s[10]; char found; char isbn[20];char num[10]; char au[20]; char name[20];int t,i;printf("=================\n");printf(" 1.search with isbn \n");printf(" 2.search with author \n");printf(" 3.search with bookname \n");printf("=================\n");printf(" please chose one way : ");scanf("%d",&t);if(t==1){ printf(" please input isbn : ");scanf("%s",&s);for(found=0,i=0 ; i<bknum ; i++)if(strcmp(s,bk[i].isbn)==0){printf("Have found!\n");putout();found++;}else continue;if(!found) printf("Not found!");getch();}if(t==2){ printf(" please input author: ");scanf("%s",au);for(found=0,i=0;i<bknum;i++)if(strcmp(au,bk[i].author)==0){printf("Have found!\n");putout();found++;}else continue;if(!found) printf("Not found!");getch();}if(t==3){ printf(" please input bookname: ");scanf("%s",name);for(found=0,i=0;i<bknum;i++)if(strcmp(bk[i].bkname,name)==0){printf("Have found!\n");putout();found++;}else continue;if(!found) printf("Not found!");getch();}}Delete(){ char s[10],t;int found=0,i,j;printf("please input isbn of the book:");scanf("%s",s);for(i=0 ; i<bknum ; i++)if( strcmp(s,bk[i].isbn)==0 )break;if (i<bknum){ found=1;printf("Found!\n");putout();printf("Are you sure to delete?(Y/N):"); flushall(); scanf("%c",&t);if(t=='y'||t=='Y'){ for(;i<=bknum;i++)bk[i]=bk[i+1];}bknum--;}else printf("This book did't delete!");getch();}putout(){ int i;printf(" %-10s%-20s%-10s%-8.2f%-8d\n",bk[i].isbn,bk[i].bkname,bk[i].author,bk[i].price,bk[i].num); }int showsel(){int sel;clrscr();printf("--------------------------ManiMenus-------------------------\n\n"); printf(" 0. Exit\n");printf(" 1. BookList\n");printf(" 2. BookIn\n") ;printf(" 3. BookSale\n");printf(" 4. Save\n ");printf(" 5. Delete\n");printf(" 6. Search\n");printf("\n------------------------------------------------------------\n"); printf(" Input the selection:");scanf("%d",&sel);return sel;}main(){int sel; char yes;clrscr();rdata();sel=showsel();while(1){ switch(sel){case 0:printf("Are sure to Save?(Y/N) ");flushall();scanf("%c",&yes);if(yes=='Y'||yes=='y') { wdata(); exit(0); }exit(0);case 1:bklist();break;case 2:bookin();break;case 3:booksale();break;case 4:wdata();break;case 5:Delete();break;case 6:search();break;default :break;}sel=showsel();}}。

原创c语言图书馆管理系统源代码

原创c语言图书馆管理系统源代码

原创C语言图书馆管理系统源代码介绍图书馆作为一个重要的知识储备和学习场所,必须进行有效的管理和组织。

使用C语言编写的图书馆管理系统可以帮助图书馆实现自动化的借阅、归还和管理功能。

本文将介绍一个原创的C语言图书馆管理系统的源代码。

功能概述这个图书馆管理系统具有以下核心功能: - 图书管理:包括添加图书、删除图书、查询图书等操作。

- 借阅管理:可以进行借阅操作,记录借阅者和借阅时间。

- 归还管理:可以进行归还操作,并更新图书的可借状态。

- 用户管理:管理借阅者的信息,包括添加用户、删除用户、查询用户等操作。

数据结构设计该图书馆管理系统使用了以下几种数据结构: 1. 图书(Book)结构体:包含图书的ID、书名、作者、可借状态等字段。

2. 用户(User)结构体:包含用户的ID、姓名、地址等字段。

3. 借阅记录(BorrowRecord)结构体:包含借阅者ID、图书ID、借阅时间等字段。

系统流程整个系统的流程可以分为以下几个步骤: 1. 用户打开系统,进入主菜单。

2. 用户选择不同的功能选项(如图书管理、借阅管理、用户管理等)。

3. 根据用户选择的功能,进入相应的功能界面。

4. 用户可以根据提示,输入相应的信息进行图书管理、借阅管理或用户管理操作。

5. 用户完成操作后,可以选择返回主菜单或退出系统。

代码实现以下是一个简化版的C语言图书馆管理系统的源代码:```c #include <stdio.h>// 定义结构体 struct Book { int id; char name[50]; char author[50]; int isAvailable; };struct User { int id; char name[50]; char address[100]; };struct BorrowRecord { int userId; int bookId; char borrowDate[20]; };// 函数声明 void addBook(); void deleteBook(); void searchBook(); void borrowBook(); void returnBook(); void addUser(); void deleteUser(); void searchUser();int main() { int choice;do {// 显示主菜单printf(\。

小型图书管理系统C语言程序

小型图书管理系统C语言程序

小型图书管理系统C语言程序#include<stdio.h>#include<string.h>#include<stdlib.h>struct book{char writer[20];char title[20];char publishinghouse[20];char number[10];float price;struct book *next;};struct book * Create_Book();void Insert(struct book* head);void Delete(struct book * head);void Print_Book(struct book* head);void search_book(struct book* head);void change_Book(struct book * head);void save(struct book * head);struct book * Create_Book(){struct book * head;head=(struct book *)malloc(sizeof(struct book));head->next=NULL;return head;}void save(struct book * head){struct book *p;FILE *fp;p=head;fp=fopen("kucun.txt","w+");fprintf(fp,"************************************************\n");fprintf(fp,"书号\t书名\t作者\t出版社\t价格\t \n");\n");fprintf(fp,"while(p->next!= NULL){p=p->next;fprintf(fp,"%s\t%s\t %s\t %s\t %.2f\t \n",p- >number,p->title,p->writer,p->publishinghouse,p->price);}fprintf(fp,"************************************************\n");fclose(fp);printf("已将图书数据保存到kucun.txt 文件\n");}//插入//void Insert(struct book*head){struct book *s, *p,*p1,*swap;char flag='Y';swap=(struct book *)malloc(sizeof(struct book)); p1=swap;p=head;while(flag=='Y'||flag=='y'){s=(struct book*)malloc(sizeof(struct book));printf("\nfflush(stdin);scanf("%s",s->number);printf("\nfflush(stdin);scanf("%s",s->title);printf("\nfflush(stdin);scanf("%s",s->writer);printf("\nfflush(stdin);scanf("%s",s->publishinghouse);请输入图书书号:");请输入图书书名:");请输入图书作者名:");请输入图书出版社:");请输入图书价格:"); printf("\nfflush(stdin);scanf("%f",&s->price);printf("\n");//排序//p1=p->next;if(head->next!=NULL)do{if(strcmp((p1->number),(s->number))>0){strcpy(swap->number,p1->number);strcpy(swap->title,p1->title);strcpy(swap->writer,p1->writer);strcpy(swap->publishinghouse,p1->publishinghouse);swap->price=p1->price;strcpy(p1->number,s->number);strcpy(p1->title,s->title);strcpy(p1->writer,s->writer);strcpy(p1->publishinghouse,s->publishinghouse);p1->price=s->price;strcpy(s->number,swap->number);strcpy(s->title,swap->title);strcpy(s->writer,swap->writer);strcpy(s->publishinghouse,swap->publishinghouse);s->price=swap->price;}p=p1;p1=p->next;}while(p1!=NULL);p->next=s;s->next=NULL;printf("******* 添加成功!*******"); printf("\n继续添加?(Y/N):"); fflush(stdin);scanf("%c",&flag);printf("\n");if(flag=='N'||flag=='n'){break;}else if(flag=='Y'||flag=='y'){continue;}}save(head);}//查找//void search_book(struct book*head){struct book *p;char temp[20];p=head;if(head==NULL||head->next==NULL){printf("******* 图书库为空!*******\n");} else{printf("请输入您要查找的书名: ");fflush(stdin);scanf("%s",temp);while(p->next!= NULL){p=p->next;if(strcmp(p->title,temp)==0){printf("\n图书已找到!\n");printf("\n");printf("书号:%s\t\n",p->number);- 6 -printf("书名:%s\t\n",p->title);printf("作者名: %s\t\n",p->writer);printf("出版社: %s\t\n",p->publishinghouse);printf("价格:%.2f\t\n",p->price);}if(p->next==NULL){printf("\n查询完毕!\n");}}}}void Print_Book(struct book*head){struct book *p;if(head==NULL||head->next==NULL){没有图书记录!printf("\n**************\n\n");}p=head;printf("*************************************\n");printf("书号\t 书名\t 作者\t 出版社\t 价格\t\n");printf("*************************************\n");while(p->next!= NULL){p=p->next;printf("%s\t%s\t%s\t%s\t%.2f\t\n",p->number,p->title,p->writer,p->publishinghouse,p->price);}printf("*************************************\n");printf("\n");}//更改//void change_Book(struct book * head){struct book *p;int panduan=0;char temp[20];p=head;printf("请输入要修改图书的书号:");scanf("%s",temp);while(p->next!= NULL){p=p->next;if(strcmp(p->number,temp)==0){printf("\nfflush(stdin);scanf("%s",p->title);printf("\nfflush(stdin);scanf("%s",p->writer);printf("\nfflush(stdin);scanf("%s",p->publishinghouse); printf("\nfflush(stdin);scanf("%f",&p->price);printf("\n");panduan=1;}}if(panduan==0)请输入图书书名:");请输入图书作者名:");请输入图书出版社:");请输入图书价格:");{printf("\n******没有图书记录!******\n\n");} } //删除//void Delete(struct book *head){struct book *s,*p;- 9 -char temp[20];int panduan;panduan=0;p=s=head;printf("[请输入您要删除的书名]:"); scanf("%s",temp);p=p->next;while(p!= NULL){if(strcmp(p->title,temp)==0){panduan=1;break;}p=p->next;}if(panduan==1){while(s->next!=p){s=s->next;}s->next=p->next;free(p);printf("\n******* 删除成功!*******\n");save(head);}else{printf("您输入的书目不存在,请确认后输入! \n");}}//主函数//void main(){struct book * head;int choice;head=NULL;while(1){printf("*************************************************\n");小型图书管理系统printf("**\n");printf("**\n");printf("* [1]图书信息录入*\n");printf("* *\n");printf("* [2]图书信息浏览*\n");* printf("*\n");printf("* [3]图书信息查询*\n");* printf("*\n");printf("* [4]图书信息修改*\n");printf("* *\n");printf("* [5]图书信息删除*\n");printf("* *\n");printf("* [6]退出系统*\n");printf("*************************************************\n");请选择:"); printf("fflush(stdin);scanf("%d",&choice);switch(choice){case1:if(head==NULL){head=Create_Book();}Insert(head);break;case2:Print_Book(head);break;case3:search_book(head);break;case4:change_Book(head);break;case5:Delete(head);break;case6:printf("\n");感谢使用图书管理系统printf("*************\n");break;default:printf("******* 输入错误,请重新输入!*******");break;}}}。

C语言链表实现商品库存管理系统

C语言链表实现商品库存管理系统

C语⾔链表实现商品库存管理系统本⽂实例为⼤家分享了C语⾔链表实现商品库存管理系统的具体代码,供⼤家参考,具体内容如下代码:12345678910111213141516171819202122 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54#include <stdio.h>#include <stdlib.h>#include <string.h>//定义⼀个商品结构体typedef struct sp{char no[12]; //商品编号char name[40]; //名称int workload; //库存量struct sp *next; //指向下⼀节点的指针} SP;//函数声明放在这⾥void ListCreate(SP *L, int n); //创建商品链表节点void LIstSearch(SP *L); //查找商品信息void ListModify(SP *L); //修改商品信息void ListInsert(SP *L); //插⼊商品信息void ListDelete(SP *L); //删除商品信息void Input(SP *p, int i); //输⼊商品信息void SumSp(SP *L); //统计商品的库存总量void Sort(SP *L); //对每类商品的库存量进⾏排名void Menu(); //考试报名管理系统的菜单//商品库存管理系统的主函数⼊⼝int main(){int item, n; //item⽤于接收输⼊的命令,n⽤于接收输⼊的商品⼈数 SP *L = NULL; //初始化⼀个头节点L = (SP *)malloc(sizeof(SP)); //为头节点开辟内存空间L->next = NULL; //将头节点的指针域置空do{Menu(); //菜单printf("请输⼊相应的数字,进⾏相应的操作:\n");scanf("%d", &item);55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 system("cls");switch(item){case1:printf("请输⼊您要录⼊的商品数⽬:");scanf("%d", &n);ListCreate(L, n);getchar();printf("\n请按任意键返回主菜单\n");getchar();system("cls");break;case2:LIstSearch(L); //查找商品信息getchar();printf("\n请按任意键返回主菜单\n");getchar();system("cls");break;case3:ListModify(L); //修改商品库存信息getchar();printf("\n请按任意键返回主菜单\n");getchar();system("cls");break;case4:ListDelete(L); //删除商品信息getchar();printf("\n请按任意键返回主菜单\n");getchar();system("cls");break;case5:ListInsert(L); //插⼊商品信息getchar();printf("\n请按任意键返回主菜单\n");getchar();system("cls");break;case6:SumSp(L);getchar();printf("\n请按任意键返回主菜单\n");getchar();system("cls");break;case7:Sort(L);getchar();printf("\n请按任意键返回主菜单\n");getchar();system("cls");break;case0: //退出商品库存管理系统printf("即将退出商品库存管理系统.....");exit(0);default:printf("您输⼊的指令不正确,请重新输⼊"); }printf("\n\n");} while(item);return0;}//创建链表,将新⽣成的节点插⼊到链表的表头void ListCreate(SP *L, int n){int i;for(i = 0; i < n; i++){SP *p;//将新⽣成的节点插⼊到链表中117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 p = NULL;p = (SP *)malloc(sizeof(SP));Input(p, i);p->next = L->next;L->next = p;}printf("录⼊成功!");}//查找商品库存量void LIstSearch(SP *L){char n[40];SP *p = L->next;if(p == NULL)printf("数据为空,⽆法查找!");else{printf("请输⼊您要查找的商品名称:");scanf("%s", n);while(strcmp(p->name, n) != 0){p = p->next;if(p == NULL){printf("没有找到相关信息\n");return;}}printf("%s的库存量为%d\n",p->name,p->workload);}}//修改商品的库存量void ListModify(SP *L){int a;char nam[40];SP *p = L->next;if(p == NULL)printf("数据为空,⽆法修改!");else{printf("请输⼊您修改的商品名称:");scanf("%s",nam);while(strcmp(p->name, nam) != 0){p = p->next;if(p == NULL){printf("没有找到相关信息\n");return;}}printf("请输⼊您修改后的库存量:");scanf("%d",&p->workload);printf("修改成功");}}//删除商品信息void ListDelete(SP *L){char n[40];SP *p = L->next, *pre = L; //定义p指针指向头节点的指向,定义pre指向头节点,pre始终指向p的前驱节点 if(p == NULL)printf("数据为空,⽆法删除!");else{printf("请输⼊您要删除的商品名称:");scanf("%s", n);while(strcmp(p->name, n) != 0)180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 p = pre->next;if(p == NULL){printf("没有找到相关信息,⽆法删除\n"); return;}}pre->next = p->next;free(p);printf("删除成功");}}//插⼊商品库存的相关信息void ListInsert(SP *L){SP *s = NULL; //⽣成⼀个新节点ss = (SP *)malloc(sizeof(SP));printf("请输⼊商品的商品编号:");scanf("%s", s->no);printf("请输⼊商品的名称:");scanf("%s", s->name);printf("请输⼊商品的库存量:");scanf("%d", &s->workload);s->next = L->next;L->next = s;printf("插⼊成功!");}//统计商品的库存总量void SumSp(SP *L){int sum=0;SP *p=L->next;while(p!=NULL){sum+=p->workload;p=p->next;}printf("商品的库存总量为%d\n",sum);}//对每类商品的库存量进⾏排名void Sort(SP *L){SP *p,*q,*tail,*l;tail=NULL;while((L->next->next) != tail){p = L;q = L->next;while(q->next != tail){if((q->workload) > (q->next->workload)){p->next = q->next;q->next = q->next->next;p->next->next = q;q = p->next;}q = q->next;p = p->next;}tail = q;}printf("商品库存量从⼩到⼤结果如下:\n");l=L->next;while(l!=NULL){if(l->next!=NULL){printf("%s(%d)->",l->name,l->workload); l=l->next;242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293{ printf("%s(%d)",l->name,l->workload); l=l->next;}}}//输⼊商品库存的相关信息void Input(SP *p, int i){ printf("请输⼊第%d 个商品的商品编号:", i + 1);scanf("%s", p->no);printf("请输⼊第%d 个商品的名称:", i + 1); scanf("%s", p->name); printf("请输⼊第%d 个商品的库存量:", i + 1); scanf("%d", &p->workload);}//商品库存管理系统的菜单void Menu(){ printf("\n\n"); printf("\t\t\t===================商品库存管理系统======================\n"); printf("\t\t\t* 作者:XXX 班级:XXXXXXXXXXX 学号:XXXXXXXXXX *\n"); printf("\t\t\t* *\n");printf("\t\t\t* 1>. 录⼊商品库存信息 *\n"); printf("\t\t\t* 2>. 查找某个商品的库存量 *\n"); printf("\t\t\t* 3>. 修改某个商品的库存量 *\n");printf("\t\t\t* 4>. 删除某个商品库存相关信息 *\n");printf("\t\t\t* 5>. 插⼊某个商品的相关信息 *\n");printf("\t\t\t* 6>. 统计商品的库存总量 *\n"); printf("\t\t\t* 7>. 对每类商品的库存量排名 *\n"); printf("\t\t\t* 0>. 退出管理系统 *\n"); printf("\t\t\t* 欢迎使⽤本系统!*\n");printf("\t\t\t========================================================\n");printf("\t\t\t 输⼊选项,按回车进⼊选项: \n");}部分运⾏结果截图以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

C语言商品库存管理系统

C语言商品库存管理系统

建议使用VS打开运行#pragma once#include<>typedef struct information "void menu(inf*head) av") , NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);system("color 3B");printf("\t\t***************************************** ************\n");printf("\t\t\t\t欢迎进入商品库存管理系统\n");printf("\t\t***************************************** ************\n");printf("\n");printf("\t\t|======================================== ============|\n");printf("\t\t|______________________基本信息______________________|\n");printf("\t\t| 1.商品信息录入| 2.添加商品信息|\n");printf("\t\t| 3.查找商品信息| 4.修改商品信息|\n");printf("\t\t| 5.删除商品信息| 6.保存文件信息|\n");printf("\t\t| 7.读取文件信息| 8.显示商品信息|\n");printf("\t\t| 9.按价格从高到低进行排序 |\n");printf("\t\t|_________________0.释放链表。

仓库管理系统(c语言)

仓库管理系统(c语言)

仓库管理系统(c语言)仓库管理系统文档1·引言仓库管理系统是一种用于管理仓库库存、入库和出库等操作的软件系统。

本文档旨在描述仓库管理系统的设计与实现细节,以便开发人员进行开发和维护。

2·系统概述2·1 目标仓库管理系统的目标是提供一个高效、准确的仓库管理解决方案,以确保库存的可视化和及时管理。

2·2 功能仓库管理系统具备以下主要功能:●商品管理:包括商品信息的添加、编辑和删除。

●入库管理:包括商品入库记录的增加、查询和修改。

●出库管理:包括商品出库记录的增加、查询和修改。

●库存管理:包括库存数量的计算和更新。

●报表管理:包括出入库报表和库存报表。

3·系统设计3·1 数据库设计仓库管理系统的数据由以下表格组成:●商品表:包括商品ID、名称、价格等字段。

●入库记录表:包括记录ID、商品ID、入库数量、入库日期等字段。

●出库记录表:包括记录ID、商品ID、出库数量、出库日期等字段。

3·2 模块设计3·2·1 商品管理模块●添加商品:管理员可以添加新的商品到系统中,并输入商品的相关信息。

●编辑商品:管理员可以编辑已有的商品信息,包括商品名称、价格等。

●删除商品:管理员可以删除已有的商品信息。

3·2·2 入库管理模块●添加入库记录:管理员可以添加新的入库记录,包括选择商品、输入入库数量等。

●查询入库记录:管理员可以查询已有的入库记录,以便查看入库历史。

●修改入库记录:管理员可以修改已有的入库记录,包括修改入库数量、入库日期等。

3·2·3 出库管理模块●添加出库记录:管理员可以添加新的出库记录,包括选择商品、输入出库数量等。

●查询出库记录:管理员可以查询已有的出库记录,以便查看出库历史。

●修改出库记录:管理员可以修改已有的出库记录,包括修改出库数量、出库日期等。

3·2·4 库存管理模块●计算库存数量:根据入库和出库记录,系统可以计算当前商品的库存数量。

图书馆管理系统(C语言程序设计)

图书馆管理系统(C语言程序设计)

图书管理系统/*图书数据由编号、书名、出版社、单价和图书状态(库存用0表示或借出用读者编号表示),读者数据由编号、姓名和电话号码构成。

实现功能包括:(1)添加图书的记录(2)图书管理(借书和还书)(3)对图书数据排序(按单价的降序)(4)删除图书记录(5)修改图书记录(6)添加读者记录(7)输出图书信息表和读者信息表*#include <stdio.h>#include <string.h>#include <stdlib.h>#include <windows.h>/*函数的声明*/void bookname();void writername();void booknumber();void press();void bookdate();void Bfind(); //查询主菜单void Bdevise(); //修改函数void Badd(); //添加函数void Bdelete(); //删除函数void Bdisplay(); //显示所以已保存的图书信息函数void Bclean(); //清除所有图书信息函数void lendbook(); // 借书函数void returnbook(); //还书函数void lendorreturnbook();//借书或还书主菜单函数void appealkey();//用户密码申诉函数void devisepeoplekey();//修改用户密码函数void accountapply(); //用户申请账户函数void addpeopleaccount(); //管理员之添加用户帐号函数void addmanageaccount(); //管理员之添加管理员账号函数void addaccount(); //管理员之账户添加主菜单函数void devisepeopleaccount();//管理员之修改用户账号函数void devisemanageaccount();//管理员之修改管理员帐号函数void deviseaccount();//管理员之修改账号主菜单函数void deletepeopleaccount();//管理员之删除用户账号函数void deletemanageaccount();//管理员之删除管理员账号函数void deleteaccount();//管理员之删除账号主菜单函数void displayallpeopleaccounts();//显示所有用户信息函数void displayallmanageaccounts();//显示所有管理员信息函数void displayallaccountsmessage();//显示所有账号信息主菜单函数void highaddpeopleaccount(); //高级管理员添加用户账户函数void highaddmanageaccount(); //高级管理员添加管理员账户函数void highaddaccount(); //高级管理员之添加账户主菜单函数void booksmanage();//图书操作主菜单函数void accountsmanage();//管理员账号操作主菜单函数void highaccountsmanage();//高级管理员账号操作主菜单函数void menu1(); //用户之查询主菜单void menu2(); //管理员之查询主菜单void menu3(); //高级管理员之查询主菜单/*定义书的类型*/struct book{int bookstock; //库存量char bookname[20]; //书名char bookwriter[20]; //作者char booknumber[20]; //书号char press[20]; //出版社char bookdate[20]; //出版日期char price[20]; //出版价格int turefalse; //判断图书是否被借阅}books[20];/*定义用户类型*/struct peopleaccount{char pname[20];char pkey[20];}peopleaccounts[20];/*定义管理员类型*/struct manageaccount{char mname[20];char mkey[20];}manageaccounts[20];/*定义借书卡类型*/struct card{char cardnumber[20]; //借书卡号和用户信息一起写入yonghu.txt文件中的}cards[20];/*定义文件指针变量*/FILE *fp1; //fp1打开用户信息文件FILE *fp2; //fp2打开管理员信息文件FILE *fp3; //fp3打开图书信息文件FILE *fp4; //打开借还书记录的文件FILE *fpa; //fpa是临时文件指针/*改变输出的字体颜色*/void color(const unsigned short color1){if(color1>=0&&color1<=15)SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color1);/*仅限改变0-15的颜色;如果在0-15那么实现他的颜色因为如果超过15后面的改变的是文本背景色。

仓库管理系统(c语言)

仓库管理系统(c语言)

仓库管理系统(c语言)仓库管理系统范本1. 简介1.1 目的本文档旨在详细描述仓库管理系统的功能和特性,为开发人员和用户提供详尽的指导和参考。

1.2 范围本文档涵盖了仓库管理系统的各个方面,包括系统需求、系统设计、功能模块、数据库设计、用户界面等内容。

1.3 定义、缩写词汇表1.3.1 仓库管理系统(Warehouse Management System,WMS):指用于管理仓库内物流、库存和信息的软件系统。

2. 功能需求2.1 登录功能2.1.1 用户登录用户需要通过用户名和密码登录系统。

2.1.2 用户注册新用户需要填写个人信息进行注册。

2.2 主页功能2.2.1 仓库信息展示系统在主页上展示仓库的基本信息,包括名称、地址、联系方式等。

2.2.2 快速查询用户可以在主页上快速查询指定物品的库存情况。

2.3 库存管理功能2.3.1 入库管理用户可以将新物品入库,并记录相关信息,如物品名称、数量、批次等。

2.3.2 出库管理用户可以将库存物品进行出库,并记录相关信息,如物品名称、数量、出库人等。

2.3.3 库存查询用户可以通过指定条件查询仓库中的物品库存情况。

2.4 货物管理功能2.4.1 货物分类管理用户可以对仓库中的货物进行分类管理,实现更加有效的货物管理。

2.4.2 货物信息管理用户可以对货物的基本信息进行管理,包括名称、规格、单价等。

2.5 人员管理功能2.5.1 员工管理用户可以对仓库内的员工进行管理,包括添加新员工、编辑员工信息、删除员工等。

2.5.2 权限管理用户可以给予不同员工不同的权限,实现信息的安全管理。

3. 系统设计3.1 技术选型本系统采用C语言作为开发语言,使用MySQL作为后台数据库。

3.2 系统架构系统采用客户端-服务器架构,客户端通过与服务器进行交互实现功能。

4. 功能模块4.1 登录模块该模块实现用户登录和注册功能。

4.2 主页模块该模块实现主页信息展示和查询功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include <iostream>#include <cstring>#include <fstream>#include <stdlib.h>using namespace std;//------------------以下是类定义:Book -----------------------------------------class bookList;class Book //书类{char bookNo[15]; //书号char bookName[20]; //书名int Num; //数量public:Book(char *bNo=NULL, char *bNa=NULL, int n=0); //构造函数,各参数均有缺省值void Show(); //显示一本图书信息void print(ofstream &out); //将一本图书信息写入数据文件void setInfo(char *nop, char *nap, int n); //设置一本图书信息void setNum(int n); //设置库存量int getNum(); //获取库存量friend class bookList; //将bookList类说明为友元类。

//……//根据需要添加公有函数接口…… };Book::Book(char *bNo, char *bNa, int n){if(bNo)strcpy(bookNo, bNo);elsebookNo[0]='\0';if(bNa)strcpy(bookName, bNa);elsebookName[0]='\0';Num=n;}void Book::Show(){cout<<bookNo<<'\t'<<bookName<<'\t'<<Num<<endl;}void Book::print(ofstream &out){out<<bookNo<<'\t'<<bookName<<'\t'<<Num<<endl;}void Book::setInfo(char *nop, char *nap, int n){strcpy(bookNo, nop);strcpy(bookName, nap);Num=n;}void Book::setNum(int n) //设置库存量{Num=n;}int Book::getNum() //获取库存量{return Num;}//-----------以下是类定义:bookList-----------------------------------------------------class bookList //书库类{Book *Books; //图书线性表首指针int curLen; //现有图书种类数int maxLen; //图书最多种类数public:bookList(int Len=20); //构造函数,初始化书库~ bookList ( ); //析构函数,释放书库空间void appendBook(char *nop,char *nap, int n); //追加一种图书int isIn(char *bkNo); //按书号查找图书,若存在,返回其下标;否则返回-1 Book & getBooks(int i); //返回下标为i的图书对象的引用void deleteBook(char * bkNo); //删除指定书号的图书void sortBooks(); //按书号关键字排成升序void showAll( ); //显示全部图书int curBookLen( ); //返回现有图书种类数void setCurBookLen(int len); //设置现有图书种类数void initBookList(); //从文件bookdata.txt中读入全部信息存入书库Books结void readFromFile(char *filename);//从参数指定文件中读入所有的图书void writeToFile(char *filename);//将书库中所有种类的图书写入参数指定文件中};bookList::bookList(int Len) //构造函数,初始化书库{maxLen = Len;curLen = 0;if(Len)Books = new Book[Len];elseBooks = NULL;}bookList::~ bookList ( ) //析构函数,释放书库空间{if(Books) delete []Books;}void bookList::appendBook(char *nop,char *nap, int n) //将追加一本图书{if(curLen==maxLen){Book *newBooks;newBooks=new Book[maxLen+20];for(int i=0;i<maxLen;i++){newBooks[i]=Books[i];}delete [maxLen]Books;maxLen+=20;Books=newBooks;}Books[curLen++].setInfo (nop,nap,n);}int bookList::isIn(char *bkNo) //按书号查找图书,若存在,返回其下标;否则返回-1 {for(int i=0;i<curLen;i++){if(strcmp(Books[i].bookNo,bkNo));else return i;return -1;}Book & bookList::getBooks(int i) //返回下标为i的图书对象的引用{return Books[i];}void bookList::deleteBook(char * bkNo) //删除指定书号的图书{int i=isIn(bkNo);if(i==-1){cout<<"找不到该图书!!!"<<endl;}else{for(int j=i;j<curLen-1;j++){Books[j]=Books[j+1];}curLen--;}}void bookList::sortBooks() //按书号关键字排成升序{Book Book_temp;for(int i=0;i<curLen;i++){for(int j=i+1;j<curLen;j++){if(strcmp(Books[i].bookNo,Books[j].bookNo)>0){Book_temp=Books[i];Books[i]=Books[j];Books[j]=Book_temp;}}}}void bookList::showAll( ) //显示全部图书{for(int i=0;i<curLen;i++){Books[i].Show();}}int bookList::curBookLen( ) //返回现有图书种类数{return curLen;}void bookList::setCurBookLen(int len) //设置现有图书种类数{curLen=len;}void bookList::initBookList() //从文件bookdata.txt中读入全部信息存入书库Books结构{Book Book_help;int Len;ifstream infile;infile.open("bookdata.txt");if(!infile){cout<<"打开文件失败!"<<endl;exit(1);}infile>>Len;for(int i=0;i<Len;i++){infile>>Book_help.bookNo;infile>>Book_help.bookName;infile>>Book_help.Num;appendBook(Book_help.bookNo,Book_help.bookName,Book_help.Num);}infile.close();}void bookList::readFromFile(char *filename) //从参数指定文件中读入所有的图书{Book Book_help;int Len;ifstream infile;infile.open(filename);if(!infile){cout<<"打开文件失败!"<<endl;exit(1);}infile>>Len;maxLen+=Len;for(int i=0;i<Len;i++){infile>>Book_help.bookNo;infile>>Book_help.bookName;infile>>Book_help.Num;appendBook(Book_help.bookNo,Book_help.bookName,Book_help.Num);}infile.close();}void bookList::writeToFile(char *filename) //将书库中所有种类的图书写入参数指定文件中{ofstream out(filename);out<<curLen<<endl;for(int i=0;i<curLen;i++){Books[i].print(out);}out.close();}//-----------以下是主函数中,每个菜单选项处理函数的定义-----------------------------------------------------void appendRecord(bookList &booksObj){char bNo[20], bNa[20];int n;cout<<"输入新增图书的书号书名数目:"<<endl;cin>>bNo>>bNa>>n;if(booksObj.isIn(bNo)==-1){booksObj.appendBook(bNo,bNa,n);cout<<"追加成功!"<<endl;}else{cout<<"书号已存在,正在入库!"<<endl;int i=booksObj.isIn(bNo);Book &Book_show(booksObj.getBooks(i));Book_show.setNum(Book_show.getNum()+n);cout<<"入库成功!"<<endl;}}void delRecord(bookList &booksObj){char bNo[20];cout<<"输入待删图书的书号:"<<endl;cin>>bNo;booksObj.deleteBook(bNo);}void showAll(bookList &booksObj){booksObj.showAll();}void query(bookList &booksObj){char sNo[20];int i;cout<<"输入书号:";cin>>sNo;if((i=booksObj.isIn(sNo))!=-1){Book Book_show(booksObj.getBooks(i));Book_show.Show();}else{cout<<"未知书号!"<<endl;}}void addBooks(bookList &booksObj){char bNo[20],bNa[20];int n;int i;cout<<"输入书号书名数目:"<<endl;cin>>bNo>>bNa>>n;if((i=booksObj.isIn(bNo))!=-1){Book &Book_show(booksObj.getBooks(i));Book_show.setNum(Book_show.getNum()+n);cout<<"入库成功!"<<endl;}else{cout<<"未知书号!正在为您追加!"<<endl;booksObj.appendBook(bNo,bNa,n);cout<<"追加成功!"<<endl;}}void sellBooks(bookList &booksObj){char bNo[20];int n;int i;cout<<"请输入书号和要出售的数量:"<<endl;cin>>bNo>>n;if((i=booksObj.isIn(bNo))!=-1){Book &Book_show=booksObj.getBooks(i);if(n<=Book_show.getNum()){Book_show.setNum(Book_show.getNum()-n);}else{cout<<"库存不足!"<<endl;}}else{cout<<"未知书号!"<<endl;}}void appendFromTxtFile(bookList &booksObj){char filename[40];cout<<"请输入要导入的文件名:"<<endl;cin>>filename;booksObj.readFromFile(filename);cout<<"导入成功!"<<endl;}void writeToTxtFile(bookList &booksObj){char filename[40];cout<<"请输入要导入的文件名:"<<endl;cin>>filename;booksObj.writeToFile(filename);cout<<"导出成功!"<<endl;}void sortByNo(bookList &booksObj){cout<<"排序中......"<<endl;booksObj.sortBooks();cout<<"排序完成!"<<endl;}void delAll(bookList &booksObj){booksObj.setCurBookLen(0);}char Quit(bookList &booksObj){char ans;cout<<"确定退出?y/n: ";cin>>ans;if(ans=='y')booksObj.writeToFile("bookdata.txt");return ans;}//-----------以下是主函数以及菜单函数的定义-----------------------------------------------------int menu_select( ); //函数声明void main(){bookList booksObj; //定义图书记录对象int sel;booksObj.initBookList(); //此函数要完成的任务,可以做到构造函数中for( ; ; ){switch(sel=menu_select()){case 1: cout << "增加图书记录" << endl;appendRecord(booksObj);system("pause");break;case 2: cout << "删除图书记录" << endl;delRecord(booksObj);system("pause");break;case 3: cout << "显示所有图书记录" << endl;showAll(booksObj);system("pause");break;case 4: cout << "查询图书" << endl;query(booksObj);system("pause");break;case 5: cout << "图书入库" << endl;addBooks(booksObj);system("pause");break;case 6: cout << "图书销售" << endl;sellBooks(booksObj);system("pause");break;case 7: cout << "批量导入图书记录" << endl;appendFromTxtFile(booksObj);system("pause");break;case 8: cout << "导出图书记录" << endl;writeToTxtFile(booksObj);system("pause");break;case 9: cout << "按书号排序" << endl;sortByNo(booksObj);system("pause");break;case 10:cout << "删除全部图书记录" << endl;delAll(booksObj);system("pause");break;case 0: if(Quit(booksObj)!='y') continue;}if(sel==0) break;}}int menu_select( ) // 菜单实现{char *menu[ ]={" 1. 增加图书记录"," 2. 删除图书记录"," 3. 显示所有图书记录"," 4. 查询图书"," 5. 图书入库"," 6. 图书销售"," 7. 批量导入图书记录"," 8. 导出图书记录"," 9. 按书号排序"," 10. 删除全部图书记录"," 0. 退出",NULL};int choice;do{system("cls"); // 清屏cout<<"\n ==============图书记录管理============== \n\n";for(int i=0; menu[i]; i++)cout<<menu[i]<<endl;cout<<"\n ======================================= \n";cout<<"请输入选择:";cin>>choice;} while(choice<0 || choice>10);return(choice);}。

相关文档
最新文档