搜档网
当前位置:搜档网 › C语言程序设计图书管理系统Word版

C语言程序设计图书管理系统Word版

C语言程序设计图书管理系统Word版
C语言程序设计图书管理系统Word版

C语言程序设计

实验报告

题目:图书管理管理系统

院系:信息科技学院

专业:姓名:

学号:

指导教师:杨呈勇

日期: 09-09-18

1 问题定义 (3)

2 系统设计 (3)

2.1 总体设计 (4)

2.2 详细设计 (4)

2.2.1 借书模块 (4)

2.2.2 图书维护 (5)

①新增记录 (5)

②更改系统 (6)

③删除系统 (6)

④查找系统 (6)

⑤显示系统 (7)

3 系统实现 (10)

3.1 编码 (8)

3.1.1 程序预处理 (9)

3.1.2 主函数main() (9)

4 系统维护 (16)

5 归纳总结 (16)

5.1 开发经验 (16)

5.2 实训中遇到的问题及解决方法 (16)

5.3 设计中的不足之处 (16)

5.4 感想和心得体会 (16)

图书管理系统

本题目设计目的是训练学生的基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件和单链表的各种基本操作。本程序中涉及结构体、单链表、文件及各种语句的运用如for();switch();if….else等方面的知识。通过本程序的训练,使学生能对C语言的文件操作有一个更深刻的了解,初步掌握链表的一些结构及构成。掌握利用单链表存储结构实现对学生成绩管理的原理,为进一步开发出高质量的管理信息系统打下坚实的基础。

1、问题定义

图书信息包括:编号、书名、作者名、分类号、出版单位、出版时间、库存数量,价格等。试设计一图书信息管理系统,使之能提供以下功能:

(1)系统以菜单方式工作

(2)图书信息录入功能(图书信息用文件保存)

(3)图书信息浏览功能

(4)图书信息查询功能

查询方式:可以按书名,按作者名,按出版单位,按出版时间进行查询。

(5)图书信息的删除与修改

在问题定义阶段要考虑题目的可行性和需求分析,接下来进入开发阶段,完成系统设计和系统实现的任务。

2、系统设计

2.1 总体设计

采用模块化的程序设计方法,即将较大的任务按照一定的原则分为一个个较小的任务,然后分别设计各个小任务。需要注意的是划分出来的模块应该相对独立但又相关,且容易理

解。可以用模块化层次结构图(即模块图)来分析其任务的划分,一般从上到下进行,最上面一层是主模块,下面各层是其上一层模块的逐步细化描述。

图2.1 图书管理系统功能模块图

本图书管理系统要求采用单链表实现,如图2.1所示,它由如下四大功能模块组成:●借书模块。通过输入读者的编号和图书的编号,查找到要该借的书,完成借书这一项任

●还书模块。通过输入读者的编号和图书的编号,查找到要该还的书,完成还书这一项任

●图书维护模块。完成对图书信息的维护。在此图书管理系统中,它实现了对图书信息的

新曾、更改、删除、查找和显示操作,并将追加后的数据存入源数据文件。

●读者维护模块。一是实现对读者记录的存盘,即将读者信息写入数据文件中;

2.2 详细设计

2.2.1 借书模块

通过输入读者的信息和要借的书的编号。系统显示相应的内容,若该文件中没有数据,系统会提示单链表为空,没有任何读者记录或图书操作,此时,用户应选择调用create()函数,进行读者记录的输入,即完成在单链表1中添加记录的操作。值得一提的是,这里的字符串和数值的输入分别采用了函数来实现,在函数中完成输入数据任务,并对数据进行条件判断,直到满足条件为止,这样一来,大大减少了代码的重复和冗余,符合模块化程序设计的特点。

2.2.2 还书模块

还书模块主要实现了在单链表中按读者和图书的编号查找满足相关条件的借书记录。在用户选择4,调用查询函数search()中,为指向保存了读者信息的单链表的首地址的指针变量。为了遵循模块化编程的原则,我们将在单链表中进行的指针定位操作,设计一个int retbook(int bookid)

{

for(int i=0;i

{

if(borbook[i]==bookid)

{

borbook[i]=0;

return 1;

}

}

return 0;

}

//读出读者信息

void disp()

{

cout << setw(5) << no <

for(int i=0;i

if(borbook[i]!=0)

cout << borbook[i] << "|";

cout << "]"<

}

};

若没有该记录,则显示无此记录,返回到上一操作。

2.2.3图书维护模块

此模块主要实现了对图书记录的新增、更改、删除、查找和显示操作。因为图书记录是以单链表的结构形式存储的,所以这些操作都在单链表中完成。下面分别介绍着4个功能模块。

①新增记录。该操作需要对单链表中目标节点的数据域中的值进行追加新增要输入图书

的编号和书名,

int addbook(int n,char *na)

{

Book *p=query(n);

if (NULL==p)

{

top++;

book[top].addbook(n,na);

return 1;

return 0;

}

②更改系统。该操作可以将原本错误的图书记录更改,将之改为正确的记录。首先输入

原来的记录的图书的编号,在此之后输入新的记录的书名。

③删除系统。该操作可以将原本记录得图书信息,在不用之后选择将此删除的一种方法,在弹出的窗口输入原来的图书的编号,就可以将之删除。

④查找系统。该操作可以帮助读者快速找到将要借的图书,只要输入图书的编号,如

果有这本书,就将显示出。反之就会显示不存在。

Book *query(int bookid)

for (int i=0;i<=top;i++)

if (book[i].getno()==bookid &&book[i].gettag()==0)

{

return &book[i];

}

return NULL;

}

⑤显示系统。该操作可以显示出图书现在的信息。cout << "输入图书编号:"<> bookid;

cout << "输入图书书名:"<

cin >> bname;

addbook(bookid,bname);

break;

case '2':

cout << "输入图书编号:"<

cin >> bookid;

b=query(bookid);

if (b==NULL)

{

cout << " 该图书不存在 "<

break;

}

cout << "输入新的书名:"<

cin >> bname;

b->setname(bname);

break;

case '3':

cout <<" 读入图书编号:"<

cin >> bookid;

b=query(bookid);

if (b==NULL)

{

cout <<" 该图书不存在" << endl; break;

}

b->delbook();

break;

case '4':

cout << " 读入图书编号:"<

cin >> bookid;

b=query(bookid);

if (b==NULL)

{

cout <<" 该图书不存在"<< endl;

break;

}

b->disp();

break;

case '5':

disp();

break;

case '6':

clear();

break;

default:cout<<"输入错误,请从新输入:"; }

}

}cout << "输入图书编号:"<

