问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

编程,用c语言编辑

发布网友 发布时间:2024-01-10 09:24

我来回答

1个回答

热心网友 时间:2024-02-26 14:05

/*本程序转自天涯潜水2的blog*/

#include <stdio.h>
#include <malloc.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#define LEN sizeof(struct booklist)
#define LEN2 sizeof(struct memberlist)
#define LEN3 sizeof(struct readers)
typedef struct readers//借书信息结构体
{
char name[30];//借书人的姓名
struct readers *next2;
}reader;

//书本信息结构体
typedef struct booklist
{
char num[20]; //书号
char name[30]; //书名
char concern[50];//出版社
char date[20];//出版日期
char author[20];//作者
int page;//页数
int price;//价格
int imformation;//图书剩余数量
reader *a;//借阅人
struct booklist *next;
}Book;
void creatlist();//创建新的书本信息
void print(Book *head);//打印书本信息
void save(Book *head);//储存书本信息
void AddBook();//添加书本信息
void DelBook();//删除书本信息
Book *read();//读取书本信息
void manager();//管理员操作
void Bookconsult(); //图书查询
int Borrow();//借书
int Return();//还书
Book *sort(Book *head);//书本信息按书号排序
void imformation();//系统信息

Book *head=NULL,*p1=NULL,*p2=NULL;

//创建新的书本信息
void creatlist()
{
int i,n;
printf("要创建的书本数目");
scanf("%d",&n);
p2=head=(Book *)malloc(LEN); //创建带有头结点的链表
p2->a=(reader *)malloc(LEN3);
p2->a->next2=NULL;
p2->next=NULL;
printf("请输入书的信息:\n");
for(i=1;i<=n;i++)
{
p1=(Book *)malloc(LEN);
printf("书号: "); scanf("%s",p1->num);
printf("书名: "); scanf("%s",p1->name);
printf("出版社: "); scanf("%s",p1->concern);
printf("出版日期: "); scanf("%s",p1->date);
printf("作者: "); scanf("%s",p1->author);
printf("书本页数: "); scanf("%d",&p1->page);
printf("书本价格(元): "); scanf("%d",&p1->price);
p1->a=(reader *)malloc(LEN3);
p1->a->next2=NULL;
p1->imformation=10;
p1->next=NULL;
p2->next=p1;
p2=p1;
if(i<n) printf("下一本:\n");
}
head=sort(head);
save(head);
print(head);
}

