推荐-C语言程序设计实践课程报告 精品

  • 格式:doc
  • 大小:839.00 KB
  • 文档页数:24

课 程 报 告

课 程 名 称: 程序设计实践

专 业 班 级 : 计算机科学与技术1205班

学 生 姓 名 : 雷原康

学 号 : 20XX16010522

任 课 教 师 : 陈卫东

学 期 :20XX-20XX学年第二学期

课程报告任务书

目 图书信息管理系统

主要

内容 开发一个图书信息管理系统,图书信息包括:图书编号、书名、作者、出版社、类别、出版时间、价格等基本信息(也可以根据自己情况进行扩充,比如是否借出、库存量等)。使之能提供以下基本功能:

(1)图书信息录入功能(图书信息用文件保存)--输入

(2)图书信息浏览功能--输出

(3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式):

①按书名查询 ②按作者名查询 ③ 按照价钱排序 ④按出版时间排序等等

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

扩展功能:可以按照自己的程度进行扩展。比如(1)简单的权限处理 (2)报表打印功能(3)甚至根据自己情况,可以加上学生信息,并扩充为图书借阅系统。(4)模糊查询 (5)综合查询 (6)统计功能 比如统计处某一类别的图书信息 或 筛选出小于指定数量库存的图书信息等等,总之,可以根据自己需求进行分析功能。

任务

要求

一、提交材料应包括:(1)系统源代码 (2)课程报告

二、整个设计过程具体要求

(1)需求分析 要求学生对案例系统进行分析,设计出需要完成的功能,完善各个模块的调用关系;

(2)设计过程 要求学生进一步明确各模块调用关系,进一步完善模块函数细节(函数名、参数、返回值等)

(3)实现过程 要求学生养成良好的编码习惯、完成各个模块并进行测试,最终完成系统整体测试;

(4)总结阶段 按照要求完成系统设计和实现报告,并进行总结、答辩。

成绩

评定 报告撰写情况(30分) 系统完成情况(30分) 答辩情况(40分)

总分 内容

20分 规范程度

5分 程序测试

5分 基本功能20分 扩展功能10分 自述情况10分 答辩情况

30分

成绩评定教师:

1.需求分析

经过大一上学期的理论学习,在基础实验的基础上,本学期我们继续开设了C语言程序设计实践课。课程要求我们对已经学习的基础实验进行整合与衔接处理,并最终形成一个系统性质的规模较大的程序。

本次课程设计要求我们达到能独立完成一个图书管理系统,完成后要求实现的功能有对图书信息的录入、删除、修改,浏览(即输出), 按某种方式查询(要求至少一种查询方式),按某种方式排序(要求至少一种排序方式)。当然,我们可以根据自己的能力对系统进行完善性的拓展,例如自己加入简单的权限处理,统计功能,模糊查询等,甚至可以拓展为图书借阅系统。

通过整个程序的开发过程,最终使我们掌握利用计算机解决实际问题的基本方法,熟悉C语言开发的全过程,提高综合应用C语言的能力、编程和调试能力,为学习计算机后续课程打好专业基础。

2.概要设计

1.系统采用的是结构数组数据系统,用于实现图书信息的存放,修改,排序等功能。

用二进制文件保存已写入的信息。

2.模块划分:

① void AddNewbook图书信息录入系统

② void Rprint图书信息浏览系统

③ void Querybook图书信息查询系统:void numnode1-书籍编号查找 .2-书名void namenode查找.3-void writer作者查找.4-void press出版社查找.5-void fuzzy模糊查找.

④ void paixu 图书信息排序系统:1-价格排序2-时间排序

⑤ Voide xiugai图书信息修改系统

⑥ Void shanchu图书信息删除系统

7 图书信息统计系统:1-void sorttongji书籍类别统计.2-void kuno库存低于标准统计

3.程序框架

① 进行录入图书信息

② 录入后进行浏览系统

③ 然后根据需要分别进行查询,排序,修改,删除,统计功能

3.详细设计:

1.定义图书结构:

typedef struct book{

long num;//书的序号

char name[MAX];//书名

char time[MAX];//出版时间

char writer[MAX];

double price;

char press[MAX];//出版社

char sort[MAX];

int kucun;//库存量

}book;

2.图书录入系统:

void AddNewbook(FILE *fp){//*添加书籍

system("cls");

int a;

if((fp=fopen("图书信息.txt","a+"))==NULL){

printf("不能打开图书信息管理系统!\n");

exit(0);

}

book newbook;

printf("(-1代表结束)");

while(a!=-1){

printf("输入书籍编号:");

scanf("%ld",&newbook.num);

printf("输入书名:");

scanf("%s",);

printf("输入出版时间:");

scanf("%s",newbook.time);

printf("输入作者:");

scanf("%s",newbook.writer);

printf("输入价格:");

scanf("%lf",&newbook.price);

printf("输入出版社:");

scanf("%s",newbook.press);

printf("输入书籍种类:");

scanf("%s",newbook.sort);

printf("输入库存量:");

scanf("%d",&newbook.kucun);

fwrite(&newbook,size,1,fp);

scanf("%d",&a);}

fclose(fp);

}

3.图书浏览系统

void Rprint(FILE *fp){//图书信息浏览

system("cls");

if((fp=fopen("图书信息.txt","r+"))==NULL){

printf("不能打开图书信息管理系统!\n");

exit(0);}

book log;

printf("书籍编号 书名 出版时间 作者 价格 出版社 种类 库存量 \n");

while(!feof(fp)){

fread(&log,sizeof(book),1,fp);

printf("%8ld %s %6s %10s %.2lf %s %s %d \n", log.num,,log.time,log.writer,log.price,log.press ,log.sort,log.kucun); }

4.图书查询系统

一.按编号查找

void numnode(FILE *fp){

if((fp=fopen("图书信息.txt","r"))==NULL){

printf("不能打开图书信息管理系统!\n");

exit(0);

}

long num;

int i=0;

book chaxun;

printf("Enter num:");

scanf("%ld",&num);

while(!feof(fp)){

fread(&chaxun,size,1,fp);

if(num==chaxun.num){

printf("%ld\t%s\t%s\t%s\t",

chaxun.num,,chaxun.time,chaxun.writer);

printf("%.2lf\t%s\t%d\n",

chaxun.price,chaxun.sort,chaxun.kucun);

i=1;

}

}

if(i!=1)

printf("对不起,没有你想要查找的书籍。\n");

fclose(fp);

}

二.按书名查找

void namenode(FILE *fp){

if((fp=fopen("图书信息.txt","r"))==NULL){

printf("不能打开图书信息管理系统!\n");

exit(0);

}

int i=0;

char name[MAX];

book chaxun;

printf("Enter name:");

scanf("%s",name);

while(!feof(fp)){

fread(&chaxun,size,1,fp);

if(strcmp(name,)==0){

printf("%ld\t%s\t%s\t%s\t%.2lf\t%s\t%d\n",

chaxun.num,,chaxun.time,chaxun.writer,

chaxun.price,chaxun.sort,chaxun.kucun);

i=1;

}

}

if(i!=1)

printf("对不起,没有你想要查找的书籍。\n");

fclose(fp);

}

三.按作者名查找

void writernode(FILE *fp){

if((fp=fopen("图书信息.txt","r"))==NULL){

printf("不能打开图书信息管理系统!\n");

exit(0);

}

int i=0;

char writer[MAX];

book chaxun;

printf("Enter writer:");

scanf("%s",writer);

while(!feof(fp)){

fread(&chaxun,size,1,fp);

if(strcmp(writer,chaxun.writer)==0){