当前位置:首页 >> 其它考试 >> C语言课程设计--------图书信息管理系统报告

C语言课程设计--------图书信息管理系统报告


课 程 设 计 报 告
课程名称 课题名称 C 语言程序设计 图书信息管理系统

专 班 学 姓

业 级 号 名

机械电子
1101 班

指导教师

2012 年 12 月 19



湖南工程学院 课 程 设 计 任 务 书

课程名称 课 题

C 语言程序设计 图书信息管理系统

专业班级 学生姓名 学 号

指导老师 审 批

任务书下达日期 任务完成日期

2012

年 12 月 19 日

2012 年 12 月 29 日

一、设计内容与设计要求
1.

设计内容:图书信息管理系统设计

涉及的知识点:
①掌握并熟练运用 C 语言的基本数据类型与各种表达式,程序的流程控制语句; ②掌握数组的基本概念。熟练掌握一维数组、二维数组的应用、掌握字符数组 与字符串的关系以及字符串的简单处理。 ③掌握函数的定义,函数的返回值,函数的调用,函数的形式参数和实际参数之 间的关系;掌握变量的作用域与生存期,了解函数的作用域。 ④掌握结构体的概念,结构体类型的定义,结构体变量的定义和初始化,结构体 成员的表示,结构体变量的赋值含义,结构体与指针、函数的关系。 ⑤掌握文件、 文件类型指针的基本概念, 熟练掌握文件的打开与关闭以及文件的 建立、读写等有关操作。

2.设计要求:
1) 用 C 语言实现系统;利用结构体数组实现图书信息的数据结构设计;系统 的各个功能模块要求用函数的形式实现;应提供一个界面来调用各个功能, 调用界面和各个功能的操作界面应尽可能清晰美观。 2) 建立一个图书信息数据库,文件名为 book.txt,并从该文件中读取数据; 3) 图书信息管理系统应能提供以下功能: ①系统以菜单方式工作 ②图书信息显示功能;能以表格形式显示图书库中所有信息,且应有表头。 ③图书信息追加功能;追加一条(或多条)新记录,要求在追加过程中 有相应的提示信息,完成追加后能重新排序和显示; ④图书信息查询功能; a. 按书名查询;b. 按单价查询; c. 按出版单位查询; d. 按出版时间查询 e. 按分类号查询; f. 按入库时间查询 要求系统在上述查询方式中至少应有两种以上的查询方式,且能显示符 合条件的所有记录。 ⑤图书信息的删除;要求可按指定的图书编号和指定的图书书名两种定

位方式删除图书记录。 ⑥图书信息的修改; 要求能按指定的图书编号和按指定的图书书名两种定 位方式进行修改, 且可以按用户要求修改记录中除图书编号和书名以外的 指定内容,并重新显示; ⑦图书信息的统计: 能按指定的图书分类号或按指定的单价两种方式分别 进行统计,并将统计的结果以及被统计的图书信息用表格的形式显示; ⑧能按图书单价排序(降序) ⑨要求在删除模块、修改模块和查询模块中若找不到所需的记录时,系 统设计中应有一定的提示信息。

4) 说明: (1) 要求将修改后的数据写入到一个新的数据文件 newbook.txt 中。 (2) 对系统有兴趣的同学可以在实现基本要求的基础上, 完善系统的其它功能。

5) 图书信息管理系统采用一个结构体数组,图书信息包括:图书编号、分类 号、书名、作者名、出版单位、出版时间、入库时间、价格等,其数据库结 构如下: int int bh flh /*图书编号*/ /*分类号*/ /*书名*/ /*作者名*/ /*出版单位*/ /*出版时间*/ /*入库时间*/ /*单价*/

char sname[15] char zname[10] char cbdw[ 20]; char cbdate[8] char rkdate[8] double dj

注意:图书编号不能重复且不少于 4 位数字,各项字符串的长度要求在 4~ 10 之间,数据库应有 10 条或多于 10 条以上的记录。