cin >> bookid;

cout << "输入图书书名:"<

cin >> bname;

addbook(bookid,bname);

break;

case '2':

cout << "输入图书编号:"<

cin >> bookid;

b=query(bookid);

if (b==NULL)

{

cout << " 该图书不存在 "<

}

cout << "输入新的书名:"<

cin >> bname;

b->setname(bname);

break;

case '3':

cout <<" 读入图书编号:"<

cin >> bookid;

b=query(bookid);

if (b==NULL)

{

cout <<" 该图书不存在" << endl; break;

}

b->delbook();

break;

case '4':

cout << " 读入图书编号:"<

cin >> bookid;

b=query(bookid);

if (b==NULL)

{

cout <<" 该图书不存在"<< endl;

break;

}

b->disp();

break;

case '5':

disp();

break;

case '6':

clear();

break;

default:cout<<"输入错误,请从新输入:"; }

}

} cout << "输入图书编号:"<

cin >> bookid;

cout << "输入图书书名:"<

cin >> bname;

addbook(bookid,bname);

break;

case '2':

cout << "输入图书编号:"<

cin >> bookid;

b=query(bookid);

if (b==NULL)

{

cout << " 该图书不存在 "<

break;

}

cout << "输入新的书名:"<

cin >> bname;

b->setname(bname);

break;

case '3':

cout <<" 读入图书编号:"<

cin >> bookid;

b=query(bookid);

if (b==NULL)

{

cout <<" 该图书不存在" << endl;

break;

}

b->delbook();

break;

case '4':

cout << " 读入图书编号:"<

cin >> bookid;

b=query(bookid);

if (b==NULL)

{

cout <<" 该图书不存在"<< endl;

break;

}

b->disp();

break;

case '5':

disp();

break;

case '6':

clear();

break;

default:cout<<"输入错误,请从新输入:";

}

}

3、系统实现

3.1 编码

3.1.2 主函数main()include #include

#include

//输入/输出文件流类

#include

using namespace std;

//最多的读者

const int Maxr=100;

//最多的图书

const int Maxb=100;

//每位读者最多借五本书

const int Maxbor=5;

//图书库类,实现对图书的维护,查找,删除等class BDatabase

{

private:

//图书记录指针

int top;

//图书记录

Book book[Maxb];

public:

//构造函数,将book.txt读到book[]中

BDatabase()

{

Book b;

top=-1;

fstream file("book.txt",ios::in);

while (1)

{

file.read((char *)&b,sizeof(b));

if (!file) break;

top++;

book[top]=b;

}

file.close();

}

//全删

void clear()

{

top=-1;

}

//增加图书

int addbook(int n,char *na)

{

Book *p=query(n);

if (NULL==p)

{

top++;

book[top].addbook(n,na);

return 1;

}

return 0;

}

//查找图书

Book *query(int bookid)

{

for (int i=0;i<=top;i++)

if (book[i].getno()==bookid &&book[i].gettag()==0) {

return &book[i];

}

return NULL;

}

//图书库维护

void bookdata();

void disp()

{

for (int i=0;i<=top;i++)

if (book[i].gettag()==0)

book[i].disp();

}

//析构函数,将book[]写到book.txt文件中

~BDatabase()

{

fstream file("book.txt",ios::out);

for (int i=0;i<=top;i++)

if (book[i].gettag()==0)

file.write((char *)&book[i],sizeof(book[i])); file.close();

}

};

void BDatabase::bookdata()

{

char choice;

char bname[40];

int bookid;

Book *b;

while (choice!='0')

{

cout <<"\n\n\n\t\t\t图书维护 "<

cout<<"\t\t1 新增\n \t\t2 更改\n\t\t3 删除\n\t\t4 查找\n\t\t5 显示\n\t\t6 全删\n\t\t0 退出"<

cin >> choice;

switch (choice)

{

case '1':

cout << "输入图书编号:"<

cin >> bookid;

cout << "输入图书书名:"<

cin >> bname;

addbook(bookid,bname);

break;

case '2':

cout << "输入图书编号:"<

cin >> bookid;

b=query(bookid);

if (b==NULL)

{

cout << " 该图书不存在 "<

break;

}

cout << "输入新的书名:"<

cin >> bname;

b->setname(bname);

break;

case '3':

cout <<" 读入图书编号:"<

cin >> bookid;

b=query(bookid);

if (b==NULL)

{

cout <<" 该图书不存在" << endl;

break;

}

b->delbook();

break;

case '4':

cout << " 读入图书编号:"<

cin >> bookid;

b=query(bookid);

if (b==NULL)

{

cout <<" 该图书不存在"<< endl;

break;

}

b->disp();

break;

case '5':

disp();

break;

case '6':

clear();

break;

default:cout<<"输入错误,请从新输入:";

}

}

}

//main() 函数的实现,程序的主界面的引导

int main()