//打印书本信息
void print(Book *head)
{
Book *p=NULL;
reader *p0=NULL;
p=head->next;
printf("*******************************************************************************\n");
while(p!=NULL)
{
printf("书号: %s\n书名: %s\n出版社: %s\n出版日期: %s\n作者: %s\n书本页数(页) : %d\n书本价格(元) : %d\n剩余数量 : %d\n",p->num,p->name,p->concern,p->date,p->author,p->page,p->price,p->imformation);
printf("借阅图书的人:");
if(p->a->next2==NULL) printf("------------暂无借阅人!");
else
{
for(p0=p->a->next2;p0!=NULL;p0=p0->next2)
{
printf("%s ",p0->name);
}
}
p=p->next; /* p后移一个结点 */
printf("\n");
printf("\n");
}
}
//书本信息按书号排序
Book *sort(Book *head)
{
Book *p1=NULL,*p2=NULL,*p3=NULL,*min=NULL,*min2=NULL,*head2=head->next;
p1=head2;
while(p1->next!=NULL)
{
min=p2=p1; /*把首结点作为最小值*/
while(p2->next!=NULL)
{
if(strcmp(min->num,p2->next->num)>0) /*首结点与下一结点比较*/
{
min2=p2;
min=p2->next;
}
p2=p2->next;
}
if(min!=p1)
{
min2->next=min->next; /*删除最小结点*/
min->next=p1; /*插入最小结点*/
if(p1==head2) head2=min;
else p3->next=min; /*p3为min前的结点指针*/
p3=min;
}
else
{
p3=p1;
p1=p1->next;
}
}
head->next=head2;
return(head);
}
//储存书本信息
void save(Book *head)
{
FILE *fp,*fp2;
Book *p=NULL;
reader *q=NULL;
fp=fopen("书本信息.txt","wb"); //printf("不能打开文件!\n");
fp2=fopen("借阅信息.txt","wb"); //printf("不能打开文件!\n");
p=head;
while(p!=NULL)
{
fwrite(p,LEN,1,fp); /*逐个结点写文件*/
for(q=p->a;q!=NULL;q=q->next2)
{fwrite(q,LEN3,1,fp2);}
p=p->next;
}
fclose(fp);
fclose(fp2);
}
//添加书本信息
void AddBook()
{
FILE *fp,*fp2;
Book *addbook=NULL;
reader *p0=NULL;
fp=fopen("书本信息.txt","ab"); //追加方式打开文件
fp2=fopen("借阅信息.txt","ab");
addbook=(Book *)malloc(LEN);
printf("输入书本信息:\n");
printf("书号: "); scanf("%s",addbook->num);
printf("书名: "); scanf("%s",addbook->name);
printf("出版社: "); scanf("%s",addbook->concern);
printf("出版日期: "); scanf("%s",addbook->date);
printf("作者: "); scanf("%s",addbook->author);
printf("书本页数: "); scanf("%d",&addbook->page);
printf("书本价格(元): "); scanf("%d",&addbook->price);
p0=(reader *)malloc(LEN3);
p0->next2=NULL;
addbook->a=p0;
addbook->imformation=10;
addbook->next=NULL;
fwrite(addbook,LEN,1,fp); /*块写*/
fwrite(p0,LEN3,1,fp2);
fclose(fp);
fclose(fp2);
}
//读取书本信息
Book *read()
{
FILE *fp,*fp2;
Book *p=NULL,*p1=NULL,*head=NULL;
reader *p0=NULL,*p2=NULL;
if((fp=fopen("书本信息.txt","rb"))==NULL) printf("不能打开文件或文件不存在!\n");
if((fp2=fopen("借阅信息.txt","rb"))==NULL) printf("不能打开文件或文件不存在!\n");
head=(Book *)malloc(LEN);
fread(head,LEN,1,fp);
p1=head;
p0=(reader *)malloc(LEN3);
fread(p0,LEN3,1,fp2);
p0->next2=NULL;
head->a=p0;
head->next=NULL;
p=(Book *)malloc(LEN);
while(fread(p,LEN,1,fp)) /*逐个结点读取*/
{
p1->next=p;
p1=p1->next;
p0=(reader *)malloc(LEN3);
p1->a=p0;
while(fread(p0,LEN3,1,fp2))
{
if(p0->next2==NULL)
{
p2=p0;
p0=(reader *)malloc(LEN3);
break;
}

p2=p0;
p0=(reader *)malloc(LEN3);
p2->next2=p0;
}
free(p0);
p2->next2=NULL;
p=(Book *)malloc(LEN);
}
p1->next=NULL;
free(p);
fclose(fp);
fclose(fp2);
head=sort(head);
if(head!=NULL) return(head);
else
{
printf("文件为空!\n");
return 0;
}
}
//删除书本信息
void DelBook()
{
Book *head=NULL,*p=NULL,*q=NULL;
char bookname[30];
head=read();
printf("输入要删除的书名: ");
scanf("%s",bookname);
p=head;
while(p!=NULL)/*按名字查找要删除的图书*/
{
if(strcmp(p->name,bookname)==0)
{
if(p==head)
{
head=head->next;
break;
}
else
{
q->next=p->next;
break;
}
}
q=p;
p=p->next;
}
save(head);
}
//管理员操作
void manager()
{
int n,i=0,k=1;
while(k==1)
{
printf("********************************************************************************\n");
printf(" 请选择你需要的操作\n");
printf(" ◎ 1.建立新的书本信息\n");
printf(" ◎ 2.插入书本信息\n");
printf(" ◎ 3.删除书本信息\n");
printf(" ◎ 4.读取所有书本信息\n");
printf(" ◎ 5.读取指定书本信息\n");
printf(" ◎ 6.返回到上级目录\n");
printf(" ◎ 7.保存并退出\n");
printf("请输入:");
scanf("%d",&n);
switch(n)
{
case 1: creatlist();break;
case 2: AddBook();break;
case 3: DelBook();break;
case 4: head=read();system("CLS");print(head);break;
case 5: system("CLS");Bookconsult();break;
case 6: k=0;break;
default: k=0;break;
}
}
}