6) 要求: ⑴ 要求每个学生必须独立思考,认真并按时完成本课程设计所包含的所有内容; ⑵ 要求学生必须按照课程设计报告的完整格式说明设计内容,设计任务分析过 程和算法,给出程序流程图和全部源程序; ⑶ 设计报告的完整格式应包括以下部分的内容: ①系统设计总体思路; ②系统的主要功能; ③系统功能模块的划分(要求画出总体模块框图) ; ④主要功能的实现和各个程序模块说明(每个功能模块的框图、系统主模块 的流程图,各个功能模块至少要有一个主要的流程图) ; ⑤程序调试过程及各模块调试中相应的部分截图; ⑥课程设计总结与体会(不少于 500 字) 。 ⑦课程设计参考文献; ⑧程序清单; ⑷ 课程设计周内,凡规定的集中上机时间必须到机房调试程序; (5) 设计完成后必须参加答辩,并按要求演示程序,提交课程设计报告和有关电 子文档。

7)分组及安排 所选题目根据学生班号和学号确定, (班号+学号)% 6+1。如你的班号为 01 班、学号为 01,则所选题目号为: (1+1)%6+1=3,即课题号为 3。

8)成绩评定 ①程序设计方案是否合理;②程序设计是否正确;③调试结果;④设计说 明书的质量高低;⑤答辩时回答问题情况;⑥课程设计周表现情况;总评 成绩记入“课程设计成绩评分表” 。

二、进度安排
第 16 周 星期四 第 17 周 星期一 星期二 星期三 星期四 14:00——17:00 8:00——12:00 8:00——12:00 19:00——22:00 8:00——12:00 讲课、布置任务 机房上机调试程序 机房上机调试程序 机房上机调试程序 机房上机调试程序、答辩

附:课程设计报告排版、打印和装订要求 1. 课程设计报告装订顺序:封面、任务书、目录、正文、附件、评分表。按 A4 大小的纸张排版和打印。 2. 设计报告的页码从目录之后开始使用; 3. 正文的格式:一级标题用 3 号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为 22 磅。 正文中程序清 单(英文)用英文字体 Times New Roman,单倍行间距。 4. 正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图) ;三、主要功能的实现(至 少要有一个主要模块的流程图) ;四、程序调试(各模块至少有一个程序调试的截图) ;五、总结(不少于 500 字) ; 六、参考文献;t、附件(包含所有程序的原代码,且程序中应有必要的注释) 。八.正文总字数要求在 5000 字以上 (不含程序原代码) 。 5.设计报告中任务书和评分表不需重新排版。





一.系统的主要思路 ..................................................... 2 二.系统的主要功能 ...................................................... 1 1.显示功能 ......................................................... 1 2.追加功能 ......................................................... 1 3.修改模块 ......................................................... 1 4.删除模块 ......................................................... 1 5.查询模块 ......................................................... 1 6.统计模块 ......................................................... 3 7.排序模块 ......................................................... 3 8.退出模块 ......................................................... 3 三.系统功能模块的划分 .................................................. 2 1.总体模块功能框图 ................................................. 2 四.总流程图 ............................................................ 2 1.总流程图 ......................................................... 2 2.八大模块的流程图 ................................................. 5 五.程序调试 .......................................................... 12 1.显示模块 ........................................................ 13 2.追加模块 ........................................................ 14 3.修改模块 ........................................................ 16 4.删除模块 ........................................................ 18 5.查询模块 ........................................................ 20 6.统计模块 ........................................................ 24 7.排序模块 ........................................................ 23 8.退出模块 ........................................................ 25 六.心得与体会 ........................................................ 26 七.参考文献 .......................................................... 26 八.附件 .............................................................. 27

一.系统的主要思路
此系统事用 C 语言实现一个图书馆信息管理系统;利用结构体数组实现图书 馆信息的数据结构;例如,删除图书信息、追加图书信息、修改图书信息、图书信息 的统计等等;系统的各个功能调用各个函数的形式实现;并提供一个界面来调用,各 个功能的操作。 首先我们要对系统操作就必须先创建一个数据库,用来存放各图书的信息, 如:图书编号、分类号、书名、作者名、出版单位、出版时间、入库时间、单价等。 并用读函数 fscanf 读取数据,然后才能进入主控程序。然后,运行该程序显示的为主 菜单界面,并且主菜单界面显示调用各个功能函数的功能键;通过提示用户,调用各 个功能操作。 按下相应的功能键, 就会进入相应的功能模块系统, 并进行相应的操作。 程序操作完并正常退出后,系统又会调用写函数 fprintf 将修改过的数据存入一个新的 文件。 图书馆信息管理系统存放了每种图书的图书编号、分类号、书名、作者名、 出版单位、出版时间、入库时间、单价的数据库。每本书的信息定义在一个结构体变 量中。其结构如下: 系统通过显示程序、追加程序、查询程序、删除程序、修改程序、排序程序来实 现图书馆信息管理系统的显示功能、追加功能、查询功能、删除功能、修改功能、排 序功能和统计功能。各个功能的调用通过主函数中的 switch 语句来实现。