{

char choice;

int bookid,readerid;

RDatabase ReaderDB;

Reader *r;

BDatabase BookDB;

Book *b;

while(choice!='0')

{

cout <

cout <<"\t\t\t1 借书\n\n\t\t\t2 还书 \n\n\t\t\t3 图书维护\n\n\t\t\t4 读者维护\n\n\t\t\t0 离开"<

cin >> choice;

switch (choice)

{

case '1':

cout <<" 借书读者编号:";

cin >>readerid;

cout <<" 图书编号: ";

cin >>bookid;

//按编号查找

r=ReaderDB.query(readerid);

if (NULL==r)

{

cout <<" 不存在该读者,不能借书"<< endl; break;

}

b=BookDB.query(bookid);

if (b==NULL)

{

cout <<" 不存在该图书,不能借书"<< endl; break;

}

if (b->borrowbook()==0)

{

cout << " 该图书已借出,不能借书"<< endl; break;

}

r->borrowbook(b->getno());

break;

case '2':

cout<<"还书\n 读者编号:";

cin >>readerid;

cout << " 图书编号:";

cin >>bookid;

r=ReaderDB.query(readerid);

if (r==NULL)

{

cout <<" 不存在该读者,不能还书" << endl; break;

}

b=BookDB.query(bookid);

if (b==NULL)

{

cout <<" 不存在该图书,不能还书" <

}

b->retbook();

r->retbook(b->getno());

break;

case '3':

BookDB.bookdata();

break;

case '4':

ReaderDB.readerdata();

break;

default:cout<<"输入错误,请从新输入:";

4、系统维护

经测试与调试确认软件无错时,开发就告一段落,这时可以交付软件供用户使用,但是在软件的使用过程中还会面临更加漫长的工作,即软件维护。一般维护的工作有:更改使用中发现的错误;为适应实际环境而对程序进行修改;为满足新的需求而对程序作必要的改进等等。

5、归纳总结

5.1 开发经验

通过对本题目的开发,体会到要掌握以下几点内容。

●大程序的设计风格。按“自顶向下,逐步细化,模块化”的方法进行程序设计。

●编写主函数,并进行测试与调试。当被调函数又需要调用其他函数时,也要遵循逐

步细化的原则。C语言提供丰富的库函数,编程序时要善于使用库函数,避免不必

要的劳动。

●定义函数时,应选好参数的个数和数据类型。

●文件使用方法。文件使用完毕后应及时关闭。

5.2 实训中遇到的问题及解决方法

在实训过程中,我遇到许多的问题,比如有些语句有语法错误,表达式不正确,或缺少}或;等。或者是没有宏定义,申明某些变量。这些都比较容易解决。通过查阅课本和请教同学,在经过WIN-TV编译,知道哪有错误就改一下就行。比较严重的是,我的代码在求解平均成绩和总分时没有录入,且乱码。自已改了很久,也在网上查询但是都不行。最后在老师的帮助下及查阅有关资料,把代码改出来了。

5.3 设计中尚存的不足之处

关于这次的程序,也有挺多不足的地方。首先,我觉得程序还不够完善,比如没有排序前和排序后的学生记录输出结果显示和有些程序功能没有满足所给题目要求及好几项都没有显示出学生具体的信息,甚至有些地方有点乱;其次,有些地方好像功能有点重复了,且编写的代码有重复;最后,就是该程序界面不够美观大方,有些文件不能链接。

5.4 感想和心得体会

通过这次实训,我感触甚深,要把所学的理论知识运用于解决实际问题不仅要付出艰辛的劳动,还得要有科学的方法和坚持不懈的努力。加上我们只是学了一个学期的c语言,我们所学的知识还不足以独立编写程序代码。但是我认为只要我们认真的去学去做,我们会受益非浅。这次实训让我进一步理解了“编程是什么”,“如何去编程”,“编程的目的又是什么”,……发现自己的知识竟是如此贫乏,顿时感到了压力的存在,从而也激发了我的学习

热情

。它会成为我今后不断进取、永不懈怠的动力。

在整个实训过程中,老师给了我很大的帮助,使我由不了解怎样运用链表到逐渐懂得链表的结构及初步掌握链表结构。还重新复习了一些语句的使用,比如for(0;switch();if….elser();结构体的使用;枚举等。而且我能够坚持虚心的向老师以及同学请教问题。它使我明白了虚心好学的重要性,更让我懂得了如何跟老师同学去相处、去沟通。没有老师和同学们的无私帮助,我不可能圆满完成这次实训任务。非常感谢帮助过我的所有老师和同学们,在此,谨向他们一并表示感谢!我开始喜欢这个程序设计了,尤其觉得它是很有挑战性的,是对知识点扎实程度的考察,也是对个人能力的考察,还是对个人化毅力的考验。它让我明白做任何事都不应该轻易放弃。这样的课程设计,既有利于教学,又可以教会学生书本以外的很多知识。现在我对它越来越感兴趣,今后我会更加关注C语言程序,把C语言学好。希望老师以后多多指导,给予一定的帮助!

c语言程序设计教程第二版课后习题答案

c 语言程序设计教程第二版课后习题 答 案 篇一: c 语言程序设计教程_李含光_ 郑关胜_ 清华大学 出版社习题答案习题答案[完美打印版]】1.单项选择题 (1)a (2)c(3)d (4)c (5)b 2.填空题(1)函数 (2)主函数(main )(3)printf(),scanf()第 2 章习题参考答案 1.单项选择题 1-5 cbccc 6-10 cdcdc 11-13 dbb 2 .填空题 (1)1(2)26 (3)6 , 4 , 2 (4)10 , 6 (5)3.000000 (6)双精度(double )(7)9 (8)字母,数字,下划线(9)13.700000 (10)11(11)((m/10 )%10 )*100+ (m/100 )*10+m%10 (12)0 (13)10 ,9 ,11(15) (x0y0)||(x0z0)||(y0||z0)(16 )double (17)x==0 (18)sqrt(fabs(a-b))/(3*(a+b))(19 )sqrt((x*x+y*y)/ (a+b)) 第 3 章习题参考答案 1.单项选择题 1-5 cccdd 6-10 bcdbc11-15 bcbbb16 a 2 .填空题 (1)用;表示结束(2){ } (3 )y=x0?1:x==0?0:-1 (4)y%4==0y%100!=0||y%400==0 (5)上面未配对(6)default 标号(7)while ,do while ,for (8)do while (9)本次(10)本层3.阅读程序,指出结果 (1)yes (2)*(3)abother (4)28 70 (5)2,0(6)8(7)36 (8)1(9)3,1,-1,3,1,-1(10)a=12 ,y=12 (11) i=6 ,k=4 (12)1,-2 4 .程序填空 (1)x:y ,u :z (2)m=n ,m !=0 ,m=m/10 (3)teps , t*n/(2*n+1) , printf( n”“,%2*lsf )(4)m%5==0 ,

C语言程序设计第四版第六章答案_谭浩强

1、用筛选法求100之内的素数。解: #include #include int main() {int i,j,n,a[101]; for (i=1;i<=100;i++) a[i]=i; a[1]=0; for (i=2;i int main() {int i,j,min,temp,a[11]; printf("enter data:\n"); for (i=1;i<=10;i++)

{printf("a[%d]=",i); scanf("%d",&a[i]); } printf("\n"); printf("The orginal numbers:\n"); for (i=1;i<=10;i++) printf("%5d",a[i]); printf("\n"); for (i=1;i<=9;i++) {min=i; for (j=i+1;j<=10;j++) if (a[min]>a[j]) min=j; temp=a[i]; a[i]=a[min]; a[min]=temp; } printf("\nThe sorted numbers:\n"); for (i=1;i<=10;i++) printf("%5d",a[i]); printf("\n"); return 0; } 3、求一个3×3的整型矩阵对角线元素之和。解: #include int main() { int a[3][3],sum=0; int i,j; printf("enter data:\n"); for (i=0;i<3;i++) for (j=0;j<3;j++) scanf("%3d",&a[i][j]); for (i=0;i<3;i++) sum=sum+a[i][i]; printf("sum=%6d\n",sum);

完整word版单片机C语言应用程序设计第五版马忠梅课后习题答案

第一章单片机由哪几部分组成?、80511可P2P0和个8位并行I/O口(其中8位中央处理器CPU、片内振荡电器及其时钟电路,4,个中断优先级)个中断源(具有2位定时器/计数器,5 用于外部存储器的扩展),2个16 全双工串行口,布尔处理器。单片机有多少个特殊功能寄存器?它们可以分为几组,各完成什么主要功能?、80512 表P7 1-3个特殊功能寄存器,在物理 上是分散在片内各功能部件中,在数218051单片机内部有答:中,以便能使用统一的直接寻址方式80H~FFH学上把它们组织在内部数据存储器地址空间来访问。这些特殊功能寄存器颁 在以下各个功能部件中:主要完;DPH两个8位寄存器组成)PSW、SP、DPTR(由DPL和(1)CPU:ACC、B、成运算和逻辑判断功能;完成中断管理IP、IE;(2)中断系统:完成 定时或者计数功能、TH1;TCOM、TL0、TH0、TL1(3)定时器/计数器:TMOD、口带有可选的纵向拓展I/O完成I/O口功能,其中部分P1P0、、P2、P3(4)并行I/O口:功能。主要完成数据的串行发送和接收SBUF、PCON5)串行口:SCON、(、决定程序执行顺序的寄存器是哪几个?它是几位寄存器?是否为特殊功能寄存器?它的3 内容是什么信息?它的内容是下一条 将要执行的不是特殊功能寄存器,它是16位寄存器,是程序计数器PC,程序的地址的用途是什么?它由哪几个特殊功能寄存器组DPTRDPTR是什么特殊功能寄存器?4、成?位)和8DPL (数据指针低是16位数据指针寄存器,它由两个8位特殊功能寄存器DPTR位地址,作地址寄存器用,可寻址外部16DPTR用于保存DPH(数据指针高8位)组成,数据存储器,也可寻址程序存储器。线?它们和单片机对外的地址总线和数据总线有什么关系?地址的引脚有多少I/O5、8051 总线和数据总线各是多少位?线可以在外扩存储器时分时复根I/OP0口8I/O8051单片机的40个引脚中有32根口线,和P3.6位地址总线,P2口作为高8用作为外部存储器的低8位地址 总线和8位数据总线,位。16位,数据总线为8P3.7分别作为外部存储器的写和读控制线。地址总线单片机堆栈的最大容量不能超过多少字8051、什么是堆栈?堆栈指针SP的作用是什么? 6 节?堆栈是数据寄存器的一部分,这一部分数据的存取是按照先入后出、后入先出的原则进行的。堆栈指针SP在启用堆栈之前是用来决定堆栈的位置。如在8051芯片复位后,SP的值为07H,则决定了堆栈从08H开始设置。修改SP值可以使堆栈设置在内部RAM的其它部分。在堆栈启 用之后,SP指向堆栈顶部,即由SP来决定数据读出和存入堆栈的地址。8051单片机内部用作 数据区的RAM的容量为128个字节,前8个字节要用来作为工作寄存器R0-R7。堆栈可以从08H开始设置直到7FH,共120个字节。但这只是最大可能的容量。一般情况下,内部RAM还要分出一部分作一般的数据区,或者还要用其中的位寻址区来用于位操作,等等。所以,8051 的堆栈区是比较小的,使用时要注意到这个限制。 8、8051内部RAM低128字节可分为几个区域?其中通用寄存器区的字节地址范围为多少?如何实现寄存器组的切换?可位寻址区的字节地址和位地址范围分别为多少? 8051内部RAM的低128字节可以分为通用寄存器区、位寻址区、便签(工作或者堆栈RAM)1 中的个字节。设置PSW区和特殊功能寄存器区。通用寄存器区的地址从00H到1FH共3212816个字节RS1可以切换当前通用寄存器组。位寻址区地址从20H到2FH共位RSO和127. 0到位,占用地址8051单片机对外有几条专用控制线?其功能是什么?9、,高电位有效,当有条专用控制线。它们是复位信号线RST一般的说法是8051单片机有4,低电平有效,当此复位信号从此线输入时,使单片机复位。访问外部存贮器控制信号EA先使用片单片机全部使用外部指令存贮器,而当此控制线为高电平时,控制线为低电平时,1000H(地址为,在4KB范围之外,才使用指令存贮器FFFFH内的4KB指令存贮器(0000H-)和外部地址锁存器允PSEN-FFFFH)。另有两条输出控制:外部程序存贮器的读选通信号。前者是低电平有效,在读外部程 序存贮器时使用。后者是高电平有效,在锁存ALE许信号P0口输出的低8位地址时使用。端必须怎样处理?为什么?10、8031的/EA为有效时,/EA访问内部ROM,当端是访问外部程序

C语言图书管理系统课程设计报告[1]

第三章图书管理系统的设计与实现 3.1系统的需求分析 图书登记管理系统作为一个应用软件将为学校的老师和学生提供一个对学校图书馆深入了解并借阅、还书的平台。根据系统界面的提示信息对图书馆信息进行查询、初始化等操作 系统功能需求分析描述如下: (1)系统主菜单:进入系统和退出系统 (2)功能菜单:显示可以进行的操作 (3)查询主菜单:根据图书编号、书名、作者进行查询,并可显示所有图书信息 (4)借还书主菜单:可以进行借书和还书等操作 3.2系统的设计 3.2.1 系统的总统设计 下面从系统的整体流程的功能模块、系统界面及数据结构进行总体设计。 (1)总体思想 本系统主要设计思想是实现图书馆的功能机管理系统信息的查询、借书、还书等主要功能。系统的设计方法是结构化实际方法,系统用C语言进行开发用户可以清晰的了解图书馆内的情况。 (2)系统模块结构图 根据需求分析结果,图书管理系统可以分为三大模块:查询

图书模块、借书功能模块、还书功能模块。 系统模块结构如图: 3.2.2 系统的概要设计 ㈠系统主菜单。 显示系统的主菜单,里面有相应的功能代码,根据选择各功能代码进入不同的界面。功能主要包括:退出系统、查询图书、借书、还书。 ㈡查询图书信息 进入此菜单功能模块,输入您要查询的图书的编号、名字、作者等。 图书查询模块流程如图:

3.3 测试结果系统主界面

功能菜单 查询系统菜单

借还系统菜单 3.4 源代码 # include # include # include typedef struct link { char number[100]; char bookname[100]; char author[100]; char publish[100]; char time[100]; float price; char status[100]; struct link *next;

数据库图书管理系统(含代码)知识整理

目录 一.需求描述和系统边界 (2) 二.需求分析 (2) 1.业务需求 (2) 2.功能需求及数据需求分析 (2) 3.业务规则分析 (3) 三.实体集及属性 (4) 四.联系集及E-R图 (5) 五.逻辑数据库设计 (6) 六.数据库编程 (9) 1.创建表 (9) 2.创建触发器 (11) 3.管理员操作 (12) 4.读者操作 (13) 5. 管理员对借阅关系的操作 (14) 七.代码实现 (15) 1.输入数据设计 (15) 2.完成借阅、续借、归还的操作设计 (17) 八.模式求精 (19) 九.小结 (19)

一.需求描述和系统边界 数据库技术和Internet的飞速发展,使它们已经成为现代信息技术的重要组成部分,是现在计算机信息系统和计算机应用系统的基础和核心。对于任何一个企业来说,数据是企业重要的资产,如何有效利用这些数据,对于企业发展起着极其重要的作用。随着我国市场经济的迅速发展和人们生活水平的不断提高,图书馆藏书的数目逐渐增大,这也挑战了图书管理方面的技术,以前的人工管理方式已经不再适应现在的环境,取而代之的是先进的图书管理系统,创建图书管理系统可以让管理人员方便而快捷的进行管理、查询、借阅、录入等工作。 该图书管理系统支持2类用户:管理员和读者。读者可以进行借阅、续借、归还和查询书籍等操作,管理员可以完成书籍和读者的增加,删除和修改以及对读者,借阅、续借、归还的确认。 二.需求分析 1.业务需求 图书管理系统的主要业务包括:包括图书馆内书籍的信息,读者信息,以及借阅信息。此系统功能分为面向读者和面向管理员两部分,其中读者可以进行借阅、续借、归还和查询书籍等操作,管理员可以完成书籍和读者的增加,删除和修改以及对读者,借阅、续借、归还的确认。 2.功能需求及数据需求分析 (1)注册管理 管理员注册。管理员注册时要求填写基本信息,包括管理员编号、姓名、性别、联系电话、家庭住址。系统检查所有信息填写正确后管理员注册成功。 读者注册。读者注册时要求填写基本信息,包括读者编号、姓名、性别、联系电话、学院等。系统检查所有信息填写正确后读者注册成

C语言程序设计(谭浩强)第四版-课后答案

第一章程序设计和C语言【第15页】 1-5 #include int main ( ) { printf ("**************************\n\n"); printf(" Very Good!\n\n"); printf ("**************************\n"); return 0; } 1-6 #include int main() {int a,b,c,max; printf("please input a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if (max #include int main() {float p,r,n; r=0.1; n=10; p=pow(1+r,n); printf("p=%f\n",p); return 0; }

3-2-1 #include #include int main() {float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000; r5=0.0585; r3=0.054; r2=0.0468; r1=0.0414; r0=0.0072; p1=p*((1+r5)*5); // 一次存5年期 p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期 p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期 p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次 p5=p*pow(1+r0/4,4*5); // 存活期存款。活期利息每一季度结算一次 printf("p1=%f\n",p1); // 输出按第1方案得到的本息和 printf("p2=%f\n",p2); // 输出按第2方案得到的本息和 printf("p3=%f\n",p3); // 输出按第3方案得到的本息和 printf("p4=%f\n",p4); // 输出按第4方案得到的本息和 printf("p5=%f\n",p5); // 输出按第5方案得到的本息和 return 0; } 3-2-2 #include #include int main() {double r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000; r5=0.0585; r3=0.054; r2=0.0468; r1=0.0414; r0=0.0072; p1=p*((1+r5)*5); // 一次存5年期 p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期 p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期 p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次

c语言程序设计第五版习题答案()

习题解析与答案 第1章C语言概述 一.简答题 1.概述C语言的主要特点。 【解答】 (1)语言简洁、紧凑,使用方便、灵活。 (2)数据类型丰富,表达能力强。 (3)运算符多样。C语言中的运算符包含的范围非常广泛。 (4)具有结构化的控制语句。如if…else语句、while语句、do while语句、switch语句、for语句。 (5)允许直接访问物理地址。C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。 (6)所生成的目标代码质量高,可移植性好。 2.构成C语言程序的基本单位是什么它由哪几部分组成 【解答】函数是构成C语言程序的基本单位。一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。 3.C语言程序的运行一般要经过哪几个步骤 【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。 二.运行程序写结果 1.输入下面程序并运行。 main() { int a1,a2,x; a1=100;

a2=50; x=a1-a2; printf(″x=%d\n″,x); } 【解答】运行结果为:x=50 2.输入下面程序并运行。 main() { int a1,a2,x; a1=10; a2=20; x=a1*a2; printf(″a1=%d,a2=%d\n″,a1,a2); printf(″x=%d\n″,x); } 【解答】运行结果为:a1=10,a2=20 x=200 3.输入下面程序并运行。 #include <> main() { printf("******\n"); printf(" *****\n"); printf(" ****\n"); printf(" ***\n"); printf(" **\n"); printf(" *\n"); } 【解答】运行结果为:****** ***** **** *** ** *

图书管理系统的设计(C语言)

图书管理系统设计 图书管理信息包括:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等 功能描述: 1.新进熟土基本信息的输入 2.图书基本信息的查询 3.对撤消图书信息的删除 4.为借书人办理注册 5.办理借书手续 6.办理换书手续 要求:以文件方式存储数据,系统以菜单方式工作。 这是本人大一第二学期初C语言课程设计的作品,嘿嘿,本来以为已经找不到原稿了,今天无意中竟然在QQ网络硬盘中找到了当初的teta版,发布于此,以作纪念。

C源代码如下: #include #include #include struct book{ char book_name[30]; int bianhao; double price; char author[20];

char state[20]; char name[20]; char sex[10]; int xuehao; struct book *book_next; }; struct club{ char name[20]; char sex[10]; int xuehao; char borrow[30]; struct club *club_next; }; void Print_Book(struct book *head_book);/*浏览所有图书信息*/ void Print_Club(struct club *head_club);/*浏览所有会员信息*/ struct book *Create_New_Book();/*创建新的图书库,图书编号输入为0时结束*/ struct book *Search_Book_bianhao(int bianhao,struct book *head_book); struct book *Search_Book_name(char *b_name,struct book *head_book); struct book *Search_Book_price(double price_h,double price_l,struct book *head_book); struct book *Insert_Book(struct book *head_book,struct book *stud_book);/*增加图书,逐个添加*/

用VB编写一个简单的图书管理系统

用VB编写一个简单的图书管理系统 Srl2011009(学号)石二辽(姓名)指导教师徐哲鑫 【摘要】笔者采用Visual Basic 为开发工具,设计一款具备友好的图形用户界面、简便操作的图书管理系统。充分利用计算机功能实现读者管理、书籍管理、借还书籍管理等信息的自动化控制,将使图书管理员从繁杂、重复的劳作中解放出来。 【关键词】图书;面向对象;软件工程 1概述 开发背景 用计算机管理图书馆里一切信息是一种计算机应用技术的创新,在计算机还未普及之前图书管理都是由图书管理人员手工记帐的方式来操作的.现在一般的图书馆都是采用计算机作为工具,使用实用的图书管理程序来帮助图书馆管理员进行更有效的图书管理。 图书管理系统产生的背景 图书管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于台数据库的建立和维护要求建立起数据一致性和完整性强、数据安全性好的库。而对于前端应用程序则要求应用程序具备功能完备、友好的图形用户界面、便捷使用等特点[1]。 系统功能要求的分析 开发本系统的总体任务是实现图书管理系统的系统化和自动化,帮助图书管理员更好更高效地完成图书管理工作,本系统要完成的功能主要有: 书籍管理部分:图书类别管理和图书信息管理。其中,书籍类别管理包括添加书籍类别、修改书籍类别、删除书籍类别等;书籍信息管理包括书籍信息的添加、修改、查询、删除等。 读者管理部分:读者类别管理和读者信息管理,读者类别管理包括读者类别添加、修改、删除等;读者信息包括读者添加读者信息、修改读者信息、查询读者信息、删除读者信息等。 借阅管理部分:借书信息管理和还书信息管理,借书信息管理、还书信息管理均包括其信息的添加、修改、查询等。 系统管理部分:添加管理员,修改密码,退出系统。 2开发环境及实现技术介绍

《C语言程序设计》课后习题答案(第四版)谭浩强

第1章程序设计和C语言1 1.1什么是计算机程序1 1.2什么是计算机语言1 1.3C语言的发展及其特点3 1.4最简单的C语言程序5 1.4.1最简单的C语言程序举例6 1.4.2C语言程序的结构10 1.5运行C程序的步骤与方法12 1.6程序设计的任务14 1-5 #include int main ( ) { printf ("**************************\n\n"); printf(" Very Good!\n\n"); printf ("**************************\n"); return 0; } 1-6#include int main() {int a,b,c,max; printf("please input a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if (max

2.5结构化程序设计方法34 习题36 第章最简单的C程序设计——顺序程序设计37 3.1顺序程序设计举例37 3.2数据的表现形式及其运算39 3.2.1常量和变量39 3.2.2数据类型42 3.2.3整型数据44 3.2.4字符型数据47 3.2.5浮点型数据49 3.2.6怎样确定常量的类型51 3.2.7运算符和表达式52 3.3C语句57 3.3.1C语句的作用和分类57 3.3.2最基本的语句——赋值语句59 3.4数据的输入输出65 3.4.1输入输出举例65 3.4.2有关数据输入输出的概念67 3.4.3用printf函数输出数据68 3.4.4用scanf函数输入数据75 3.4.5字符数据的输入输出78 习题82 3-1 #include #include int main() {float p,r,n; r=0.1; n=10; p=pow(1+r,n); printf("p=%f\n",p); return 0; } 3-2-1 #include #include int main() {float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000;

标准C语言程序设计第五版课后练习题答案

课后练习题答案 Chapter 1 1.1×√×√√×√××√ 1.2b c 1.3ad 1.4semicolon printf math、h \n Chapter 2 2、1 ×√××√√×√××√× 2、2 typedef 255 external const Chapter 3 3、1 ×√××√√×××√√√ 3、2 integer modula 6 logical sizeof paratheses typeconversion precedence 3、3 F F T F F F 3、4 F T T T F 3、5 (b) (c) 3、6 0 -2 7 10、25 false 3 3 1 3、10 0 1 1 1 1 3、11 d } 100 3、12 110 111 3、13 1 3、14 200 3、15 x<=y 3、16 TRUE 3、19 2 1 4 3、20 -40 40 Chapter 4 4、1 ×√√√√√××√√√× 4、2 %hd %x ctype、h %l %*d [^] blank 6 - %e 4、4 (a) scanf(“%d %c %d”, &a, &b, &c); (b)scanf(“%d %f %s”, &a, &b, &c); (c) scanf(“%d-%d-%d”, &a, &b, &c); (d) scanf(“%d %s %d”, &a, &b, &c);