//图书查询
void Bookconsult()
{
int n,m=1,sign=0;
Book *p=NULL,*p1=NULL,*p0=NULL,*head=NULL;
reader *p2=NULL;
char a[30],b[20],c[20];
head=read();
while(m==1)
{
printf(" 请选择你查询书本的方式: 1.按书名 2.按书的编号 3.按书的作者 4.退出查询\n");
printf("输入=");
scanf("%d",&n);
switch(n)
{
case 1: printf("请输入书名:");
scanf("%s",a);
p0=head;
while(p0!=NULL)
{
if(strcmp(a,p0->name)==0)
{
printf("*******************************************************************************\n");
printf("书号: %s\n书名: %s\n出版社: %s\n出版日期: %s\n作者: %s\n书本页数(页) : %d\n书本价格(元) : %d\n剩余数量 : %d\n",p0->num,p0->name,p0->concern,p0->date,p0->author,p0->page,p0->price,p0->imformation);
printf("借阅图书的人:");
if(p0->a->next2==NULL) printf("------------暂无借阅人!\n");
else
{
for(p2=p0->a;(p2=p2->next2)!=NULL;)
{printf("%s ",p2->name);}
}
printf("\n");
sign=1;
p0=p0->next;
}
else p0=p0->next;
}
if(sign==0) printf("没有这本书的信息.\n");
break;
case 2: printf("请输入书的编号:");
scanf("%s",b);
p0=head;
while(p0!=NULL)
{
if(strcmp(b,p0->num)==0)
{
printf("*******************************************************************************\n");
printf("书号: %s\n书名: %s\n出版社: %s\n出版日期: %s\n作者: %s\n书本页数(页) : %d\n书本价格(元) : %d\n剩余数量 : %d\n",p0->num,p0->name,p0->concern,p0->date,p0->author,p0->page,p0->price,p0->imformation);
printf("借阅图书的人:");
if(p0->a->next2==NULL) printf("------------暂无借阅人!\n");
else
{
for(p2=p0->a;(p2=p2->next2)!=NULL;)
{printf("%s ",p2->name);}
}
printf("\n");
break;
}
else p0=p0->next;
}
if(p0==NULL) printf("没有这本书的信息.\n");
break;
case 3: printf("请输入书的作者:");
scanf("%s",c);
p0=head;
while(p0!=NULL)
{
if(strcmp(c,p0->author)==0)
{
printf

("*******************************************************************************\n");
printf("书号: %s\n书名: %s\n出版社: %s\n出版日期: %s\n作者: %s\n书本页数(页) : %d\n书本价格(元) %d\n剩余数量 : %d\n",p0->num,p0->name,p0->concern,p0->date,p0->author,p0->page,p0->price,p0->imformation);
printf("借阅图书的人:");
if(p0->a->next2==NULL) printf("------------暂无借阅人!\n");
else
{
for(p2=p0->a;(p2=p2->next2)!=NULL;)
{printf("%s ",p2->name);}
}
printf("\n");
sign=1;
p0=p0->next;
}
else p0=p0->next;
}
if(sign==0) printf("没有这本书的信息.\n");
break;
default: m=0;break;
}
}
}

//借书
int Borrow()
{
char a[30],b[30],c;
Book *p0=NULL,*head=NULL;
reader *p2=NULL,*p3=NULL;
head=read();
printf("请输入要借的书的书号:");
scanf("%s",a);
p0=head->next;
while(p0!=NULL)
{
if((strcmp(a,p0->num))==0)
{
if(p0->imformation>0)
{
printf("图书在馆,可以借出,是否确定借出?'y'or'n'\n");
c=getchar();
scanf("%c",&c);
if(c=='y')
{
printf("请再次输入你的用户名:");
scanf("%s",b);
p3=(reader *)malloc(LEN3);
strcpy(p3->name,b);
if(p0->a->next2==NULL)
{
p0->a->next2=p3;
p3->next2=NULL;
}
else
{
for(p2=p0->a;p2->next2!=NULL;p2=p2->next2);
p2->next2=p3;
p3->next2=NULL;
}
--p0->imformation;
save(head);
printf("操作完成,可以带走图书。\n");
return 1;
break;
}
else
{
return 0;
break;
}
}
else printf("很抱歉,该图书不在馆.\n");return 0;break;
}
else p0=p0->next;
}
if(p0==NULL)
{
printf("很抱歉,没有这本书。\n");
return 0;
}
else return 2;
}