二、系统的主要功能
1.显示模块 Disp()
通过设计此模块,来实现图书馆图书信息的显示。以便于浏览图书信息。

2.追加模块 Appe()
通过设计此模块,以便当加入新的图书信息的时候,来实现新图书信息的加入。

3.修改模块 Modi()
通过设计此模块,当要对某一信息进行修改时,可以通过此模块来进行修改。并且可 以按用户指定的信息进行修改。

4.删除模块 Dele()
通过设计此模块,可以按用户指定的图书编号和指定的图书书名进行图书记录的删 除。

5.查询模块 Query()

通过设计此模块,可以按图书编号和书名来查询图书库的所有的信息,并可以显示所 查询的图书信息。

6.统计模块 Total()
通过设计此模块,当输入所要统计的图书的单价或分类号时,可以按图书的单价和分 类号进行统计,并显示统计之后的图书总数。

7.排序模块 Sort()
通过设计此模块,来实现书籍库的信息按图书单价进行排序。

8.退出模块 Quit()
通过设计此模块,来实现退出系统主菜单。

三.系统功能模块的划分
1.总体模块功能框图
主函数

显 示 模 块

追 加 模 块

查 询 模 块

删 除 模 块

修 改 模 块

排 序 模 块

退 出 模 块

退出

四.总流程图
1.总流程图

进入

输出

Sele=?

Sele=1

Sele=2

Sele=3

Sele=4 删 除 模 块 查 询 模 块

Sele=5 统 计 模 块

Sele=6 排 序 模 块

追 加 模 块

修 改 模 块

显示模块

输出

退出程序

退出

2.八大模块的流程图
2.1 显示模块 Disp

开始

输入 1

显示模块

输出

退出

2.2 追加模块 Appe()

开始

输入 2

追加模块

输出追加几 个人的信息

显示模块

退出

2.3 修改模块 Modi()

开始

输入 3 修改模块

输入 n

n =? Sele=1 Sele=2

输入修改信息(图书编 号)

输入修改信息 (图书书 号)

输入 m

Sele=1 m=?

Sele=2 显示模块

退出

2.4 删除模块 Dele()

开始

输入 4

删除模块

输入删除信息

输入 1 或 2

Sele=1

n=?

Sele=2 退出

2.5 查询模块 Query()

开始

输入 5

查询模块

输入 n

Sele=3 n=? Sele=2

Sele=1

图书编号

图书书名

查询信息

输入 m

Sele=1 m=? Sele=2 退出

2.6 统计模块 Total()

开始

输入 6

统计模块

输入统计信 息

输出显示信


退出

2.7 排序模块 Sort()

开始

输入 7

排序模块

输入排序信息

输出排序信息

n=? Sele=1
Sele=2

退出

2.8 退出模块 Quit()

开始

输入 8

退出

五.程序调试
在 VC 的环境下,调试程序,进入图书馆管理菜单界面。

1.显示模块 Disp()
从菜单界面输入“1” ,进入显示模块,如下图所示。

显示的信息如上图所示,按任意键能退出。

2 . 追加模块 Appe()

输入你所要追加的个数,进行追加图书的信息

逐个追加信息如上图所示,根据提示,进行完成追加。 若选择 1,则继续追加;若选择 2,则退出此模块,并进入显示模块如下图示。

3.

修改模块 Modi()

在主菜单界面上,输入数字 3,进入修改模块

若输入数字 1,则按图书编号修改,如上图

修改后结果如上 修改完后,按任意键能退出此模块,并显示主菜单。

4.删除模块 Dele()
在主界面上输入数字 4,进入删除模块

选择 1,按图书编号删除,如上图所示。

删除后的结果如下。

按任意键退出,返回主界面。

5.