4、5 (a)10x1、230000 (b)1234x 1、23 (c)1234 456、000000 (d) “123、40 ” (e) 1020 1222(乱码) 4、7 (a)1988 x (b)乱码 (c)120 乱码 (d)乱码 x 4、8 (a)1275 -23 5、740000 (b) 1275 -235、740000 (c) 0 0、000000 (d) 1275xxxx-235、74 (e)Cambridge (f)1275 Cambridge 4、10 1988 无无 Chapter 5 5、1 √×√××××××√ 5、2 && switch break if-else x=y 5、4 (a)x = 2; y = 0; (b) x = 1; y = 0; 5、5 (a) if (grade <= 59) if (grade >= 50) second = second + 1; (b) if (number > 100) printf(“out of range”); else if (number < 0) printf(“out of range”); else sum = sum + number; (c) if (T > 200) printf(“admitted”); else if (M > 60) {if (M > 60) printf(“admitted”);} else printf(“not admitted”); 5、6 F T F T 5、8 (a) x > 10 (b) (x != 10)||(y ! = 5) || (z >= 0) (c) (x + y != z) || (z > 5) (d) (x > 5) || (y != 10) || (z >= 5) 5、9 (a) x = 5; y = 10; z = 1 (b) x = 5; y = 10; z = 1 (c) x = 5; y = 0; z =0 (d) 无变化 5、10 (a) x= 0; y = 2; z = 0; (b) x = 1; y = 2; z = 0; 5、12 8 5、13 Delhi Bangalore END 5、14 2 4 4 8 5、15 0 0 2 5、16 25 5、17 Number is negative 5、18 ABC