//还书
int Return()
{
Book *p0=NULL,*head=NULL;
reader *p2=NULL,*p3=NULL;
char c[20],b[30];
head=read();
printf("请输入要还的书的书号:");
scanf("%s",&c);
p0=head->next;
while(p0!=NULL)
{
if((strcmp(c,p0->num))==0)
{
printf("请输入你的用户名:");
scanf("%s",&b);
if(p0->a->next2==NULL) {printf("你没有借这本书!\n");break;}
else
{
p3=p0->a;
p2=p3->next2;
while(p2!=NULL)
{
if(strcmp(p2->name,b)==0)
{
if(p2->next2==NULL) {p3->next2=NULL;free(p2);break;}
else
{
p3->next2=p2->next2;
free(p2);
break;
}
}
else
{
p3=p2;
p2=p2->next2;
}
}
if(p2==NULL) printf("你没有借这本书!\n");
}
++p0->imformation;
save(head);
printf("书已归馆,操作完成。\n");
return 1;
break;
}
else p0=p0->next;
}
if(p0==NULL)
{
printf("没有这本书。\n");
return 0;
}
else return 2;
}
//借书信息
void imformation()
{
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
printf("※ 欢迎你使用我们的图书管理系统!以下是本系统的有关说明: ※\n");
printf("※本系统主要功能是进行图书的有关管理,你可以进行图书信息的创建、插入、删除、 ※\n");
printf("※查询;在操作中主要是以阿拉伯数字来选择相应的菜单功能,在选择时以'y'表示 '是' ※\n");
printf("※以'n'表示'不是'。在你操作的时候就会有相应的操作提示。 ※\n");
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
}

main()

{
int n,k=1;
printf("********************************************************************************\n");
printf("\n\n");
printf(" 欢迎进入我们的图书管理系统! \n");
printf("\n\n");
printf("********************************************************************************\n");
while(k==1)
{
printf(" 请选择你的操作: 1.管理员操作 2.系统信息 3.退出系统\n");
printf("********************************************************************************\n");
printf(" 你的选择是:");
scanf("%d",&n);
system("CLS");
switch(n)
{
case 1: manager();break;
case 2: imformation();break;
default: printf("+++++++++++++++++++++++++++欢迎你再次使用我们的系统!++++++++++++++++++++++++++++\n");k=0;break;
}
}

}
用c语言编程,输入一个字符,若是小写字母,转换为大写输出,若是大写字母...

includestdio.h intmain(){ charx,y;printf(请输入一个字母:);scanf(%c,x);if(x=ax=z)y=x-32;if(x=Ax=Z)y=x+32;printf(转换后的字符为:%c\n,y);} 代码在DEVC++环境下运行效果如下:/iknow-pic.cdn.bcebos.com/e4dde71190ef76c6732564659016fdfaae51678d"target="_blank"title=...

c语言编程,用while语句编写一个程序

const double pi=3.14;double a=10;while(a&lt;=180){ printf("角度:%6d\t,正弦:%10.6f\t,sin(a*pi/180),10.6f\n " a,余弦:cos(a*pi/180)),a=a+10;} 输出结果如下图:

如何用c语言编程判断闰年?

1、打开Visual Studio编辑器,新建一个C语言文件,在最前面引入标准库文件,然后定义一个main主函数:2、主函数中先定义一个int型的变量,用来存储用户输入的数字,然后yongscanf控制输入,输入的值传递给a变量,接着判断是否为闰年,判断条件为能被4整除而不能被100整除或者是能被400整除的数均为闰年,...

c语言编程软件哪个好用些

一、明确答案 推荐使用的C语言编程软件有Visual Studio Code、Code::Blocks和Dev-C++。二、详细解释 1. Visual Studio Code Visual Studio Code是一款轻量级的跨平台代码编辑器,适用于各种编程语言的开发,包括C语言。它具有强大的功能,如智能代码补全、调试支持和Git集成等。其界面简洁明了,易于上手,...

用C语言编程,输入一个十进制正整数,输出其对应的十六进制整数。_百度知 ...

include&lt;stdio.h&gt; int main(){ int a,*p;p=&amp;a;scanf("%d",p);printf("%x\n",*p);return 0;}

C语言编程是什么

C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛,不仅仅是在软件开发上,而且各类科研都需要用到C语言,具体应用比如单片机以及嵌入式系统...

如何利用记事本进行c语言编程

