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 主页模块该模块实现主页信息展示和查询功能。

c语言图书信息管理系统c语言

c语言图书信息管理系统c语言

图书管理系统目录一、问题描述这是一个能简单管理图书的小型图书管理系统,其中图书信息包括:书名,作者名,书编号,分类,出版单位,出版时间,价格等。

通过这些信息使之提供以下功能:(1)图书信息创建功能。

其中图书信息包括:书名,作者名,书编号,分类,出版单位,出版时间,价格等。

(图书信息用文件保存)。

(2)图书信息查看功能。

用来查看各项图书信息。

(3)图书信息查找功能。

通过已知信息来查找想要的图书。

(4)图书信息的删除。

可以删除特定图书。

(5)图书信息的修改。

可以修改图书的各项信息。

(6)菜单选择功能,此功能也是图书信息信息管理系统的入口,用户所要进行的各种操作均需在此模块中进行选择并进而调用其他模块实现相应的功能二、概要设计1 数据结构图书管理系统中主要的数据结构包含书名、图书书号、作者名、分类、出版社、出版时间、价格等;在处理过程中各项可以作为一本图书的不同属性来进行处理。

struct book{int num;//编号char name[20];//书名char author[20];//作者char publisher[20];//出版社int price;//价格int store;//库存};//图书信息结构体2 模块划分本系统主要有创建新的图书、查找图书、删除图书、修改图书、查看图书和图书排序几个基本功能。

void setup(struct book bo[]);//新建图书void search(struct book bo[]);//查找图书void modify(struct book bo[]);//查看图书void del(struct book bo);//删除图书void allbook(struct book bo[]);显示所有图书3 程序流程图否开始菜单新建图书修改信息查询图书删除图书所有图书退出是结束三、详细设计1 主函数int main()//主{struct book bo[100];char c;while(1){system("color 1A");printf("\n");printf("\n\t\t\t >>>欢迎进入图书管理系统<<<\n\n");printf("===================================== ===========================================\ n\n");printf("\t\t\t\t 1 录入新书\n\t\t\t\t 2 查询图书\n");printf("\t\t\t\t 3 修改信息\n\t\t\t\t 4 删除图书\n");printf("\t\t\t\t 5 所有图书\n");printf("\t\t\t\t 0 退出系统\n\n");printf("===================================== ===========================================\ n");printf("请选择:");c=getchar();switch(c){case'1':{setup(bo); getchar();break;}case'2':{search(bo);getchar();break;}case'3':{modify(bo);getchar();break;}case'4':{del(bo);getchar();break;}case'5':{allbook(bo);getchar;break;}case'0':{printf("\n感谢使用本系统");return 0;break;}default:{printf("\n输入有误,请重新输入:" );c=getchar();} }}}2 新建图书void setup(struct book bo[])打开文件或者新建一个文件,键盘输入新建的图书信息,然后把数据全部保存在数组bo数组中,最后存入文件。

C语言库存管理系统

C语言库存管理系统

合用标准文案沈阳商品航天大学北方科技学院课程设计任务书课程设计题目库存管理程序设计教研室计算机教研室专业班级学号姓名课程设计时间:年月日至年月日课程设计的内容及要求:主要内容设计一个程序管理库存商品,主要实现的功能以下:1、增加、改正、删除库存商品信息,商品信息包括:编号、名称、类别、数量、产地等;2、进货或售出商品后,相应的库存商品数量应该有所改变;3、当某种商品库存少于必然数量时,应该提示进货;4、能够按商品名称模糊盘问商品信息。

根本要求1、系统采用 C程序设计语言实现;2、独立完成系统的设计、编码和调试,经过指导教师就地查收;3、交出完满的课程设计报告。

指导教师史俊年月日沈阳商品航天大学北方科技学院课程设计成绩评定单课程名称C语言综合训练课程设计题目库存管理程序设计专业班级学号姓名争论日期年月日指导教师〔争论组〕考语:课程设计成绩指导教师〔争论组〕签字年月日库存管理程序设计目录摘要 (4)1.绪论 (4)2.系统解析 (5)功能需求 (5)数据需求 (5)性能需求 (5)3.整体设计 (5)功能模块设计 (5)系统设计方案 (6)4.详细设计 (7)商品信息管理模块 (7)商品盘问管理模块 (11)5.调试与测试 (12)调试 (12)测试 (12)6.结论 (13)结束语 (13)参照文件 (13)附录 1-用户手册 (14)附录 2-源程序 (16)摘要库存管理系统是厂家、商城、商场等的管理商品信息不能缺少的局部,利用这个系统,能够更好地管理商品的信息。

本系统使用 C语言开发,实现商品信息库的新建,盘问商品信息,改正商品信息,可对商品的销售进货有数量的变化,当数量缺少时做提示。

本文从解析课题的题目背景、题目意义、题目要求等出发,分别从需求解析、整体设计、详细设计、测试等各个方面详细介绍了系统的设计与实现过程,最后对系统的完成情况进行了总结。

要点词:库存;商品信息;数量变化;1.绪论随着时代的进步,社会的睁开,人们的生活水平逐渐提升,平时购物的种类越来越多,商场销售商品的种类也越来越多,各种商品的库存量在每天的销售与进货过程中会发生不断的变化,管理起来也越来越繁琐。

C语言课程设计-小型书店管理系统

C语言课程设计-小型书店管理系统

C语言课程设计-小型书店管理系统简介本文档旨在设计一个小型书店管理系统,使用C语言实现。

该系统将提供以下功能:1. 登录:管理员和员工可以使用自己的账号和密码登录系统。

2. 书籍管理:管理员可以添加、编辑和删除书籍信息。

3. 销售管理:员工可以记录每一笔销售,包括售出的书籍、销售时间和销售数量。

4. 会员管理:系统可以管理会员信息,包括会员的姓名、手机号码和积分等。

5. 库存管理:系统可以记录书籍的库存信息,包括书籍的数量和位置。

功能说明登录- 系统启动时,提示用户输入账号和密码。

- 系统验证账号和密码是否正确,允许管理员和员工登录。

- 登录成功后,进入主菜单。

书籍管理- 管理员在主菜单选择书籍管理,可以进行以下操作:- 添加书籍:输入书籍的名称、作者、出版社和价格等信息,保存到系统中。

- 编辑书籍:选择要编辑的书籍,并修改相关信息。

- 删除书籍:选择要删除的书籍,并从系统中删除。

- 查看书籍列表:显示系统中所有的书籍信息。

销售管理- 员工在主菜单选择销售管理,可以进行以下操作:- 记录销售:选择要销售的书籍,并输入销售的数量。

- 系统更新库存信息,并生成销售记录,包括销售时间、图书名称和数量等。

- 销售记录可以用于后续的统计和分析。

会员管理- 管理员在主菜单选择会员管理,可以进行以下操作:- 添加会员:输入会员的姓名、手机号码和积分等信息,保存到系统中。

- 编辑会员信息:选择要编辑的会员,并修改相关信息。

- 删除会员:选择要删除的会员,并从系统中删除。

- 查看会员列表:显示系统中所有的会员信息。

库存管理- 系统会记录每本书籍的库存数量和位置。

- 当员工记录销售时,系统会自动更新库存信息。

- 员工可以在主菜单选择库存管理,查看当前库存情况。

技术实现本系统将使用C语言进行开发,主要使用以下技术:1. 数据结构:使用结构体来表示书籍、会员和销售记录等信息。

2. 文件操作:使用文件保存和读取数据,以实现数据的持久化。

图书管理系统c语言

图书管理系统c语言

图书管理系统C语言1. 简介图书管理系统是一种用于管理图书馆藏书和借阅记录的软件系统。

它通常包括图书的录入、借阅、归还、查询等功能,能够提高图书馆的工作效率和服务质量。

本文将使用C语言编写一个简单的图书管理系统,实现基本的图书信息录入、修改、查询、借阅、归还等功能。

2. 功能实现2.1 数据结构我们首先需要定义合适的数据结构来存储图书信息和借阅记录。

以下是一个简单的数据结构示例:struct Book {int id; // 图书编号char title[100]; // 图书标题char author[50]; // 图书作者char category[50]; // 图书分类int isBorrowed; // 图书是否已借阅,0表示未借阅,1表示已借阅char borrowerName[100]; // 借阅者姓名// 可根据需求扩展其他字段};struct BorrowRecord {int bookId; // 图书编号char borrowerName[100]; // 借阅者姓名char borrowDate[20]; // 借阅日期char returnDate[20]; // 归还日期// 可根据需求扩展其他字段};2.2 图书信息录入和修改我们可以通过实现相应的函数来实现图书信息的录入和修改。

以下是一个简单的示例:void addBook(struct Book *library, int *count) {// 输入图书信息,将其存入library数组中,同时更新count}void updateBook(struct Book *library, int count, int bookId) { // 根据图书编号bookId,更新library数组中对应图书的信息}2.3 图书查询我们可以根据图书的不同字段来实现不同的查询功能,比如根据图书标题、作者、分类等进行模糊查询,或根据图书编号进行精确查询。

c语言图书管理系统流程图

c语言图书管理系统流程图

c语言图书管理系统流程图C语言图书管理系统流程图概述:C语言图书管理系统是一个用于管理图书馆或书店的系统,它可以实现图书的添加、删除、查询和借还等功能。

本文将通过详细的流程图,介绍C语言图书管理系统的运行流程。

1. 添加图书:- 用户输入图书信息,包括书名、作者、出版日期和价格等。

- 系统接收用户输入的信息,并生成一个唯一的图书编号。

- 系统将图书信息和图书编号存储到数据库中。

2. 删除图书:- 用户输入要删除的图书编号。

- 系统在数据库中查找并验证该图书编号是否存在。

- 如果存在,则从数据库中删除该图书信息。

3. 查询图书:- 用户输入要查询的图书名称或作者等信息。

- 系统在数据库中查找与用户输入信息匹配的图书。

- 系统将符合条件的图书信息显示给用户。

4. 借阅图书:- 用户输入要借阅的图书编号。

- 系统在数据库中查找并验证该图书编号是否存在。

- 如果该图书可借,则系统记录借阅人的信息,标记该图书为已借出状态。

5. 归还图书:- 用户输入要归还的图书编号。

- 系统在数据库中查找并验证该图书编号是否存在,并检查该图书是否已借出。

- 如果该图书已借出且由用户借出,则系统记录归还时间,将该图书状态标记为可借。

6. 统计功能:- 用户选择统计功能入口。

- 系统提供多种统计选项,例如按照作者统计、按照出版日期统计、按照价格区间统计等。

- 系统在数据库中进行相应的查询并展示统计结果。

7. 备份与恢复:- 用户选择备份或恢复功能入口。

- 备份功能:系统将数据库中的图书信息备份到指定的文件中。

- 恢复功能:系统从指定的备份文件中还原图书信息到数据库中。

8. 系统维护:- 用户选择系统维护功能入口。

- 维护功能包括数据库清理、数据完整性检查、系统日志管理等。

- 用户可以根据需求选择相应的维护操作。

总结:C语言图书管理系统通过以上流程图所示的各项功能,实现了对图书的添加、删除、查询和借还等操作,同时还提供了统计、备份和维护等实用的功能。

图书馆管理系统(vc)

图书馆管理系统(vc)

#include "stdio.h"#include "conio.h"#include "stdlib.h"#include "string.h"#define MAX 10/*定义图书信息结构体数组*/typedef struct{long No; /*图书编号*/char name[10]; /*图书名称*/char sort[10]; /*图书类别*/int sum; /*图书总量*/char writer[10]; /*图书作者*/char publish[20]; /*图书出版社*/int time; /*图书出版时间*/char lend[10]; /*图书借阅信息*/}Message;/*读取图书信息*/int read_book(Message Book[]){int i=0;FILE *fp;fp=fopen("d:\\book.txt","r");if(fp==NULL) {printf("该文件不存在!\n");return -1;}while(!feof(fp)){fscanf(fp,"%d%s%s%d%s%s%d\n",&Book[i].No,&Book[i].name,&Book[i].sort,&Book[i].s um,&Book[i].writer,&Book[i].publish,&Book[i].time);i++;printf("\n");}return i;}/*输出图书信息*/void print_book(Message Book[],int i){int k;printf(" 图书编号------名称------类别------数量-----作者--------出版社-----出版日期\n");for(k=0;k<i+1;k++)printf(" %ld %s %s %d %s %s %d\n",Book[k].No,Book[k].name,Book[k].sort,Book[k].sum,Book[k].writer,Book[k].publish,Book[k].time);printf("--------------------------------------------------------------------------\n"); printf("按任意键返回主菜单!");getch();}/*按图书编号升序排列*/void sort_book1(Message Book[],int cnt){Message t;int i,j;for(i=0;i<cnt-1;i++)for(j=i+1;j<cnt;j++)if(Book[i].No>Book[j].No){t=Book[i];Book[i]=Book[j];Book[j]=t;}}/*按图书类别排序*/void sort_book2(Message Book[],int cnt){Message t;int i,j;for(i=0;i<cnt-1;i++)for(j=i+1;j<cnt;j++)if((strcmp(Book[i].sort,Book[j].sort))>0){t=Book[i];Book[i]=Book[j];Book[j]=t;}}/*添加新书信息*/int add_book(Message Book[],int i){ FILE *fp;char ch;printf("*************************************************************************\n"); do{printf("请输入新书编号:");scanf("%ld",&Book[i].No);printf("请输入新书书名:");scanf("%s",&Book[i].name);printf("请输入新书类别:");scanf("%s",&Book[i].sort);printf("请输入新书总量:");scanf("%d",&Book[i].sum);printf("请输入新书作者:");scanf("%s",&Book[i].writer);printf("请输入新书出版社:");scanf("%s",&Book[i].publish);printf("请输入新书出版时间:");scanf("%ld",&Book[i].time);strcpy(Book[i].lend,"可借");fp=fopen("d:\\book.txt","a");fprintf(fp,"%ld %s %s %d %s %s %d\n",Book[i].No,Book[i].name,Book[i].sort,Book[i].sum,Book[i].writer,Book[i].publish,Book[i].time);fclose(fp);i++;printf("输入完毕!\n是否还要添加?(请输入Y/N):");flushall();scanf("%c",&ch);}while(ch=='Y');return i;}/*修改图书信息*/void change_book(Message Book[],int count){int i,sum;long no,num,time;FILE *fp;char name[10],sort[10],writer[10],publish[20];printf("*************************************************************************\n");printf("请输入要修改图书的编号:");scanf("%ld",&no);for(i=0;i<count;i++)if(no==Book[i].No) { printf("请输入新书编号:");scanf("%ld",&num);Book[i].No=num;printf("请输入新书书名:");scanf("%s",name);strcpy(Book[i].name,name);printf("请输入新书类别:");scanf("%s",sort);strcpy(Book[i].sort,sort);printf("请输入新书总量:");scanf("%d",&sum);Book[i].sum=sum;printf("请输入新书作者:");scanf("%s",writer);strcpy(Book[i].writer,writer);printf("请输入新书出版社:");scanf("%s",publish);strcpy(Book[i].publish,publish); printf("请输入新书出版时间:");scanf("%ld",&time);Book[i].time=time;break;}fp=fopen("d:\\book.txt","w");for(i=0;i<count;i++)fprintf(fp,"%ld %s %s %d %s %s%d\n",Book[i].No,Book[i].name,Book[i].sort,Book[i].sum,Book[i].writer,Book[i].publish,Book[i].time);fclose(fp);}/*按图书类别查询书目*/void inquir_book1(Message Book[],int count){char a[10],ch;int i=0,k,cnt=0;long no;printf("请输入查询图书类别(不可含空格):");scanf("%s",a);flushall();for(k=0;k<count;k++){if(strcmp(a,Book[k].sort)==0){printf(" 图书编号------名称------类别------数量-----作者--------出版社-----出版日期\n");printf(" %ld %s %s %d %s %s%d\n",Book[k].No,Book[k].name,Book[k].sort,Book[k].sum,Book[k].writer,Book[k].publish,Book[k].time);printf("--------------------------------------------------------------------------\n");printf("\n");cnt++;}}if(cnt==0&&k==count) {printf("您所查询的图书不存在!\n");getch();exit(1);}printf("您是否借阅该书?(请输入Y/N)\n");scanf("%c",&ch);if(ch=='Y') {if(cnt>1) {printf("请输入要借阅图书的编号:");scanf("%ld",&no);for(i=0;i<count;i++)if(Book[i].No==no){if(strcmp(Book[i].lend,"借出")==0) {printf("对不起,该书已被借阅!");printf("按任意键返回主菜单!");getch();}else {strcpy(Book[i].lend,"借出");printf("借阅成功!");printf("按任意键返回主菜单!");}break;}}else if(strcmp(Book[k-1].lend,"借阅")==0) {printf("对不起,该书已被借阅!");printf("按任意键返回主菜单!");getch();}else {strcpy(Book[k-1].lend,"借阅");printf("借阅成功!\n");printf("按任意键返回主菜单!\n");}}if(ch=='N') printf("按任意键返回主菜单!");getch();}/*按图书书名查询*/void inquir_book2(Message Book[],int count){char a[10],ch;int i=0,k,cnt=0;long no;printf("请输入查询图书书名(不可含空格):");scanf("%s",a);flushall();for(k=0;k<count;k++){if(strcmp(a,Book[k].name)==0){printf(" 图书编号------名称------类别------数量-----作者--------出版社-----出版日期\n");printf(" %ld %s %s %d %s %s %d\n",Book[k].No,Book[k].name,Book[k].sort,Book[k].sum,Book[k].writer,Book[k].publish,Book[k].time);printf("--------------------------------------------------------------------------\n"); printf("\n");cnt++;}}if(cnt==0&&k==count) {printf("您所查询的图书不存在!\n");getch();exit(1);}printf("您是否借阅该书?(请输入Y/N)\n");scanf("%c",&ch);if(ch=='Y') {if(cnt>1) {printf("请输入要借阅图书的编号:");scanf("%ld",&no);for(i=0;i<count;i++)if(Book[i].No==no){if(strcmp(Book[i].lend,"借出")==0) {printf("对不起,该书已被借阅!");printf("按任意键返回主菜单!");getch();}else {strcpy(Book[i].lend,"借出");printf("借阅成功!\n");printf("按任意键返回主菜单!");}break;}}else if(strcmp(Book[k-1].lend,"借出")==0) {printf("对不起,该书已被借阅!");printf("按任意键返回主菜单!");getch();}else {strcpy(Book[k-1].lend,"借出");printf("借阅成功!\n");printf("按任意键返回主菜单!");}}if(ch=='N') printf("按任意键返回主菜单!");getch();}/*图书借阅管理*/void lend_book(Message book[],int count){int i;printf("*************************************************************************\n");printf(" 图书编号---------------书名---------------借阅信息\n\n");for(i=0;i<count;i++)printf(" %ld %s %s\n",book[i].No,book[i].name,book[i].lend);printf("按任意键返回主菜单!");getch();}void main(){int cnt,cnt1,i,choice,choice1,choice2;Message book[MAX];cnt=read_book(book);cnt1=cnt;for(i=0;i<cnt;i++)strcpy(book[i].lend,"可借");if(cnt==-1) {getch();exit(1);}else{do{system("cls");printf("\n\n\n");printf(" *****************************图书管理系统********************************\n\n");printf(" 1.查看书目信息\n\n");printf(" 2.添加新书信息\n\n");printf(" 3.修改图书信息\n\n"); printf(" 4.查询书目信息\n\n");printf(" 5.借阅管理信息\n\n");printf(" 6.退出系统\n\n");printf(" 请选择(1-6):");scanf("%d",&choice);switch(choice){case 1: if(cnt==0){printf("馆中无书籍,请添加!\n(按任意键返回主菜单添加!)");getch();break;}else{printf(" -----------------------------书目查询方法-------------------------------\n\n");printf(" 1.按图书编号升序排列\n\n");printf(" 2.按图书类别排序\n\n"); printf("------------------------------------------------------------------------\n\n"); printf(" 请选择书目排序方法(1或2):");scanf("%d",&choice1);switch(choice1){case 1:sort_book1(book,cnt1);print_book(book,cnt1-1);break;case 2:sort_book2(book,cnt1);print_book(book,cnt1-1);break;}}break;case 2:cnt1=add_book(book,cnt);printf("按任意键返回主菜单!");getch();break;case 3:change_book(book,cnt1);print_book(book,cnt1-1);break;case 4:printf(" -----------------------------书目排序方法-------------------------------\n\n");printf(" 1.按图书类别查询书目\n\n");printf(" 2.按图书书名查询\n\n"); printf("------------------------------------------------------------------------\n\n"); printf(" 请选择书目查询方法(1或2):");。

c语言图书馆管理系统(codeblocks版)

c语言图书馆管理系统(codeblocks版)
printf("\t--------ID: %40s--------\n", p1->ID);
printf("\t--------PASS: %40s--------\n", p1->pass);
printf("\t--------LEVEL:%40d--------\n", p1->level);
/*
*图书馆管理系统
*@author琴卓
*@time 2015-12-10
*/
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
#include<ctype.h>
#include<windows.h>
#define PASS_LEN 20 //密码长度
int lendsum;
struct user *next;
}user;
//用户结构体简写为bokk
typedef struct book {
char name[20];
char author[20];
char publish[20];
char year[10];
char ISBN[40];
char state[10];
char choice;
//程序入口
void main()
{
system("color 8b");
system("mode con cols=100 lines=50");
printf("\t\t\t图书馆系统细则:\n\t\t1.新用户注册由系统管理员操作\n\t\t2.图书由图书管理员负责\n\t\t3.普通用户最多借3本书为期30天,可续借一次,\n\t\t超期不换将每天扣除0.1元,超过10元账户将冻\n\t\t结,届时无法完成登录,需要找系统管理员解冻\n\t\t4.密码输入支持退格,访问级别1代表普通用户\n\t\t5.单项数据输入不支持空格\n\t\t6.程序每关闭开启一次经过6天\n");

c书库管理系统课程设计

c书库管理系统课程设计

c 书库管理系统课程设计一、课程目标知识目标:1. 理解书库管理系统的基本概念,掌握其功能模块和操作流程;2. 学习数据库基础知识,了解SQL语言的基本操作,能够运用所学创建、查询和维护数据库;3. 掌握面向对象编程思想,运用所学编程语言设计并实现书库管理系统的功能。

技能目标:1. 能够运用数据库技术进行信息存储和管理,提高数据处理能力;2. 培养编程实践能力,通过编写代码实现书库管理系统的功能模块;3. 学会分析需求,独立设计并完成一个小型的书库管理系统。

情感态度价值观目标:1. 培养学生的团队协作意识,学会与他人共同解决问题;2. 激发学生学习信息技术的兴趣,提高对编程和数据库技术的热情;3. 培养学生的创新意识,鼓励他们勇于尝试,不断优化书库管理系统。

本课程旨在通过书库管理系统课程设计,使学生在掌握数据库和编程技术的基础上,培养实际应用能力。

针对学生的年级特点,课程内容深度适中,注重实践操作和团队协作。

通过本课程的学习,学生将能够独立设计并实现一个功能完善的书库管理系统,提高自身的信息技术素养。

二、教学内容1. 书库管理系统概述:介绍书库管理系统的基本概念、功能模块和实际应用场景,让学生了解课程的整体框架。

相关教材章节:第一章 引言2. 数据库基础知识:讲解数据库的基本概念、关系型数据库的原理,以及SQL 语言的基本操作。

相关教材章节:第二章 数据库基础、第三章 SQL语言3. 编程语言基础:复习面向对象编程思想,结合教材案例讲解编程语言在书库管理系统中的应用。

相关教材章节:第四章 面向对象编程、第五章 编程语言应用4. 书库管理系统功能设计:分析系统需求,讲解如何设计各功能模块,包括图书信息管理、借阅管理等。

相关教材章节:第六章 系统设计、第七章 功能模块设计5. 编程实践与系统实现:指导学生运用所学知识,分组进行编程实践,完成书库管理系统的设计与实现。

相关教材章节:第八章 编程实践6. 系统测试与优化:介绍系统测试方法,指导学生进行功能测试,发现问题并进行优化。

  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);}。

相关文档
最新文档