图书管理系统 (c语言)

程序设计方法课程设计

问题提出: 设计一个图书馆的图书管理,具体要求如下: 1.录入新采购的图书信息,做成文件book.in,要求有良好的输入界面; 2.查询各种图书的基本信息,设计出良好的查询界面; 3.按图书编号进行排序,将排好序的图书信息输出到文件book.out中。 4.统计各类图书册数、图书馆的图书总册数。 5.统计图书的借阅情况。 1.需求分析 对于图书馆的管理系统,应该满足以下的用户需求: ○1用户能够增加和删除一些图书。 ○2用户根据一些基本信息查询相应的图书,系统可以准确输出所有符合条件的图书信息。 ○3用户可以借阅和归还图书馆中的图书。 ○4系统可以对图书做出统计,包括图书总数,各类图书数目,图书的借阅情况。 2.设计分析 定义图书结构体,其成员包括书名、作者、类型、出版社、价格、是否借阅(整型,1为借出,0为未借)、编号。 输入新书时,利用结构体储存书的信息,同时将新书信息以二进制写入book.in文件中,录入结束后,将新书按输入顺序写入book.out中,并且以原来存书的最大编号为基准对新书进行编号,这样可以保证book.out文件存储的图书都是按编号进行排序的。 查找图书时,获得所查书目基本信息后,以二进制依次读取文件中的每一本图书信息,并与输入信息相比较,输出符合信息的图书。 删除图书时,通过输入的图书编号(编号可通过查找图书获得)查找相应图书,删除相应数据并保存。 借阅或归还图书时,通过图书编号(编号可通过查找图书获得)查找相应图书,修改图书的属性(是否借阅)并保存。 实现统计功能时,以二进制依次读取文件中的每一本图书信息,设置变量统计图书类型、借阅情况和图书总数,到文件结尾时,输出各个变量的值。