记事本可以编辑C语言。下面,我们来看看如何利用记事本进行c语言编程吧。1、记事本 新建一张记事本,修改名称为【hello world】,如下图所示:2、编写代码:include stdio.h main() { printf(hello worldn);} 3、保存记事本 然后保存记事本,修改后缀名为【.c】,如下图所示:4、就会变成C语言...

C语言编程编辑时一条命令怎么换行编辑

源代码如下:include "stdio.h"main(){ int x;int i = 1;for(x=1599;x&lt;=2000;x++) { if(x%4==0&amp;&amp;x%100!=0||x%400==0)printf("%d ",x);if ((i++)%5 == 0) //实现换行 { printf("\n");} }}

如何编写C语言程序?

2.快捷键“CTRL+N”建立新源代码。3.输入源代码,下面给出最简单的Hello,world源代码:include &lt;stdio.h&gt; int main( ){ printf("Hello,World\n");return 0;} 4.按下F11编译并且运行源代码,得到运行结果:5.点击任意键返回源代码编辑界面可以继续进行开发,接下来就是C语言语法的学习了。

用C语言编程写:有100个馍,100个和尚,大和尚一人吃了3个馍,小和尚3人吃...

include&lt;stdio.h&gt; int main(){ int x, y;for(x=1; x&lt;34; x++){ y = 100 - x;if(y%3 == 0)if(3*x + y/3 == 100)printf("x = %d, y = %d\n", x, y);} return 0;}

怎么用c语言来编辑出一个小程序 用c语言实现文章编辑 c语言编辑用什么软件好 c语言编程应用 c语言常用编辑软件 c语言一般用什么软件编程 学c语言用什么编程软件 c语言用什么编程软件比较好 手机上可以用的c语言编辑器
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
描写秋天阳光下银杏的诗句 修脚广告语,修脚广告语什么写? 领取车检电子标签后纸质凭证还需要贴吗? 新房装修什么植物可以去除甲醛,你一定后悔才知道! ...骨折,做了四个月手术了,只能弯到90度,怎么办?接下来应该如何... 膝盖骨粉碎性骨折康复训练腿如何锻炼90℃ 关于神驰的诗句有哪些? 填支付宝银行卡号.不能输入英文.银行卡有一串数字加英文.不知哪部分是... 找规律填数10 10 9 7 发动机自动启停到底省不省油 自动启停功能费油吗 标枪运动怎么获得助跑速度? 冬至需要吃什么 我没有养过小兔子,就只有一只,怎么样才能照顾好它呢? ...点enter键,定不住,还显示二维点无效,这是为什么? ...时,输入右上角坐标20000,16000,总提示二维点无效,如何解决? 怎么一年内强制改第二次 给对方手机发短信,但对方关机,对方是否能收 中央一套黄金档电视剧叫什么 问苍茫电视剧演员表 山东人过冬喜欢吃什么 改错了未满一年怎么改回来 执业药师新型继教顾客满意度特征 冬至山东吃什么 我的被盗了,然后又用手机号重新注册了一个微信,还能找回以前的微 ... 未满一年怎么改第二次 获得投掷远度的关键技术是助跑速度的快慢和什么 在日常生活中人们该如何辨别方向,在没有指南针没有太阳的情况下.方法... 别人手机关机,给别人发短信,等他开机的时候会收到短信吗? 新乡的桃源有什么景点 我的被盗了,然后又用手机号重新注册了一个微信,还能找回以前的微 ... 问苍茫电视剧播出时间 问苍茫更新时间 隐瞒包庇罪的量刑标准 都说日本的青汁好,它到底好在哪里啊,真的对身体有什么帮助吗?我看还 ... 如何正确阅读武侠小说 改错了未满一年怎么改回来 ...加了值后,怎么在另一个类中调用加了值后的list 67年男和68女婚配,67年属羊人与68年属猴人婚配吗?67属羊的男人_百度知... 问苍茫湘耘扮演者 若要删除booklist表中列bookname值为&#39;book1&#39;和&#39;book2&#39;的所有数据,一下... 问苍茫李成儒饰演谁 我从许昌市襄城县到新郑机场该怎么走合适啊,谢谢 长江水域中鱼的种类居全国水域之首,能说出名称的274种,比全国淡水鱼种... 如何一年内强制二次修改? 身体连续发烧头痛眼睛感觉冒火的是什么问题? 伏明霞武汉捐款多少 想知道: 许昌市 许昌许平南高速入口 在哪 七天无理由退货运费怎么处理 一年内第二次修改技巧 松溪绿茶介绍