查询模块 Query()
在主界面上输入数字 5,进入查询模块

输入 1,则进行查询,否则,退出系统。

若输入 1,则按图书编号查询,查询结果如下图所示

若输入 2,则按书名进行查询,输入对应的书名,结果如图所示

若输入 1,则继续进行查询

若输入 2,则退出此模块,并返回主界面

6.

统计模块 Tottal()

在主界面上输入数字 6,进入统计模块

若输入数字 1,则按单价进行统计

若输入数字 2,则按分类号进行统计

7.排序模块 Sort()
在主界面上输入数字 7,进入排序模块

若输入数字 1,则按单价升序排序,结果结果如图所示

若输入数字 2,则按单价降序进行排序,结果如图所示

8.

退出模块 Quit()

在主界面上输入数字 8,进入退出系统模块,完成此次查询。

六.心得与体会
一周的 C 语言课程设计结束了,对我来说收获颇多,但同时也体会到了,C 语言 的博大精深,自己现在所涉猎的还很少。 我们都知道,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世 纪的大学来说掌握计算机开发技术是十分重要的。 在刚刚开始进行课程设计是,我们大部分都无处下手,但随着思路的慢慢清晰, 我们逐渐找到了感觉。从拿到课题到完成整个编程,虽然是短短一周的日子里,但我 们学到了很多很多的东西,同时巩固了以前所学过的知识和发现了以前的知识漏洞。 我这次的课题是图书馆管理系统,图书馆管理系统是我们平时学习时用得到的。 我认为课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够 的。同时我也体会到了把理论知识运用到实际所带来的乐趣。 在课程设计一开始, 肖老师给了我们一个框架, 这样我们就有了一个整体的思路, 我想,如果没那一个框架,我们很难完成这个图书馆管理系统。 通过这次课程设计,我体会到了,只有不断思考,从不同角度去思考一问题,我 们会有很多个最优解。 一周的时间很快就过去了,但 C 语言的学习并没有停止,这这是 C 语言学习过程 中的冰山一角。不过,这次让我领悟许多。最后,我想说,感谢各位老师的热情指导, 有了你们的指导,我收获颇多。

七.参考文献:
[1] 贾宗璞,许合利,C 语言程序设计,人民邮电出版社,2012.1 [2] 黄晓宇, 肖伟平, 丁敬忠, 陈志斌, 大学计算机基础, 北京邮电大学出版社, 2010.8 [3] 谭浩强,C 程序设计(第五版) ,北京:清华大学出版社,2011.1

八.附件:
#include "stdio.h" #include"stdlib.h" #include "string.h" #include "conio.h" int N=0; struct stu { int bh; int flh; char sname[10]; char zname[10]; char cbdw[ 12]; char cbdate[8]; char rkdate[8]; double dj; }s[40]; void Re_file() { FILE *fp; fp=fopen("book.txt","r"); while( fscanf(fp,"%d\n%d\n%s\n%s\n%s\n%s\n%s\n%lf\n",&s[N].bh,&s[N].flh,s[N].snam e,s[N].zname,s[N].cbdw,s[N].cbdate,s[N].rkdate,&s[N].dj)!=EOF) N++; fclose(fp);} void Wr_file() {int i; FILE *fp; fp=fopen("newbook.txt","w"); for(i=0;i<N;i++) fprintf(fp,"%d\n%d\n%s\n%s\n%s\n%s\n%s\n%lf\n",s[i].bh,s[i].flh,s[i].sname,s[i].zname,s[ i].cbdw,s[i].cbdate,s[i].rkdate,s[i].dj); fclose(fp); }

/*图书编号*/ /*分类号*/ /*书名*/ /*作者名*/ /*出版单位*/ /*出版时间*/ /*入库时间*/ /*单价*/