图书管理系统数据库设计

摘要 数据库原理及应用课程设计是软件工程专业集中实践性环节之一,是学习完《数据库原理及应用》课程后进行的一次全面的综合练习。其目的在于加深对数据库基础理论和基本知识的理解,掌握使用数据库进行软件设计的基本方法,提高运用数据库解决实际问题的能力,最终实现对于给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。 数据库及其应用系统是具有管理功能的计算机系统,而数据库原理及应用课程设计在开发应用程序中至关重要,合理的数据表结构不尽有利于软件的快速开发,而且有利于以后对软件的维护。 目前,我国的科技水平高速发展,计算机作为今天使用最广的现代化工具已深入到各个领域,并且正在成为未来社会——信息社会的重要支柱。在这样的大背景下,现代图书馆的管理方式,资源建设等方面都发生了重大变化,这种变化表现在图书馆工作,管理和服务平台发生的变化,图书馆不再是传统的手工操作,人工管理,而是全面实行计算机管理。 一个简单的图书管理系统包括图书馆内书籍的信息、学校在校学生的信息以及学生的借阅信息。系统在IBMDB2平台上用SQL语言来编写实现。此系统功能分为面向学生和面向管理员两部分,其中学生可以进行借阅、续借、归还和查询书籍等操作,管理员可以完成书籍和学生的增加,删除和修改以及对学生,借阅、续借、归还的确认。 关键词:SQL语言;数据库设计;图书管理系统

