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

c语言课程设计流程图书写样本

发布网友 发布时间:2022-04-20 18:31

我来回答

1个回答

热心网友 时间:2023-06-30 16:52

#include <stdio.h>
#include <graphics.h> /*图形函数头文件 */
#include <math.h>
#include <string.h>
typedef struct bk {
char book_num[11];
char book_name[41];
int book_kc;
int book_xc;
struct bk * next;
}book; /* 图书信息*/
typedef struct rd {
char reader_num[11];
char reader_name[11];
char reader_book_num[11];
struct rd * next ;
}reader;/*读者信息*/
struct bk * h_book,* h_reader; /*全局变量,分别为指向图书信息链表和读者信息链表的头指针*/
void Form_Insert_New_Book(); /*新书入库菜单*/
void Form_Find_Book(); /*查询图书菜单 */
void Form_Borrow_Book(); /*借书菜单*/
void Form_Return_Book(); /*还书菜单*/
void Find_Book(char *); /*查询图书*/
void Insert_New_Book(char *,char * ,int ); /*新书入库,即在链表中插入一个新节点*/
void Borrow_Book(char *,char *);/*借书,修改读者借阅信息和图书的现存信息*/
void Return_Book(char *,char *);/*还书,修改读者借阅信息和图书的现存信息*/
void print_book(struct bk *);/*输出全部图书信息*/
void print_reader(struct rd *);/*输出全部读者信息*/
void load_data();/*从文件中读取数据,链表头指针指向第一个节点*/
void init_reader();/*第一次运行程序时对三个读者的初始化*/
void init_book();/*第一次运行程序时对三本图书的初始化*/
void save();/*将链表中的信息保存到文件中*/
void M_Form()/*主菜单*/
{ char ch;
printf("\n 图书管理系统主窗口");
printf("\n 0:退出系统");
printf("\n 1:新书入库");
printf("\n 2:图书查询");
printf("\n 3:借书登记");
printf("\n 4:还书管理");
printf("\n 5:输出全部信息");

do{ /*此循环用来保证选择正确的数字键执行相应的功能*/
printf("\n\n 请选择相应的功能代码:");
scanf("%c",&ch);
fflush(stdin); /*用于清除键盘缓冲区中的多余字符*/
}while(ch!='0'&&ch!='1'&&ch!='2'&&ch!='3'&&ch!='4'&&ch!='5');
switch(ch) /*根据输入的字符进行选择执行相应的模块*/
{ case '0':exit(0);
case '1':Form_Insert_New_Book();break;
case '2':Form_Find_Book();break;
case '3':Form_Borrow_Book();break;
case '4':Form_Return_Book();break;
case '5':load_data();print_book(h_book);print_reader(h_reader);M_Form();
default:printf("error\n");exit(0);
}
}
void Form_Find_Book()
{ char ch;
char book_num[11];
printf("\n 图书查询功能模块,请选择相应的功能代码:\n");
printf(" 0:返回到主菜单\n");
printf(" 1:图书查询");
do{
printf("\n\n 请选择相应的功能代码:");
scanf("%c",&ch);
fflush(stdin);
}while(ch!='0'&&ch!='1');
switch(ch)
{ case '0':M_Form();break; /*选择0,则返回到上一级目录,即主菜单*/
case '1':
{ printf(" \n请输入需要需要查询的书的编号:");
scanf("%s",book_num);
fflush(stdin);
Find_Book(book_num); /*执行查询*/
Form_Find_Book();/*查询完毕后继续返回到查询窗口,执行下一个查询*/
}
default:printf("error\n");exit(0);
}
}
void Find_Book(char book_num[]) /*查询图书模块,根据图书编号查询*/
{ struct bk *p;
p=h_book;
while(p!=NULL&&strcmp(p->book_num,book_num)!=0)
p=p->next; /*此循环用于查找,如果在中间找到,则p就不可能到末尾指向空*/
if(p==NULL) printf("\n\t此编号对应的图书不存在!\n");
else { printf("\n\t图书编号\t图书名\t库存量\t现存量 \n");
printf(" %10s\t %10s\t %d\t %d\t\n",p->book_num,p->book_name,p->book_kc,p->book_xc);
}
getch();
}
void init_book() /*初始化图书模块*/
{ book ba[3];
FILE *fp;
int i;
printf("\n 系统即将进行初始化,图书初始化模块:\n");
printf("\n 请分别输入三本书的书号,书名,数量(以空格隔开):\n ");
for(i=0;i<3;i++) /*输入3本图书进行初始化*/
scanf("%s%s%d",ba[i].book_num,ba[i].book_name,&ba[i].book_kc);
for(i=0;i<3;i++) {ba[i].book_xc=ba[i].book_kc;} /*开始时库存=现存*/
if((fp=fopen("book.dat","wb"))==NULL)/*建立新文件book.dat准备写入数据*/
{ printf("不能建立图书文件,初始化失败!请重新启动系统!\n"); return; }
for(i=0;i<3;i++)/*将初始化的3本图书写入文件book.dat中*/
{ if(fwrite(&ba[i],sizeof(struct bk),1,fp)!=1)
{ printf("\写数据错误!\n"); exit(0); }
}
fclose(fp);
}
void init() /*对图形函数、图书信息、读者信息进行初始化(本程序中暂且没有用图形函数)*/
{ int drive=DETECT,mode=0;
initgraph(&drive,&mode,"");
init_book();
init_reader();
}
void Insert_New_Book(char book_num[],char book_name[],int number)
/*增加1本新书,读入新书的名称、编号和数量*/
{ struct bk *book_fp;
struct bk *p,*q,*t;
q=p=h_book;
while(p!=NULL&&strcmp(p->book_num,book_num)!=0) { q=p;p=p->next; }
if(strcmp(p->book_num,book_num)==0)
{ printf("\n\t\t此编号已经存在,请重新输入!\n");
return;
}
t=(struct bk *)malloc(sizeof(struct bk));
strcpy(t->book_num,book_num);
strcpy(t->book_name,book_name);
t->book_kc=t->book_xc=number;
q->next=t;t->next=NULL;
if((book_fp=fopen("book.dat","ab"))==NULL)
{ printf("不能建立图书文件,初始化失败!请重新启动系统!\n"); return; }
/*将新书信息添加到文件中*/
fwrite(t,sizeof(struct bk),1,book_fp);
fclose(book_fp);
}
void print_book(struct bk *h)
/*输出图书信息*/
{ struct bk *p;
p=h;
printf("\n\t图书编号 \t图书名 \t库存量 \t现存量 \n");
while(p!=NULL)
{ printf(" %10s\t %10s %10d\t%10d\n",p->book_num,p->book_name,p->book_kc,p->book_xc);
p=p->next;
}
}
void print_reader(struct rd *h)
/*输出读者信息*/
{ struct rd *p;
p=h;
printf("\n\t读者编号 \t读者姓名 \t所借书号 \n");
while(p!=NULL)
{ printf(" %10s\t %10s %10s\n",p->reader_num,p->reader_name,p->reader_book_num);
p=p->next;
}
getch();
}
void Form_Borrow_Book()
/*借书菜单界面*/
{ char ch;
char book_num[11],reader_num[11];
printf("\n 图书借阅功能模块,请选择相应的功能代码:\n");
printf(" 0:返回到主菜单\n");
printf(" 1:图书借阅\n");
do{
printf("\n\n 请选择相应的功能代码:");
scanf("%c",&ch);
fflush(stdin);
}while(ch!='0'&&ch!='1');
switch(ch)
{ case '0':M_Form();break;
case '1':
{ printf(" \n请输入读者编号与所借书编号:(以空格分隔)");
scanf("%s%s",reader_num,book_num);
fflush(stdin);
Borrow_Book(reader_num,book_num);/*调用借书函数,执行借书功能*/
Form_Borrow_Book();/*借书完成后,程序返回到借书菜单*/
}
default:printf("error\n");exit(0);
}
}
void Borrow_Book(char reader_num[],char book_num[])
/*输入读者编号,和需要借阅的书的编号,执行借书功能*/
{ struct bk *book_p;
struct rd *reader_p;
book_p=h_book;
while(book_p!=NULL&&strcmp(book_p->book_num,book_num)!=0)
book_p=book_p->next;
if(book_p==NULL)
{ printf("\n\t此编号对应的图书不存在!\n");
Form_Borrow_Book();
}
reader_p=h_reader;
while(reader_p!=NULL&&(strcmp(reader_p->reader_num,reader_num)!=0))
reader_p=reader_p->next;
if(reader_p==NULL)
{ printf("\n\t此编号对应的读者不存在!\n");
Form_Borrow_Book();
}
else if(strcmp(reader_p->reader_book_num,"0")!=0)
{ printf("\n\t已达到最大借阅数,不能再借书!\n");
Form_Borrow_Book();
}
else {
book_p->book_xc=book_p->book_xc-1;/*借书完成后,修改现存量*/
strcpy(reader_p->reader_book_num,book_p->book_num);/*修改读者的借阅信息*/
save();/*将修改后的信息保存到文件中*/
load_data(); /*读入新文件中的数据*/}
Form_Borrow_Book();/*程序执行完毕后,返回到借书菜单界面*/
}
void Form_Return_Book()
/*还书菜单*/
{ char ch;
char book_num[11],reader_num[11];
printf("\n 归还图书功能模块,请选择相应的功能代码:\n");
printf(" 0:返回到主菜单\n");
printf(" 1:归还图书\n");
do{
printf("\n\n 请选择相应的功能代码:");
scanf("%c",&ch);
fflush(stdin);
}while(ch!='0'&&ch!='1');
switch(ch)
{ case '0':M_Form();break;
case '1':
{ printf(" \n请输入读者编号与所还书编号:(以空格分隔)");
scanf("%s%s",reader_num,book_num);
fflush(stdin);
Return_Book(reader_num,book_num);/*调用还书函数*/
Form_Return_Book();
}
default:printf("error\n");exit(0);
}

}
void Return_Book(char reader_num[],char book_num[])
/*输入读者编号和所还书编号执行还书*/
{ struct bk *book_p;
struct rd *reader_p;
book_p=h_book;
while(book_p!=NULL&&strcmp(book_p->book_num,book_num)!=0)
book_p=book_p->next;
if(book_p==NULL)
{ printf("\n\t此编号对应的图书不存在!\n");
Form_Return_Book();
}
reader_p=h_reader;
while(reader_p!=NULL&&(strcmp(reader_p->reader_num,reader_num)!=0))
reader_p=reader_p->next;
if(reader_p==NULL)
{ printf("\n\t此编号对应的读者不存在!\n");
Form_Return_Book();
}
else if(strcmp(reader_p->reader_book_num,book_num)!=0)
{ printf("\n\t读者没有借阅此书\n");
Form_Return_Book();
}
else {
book_p->book_xc=book_p->book_xc+1;/*还书后,修改图书库存量*/
strcpy(reader_p->reader_book_num,"0");/*还书后,修改读者借阅信息*/
save();/*保存到文件*/
load_data(); /*读入文件中的数据*/}
Form_Return_Book();
}
void init_reader()
/*系统第一次运行时,初始化3位读者信息,从键盘读入*/
{ FILE *fp;
reader ra[3];
int i;
printf("\n 系统即将进行读者初始化:\n");
printf("\n 请分别输入三位读者的编号和姓名(以空格隔开):\n ");
for(i=0;i<3;i++)
scanf("%s%s",ra[i].reader_num,ra[i].reader_name);
for(i=0;i<3;i++)
strcpy(ra[i].reader_book_num,"0");
if((fp=fopen("reader.dat","wb"))==NULL)
{ printf("不能建立读者文件,初始化失败!请重新启动系统!\n"); return; }
for(i=0;i<3;i++)/*将3位读者信息写入文件*/
{ if(fwrite(&ra[i],sizeof(struct rd),1,fp)!=1)
{ printf("\写数据错误!\n"); exit(0); }
}
}
void Form_Insert_New_Book()
/*添加新书菜单*/
{ char ch;
struct bk t;
printf("\n 新书入库功能模块,请选择相应的功能代码:\n");
printf(" 0:返回到主菜单\n");
printf(" 1:新书入库");
do{
printf("\n\n 请选择相应的功能代码:");
scanf("%c",&ch);
fflush(stdin);
}while(ch!='0'&&ch!='1'&&ch!='2'&&ch!='3'&&ch!='4'&&ch!='5');
switch(ch)
{ case '0':M_Form();break;
case '1':
{ printf(" \n请按顺序输入新书的编号、名称、数量(以空格隔开):");
scanf("%s%s%d",t.book_num,t.book_name,&t.book_kc);
fflush(stdin);
Insert_New_Book(t.book_num,t.book_name,t.book_kc);
Form_Insert_New_Book();
}
default:printf("error\n");exit(0);
}
}
void load_data()
/*从文件book.dat和文件reader.dat中读取数据到内存*/
/*将读取的数据存放到2个链表中*/
{ struct bk *book_p1,*book_p2,*book_p3;
struct rd *reader_p1,*reader_p2,*reader_p3;
FILE *fp_book,*fp_reader;
fp_book=fopen("book.dat","rb");
book_p1=(struct bk *)malloc(sizeof(struct bk));
fread(book_p1,sizeof(struct bk),1,fp_book);
h_book=book_p3=book_p2=book_p1;
while(! feof(fp_book))
{ book_p1=(struct bk *)malloc(sizeof(struct bk));
fread(book_p1,sizeof(struct bk),1,fp_book);
book_p2->next=book_p1;book_p3=book_p2;book_p2=book_p1;
}
book_p3->next=NULL;
free(book_p1);
fclose(fp_book);
fp_reader=fopen("reader.dat","rb");
reader_p1=(struct rd *)malloc(sizeof(struct rd));
fread(reader_p1,sizeof(struct rd),1,fp_reader);
h_reader=reader_p3=reader_p2=reader_p1;
while(! feof(fp_reader))
{ reader_p1=(struct rd *)malloc(sizeof(struct rd));
fread(reader_p1,sizeof(struct rd),1,fp_reader);
reader_p2->next=reader_p1;reader_p3=reader_p2;reader_p2=reader_p1;
}
reader_p3->next=NULL;
free(reader_p1);
fclose(fp_reader);
}
void save()
/*将链表中的数据保存到内存中*/
{ FILE *book_fp,*reader_fp;
struct bk *book_p;
struct rd *reader_p;
book_p=h_book; reader_p=h_reader;
if((book_fp=fopen("book.dat","wb"))==NULL)
{ printf("不能建立图书文件,初始化失败!请重新启动系统!\n"); return; }
while(book_p!=NULL)
{ if(fwrite(book_p,sizeof(struct bk),1,book_fp)!=1)
{ printf("\写数据错误!\n"); exit(0); }
book_p=book_p->next;
}
fclose(book_fp);
if((reader_fp=fopen("reader.dat","wb"))==NULL)
{ printf("不能建立图书文件,初始化失败!请重新启动系统!\n"); return; }
while(reader_p!=NULL)
{ if(fwrite(reader_p,sizeof(struct rd),1,reader_fp)!=1)
{ printf("\写数据错误!\n"); exit(0); }
reader_p=reader_p->next;
}
fclose(reader_fp);
}
main()
{ FILE * fp;
struct bk temp;
clrscr();
h_book=NULL;h_reader=NULL;
if((fp=fopen("book.dat","r"))==NULL)
init();/*第1次运行系统时的初始化*/
fclose(fp);
load_data();/*从文件中读入数据*/
M_Form();/*显示主菜单*/
save();/*保存内存中的数据(即链表中的数据)到文件*/
getch();
求C语言课程设计报告 程序已经写好了 就是报告不知道怎么写 T-T_百度...

1、说明书基本格式 说明书手写或打印均可。手写要用统一的课程设计用纸,用黑或蓝黑墨水书写工整;打印时统一使用word文档,正文采用小4号宋体,A4开纸,页边距均为20mm,行间距采用18磅,装订线留5mm。正文各级标题编号的示例如下图所示。一级标题:小三号,宋体加粗,居左,18磅行距,段后0.5行,...

C语言程序设计报告的格式

主要内容包括本课程设计(实践周)题目、课程设计(实践周)任务及要求、课程设计(实践周)思想、软硬件运行环境及开发工具。3.概要设计 主要叙述本课题设计的流程图(各功能模块)、主要的数据结构、完成本课程设计(实践周)所用方法及其原理的简要说明。4.详细设计 主要是本课题所需要的硬件设计与软件...

求完整C语言程序设计报告!!

要求:一、课程设计的性质和目... 实验题目:编写函数实现删除字符串中的特定字符,例如原字符串为“turbo c and borland c++”,从键盘输入字符“n”,则输出后变为“turbo c and borlad c++”。要求:一、课程设计的性质和目的二、需求分析:1、程序的功能。2、输入输出的要求。三、算法分析:四、流程图:五、源...

c语言课程设计 1-1/2+1/3-1/4+…+1/10的程序编写

include "stdio.h"main(){ int flag=1;float sum=0,i;for(i=1;i&lt;=10;i++){ sum+=(1/i)*flag;flag=-flag;} printf("%f ",sum);}

C语言程序设计课程设计报告怎么写啊?有谁有样本吗?谢啦!

3. 通过运行简单的C程序,初步了解C源程序的特点;二【实验内容】【实验1-1】输入并运行一个简单的正确程序 1)输入下面的程序 include &lt;stdio.h&gt; void main( ){ printf(" 欢迎学习C语言程序设计!\n ");} 2).仔细观察屏幕的输入程序,检查有无错误。3).对该程序进行编译,查看编译输出窗口...