void Disp() /*显示模块*/ { int i; system("cls"); printf("--------------------------------------------------------------------------------"); printf(" 图书馆信息管理系统 ");

printf("******************************************************************* *************"); printf("图书编号 分类号 书号 作者名 出版单位 出版时间 入 库时间 单价 \n"); for(i=0;i<N;i++) printf("%-8d %-6d %-11s %-8s %-13s %-8s %-9s %-7lf\n",s[i].bh,s[i].flh,s[i].sname,s[i]. zname,s[i].cbdw,s[i].cbdate,s[i].rkdate,s[i].dj); printf("******************************************************************* *************"); printf("--------------------------------------------------------------------------------\n"); } void Appe() /*追加模块*/ { int i,j,k; system("cls"); printf("***********************************************\n"); printf("* *\n"); printf("* 请问您要追加几条信息 ? *\n"); printf("* *\n"); printf("**********************************************\n"); printf("请您输入要追加几条信息的数字:"); scanf("%d",&j); for(i=1;i<=j;i++) { printf("您添加的图书编号为:"); scanf("%d",&s[N].bh); printf("您添加的分类号:"); scanf("%d",&s[N].flh); printf("您添加的书名为:"); scanf("%s",s[N].sname); printf("您添加的作者名为:"); scanf("%s",s[N].zname); printf("您添加的出版单位为:"); scanf("%s",s[N].cbdw); printf("您添加的出版时间为:"); scanf("%s",s[N].cbdate); printf("您添加的入库时间为:"); scanf("%s",s[N].rkdate); printf("您添加的单价为:"); scanf("%lf",&s[N].dj); N++; }

printf("请问您是否还要追加?\n"); printf("************************************\n"); printf("* 继续请按 1 否则请按 2 *\n"); printf("************************************\n"); scanf("%d",&k); switch(k) { case 1:Appe();break; case 2: ;break; } } void Modi() /*修改模块*/ { system("cls"); int i,j,k,n,m,x,y,z;double y1; char sm[50],ch[20]; printf("*****************************************************\n"); printf("* *\n"); printf("* *(1)按图书编号修改*(2)按图书书名修改* *\n"); printf("* printf("*****************************************************\n"); printf("请您选择 1 或 2,进入编号修改或书名修改\n"); scanf("%d",&m); if(m==1) {

*\n");

printf("******************************************************\n"); printf("* *\n"); printf("* 请输入您所要修改的图书编号 *\n"); printf("* *\n"); printf("******************************************************\n"); scanf("%d",&n); for(i=0;i<N;i++); { if(n==s[i].bh) {printf("****************************************************************** **************"); printf("图书编号 分类号 书名 作者名 出版单位 出版时间 入库 时间 单价 \n"); printf("%-8d %-6d %-11s %-8s %-13s %-8s %-9s %-7lf\n",s[i].bh,s[i].flh,s[i].sname,s[i].zn ame,s[i].cbdw,s[i].cbdate,s[i].rkdate,s[i].dj);

printf("******************************************************************* *************"); printf("\n"); k=1;j=i; } } } else if(m==2) { printf("****************************************************\n"); printf("* *\n"); printf("* 请输入您所要修改的图书书名 *\n"); printf("* *\n"); printf("****************************************************\n"); scanf("%s",sm); for(i=0;i<N;i++) { if(!strcmp(sm,s[i].sname)) { printf("************************************************************** ******************"); printf("图书编号 分类号 书号 作者名 出版单 位 出版时间 入库时间 单价 \n"); printf("%-8d%-6d%-11s%-8s%-13s%-8s%-9s%-7lf\n",s[i].bh,s[i].flh,s[i].sname,s[i].zname, s[i].cbdw,s[i].cbdate,s[i].rkdate,s[i].dj); printf("******************************************************************* *************"); printf("\n"); k=1;j=i; } } } if (k==1) { printf("**************************************\n"); printf("* ********************************** *\n"); printf("* * * *\n");

printf("* * 1.图书编号 2.分类号 * *\n"); printf("* * * *\n"); printf("* * 3.图书书号 4.作者名 * *\n"); printf("* * * *\n"); printf("* * 5.出版单位 6.出版时间 * *\n"); printf("* * * *\n"); printf("* * 7.入库时间 8.单价 * *\n"); printf("* * * *\n"); printf("* ********************************** *\n"); printf("**************************************\n"); printf("请输入您的选择进行继续修改:"); scanf("%d",&x); switch(x) { case 1:printf(" 输 入 您 的 图 书 编 号:");scanf("%d",&y);s[j].bh=y;break; case 2:printf("输入您的分类号:");scanf("%d",&y);s[j].flh=y;break; case 3:printf(" 输 入 您 的 图 书 书 号:");scanf("%s",ch);strcpy(s[j].sname,ch);break; case 4:printf(" 输 入 您 的 作 者 名:");scanf("%s",ch);strcpy(s[j].zname,ch);break; case 5:printf(" 输 入 您 的 出 版 单 位:");scanf("%s",ch);strcpy(s[j].cbdw,ch);break; case 6:printf(" 输 入 您 的 出 版 时 间:");scanf("%s",ch);strcpy(s[j].cbdate,ch);break; case 7:printf(" 输 入 您 的 入 库 时 间:");scanf("%s",ch);strcpy(s[j].rkdate,ch);break; case 8:printf(" 输 入 您 的 单 价:");scanf("%lf",&y1);s[j].dj=y1;break; default:printf("无此选项!\n");break; } } else { printf("*********************************************\n"); printf("**** ****\n"); printf("** 您的输入有错误,没有您所要的信息 **\n"); printf("**** ****\n"); printf("*********************************************\n"); } printf("请问还要继续修改吗?\n"); printf(" 1.是 2.否 \n");

printf("请您选择:\n"); scanf("%d",&z); switch(z) { case 1:Modi();break; case 2: ;break; } } void Dele() /*删除模块*/ { system("cls"); int m,n,k=0,j,i,t; char sh[10]; printf("************************************************************\n"); printf("* *\n"); printf("* (1)按图书编号删除*(2)按图书书名删除* *\n"); printf("* *\n"); printf("************************************************************\n"); printf("请您选择 1 或 2:"); scanf("%d",&m); if(m==1) { printf("********************************************\n"); printf("* *\n"); printf("* 请输入要删除的图书编号 *\n"); printf("* *\n"); printf("********************************************\n"); scanf("%d",&n); for(i=0;i<N;i++) if(n==s[i].bh ) { k=1;j=i;} } else if(m==2) { printf("********************************************\n"); printf("* *\n"); printf("* 请输入要删除的图书书名号 *\n"); printf("* *\n"); printf("********************************************\n");

scanf("%s",sh); for(i=0;i<N;i++) if(!strcmp(s[i].sname,sh)) {k=1;j=i;} } if(k==1) { for(i=j;i<N;i++) s[i]=s[i+1]; N--; } else { printf("*******************************************\n"); printf("* *\n"); printf("* 没找到您所要删除的信息 *\n"); printf("* *\n"); printf("*******************************************\n"); } {printf("***********************************\n"); printf("* 是否要继续 *\n"); printf("* 1.是 2.否 *\n"); printf("***********************************\n"); } scanf("%d",&t); if(t==1) Dele(); else if(t!=1&&t!=2) { printf("*******************************************\n"); printf("* *\n"); printf("* 你的输入有误! *\n"); printf("* *\n"); printf("*******************************************\n"); } } void Query() /*查询模块*/ { system("cls"); int i,m,j,d; char c[10]; printf("***********************\n"); printf("* *\n"); printf("* 欢迎进入查询模块 *\n"); printf("* *\n");

printf("***********************\n"); for(i=0;;i++) { printf("*********************\n"); printf("* 1.查询 *\n"); printf("* 2.退出 *\n"); printf("*********************\n"); scanf("%d",&m); if(m!=1&&m!=2) { printf("*-*-*-*-*-*-*-*-*-*-*\n"); printf("*无此选项/请重新输入*\n"); printf("*-*-*-*-*-*-*-*-*-*-*\n"); continue; } else if(m==2) break; else { printf("************************\n"); printf("* 按什么方式查询 *\n"); printf("* 1.图书编号 *\n"); printf("* 2.书名 *\n"); printf("* 3.返回上级 *\n"); printf("************************\n"); scanf("%d",&j); if(j!=1&&j!=2&&j!=3) { printf("**************************\n"); printf("* 查询方式有误! *\n"); printf("**************************\n"); } switch(j) { case 3: break; case 2: printf("输入书名:"); scanf("%s",c); for(i=0;i<N;i++) if(strcmp(c,s[i].sname)==0) {printf("****************************************************************** **************"); printf("图书编号 分类号 书号 作者名 出

版单位

出版时间

入库时间

单价

\n");

printf("%-8d %-6d %-11s %-8s %-13s %-8s %-9s %-7lf\n",s[i].bh,s[i].flh,s[i].sname,s[i]. zname,s[i].cbdw,s[i].cbdate,s[i].rkdate,s[i].dj); printf("******************************************************************* *************"); break; } if(i==N) { printf("*-*-*-*-*-*-*-*-*\n"); printf("*图书库无此图书!*\n"); printf("*-*-*-*-*-*-*-*-*\n"); } break; case 1:printf("输入图书编号:\n"); scanf("%d",&d); for(i=0;i<N;i++) if(d==s[i].bh) {printf("****************************************************************** **************"); printf("图书编号 分类号 书号 作者名 出版 单位 出版时间 入库时间 单价 \n"); printf("%-8d %-6d %-11s %-8s %-13s %-8s %-9s %-7lf\n",s[i].bh,s[i].flh,s[i].sname,s[i]. zname,s[i].cbdw,s[i].cbdate,s[i].rkdate,s[i].dj); printf("******************************************************************* ************"); break; } if(i==N) { printf("*-*-*-*-*-*-*-*-*\n"); printf("*图书库无此图书!*\n"); printf("*-*-*-*-*-*-*-*-*\n"); } break; } } } }

void Total() /*统计模块*/ { system("cls"); int x,i,n,j=0;double d;

printf("你可以选择的统计方式\n"); printf("1.按单价进行统计 2.按分类号进行统计\n"); scanf("%d",&x); switch(x) { case 1: printf("输入你想要统计的图书单价为:"); scanf("%lf",&d); printf("******************************************************************* *************"); printf(" 图 书 编 号 分 类 号 书 号 作者名 出版单位 出版时间 入库时间 单价 "); printf("******************************************************************* *************"); for(i=0;i<N;i++) { if(d==s[i].dj) { printf("%-8d %-6d %-11s %-8s %-13s %-8s %-9s %-7lf\n",s[i].bh,s[i].flh,s[i].sname,s[i]. zname,s[i].cbdw,s[i].cbdate,s[i].rkdate,s[i].dj); j++; } } printf("******************************************************************* *************"); printf("图书单价为%lf 的书本数为:%d 个",d,j); break; case 2: printf("输入你想要统计分类号为:"); scanf("%d",&n); printf("******************************************************************* *************");

printf(" 图 书 编 号 分 类 号 书 号 出版时间 入库时间 单价 \n");

作者名

出版单位

printf("******************************************************************* *************"); for(i=0;i<N;i++) { if(n==s[i].flh) { printf("%-8d %-6d%-11s %-8s%-13s %-8s %-9s %-7lf\n",s[i].bh,s[i].flh,s[i].sname,s[i].z name,s[i].cbdw,s[i].cbdate,s[i].rkdate,s[i].dj); j++; } } printf("******************************************************************* *************"); printf("图书本数为%d 个",j); break; default : printf("您的输入有误!"); } } void { Sort() /*排序模块*/ system("cls"); int i,j,f,k; printf("***********************\n"); printf("* *\n"); printf("* 欢迎进入排序模块 *\n"); printf("* *\n"); printf("***********************\n"); printf("************************\n"); printf("* 按什么方式排序 *\n"); printf("* 1.单价升序 *\n"); printf("* 2.单价降序 *\n"); printf("************************\n"); scanf("%d",&k); if(k!=1&&k!=2) { printf("**************************\n");

printf("* 排序方式有误! *\n"); printf("**************************\n"); } else switch(k) { case 1:for(j=1;j<=N-1;j++) for(i=0;i<=N-1-j;i++) if(s[i].dj>=s[i+1].dj) { struct stu k; k=s[i]; s[i]=s[i+1]; s[i+1]=k; }Disp(); printf("*******************\n"); printf("*请问需要继续排序?*\n"); printf("* 1.是 2.否 *\n"); printf("*******************\n"); scanf("%d",&f); if(f!=1&&f!=2) { printf("*********************\n"); printf("* 输入错误! *\n"); printf("*********************\n"); } switch(f) {case 1:Sort();break; case 2: ;break; } case 2:for(j=1;j<=N-1;j++) for(i=0;i<=N-1-j;i++) if(s[i].dj<=s[i+1].dj) { struct stu k; k=s[i]; s[i]=s[i+1]; s[i+1]=k; }Disp(); printf("*******************\n"); printf("*请问需要继续排序?*\n"); printf("* 1.是 2.否 *\n"); printf("*******************\n"); scanf("%d",&f); if(f!=1&&f!=2)

{ printf("*********************\n"); printf("* 输入错误! *\n"); printf("*********************\n"); } switch(f) {case 1:Sort();break; case 2: ;break; } } } void Quit() { printf(" } void main() { int sele; Re_file(); sele=1; while(sele) { system("cls"); printf("\n\n"); printf(" #欢迎进入图书馆管理系统# \n"); printf(" ****************************\n"); printf(" * *\n"); printf(" * 1:显示 2:追加 *\n"); printf(" * *\n"); printf(" * 3:修改 4:删除 *\n"); printf(" * *\n"); printf(" * 5:查询 6:统计 *\n"); printf(" * *\n"); printf(" * 7.排序 8.退出 *\n"); printf(" * *\n"); printf(" ****************************\n"); printf("\n\nInput your selection: "); scanf("%d",&sele); switch(sele) { case 1:Disp();break; case 2:Appe();Disp();break; case 3:Modi();Disp();break; case 4:Dele();Disp();break; /*退出*/ ****** Thank you bye

****** \n");

case 5:Query();break; case 6:Total();break; case 7:Sort();Disp(); break; case 8:Quit(); sele=0;break; } printf("\n\nPress any key to continue\n"); getch(); } Wr_file(); }