目录 1需求分析........................................................1 1.1需求分析过程..................................................1 1.2数据字典......................................................2 2概念模式设计....................................................3 2.1实体..........................................................3 2.2 局部视图.....................................................3 2.3视图集成......................................................4 3逻辑模式设计....................................................6 3.1将E-R图转化为关系模式........................................6 3.2数据模型的优化................................................6 4检验是否满足用户需求............................................8 4.1调查用户需求..................................................8 5其它数据库对象(物理数据库设计)的考虑............................9 5.1建表..........................................................9 5.2合法用户名字、权限、角色.......................................10 5.3视图.........................................................10 5.4触发器.......................................................11 5.5索引.........................................................11 6备份及恢复策略.................................................11 6.1备份策略.....................................................11 6.2恢复策略.....................................................11

C语言程序设计第四版第七章答案-谭浩强

第七章函数 7.1写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。 maxyueshu(m,n) int m,n; { int i=1,t; for(;i<=m&&i<=n;i++) {if(m%i==0&&n%i==0) t=i; } return(t); } minbeishu(m,n) int m,n; {int j; if(m>=n) j=m; else j=n; for(;!(j%m==0&&j%n==0);j++); return j; } main() {int a,b,max,min; printf("enter two number is: "); scanf("%d,%d",&a,&b); max=maxyueshu(a,b); min=minbeishu(a,b); printf("max=%d,min=%d\n",max,min); } 7.2求方程的根,用三个函数分别求当b2-4ac大于0、等于0、和小于0时的根,并输出结果。从主函数输入a、b、c的值。 #include"math.h" float yishigen(m,n,k) float m,n,k; {float x1,x2; x1=(-n+sqrt(k))/(2*m); x2=(-n-sqrt(k))/(2*m); printf("two shigen is x1=%.3f and x2=%.3f\n",x1,x2); } float denggen(m,n) float m,n; {float x; x=-n/(2*m); printf("denggen is x=%.3f\n",x); }