C语言课程设计,贪吃蛇应该怎么做?

2.2.3程序结构(流程图) 图2.1流程图 依据所需要处理的任务要求,规划输入数据和输出结果,决定存放数据的数据结构。 C语言中数据结构集中体现在数据类型上,因此在进行C语言程序设计时,应统筹规划程序中所使用的变量,数组,指针等,以及它们的类型等。这点是很重要的,如果在此期间选择不合适的变量或者数组,将来修改就十...

C语言课程设计-万年历

1.系统封面设计 内容:题目名称(中英文)、进入(中英文)、作者:***、时间:***-**- 2.输入界面 内容:(1)密码口令输入及容错(3次)(2)年份的输入及容错(3次)3.日历计算设计 (1)求某月某日实行奇迹的函数(邱每月一号的星期数)。算法:(y-1)+(y-1)/4-(y-1)/100+(y-...

C语言课程设计,求高手帮我解释一下这个代码啊,打上注释!再给个流程图...

void print(int C) //给定一个数值 返回对应的英文形式 如: 256--&gt;two five sxi { char str[256]=""; size_t i = 0;sprintf(str, "%d", C);//c的%d形式存到str中 比如 C=258 那么 str[0]='2',str[1]='5',str[2]='8'for (i = 0; i &lt; strlen(str); i++)printf...

c语言课程设计

c语言课程设计 我要一个完整的课程设计,三选一即可,等我那号分转过来,再加200,内容如下:1、学生成绩管理(结构体数组、函数、指针、算法、流程结构及文件等的综合应用)程序说明:有N个学生,每... 我要一个完整的课程设计,三选一即可,等我那号分转过来,再加200,内容如下:1、学生成绩管理(结构体数组、函数...

C语言课程设计流程图和功能图怎么画啊

流程图就是你的思路,你怎样写程序就怎么画,当然如果想不出来就画不了。流程图有基本的符号,符号查一查就知道 比如我要计算输入年份是否闰年,那么设计思路是:先输入一个整数,然后计算整数除以4的余数,再判断余数是否等于零,是,则是闰年,否,则不是闰年 ...

c语言课程设计流程图 c语言程序设计课程设计 课程设计流程图 化工原理课程设计流程图 程序设计流程图图片 课程设计c语言 c语言课程设计实例 c语言课程设计模板 c语言课程设计选题
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
河北省安全生产监督管理局人员编制 河北省安全生产监督管理局其他事项 河北省安全生产监督管理局主要职责 硬盘里莫名其妙地丢了空间是怎么回事啊? ...但磁盘显示占用空间为60G,这22G去哪了?隐藏的备份文件才1G多。_百度... 刚把删除到回收站的文件还原了,但是在原盘里却找不到 为什么?,那可是22... 我的电脑C盘221G 提示已用50G 可是我的C盘里只有22G的东西 其余的空间... 为什么我硬盘里面删除了文件却没减少空间??哪位大老教教俺啊!!_百度... F盘有30G,属性显示占用了22G还有8G空间,可是我把所有文件加起来只有15G... 我的电脑F盘的空间明明只用了22G,但是属性里显示却有30G。高手解释一下... 求C语言流程图和设计思想 C语言课程设计流程图和功能图怎么画啊 求c语言通讯录的源代码与算法流程图,我扣扣邮啊箱... C语言通讯录实践报告书怎么写啊??求救!~~~ C语言程序设计,题目:学生通讯系统,包括 姓名、... 一道C语言题目,很难,对我很重要,但是我没有思路... c语言编程一个通讯录的程序,包含增删修改查询(默... 求C语言编程完成简单通信录程序,急急急! 通讯录程序 (用C语言做的) 原谅我的财富就剩下这么... c语言通讯录 跪求c语言通讯录流程图~姐要哭了~悲催。。。 用C语言编写一个QQ通讯录管理系统设计 用C语言或C++做个通讯录管理系统 用c语言编写一个通讯录,并对他进行增加,查询,删... C语言程序设计:通讯录程序设计 世界上第一个机器人的名字 目前世界上最高智能机器人叫什么名字 十大智能扫地机器人哪个牌子好? 荣耀智能机器人叫什么名字? 智能机器人哪个牌子好 天字开头的成语在下列字中组成:方,丈,二,颔,... 俄罗斯的钱叫什么? 梦见被山压着,出不来,怎么回事 俄罗斯的钱币叫什么啊,兑换人民币汇率是多少 梦见走路,前面有座山,挡住了,我的去路,是什么意 俄罗斯的钱叫什么名字 梦见走着走着被大山封路了 俄罗斯的钱叫什么名称 俄罗斯钱币叫什么 梦到路很通宽走着前面一座山过不去,自己往回走什么... 俄罗斯钱叫什么币? 梦见我怎么走也走不动,像背着大山 俄罗斯的钱是什么叫什么/ 俄罗斯用的什么钱币 梦见在山上走路,走着走着没有路,后来还是山抗上下... 各个国家钱的称呼是什么 俄罗斯钱叫什么? 中国的钱叫人民币,那俄罗斯的钱叫什么 朝鲜,韩国,俄罗斯,新加坡这些国家的钱分别叫什么? 俄罗斯的钱用什么来表示