
我的邮箱在2113线路上已有很长时间了. 如果您一无所知,可以直接咨询5261. 电子邮件: wyw2010@tom.com
这是我以前在4102中所做的课程设计,而没有修改功能1653. 修改非常容易. 我也有学生管理信息的源代码,可以实现上述所有功能. 由于我现在正在为客户开发系统,因此我没有时间完善此程序. 我希望您可以自己改善它.
/ *设计并实施一个简单的图书馆管理系统来管理图书馆业务* /
///////////////////////////////////////////////// // /
//内容: 设计并实现一个简单的图书馆管理系统来管理图书馆业务
//要求: 以C语言和顺序结构实现,该系统具有以下功能
// 1. 图书存储: 图书数据包括图书编号,书名,作者,数量,单价等. 一本书作为节点,
//使用书号作为关键字,以输入顺序建立顺序表
// 2. 排序: 按书号升序排序(可以选择任何排序方式)
// 3. 搜索: 可以按书名和书号进行搜索(分别为顺序搜索和半搜索)
// 4. 删除: 从表格中删除指定的书
#include
#include
#include
#include
#define LIST_INIT_SIZE 50
#define LISTINCREMENT 10
typedef结构书
{
int BookNum; / *书号* /
char BookName [50]; / *书名* /
char BookWrite [50]; / *图书作者* /
浮动书价; / *图书价格* /
int数字; / *图书数量* /
}书籍;
typedef struct Library_Data
{
Book * book;
int长度;
int listsize;
int Num;
} Library_Data,* Lib_Data;
//显示指定的记录
无效打印(书p)
{
printf(“ \ n ****************************************** ******************************** \ n“);
printf(“书号,书名,作者,书数,书单价(元)\ n”);
printf(“ -------------------------------------------- ---- ------------------------ \ n“);
printf(“%-14d%-14s%-14s%-14d%-14f \ n”,p.BookNum,p.BookName,p.BookWrite,p.numbers,p.BookPrice);
printf(“ ******************************************** ****************************** \ n“);
}
//查找功能
int find(Library_Data p,int Num,char s [20])
{
int i,low,mid,high;
if(Num ==-1)
for(i = 0; i
{
if(strcmp(s,p.book [i] .BookName)== 0)
返回我;
}
否则if(strcmp(s,“”)== 0)
{
low = 0; high = p.length;
while(low <= high)/ *查找一半* /
{
mid =(low + high)/ 2;
if(Num == p.book [mid] .BookNum)返回mid;
否则if(Num> p.book [mid] .BookNum)low = mid + 1;
else high = mid-1;
}
}
返回-1;
}
//升序
Library_Data Sort_Book(Library_Data&p)
{
书p0;
int i,j;
if(p.Num == 0)返回p;
for(i = 0; i

{
for(j = i + 1; j
{
if(p.book [i] .BookNum> p.book [j] .BookNum)
{
p0 = p.book [i];
p.book [i] = p.book [j];
p.book [j] = p0;
}
}
}
返回p;
}
//图书初始化
void Create_Data(Library_Data&p1)
{
int i = 0;
图书* newbase;
system(“ cls”);
printf(“现在初始化书\ n”);
puts(“ ***************************************”);
p1.Num = 0; p1.length = 0;
p1.listsize = LIST_INIT_SIZE;
p1.book =(书*)malloc(LIST_INIT_SIZE * sizeof(书));
做
{
if(p1.length> p1.listsize)
{
newbase = {Book *)realloc(p1.book,(p1.listsize + LISTINCREMENT)* sizeof(Book));
如果(!newbase)出口(0);
p1.book = newbase;
p1.listsize + = LISTINCREMENT;
}
printf(“请输入书号: ”);
scanf(“%d”,&p1.book [i] .BookNum);
printf(“请输入书名: ”);
scanf(“%s”,&p1.book [i] .BookName);
printf(“输入图书作者: ”);
scanf(“%s”,&p1.book [i] .BookWrite);
printf(“请输入书数: ”);
scanf(“%d”,&p1.book [i] .numbers);
printf(“请输入书价: ”);
scanf(“%f”,&p1.book [i] .BookPrice);
p1.Num + = p1.book [i] .numbers; i ++; p1.length ++;
printf(“ *********************************** \ n”);
printf(“按n退出,按另一个继续. \ n”); / *提示如何继续,退出* /
printf(“ *********************************** \ n”);
} while(getch()!='n');
Sort_Book(p1);
}
//查找书籍
int Find_Book(Library_Data p,int n)
{
字符名称[20] =“”;
int k,Num = -1;
if(p.Num == 0)
{
system(“ cls”);
printf(“现在没有书记录!”);
返回0;
}
否则if(n == 1)
{
system(“ cls”); / *清除屏幕* /
printf(“现在要搜索书籍信息”);
printf(“ \ n ****************************************** **** *** \ n“);
printf(“请输入您要查找的书的标题: ”);
scanf(“%s”,name);
k = find(p,Num,name); / *调用find()查找函数* /
if(k!=-1)/ *条件满足以下功能* /
print(p.book [k]);

其他
printf(“ \ n找不到您要查找的图书信息. 按任意键继续. ”);
}
否则if(n == 2)
{
system(“ cls”); / *清除屏幕* /
printf(“现在要搜索书籍信息”);
printf(“ \ n ****************************************** **** *** \ n“);
printf(“请输入您要查找的书号: ”);
scanf(“%d”,&Num);
k = find(p,Num,name); / *调用find()查找函数* /
if(k!=-1)/ *条件满足以下功能* /
print(p.book [k]);
其他
printf(“ \ n找不到您要查找的图书信息. 按任意键继续. ”);
}
其他
printf(“您的选择是错误的!”);
返回1;
}
//插入书本
void add(Library_Data&p0)
{
int i,k,low,mid,high;
书p1,* p2,* p3,* newbase;
system(“ cls”);
if(p0.Num == 0)
printf(“图书信息表尚未初始化,您需要在插入之前初始化图书信息表. \ n”);
其他
{
if(p0.length> = p0.listsize-1)
{
newbase = {Book *)realloc(p0.book,(p0.listsize + LISTINCREMENT)* sizeof(Book));
如果(!newbase)出口(0);
p0.book = newbase;
p0.listsize + = LISTINCREMENT;
}
printf(“请输入要插入的图书信息: \ n”);
printf(“ ******************************************** **** * \ n“);
printf(“请输入书号: ”);
scanf(“%d”,&p1.BookNum);
printf(“ ******************************************** **** * \ n“);
printf(“请输入书名: ”);
scanf(“%s”,&p1.BookName);
printf(“ ******************************************** **** * \ n“);
printf(“请输入书作者: ”);
scanf(“%s”,&p1.BookWrite);
printf(“ ******************************************** **** * \ n“);
printf(“请输入书数: ”);
scanf(“%d”,&p1.numbers);
printf(“ ******************************************** **** * \ n“);
printf(“请输入书价: ”);
scanf(“%f”,&p1.BookPrice);
printf(“ ******************************************** **** * \ n“);
low = 0; high = p0.length;
if(p1.BookNum { for(p2 =&p0.book [p0.length]; p2> =&p0.book [0]; p2-) *(p2 + 1)= * p2; p0.book [0] = p1; p0.Num + = p1.numbers; p0.length ++; } 否则if(p1.BookNum> p0.book [p0.length-1] .BookNum) { p0.book [p0.length] = p1; p0.Num + = p1.numbers; p0.length ++; } 其他 { for(i = 0; i if(p1.BookNum> = p0.book [i] .BookNum && p1.BookNum for(p2 =&p0.book [p0.length]; p2>&p0.book [i]; p2-) *(p2 + 1)= * p2; p0.book [i + 1] = p1; p0.Num + = p1.numbers; p0.length ++; } } } //删除图书 void Delete_Book(Library_Data&LD,int n) { system(“ cls”); 字符名称[20] =“”; 字符a; int i = 0c语言编写图书管理系统,k = 0,Num = -1; 书* p1,* p2; if(LD.Num == 0) printf(“现在没有书记录!”); 其他 { printf(“删除图书信息”); printf(“ \ n ****************************************** **** *** \ n“); if(n == 1) { printf(“请输入要删除的书的标题: ”); / *提示输入要删除的书的标题* / scanf(“%s”,name); printf(“是否要删除所有同名书籍?” Y“是,其他键仅删除第一本书: ”); if(getch()=='y')/ *删除所有具有相同名称的书* / { for(i = 0; i { if(strcmp(name,LD.book [i] .BookName)== 0) { p2 =&LD.book [LD.length-1]; LD.Num- = LD.book [i] .numbers; for(p1 =&LD.book [i]; p1 <= p2; p1 ++) * p1 = *(p1 + 1); LD.length-; k = 1; i = -1; } } if(k == 0)printf(“ \ n没有要删除的记录\ n”); else printf(“ \ n所有名为”%s“的信息已被删除!\ n”,名称); / *显示已删除的信息* / } 其他 { i = find(LD,Num,name); if(i ==-1)printf(“ \ n没有要删除的记录\ n”); 其他/ *删除同一本书的信息* / { p2 =&LD.book [LD.length-1]; LD.Num- = LD.book [i] .numbers; for(p1 =&LD.book [i]; p1 <= p2; p1 ++) * p1 = *(p1 + 1); printf(“ \ n书号为%s的信息已被删除!\ n”,名称); / *显示已删除的信息* / LD.length-; } } } 否则if(n == 2) { printf(“请输入要删除的书号: ”); / *提示输入要删除的书号* / scanf(“%d”,&Num); i = find(LD,Num,name); if(i ==-1)printf(“没有要删除的记录\ n”); 其他 { p2 =&LD.book [LD.length-1]; LD.Num- = LD.book [i] .numbers; for(p1 =&LD.book [i]; p1 <= p2; p1 ++) * p1 = *(p1 + 1); printf(“书号为%d的信息已被删除!\ n”,Num); / *显示已删除的信息* / LD.length-; } } 其他 printf(“您的选择是错误的!”); } } //显示所有书籍信息 void ShowBookTable(Library_Data p,int n) { int i; system(“ cls”); if(n == 0) printf(“现在没有书记录!”); 其他 { printf(“现在有有关%d本书的信息. ”,n); printf(“ \ n ****************************************** ********************************** \ n“); printf(“书号c语言编写图书管理系统,书名,作者,书数,书单价(元)\ n”); for(i = 0; i { printf(“ -------------------------------------------- ---- -------------------------- \ n“); printf(“%-14d%-14s%-14s%-14d%-14f \ n”,p.book [i] .BookNum,p.book [i] .BookName,p.book [i]. BookWrite,p.book [i] .numbers,p.book [i] .BookPrice); } printf(“ ******************************************** ******************************** \ n“); } } //菜单功能 int menu_select()/ *定义菜单功能* / { int c; printf(“按任意键进入选择菜单... \ n”); / *提示按任意键继续* / getch(); / *读取任何字符* / system(“ cls”); / *清除屏幕* / printf(“ ********************菜单选项如下****************** \ n \ n“); / *以下是主菜单* / printf(“ 1.初始化图书信息表\ n”); printf(“ 2.显示所有书籍记录\ n”); printf(“ 3.查找图书记录\ n”); printf(“ 4.删除帐簿记录\ n”); printf(“ 5.插入新记录\ n”); printf(“ 6.退出系统\ n”); printf(“ ******************************************** **** *** \ n“); 做{ printf(“ \ n输入您的选择(1〜6): ”); / *提示输入选项* / scanf(“%d”,&c); / *输入选择内容* / if(!(c> = 1 && c <= 6)) {printf(“您的输入不正确,请重新输入......”);} } while(c <1 || c> 6); / *选择在0〜6之间不重新输入* / 返回c; / *返回所选项目,主程序根据该编号调用相应的函数* / } void main() { Library_Data LD; LD.Num = 0; int n,m; for(;;)/ *无限循环* / { switch(menu_select()) { 情况1: Create_Data(LD); break; / *初始* / 案例2: ShowBookTable(LD,LD.Num); break; / *显示所有书籍信息* / 情况3: printf(“请选择搜索方法(“ 1”用于按书名搜索,“ 2”用于按书号搜索: ”); scanf(“%d”,&n); Find_Book(LD,n); break; / *查找书籍信息* / 情况4: printf(“请选择删除方法(” 1“按书名删除,” 2“按书号删除): ”); scanf(“%d”,&m); Delete_Book(LD,m); break; / *删除图书信息* / 案例5: add(LD); break; / *插入图书信息* / 情况6: exit(0); / *结束程序* / } } }

本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-246512-1.html
请问还能经济发展吗
应该不是南京判的
真牛逼
图五