(完整版)《C语言程序设计》基本知识点

《C语言程序设计》教学基本知识点 第一章C语言基本知识 1.C源程序的框架 尽管各个C源程序的功能千变万化,但框架是不变的,主要有:编译预处理、主函数()、函数n()等,主函数的位置不一定在最前面,可以在程序的中部或后面,主函数的名字固定为main。 2.C语言源程序的书写规则: (1)C源程序是由一个主函数和若干个其它函数组成的。 (2)函数名后必须有小括号,函数体放在大括号内。 (3)C程序必须用小写字母书写。 (4)每句的末尾加分号。 (5)可以一行多句。 (6)可以一句多行。 (7)可以在程序的任何位置加注释。 3.语句种类 语句是程序的基本成分,程序的执行就是通过一条条语句的执行而得以实现的,根据表现形式及功能的不同,C语言的基本语句可以分为五大类。 (1)流程控制语句 流程控制语句的功能是控制程序的走向,程序的流程有三种基本结构:顺序结构、分支结构和循环结构,任何复杂的程序都可以由这三种基本结构复合而成。其中后两种结构要用特定的流程控制语句实现。 (2)表达式语句 表达式语句的形式是:表达式;,即表达式后跟一分号“;”,分号是语句结束符,是一个语句必不可少的成分。表达式和表达式语句的区别在于表达式代表的是一个数值,而表达式语句则代表一种动作。最常见的表达式语句是赋值语句。 (3)函数调用语句 函数调用语句实际上也是一种表达式语句,形式为:在一次函数调用的小括号后面加上一个分号。 (4)空语句 空语句的形式就是一个分号,它不代表任何动作,常常作为一个意义转折点使用。 (5)复合语句 复合语句从形式上看是多个语句的组合,但在语法意义上它只相当于一个语句,在任何单一语句存在的地方都可以是复合语句。注意复合语句中最后一个语句末尾的分号不能少。复合语句右大括号后面没有分号。 4.运算符 用来表示数据各种操作的符号称为运算符。运算符实际上代表了一种类型数据的运算规则。不同的运算符具有不同的运算规则,其操作的数据类型必须符合该运算符的要求,运算结果的数据类型也是固定的。 根据参加操作的数据个数多少,可以将C语言的运算符分为单目运算符,双目运算符和三目运算符(三目运算符只有条件运算符一个)。 根据运算对象和运算结果的数据类型可分为算术运算符、关系运算符、逻辑运算符等。 5.表达式 表达式是由常量、变量、函数,通过运算符连接起来而形成的一个算式。一个常量,一个变量或一个函数都可以看成是一个表达式。 表达式的种类有: 算术表达式、关系表达式、逻辑表达式、赋值表达式、字位表达式、强制类型转换表达式、逗号

c语言程序设计报告 图书管理系统

中国地质大学本科生课程论文封面 课程名称c语言课程设计 教师姓名樊媛媛 本科生姓名 本科生学 本科生专业 所在院系 类别: 日期: 课程设计评语

注:1、无评阅人签名成绩无效; 2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效; 3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。 目录

课程设计评语 (1) 目录 (2) 1.课程论文题目 (3) 2.程序设计思路 (3) 3.功能模块图 (4) 4.数据结构设计 (4) 5.算法设计 (4) 6.程序代码 (5) 7.程序运行结果 (11) 8.编程中遇到的困难及解决方法 (14) 9.总结心得及良好建议 (15) 10.致谢 (15) 1.课程论文题目 图书管理系统 2.程序设计思路

根据要求,图书管理系统以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保持记录以进行删除,查询,借书,还书,退出,添加等等操作;另外还有键盘式旋转菜单以实现功能选择模块。 3.功能模块图 系统功能模块图 4.数据结构设计 先写主函数main (),然后设计个功能选项,用switch选择,然后进入不同模块,进行不同选择,实现不同功能。每个图书信息设置一个结构体,将输入信息存入文件,提供查询功能,还有删除功能以及借书还书功能。每运行一功能后都返回主界面,方便再次选择,还有设置退出模块,方便退出。 5.算法设计

先定义结构体数组struct books,然后设置主界面,主界面出现6个功能选项,分 别是输入sr() 、借书js()、还书hs()、删除sc()、退出tc()、查询cx().各模块设计如下: 输入模块sr(),先调用文件eup,对其进行读取,然后增加,再对其进行保存和调用。其中结构体只输入tsmc图书名称,tsbh图书编号,dj单价,zz作者, 然后自动生成,czzt存在状态,姓名xm,学号xh,性别xb. 查询模块cx(),有选项图书编号和图书名称,然后选择,用if选择,然后用for循环查找,当输入名称与文件中的名称相同时,便显示此信息。 删除模块就是在查找功能的图书后,选择删除,将strcpy将s[i+1]的值赋给s[i]。借出模块也是在查询的基础上,若s[i]的存在状态为已借出,则显示已借出,无法再借,若未借出,则将s[i]的存在状态czzt变为已借出,然后输入姓名,学号,性别,最后显示出已借出。 还书模块就是在查询的基础上,若s[i]的存在状态为未借出,则无法归还,若借出,则将存在状态变为未借出,然后自动将姓名,学号,性别变为初始值。 退出模块使flag=1,而在main就有bool flag 且main中已令main=0.这样就实现了退出功能。 其中若输入超过选项值后,都会显示输入错误,请重新输入。若字符错误,程序就直接出现错误了。 6.程序代码 #include #include #include #include #define M 100 struct books { char tsmc[12]; int tsbh; float dj; char zz[12]; char czzt[12]; char xm[12];

相关主题