计算机与通信学院课程设计评分表

课题名称: 学生信息管理系统
项 目 评 价

设计方案的合理性与创造性 设计与调试结果 设计说明书的质量 答辩陈述与回答问题情况 课程设计周表现情况 综合成绩

教师签名: 日 期:

(注:1.此页附在课程设计报告之后;2.综合成绩按优、良、中、及格和不及格五级评定。 )


更多相关文档:

C语言课程设计---图书信息管理系统报告

C语言课程设计---图书信息管理系统报告 隐藏>> 课程设计报告 课程名称 课题名称 C 语言程序设计 图书信息管理系统 专班学姓 业级号名 机械电子 1101 班 指导教...

C语言课程设计报告—图书信息管理系统

C 语言课程设计报告 图书信息管理系统设计 C 语言程序设计编程实践是学习 C 语言程序设计的一重要环节,上机实习和课程设计是 提高同学们程序设计能力的有效途径,能够...

C语言课程设计报告—图书信息管理系统

C 语言课程设计报告图书信息管理系统设计 55071-13 陈杰 20071001797 指导老师:刘文中 C 语言程序设计编程实践是学习 C 语言程序设计的一重要环节,上机实习和课程...

C语言课程设计报告—图书信息管理系统

C 语言课程设计报告 图书信息管理系统设计 C 语言程序设计 编程实践是学习 C 语言程序设计的一重要环节,上机实习和课程设计是 提高同学们程序设计能力的有效途径,...

