C语言图书馆管理系统源代码
- 格式:doc
- 大小:59.50 KB
- 文档页数:11
C语言程序课程设计报告标题:图书管理系统专业:软件工程类:设计主题图书馆管理系统主要包括管理图书的库存信息,每本书的借阅信息,每个人的借阅信息。
每本书的库存信息包括数量、书名、作者、出版日期、金额、类别、总入库数量、当前库存、已借出图书数量等。
每本借书包括以下信息:编号、书名、金额、借书证号、借阅日期、到期日期、罚款金额等。
每个人的图书馆信息包括借书证号、班级、学号等。
该系统的功能包括以下几个方面:一、借阅资料管理要求对图书、期刊、报纸、期刊进行分类管理,这样操作会更加灵活方便。
可以随时添加、删除、修改、查询等相关资料。
b、借贷管理(1)借贷操作(2)还书操作(3)更新治疗提示:以上处理需要相互配合,通过编辑赔偿和违约金金额来完成图书借还业务的各种登记。
例如,读者在还书时,不仅要更新图书的库存信息,还要自动计算图书的罚款金额。
并显示读者当天到期未还图书的所有信息。
c、读者管理读者等级:对借阅的读者进行分类,比如可以分为教师和学生两类。
并定义每类读者可以借阅的图书数量及相关借阅时间等信息。
读者管理:可以录入读者信息,以及挂失或注销读者、查询等服务。
D.统计分析可以随时进行统计分析,及时了解当前的借阅情况和相关数据状态。
统计分析包括借阅列表、数据状态统计、借阅统计等功能分析,显示当日所有到期未还的图书信息。
e系统参数设置:您可以设置相关的系统服务器参数,如违约金金额、最大借用天数等。
根据题目分析这项工作分为六个模块。
1.图书数据2.借款人信息3.借用模块4.还书模块5.照看书籍6.查询模块模块一:书号,书名,作者,出版时间,价格,份数,页数。
模块二:单位、借阅书目、借阅时间模块3:输入书名、书号、借书证。
模块四:登记书号,还书,处理罚款。
模块5:管理书库中的书籍,将新书入库,删除旧书,堆栈查询模块6:图书查询。
数据测试源代码汉字菜单可以参照以下代码编写:#包含“stdio.h”。
主(){ char c;int I;做{clr SCR();for(I = 0;i < 80i++)printf(" * ");printf("\t 1:添加书籍\ n ");printf("\t 2:列出书籍\ n ");printf(" \ t 3:s reach books \ n ");printf("\t 4:借书\ n ");printf("\t 5:返回图书\ n ");printf("\t6:退出\n ")printf(" \ t请选择输入选项[1 \ \ 2 \ \ 3 \ \ 4 \ \ 5 \ \ 6]:\ n ");做{c = getchar();}while(c!='1'&&c!='2'&&c!='3'&&c!='4'&&c!='5'&&!='6');getchar();开关(c){事例“1”:输入();打破;案例“2”:del();打破;事例“3”:find();打破;case“4”:arrange();打破;事例“5”:right();打破;案例“6”:出口(0);}Printf("按任意键返回主菜单:\ n ");getchar();clr SCR();} while(1);}#include <stdio.h >定义图书结构*/结构书{int _ id#include <stdlib.h >#include <string.h >#定义借入1#定义NOBORROW 0/*//数字,唯一char _ name[32];//书的名称,不唯一int _ type//书的类型,不唯一int _ status//书的状态,借出/未借出int _ count//图书借出的次数struct Book * _ next//下一本书结构书* _ prev//前一本书};定义书籍类型*/操作目录提示*/操作目录提示1 */添加图书类型并显示用户信息*/添加图书状态并显示用户信息。
程序设计实践信息类 1110开辟一个图书信息管理系统,图书信息包括:图书编号、书名、作者、出版社、类别、出版时间、价格等基本信息(也可以根据自己情况进行扩充,比如是否借出、库存量等)(1)图书信息录入功能(图书信息用文件保存)--输入(2)图书信息浏览功能--输出(3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式):①按书名查询②按作者名查询③ 按照价钱排序④按出版时间排序等等(4)图书信息的删除与修改(1)简单的权限处理 (2)报表打印功能(3)甚至根据自己情况,可以加之学生信息,并扩充为图书借阅系统。
(4) 含糊查询 (5)综合查询 (6)统计功能比如统计处某一类别的图书信息或者筛选出小于指定数量库存的图书信息等等,总之,可以根据自己需求进行分析功能。
一、提交材料应包括: (1)系统源代码 (2)课程报告二、整个设计过程具体要求(1要求学生对案例系统进行分析,设计出需要完成的功能,完善各个模块的调用关系;(2要求学生进一步明确各模块调用关系,进一步完善模块函数细节(函数名、参数、返回值等)(3要求学生养成良好的编码习惯、完成各个模块并进行测试,最终完成系统整体测试;(4按照要求完成系统设计和实现报告,并进行总结、答辩。
1 需求分析这是一个能简单管理图书的小型图书管理系统,其中图书信息包括:书名,作者名,书编号,分类,出版单位,出版时间,价格等。
通过这些信息使之提供以下功能:(1)图书信息创建功能。
其中图书信息包括:书名,作者名,书编号,分类,出版单位,出版时间,价格等。
(图书信息用文件保存)。
(2)图书信息查看功能。
用来查看各项图书信息。
(3)图书信息查找功能。
通过已知信息来查找想要的图书。
(4)图书信息的删除。
可以删除特定图书。
(5)图书信息的修改。
可以修改图书的各项信息。
(6)图书信息的排序功能。
按图书信息对录入的图书进行排序。
(7)菜单选择功能,此功能也是图书信息信息管理系统的入口,用户所要进行的各种操作均需在此模块中进行选择并进而调用其他模块实现相应的功能2 概要设计图书管理系统中主要的数据结构包含书名、图书书号、作者名、分类、出版社、出版时间、价格等;在处理过程中各项可以作为一本图书的不同属性来进行处理。
HUNAN UNIVERSITY C语言程序训练报告【设计目的】图书信息包括:读者登录号、管理员登录号、图书编号、作者名、种类、出版社、图书库存、图书借出数目等。
图书信息管理系统,使之能提供以下功能:1)系统以菜单方式工作2)读者注册功能3)读者登录功能4)读者借书还书功能5)查询读者借阅记录6)查询在管图书信息功能7)修改密码功能8)管理员登录功能9)增加、修改、删除图书功能10)查看图书信息功能【设计思路】根据题目要求,应当把图书信息用结构体形式输入,应该提供以下结构体和文件的输入等操作:在程序中需要实现图书信息录入,浏览,查询,删除和修改等功能的操作,所以需要建立相应的模块来实现:另外还需提供选择菜单实现功能,在运行时达到所要求的目的;管理员和读者登录界面及各自功能应有不同的实现。
【总体设计】【详细设计】1.主函数主函数设计要求简洁,只提供部分提示语和函数的调用源代码为//rkou。
c 程序的入口#include<stdio。
h>#include〈stdlib.h〉#include〈string。
h>#include<conio.h〉#include"head.h”#include”fuc.h"#include”picture。
h"#include”jiangzhuo1.h"#include”output。
h"main(){ int i=setup();switch (i){ case 0: while(n<50){ conects(n);}default:eros(i);}system("pause”);}2.程序中全局变量声明定义,以及所有函数声明源代码为struct book //图书结构体声明{ char name[50],classic[10],writer[20]; //书名,类别,作者int jn; //借出数量int zn; //在馆数量int bh; //图书编号};struct information //管理员和读者结构体声明{char name[10],no[12],key[10]; //姓名,账号,密码};struct show //图书借阅记录的结构体声明{char name1[10],name2[50],writer[20],no[12]; //书名,读者姓名,书的作者,读者账号int bh,o; //图书编号,借阅状况(未还,已还)};//以下为用到的全局变量struct book bk;struct information aa,rr;struct information stu[100];struct book bb[100];struct information ad[100];struct show ss[100];int i,j,k,s;int n=0;int x;FILE *fp;//以下函数主要功能:方便窗口与用户之间交换信息int regst();void password(char *a,int b,int j);//登陆时的输入函数void examine(int *a,int b); //保证键入的数据是数字void changepaw(int a,int b); //修改密码用到的提示函数void inputs0(); //输出图书类别以供用户选择void inputs1(int a,int b,int c,int d,int e); //方便用户输入图书各项信息(如书名,编号)void inputs2(int a,int b,int c); //方便用户输入管理员的信息(如账号姓名)void inputs3(int a,int b,int c);//方便用户输入读者的信息(如账号姓名)void eros(int i); //错误显示函数,操作一旦出错,则会出现相应的错误信息void conects(int j); //连接函数,选择界面//一下函数主要用于改变文件的内容并保存int setup(); //数据初始化函数int xzc(char no[12],char key1[10],char key2[10],char name[10]);//读者注册函数int exam(char no[10],char key[10],int n);//密码账号检验函数int mp(char no[12],char key1[10],char key2[10],char key3[10],int n); //密码修改函数void paixu(); //对图书按照编号从小到大的顺序进行排列int sc(int bh); //管理员删除图书信息函数int zj(struct book bb); //管理员增加图书信息函数int xg(struct book bb);//管理员修改图书信息函数int js(int bh,char no[12]); //借书函数int hs(int bh,char no[12]); //还书函数int bh1(int bh); //判断该编号的图书信息是否存在函数void bh2(int bh); //按照图书编号显示图书信息函数int sm1(char name[50]);//判断是否存在该名字的图书信息函数void sm2(char name[50]); //按照图书名字显示图书信息函数int zz1(char writer[20]); //判断是否存在该作者的图书信息函数void zz2(char writer[20]);//按照图书作者显示图书信息函数void lb(char classic[10]); //按类别显示图书信息int rck1(int bh);//判断该编号的图书的借书记录是否存在void rck2(int bh);//按编号显示图书借书情况int gck21(char no[12]);//判断该账号读者的借书记录是否存在void gck22(char no[12]); //按读者显示借书情况2void gck12(); //显示全部借书情况void gck23();//管理员查看所有书的信息void copy(int bh); // 按编图书编号将图书信息暂时保存在另外一个结构体里面void copy2(char no[12]); //按管理员账号将管理员信息暂时保存在另外一个结构体里面void copy3(char no[12]);//按读者账号将读者信息暂时保存在另外一个结构体里面//pic()函数:每个函数表示一个界面,conects函数将它们连接起来void pic0();void pic1();void pic2();void pic3();void pic4();void pic5();void pic6();void pic7();void pic8();void pic9();void pic10();void pic11();void pic12();void pic13();void pic14();void pic15();void pic16();void pic17();void pic18();void pic19();void pic20();void pic21();void pic22();void pic23();void pic24();void pic25();void pic26();void pic27();void pic29();void pic30();void pic31();void pic32();void pic33();void pic34();void pic35();void pic36();void pic37();void pic38();void pic39();void pic40();void pic41();void pic42();void pic43();void pic44();void pic45();void pic46();void pic47();void picc();3.用户输入以及界面反馈用到的功能函数源代码为int regst(){char num[12],paw1[10],paw2[10],name[10];int i;printf(”请输入账号\n(11字符以内,不能含有中文字符):\n”);password(num,0,11);printf(”输入您的密码\n(9字符以内,不能含有中文字符):\n");password(paw1,1,9);printf("请再次输入密码:\n”);password(paw2,1,9);printf("输入您的姓名:\n");gets(name);system("cls”);i=xzc(num,paw1,paw2,name);return i;}void password(char *a,int b,int j){ char c;int i=0;while((c=getch())!=’\r’){if(c==8){ printf(”\b \b”);if(i〉0)i-—;}else if(i<j){if(b)printf("*”);else printf("%c",c);a[i]=c;i++;}if(i==j){ printf("\a");}}a[i]='\0';printf("\n");}void examine(int *a,int b){ while(!scanf(”%d",a)){ while(getchar()!='\n’);printf("请输入数字!!\n");}rewind(stdin);if(b) system("cls”);}void changepaw(int a,int b){ int i;char c1[10],c2[10],c3[10];printf("请输入原密码\n”);password(c1,1,9);printf("请输入新密码\n");password(c2,1,9);printf(”请再次输入新密码\n”);password(c3,1,9);system("cls”);if(b){i=mp(aa。
数据库设计关于图书馆管理系统的设计(有完整代码,史上最全!)《数据库》课程设计(2008/2009学年第2学期第18-19 周)数据库课程设计任务书⼀、⽬的1.掌握计算机管理信息系统设计的⼀般⽅法,主要包括系统分析、系统设计的组织和实施。
2.关系型数据库管理系统的编程技术,并能独⽴完成⼀般⼩系统的程序设计、调试运⾏等⼯作。
3.培养把所学知识运⽤到具体对象,并能求出解决⽅案的能⼒。
⼆、任务(任选其⼀)A.运⽤关系型数据库管理系统,实现本院图书馆管理信息系统。
具体要求如下:—图书、资料的登记、注销和查询。
—借书证管理,包括申请、注销借书证,查询借书证持有⼈等。
—借还图书、资料的登记、超期处理,超期拒借等。
—图书、资料查询,借、还图书和资料情况查询。
—图书、资料借阅情况的统计分析,拒此作为图书馆图书、资料订够的依据之⼀。
(本项不作为基本要求)B.运⽤关系型数据库管理系统,实现服务电话管理系统向客户现场派技术⼈员的服务公司可以⽤服务电话管理系统跟踪客户、员⼯、⼯作订单、发票、付款等等。
要求:数据库要存储以下信息:—客户信息—客户⼯需单信息—完成⼯需单所需⼈⼯—完成⼯需单所需部件—部件信息—付款信息—雇员信息完成的功能:—输⼊/查看客户⼯需单信息—输⼊/查看部件、雇员等其它信息—付款—打印发票等三、结果形式1.设计报告:含E-R图、数据字典、关系模式、关系实例、查询描述、关系代数、SQL 实现的查询语⾔及查询结果。
2.上机实现。
四、考核1.课程设计态度(20分)。
2.递交的书⾯材料(40分)。
3.上机运⾏情况(40分)⽬录1.问题描述 (2)1.1背景 (2)1.2数据需求 (2)1.3事物需求 (3)1.4关系模式 (3)2.⽅案图表设计 (3)2.1E-R图 (3)2.2数据流程图 (8)2.3数据字典 (9)2.4关系图: (11)3.数据库源代码 (12)3.1数据库建⽴ (12)3.2数据初始化 (14)4.结果数据处理 (17)4.1单表查询 (17)4.2超期处理 (19)4.3还书操作 (20)4.4借书操作 (22)4.5书籍状态 (24)4.6读者状态 (24)5.结束语 (26)5.1课程设计⼼得 (26)1.问题描述1.1背景随着图书馆规模的不断扩⼤,图书数量也相应的增加,有关图书的各种信息量也成倍增加,⾯对着庞⼤的信息量,传统的⼈⼯⽅式管理会导致图书馆管理上的混乱,⼈⼒与物⼒过多浪费,图书馆管理费⽤的增加,从⽽使图书馆的负担过重,影响整个图书馆的运作和控制管理,因此,必须制定⼀套合理、有效,规范和实⽤的图书管理系统,对图书资料进⾏集中统⼀的管理。
C语言学籍管理系统源代码简介本文档介绍了一个用C语言编写的学籍管理系统的源代码。
学籍管理系统是一个用于管理学生的基本信息和学习成绩的软件系统。
该系统可以帮助学校、学院和教师有效地管理学生的信息,并生成学生的成绩报表。
功能学籍管理系统具有以下功能:1.添加学生:可以添加学生的基本信息,如学号、姓名、性别、班级等。
2.删除学生:可以根据学号删除已有的学生信息。
3.查询学生:可以根据学号查询学生的信息。
4.修改学生:可以根据学号修改学生的信息。
5.成绩录入:可以录入学生的学习成绩,包括各科目的成绩和总分。
6.成绩查询:可以根据学号查询学生的成绩。
7.成绩统计:可以统计学生各科目的平均分、最高分和最低分。
程序结构学籍管理系统的源代码主要包括以下几个文件:1.main.c:程序的入口文件,包含主函数和界面显示函数。
2.student.h:定义了学生的结构体和相关操作函数。
3.student.c:实现了学生结构体的操作函数,包括添加学生、删除学生、查询学生、修改学生等。
4.score.h:定义了成绩的结构体和相关操作函数。
5.score.c:实现了成绩结构体的操作函数,包括成绩录入、成绩查询、成绩统计等。
使用说明1.下载源代码:将源代码文件下载到本地电脑上。
2.编译程序:打开命令行窗口,进入源代码所在的目录,使用gcc编译器编译源代码文件。
示例命令为:gcc main.c student.c score.c -ostudent_management_system。
3.运行程序:编译成功后,运行生成的可执行文件。
示例命令为:./student_management_system。
4.操作系统:该学籍管理系统适用于Linux、Unix和Windows操作系统。
示例代码以下是学籍管理系统的示例代码:```c #include <stdio.h> #include。
//本电信学渣的大一小学期作业做的不好请见谅/*一、图书管理系统1.新书入库:图书信息包括书名,书号,库存量,现存量(库存量减去借走的图书)共4项.首先输入3本书的信息,并将其存数组book中.当有新书入库时,先判断数组中是否有此书(即比较书名或书号),若有则修改库存量,现存量的信息;若无此书,则将该书的信息添加到数组中,并将其库存量设为-1,将其标专为下次要购入的图书。
2.图书查询:(1)输入一个书号,在文件中查找此书,若找到则输出此书的全部信息;若找不到则输出查找失败的信息。
(2)查询所有要购入的图书的书名和书号。
3.借阅管理(1)每个读者的信息包括姓名,编号,借阅图书1,借阅图书2,借阅图书3,输入3个读者的信息并存入数组reader中.(2)借书登记:输入读者的姓名及所借图书的书号,先判断姓名是否在读者数组中,若有则将书号存入reader数组中,同时修改book数组中此书的现存量.若reader数组中无此姓名,则应提示错误。
(3)还书管理:输入读者的姓名,所还图书的书号,修改reader数组和book数组中相应的项。
4.输出全部图书信息和全部读者信息。
5.退出系统。
*/#include <stdio.h>#include <string.h>void zzdz();//读者注册void shuru();//新书注册void shuchu();//图书总数统计void shanchu();//删除书籍void find(); //书籍查找void borrow();//借书管理void repay(); //还书管理void scdzxx(); //读者统计//定义结构体类型struct s{char no[10];char name[10];};//定义结构体数组struct s book[50];struct i{char js[3][10],js1[10],js2[10],js3[10];char name[10],no[10];};//定义结构体数组struct i reader[50];int bzongshu=0,bxianshu=0,rzongshu=0;int n=0,m=0;int main(){int chioce=-1,xxx; //一级选项,二级选项printf("***************图书馆管理系统******************\n");while(chioce!=0){ //一级选项循环printf("请选择:\n图书管理请按1\n读者管理请按2\n退出请按0(否则将留在本层)\n请输入"); //输入提示scanf("%d",&chioce); //输入选项图书读者xxx=-1; //重置二级选项if(chioce==1){ //1为图书printf("您选择了图书管理\n");while(xxx!=0){ //二级选项循环printf("\n\n继续选择:\n"); //选printf("增加书目请按1\n"); //项printf("删除书目请按2\n"); //提printf("查询书目请按3\n"); //示printf("统计书目请按4\n"); //printf("返回上层请按0(否则将留在本层)\n");scanf("%d",&xxx);switch(xxx){case 1:shuru(); break; //新书注册case 2:shanchu(); break;//删除书籍case 3:find();break; //书籍查找case 4:shuchu();break; //图书总数统计case 0:printf("返回上层\n");break;//返回一级选项default:printf("输入错误");break;//报错}}}else{if(chioce==2){printf("\n\n您选择了读者管理\n");while(xxx!=0){printf("\n\n继续选择:\n");printf("注册读者请按1\n");printf("借阅系统2\n");printf("还书系统3\n");printf("读者统计4\n");printf("返回上层请按0(否则将留在本层)\n");printf("本馆共有读者%d人\n",rzongshu);scanf("%d",&xxx);switch(xxx){case 1:zzdz();break; //读者注册case 2:borrow();break;//借阅管理case 3:repay();break;//还书管理case 4:scdzxx();break;//读者统计case 0:printf("返回上层\n");break;default:printf("输入错误");break;//报错}}}else{if(chioce==0){printf("\n\n");break;}printf("\n\n选择错误,请重新选择\n");scanf("%d",&chioce);}}}printf("\n\n***************已退出,谢谢使用****************\n"); return 0;}//增加函数void shuru(){int j,i,geshu;printf("\n\n输入需要增加书目的个数:");scanf("%d",&geshu);for(i=bzongshu;i<(bzongshu+geshu);i++){printf("输入书号");scanf("%s",book[i].no);printf("输入书名");scanf("%s",book[i].name);}printf("结束输入;");n=n+geshu;bzongshu=bzongshu+geshu;bxianshu=bxianshu+geshu;}//输出数据void shuchu(){int i;for(i=0;i<n;i++){printf("书号:%s ",book[i].no);printf("书名:%s\n",book[i].name);}printf("共有%d本书\n现有%d本书\n",bzongshu,bxianshu); }//删除数据void shanchu(){int i,j,r=0,chxxx;char a[10];printf("删除选项:\n1:通过书号进行删除\n2:通过书名进行\n");scanf("%d",&chxxx);if(chxxx==1){printf("输入需要查询的书号:");scanf("%s",a);for(i=0;i<n;i++){if((strcmp(a,book[i].no))==0){for(;i<n;i++){strcpy(book[i].no,book[i+1].no);strcpy(book[i].name,book[i+1].name);i++;}n--;(bzongshu)--;(bxianshu)--;}}}else{if(chxxx==2){printf("输入需要查询的书名:");scanf("%s",a);for(i=0;i<n;i++){if((strcmp(a,book[i].name))==0){printf("书号:%s\n",book[i].no);printf("书名:%s\n",book[i].name);r++;}}}else{printf("输入错误");}}if(r==0) printf("无此书\n");return;}//查询数据void find() //strcmp{int i,j,r=0,chxxx;char a[10];printf("查询选项:\n1:书号查询\n2:书名查询\n");scanf("%d",&chxxx);if(chxxx==1){printf("输入需要查询的书号:");scanf("%s",a);for(i=0;i<n;i++){if((strcmp(a,book[i].no))==0){printf("书号:%s\n",book[i].no);printf("书名:%s\n",book[i].name);r++;}}}else{if(chxxx==2){printf("输入需要查询的书名:");scanf("%s",a);for(i=0;i<n;i++){if((strcmp(a,book[i].name))==0){printf("书号:%s\n",book[i].no);printf("书名:%s\n",book[i].name);r++;}}}else{printf("输入错误");}}if(r==0) printf("无此书\n");return;}//输入读者信息void zzdz(){int i,geshu;printf("输入需要注册的个数:");scanf("%d",&geshu);for(i=rzongshu;i<(rzongshu+geshu);i++){printf("输入读者号");scanf("%s",reader[i].no);printf("输入读者名");scanf("%s",reader[i].name);}m=m+geshu;rzongshu=m;printf("共有%d个读者\n",rzongshu);}//借阅管理void borrow(){int i,j,k,zdz=0,zs=0,z;char a[10],b[10],q[10];printf("您已进入借阅管理\n");printf("输入要求借书的读者姓名:\n");scanf("%s",a);for(i=0;i<rzongshu;i++){if((strcmp(a,reader[i].name))==0){printf("该读者存在,请输入要借阅图书的书号(3本)\n");for(j=1;j<=3;j++){zdz++;printf("输入要借的书号");scanf("%s",b);for(k=0;k<bzongshu;k++){if((strcmp(b,book[k].no))==0){printf("该书存在,借阅成功\n");bxianshu--;*(reader[i].js[j])=*(book[k].no);zs=1;}}if(zs==0){printf("无此书,将返回上层菜单\n");break;}}}}if(zdz==0){printf("该读者不存在,将返回上层选择菜单");}return;}//还书管理void repay(){int i,j,k,zdz=0,zs=0;char a[10],b[10];printf("您已进入还书管理\n");printf("输入要求还书的读者姓名:\n");scanf("%s",a);for(i=0;i<rzongshu;i++){if((strcmp(a,reader[i].name))==0){printf("该读者存在,请输入要归还图书的书号(3本)\n");for(j=1;j<=3;j++){zdz++;printf("输入要还的书号");scanf("%s",b);for(k=0;k<bzongshu;k++){if((strcmp(b,reader[i].js[j]))==0){printf("该书存在,还书成功\n");bxianshu++;*(reader[i].js[j])=' ';zs=1;}}if(zs==0){printf("无此书,将返回上层菜单\n");return;}}}}if(zdz==0){printf("该读者不存在,将返回上层选择菜单");}return;}//输出读者信息void scdzxx(){int i;for(i=0;i<rzongshu;i++){printf("读者号:%s\n",reader[i].no);printf("读者姓名:%s\n",reader[i].name);printf("借书1的书号:%s\n",reader[i].js[1]);printf("借书2的书号:%s\n",reader[i].js[2]);printf("借书3的书号:%S\n\n\n",reader[i].js[3]);}return;}。
《计算机程序设计基础》课程设计报告项目名称小型图书购销管理系统学生姓名李晞月学院信息科学与工程学院指导教师穆帅目录目录 (1)第一章系统描述 (2)第二章功能模块结构 (3)第三章数据结构设计 (6)第四章主要模块的算法说明 (7)第五章运行结果 (9)第六章课程设计总结 (13)参考文献 (15)附录 (16)第一章系统描述系统说明本程序采用Visual C++ 6.0编译器编译。
系统运行之前需要保证在“c:\ C-design\”目录下有以下四个txt文件,名为:《jibenxinxi.txt》、《kucunxinxi.txt》、《buy.txt》、《sell.txt》系统的基本功能✧用户界面采用文本菜单界面,设有欢迎界面。
各级菜单层次分明,切换方便。
✧系统的功能可实现循环连续操作,直至用户选择返回或退出。
✧重要操作之前会有确认提示。
若输入不合法,有出错原因提示。
出错提示以及查询结果输出后可按任意键继续,以便用户有停顿时间来阅读。
✧系统采用四个文件分别保存以下信息:图书基本信息、库存信息、采购纪录、出售纪录。
✧实现图书基本信息的录入及保存。
信息录入时可限制编号不重复。
✧可查询文件中保存的图书基本信息。
输入书名(或编号、作者、价格)可调出符合的信息,也可全部显示。
其中按价格查询时,输入一个范围可将在范围内的信息都显示出来。
✧具有图书采购功能:输入要采购的图书编号能自动把该书的基本信息显示出来,输入采购数量能自动得出采购所需金额,确认采购后,显示购买成功。
执行完采购功能后可实现对库存信息的添加和修改,以及向文件中添加采购纪录。
可随时查询保存在文件中的采购纪录。
✧具有图书出售功能:输入要采购的图书编号能显示出该书信息及库存数量,输入出售数量能自动得出出售所得金额,确认出售后,显示出售成功。
执行完出售功能后可实现对库存信息的删除和修改,以及向文件中添加出售纪录。
可随时查询保存在文件中的出售纪录。
✧利润统计功能,可动态显示运行系统以来的采购总金额、销售总金额及总利润。
c语言课程设计图书管理系统一、教学目标本课程的教学目标是使学生掌握C语言编程的基本知识,能够运用C语言设计简单的图书管理系统。
具体目标如下:1.知识目标:•掌握C语言的基本语法和数据结构。
•理解图书管理系统的需求和设计原理。
2.技能目标:•能够使用C语言进行程序设计和调试。
•能够独立设计并实现图书管理系统的功能模块。
3.情感态度价值观目标:•培养学生的编程兴趣和自主学习能力。
•培养学生的团队协作能力和问题解决能力。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构以及图书管理系统的需求分析和设计。
具体内容如下:1.C语言的基本语法:•变量和数据类型•运算符和表达式•函数和数组2.数据结构:3.图书管理系统的需求分析和设计:•用户界面设计•图书信息管理•借阅信息管理•查询和统计功能三、教学方法本课程采用多种教学方法相结合的方式,以激发学生的学习兴趣和主动性。
具体方法如下:1.讲授法:通过讲解C语言的基本语法和数据结构,使学生掌握相关知识。
2.案例分析法:通过分析图书管理系统的需求和设计案例,使学生理解并能够独立设计类似的系统。
3.实验法:通过编写和调试代码,使学生掌握C语言编程的技巧和方法。
四、教学资源本课程所需的教学资源包括教材、参考书、多媒体资料和实验设备。
具体如下:1.教材:选用权威出版的C语言编程教材,为学生提供系统的学习资料。
2.参考书:提供相关的C语言编程参考书籍,供学生深入学习和参考。
3.多媒体资料:制作课件和教学视频,以图文并茂的方式呈现教学内容,增强学生的学习兴趣。
4.实验设备:提供计算机和相关的编程工具,为学生提供实践编程的机会。
五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分,以保证评估的客观性和公正性。
1.平时表现:通过课堂参与、提问和小组讨论等方式评估学生的学习态度和参与程度。
2.作业:布置适量的编程作业,评估学生的编程能力和对知识的掌握程度。
3.考试:进行期中和期末考试,评估学生的综合运用能力和对知识的全面掌握。
C语言课程设计图书管理系统Books Management System学生姓名张朝柱学院名称徐州工程学院学号20130566140班级13计转本专业名称计算机科学与技术指导教师李子龙2016年5月10日一、需求分析为了满足图书管理的要求,通过计算机技术给图书管理人员和读者借、还书带来便利。
使用c语言编写了图书管理系统。
本系统主要实现图书信息管理的功能,通过此系统可对图书馆库存图书信息进行管理和维护操作。
实现了图书馆内管理的一般功能,包括查询、借书、还书、添加、删除、修改图书信息等。
所设计的系统以菜单方式工作,为用户提供清晰的使用提示,依据用户的选择来进行各种处理,并且在此过程中能够尽可能的兼容用户使用过程中可能出现的异常情况。
图书信息包括编号、书名、作者、数量、在库状态等。
图书信息的录入和显示要求有一定的规范格式,录入的图书信息用文件形式保存,并可以对其进行浏览、查询、借阅、还书等基本操作。
整个程序实现顺序表操作,对图书信息的操作逐个地进行,一个图书信息的更改不应影响其他的图书记录。
二、算法设计:1.设计思想:整个系统制造的而过程中,涉及了较多C语言知识点,对于不同的数据类型、程序控制结构、数据结构作以分析和总结,并结合这个课题进行综合的应用,在一定程度上做到了对所学知识融会贯通。
进一步加深、巩固了所学的专业的基本理论知识,培养了综合分析问题、解决问题的能力。
在设计程序时,实现了程序的模块化、结构化。
在主函数中调用各种子函数,操作界面简单,易操作。
2,设计表示:(1)、整个系统除了主函数外,另外还有各种功能子函数,利用无限次循环语句while()和选择语句swithch()实现各个子函数的调用,系统根据输入的数字选项来调用相应的函数,以实现相应的功能。
主要实现了图书的录入、存储、查询、借书、还书、显示库存等功能。
(2)、void Book_Entering(struct SqList &SL);这是一个录入图书信息的函数,它主要实现了顺序表的创建,并且在创建过程中从文件读取信息到顺序表中,以用于后面其他函数的操作。
#include #include #include #include #include
typedef int BOOL; typedef struct bookinfo { char number[15];/*产品编号*/ char name[30];/*产品名称*/ float price;/*单价*/ char auther[20];/*作者*/ BOOL isExit;/*存在状态*/ char lendername[20];/*借书人姓名*/ char lendersex[2];/*借书人性别*/ char lendernum[15];/*借书人学号*/ }BOOKINFO;
void menu() { printf("\n\n\n\n\n\n\n"); printf("\t\t\t图书管理系统\n"); printf("\t\t\t1:新进图书基本信息的输入\n"); printf("\t\t\t2:显示全部记录\n"); printf("\t\t\t3:根据图书名称查询图书基本信息\n"); printf("\t\t\t4:根据图书名称对撤销的图书信息进行删除\n"); printf("\t\t\t5:按照图书名称从小大到排序\n"); printf("\t\t\t6:统计某价格以上的图书数量\n"); printf("\t\t\t7:列出所有未借出去的图书信息\n"); printf("\t\t\t8:退出\n"); } void choice_1_input_new()/*输入新进的图书信息*/ { char choice; FILE *p; BOOKINFO newbook;
system("cls"); while(1) { printf("输入图书编号:"); gets(newbook.number); printf("输入图书名称:"); gets(newbook.name);
printf("输入图书单价:"); scanf("%f",&newbook.price); while(getchar()!='\n');
printf("输入图书的作者:"); gets(newbook.auther);
printf("输入借书人姓名:"); gets(newbook.lendername);
printf("输入借书人性别:"); gets(newbook.lendersex);
printf("输入借书人学号:"); gets(newbook.lendernum);
printf("是否保存该条书目?(Y/N)\n"); choice=getch(); while(choice!='Y'&&choice!='y'&&choice!='N'&&choice!='n') choice=getch(); if(choice=='Y'||choice=='y') { newbook.isExit=1;/*将图书状态设置成1,表示没有借出*/
p=fopen("c:\\bookinfo.data","ab"); fwrite(&newbook,sizeof(BOOKINFO),1,p); fclose(p);
printf("\n该条书目已添加到c:\\bookinfo.data文件中!\n"); } else { printf("\n本条书目未保存!\n"); } printf("\n是否继续添加书目?(Y/N)\n"); choice=getch(); while(choice!='Y'&&choice!='y'&&choice!='N'&&choice!='n') choice=getch(); if(choice=='Y'||choice=='y') continue; else break; } } void choice_2_display_all()/*显示全部图书信息*/ { FILE *p; int n; BOOKINFO bookinfo[100]; int booknumber=0;
system("cls"); p=fopen("c:\\bookinfo.data","rb"); while(!feof(p)) { fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p); booknumber++; } /*booknumber--;使用feof()函数会多读一行,因此需要booknumber自减一次,使书目的数量正确*/ fclose(p); booknumber--; if(booknumber==0) { printf("没有任何图书信息!\n\n"); } else { n=0; printf(" 图书信息如下\n"); printf(" 图书信息 | 借书人信息 \n"); printf("编号 名称 单价 作者 图书状态 | 姓名 性别 学号\n"); while(n{ printf("%-6s%-12s%-8.1f%-8s%-9d| %-12s%-8s%-8s\n",
bookinfo[n].number,bookinfo[n].name,bookinfo[n].price, bookinfo[n].auther,bookinfo[n].isExit,bookinfo[n].lendername, bookinfo[n].lendersex,bookinfo[n].lendernum); n++; } } printf("\n\n按任意键回到主菜单!\n"); getch(); }
void choice_3_search_according_name()/*根据图书名称显示图书的信息*/ { char search[20]="";/*search用来存放要查询的书名*/ int n; FILE *p; char choice; BOOKINFO bookinfo[100]; int booknumber=0;
system("cls"); p=fopen("c:\\bookinfo.data","rb"); while(!feof(p)) { fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p); booknumber++; } booknumber--;/*使用feof()函数会多读一行,因此需要booknumber自减一次,使书目的数量正确*/ fclose(p); while(1) { printf("输入要查询的书本名称:"); gets(search); if(booknumber==0) { printf("书库中没有任何信息!\n\n"); printf("按任意键回到主菜单!\n\n"); getch(); break; }/*if结束*/ else { for(n=0;nif(strcmp(bookinfo[n].name,search)==0) { printf("该书的详细信息如下:\n"); printf(" 图书信息 | 借书人信息 \n"); printf("编号 名称 单价 作者 图书状态 | 姓名 性别 学号\n"); printf("%-6s%-12s%-8.1f%-8s%-9d| %-12s%-8s%-8s\n",
bookinfo[n].number,bookinfo[n].name,bookinfo[n].price, bookinfo[n].auther,bookinfo[n].isExit,bookinfo[n].lendername, bookinfo[n].lendersex,bookinfo[n].lendernum); break; } if(n>=booknumber) printf("没有查找该书的任何信息!\n"); printf("\n\n是否继续查询?(Y/N)\n"); choice=getch(); while(choice!='Y'&&choice!='y'&&choice!='N'&&choice!='n') choice=getch(); if(choice=='Y'||choice=='y') continue; else break; }/*else结束*/ }/*while(1)结束*/ } void choice_4_delete_according_name()/*根据图书名称对图书信息进行删除*/ { char search[20]="";/*search用来存放要删除的书名*/ int n,i; FILE *p; char choice; BOOKINFO bookinfo[100]; int booknumber;
system("cls"); while(1) { printf("输入要删除的书本名称:"); gets(search); p=fopen("c:\\bookinfo.data","rb"); booknumber=0; while(!feof(p)) { fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p); booknumber++; }