图书信息管理系统——C语言课程设计报告(1)

图书信息管理系统——C语言课程设计报告(1)_计算机软件及应用_IT/计算机_专业资料。课程设计报告 课程名称 课题名称 C 语言程序设计 图书信息管理系统 专班学姓 ...

C语言课程设计图书管理系统

C语言课程设计图书管理系统_理学_高等教育_教育专区 暂无评价|0人阅读|0次下载|举报文档 C语言课程设计图书管理系统_理学_高等教育_教育专区。本文档只作为参考,...

《C语言程序设计》课程设计报告(图书信息管理系统)

C语言程序设计》课程设计报告(图书信息管理系统)_工学_高等教育_教育专区。1、图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。 2、...

C语言课程设计报告-图书管理系统

28页 2财富值 C语言图书管理系统课程设计... 15页 免费如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见建议,请点击此处进行反馈。 ...

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

C语言图书管理系统课程设计报告[1]_管理学_高等教育_教育专区。第三章 图书管理系统的设计与实现 3.1 系统的需求分析图书登记管理系统作为一个应用软件将为学校的...

图书信息管理系统设计—C语言课程设计

C 语言课程设计报告 图书信息管理系统设计 一、 【要求】图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。设计 一图书信息管理系统,使之...
更多相关标签:
网站地图

文档资料共享网 nexoncn.com copyright ©right 2010-2020。
文档资料共享网内容来自网络,如有侵犯请联系客服。email:zhit325@126.com