C语言课程设计教材管理系统.docx

上传人:b****4 文档编号:6085554 上传时间:2023-05-09 格式:DOCX 页数:14 大小:109.70KB
下载 相关 举报
C语言课程设计教材管理系统.docx_第1页
第1页 / 共14页
C语言课程设计教材管理系统.docx_第2页
第2页 / 共14页
C语言课程设计教材管理系统.docx_第3页
第3页 / 共14页
C语言课程设计教材管理系统.docx_第4页
第4页 / 共14页
C语言课程设计教材管理系统.docx_第5页
第5页 / 共14页
C语言课程设计教材管理系统.docx_第6页
第6页 / 共14页
C语言课程设计教材管理系统.docx_第7页
第7页 / 共14页
C语言课程设计教材管理系统.docx_第8页
第8页 / 共14页
C语言课程设计教材管理系统.docx_第9页
第9页 / 共14页
C语言课程设计教材管理系统.docx_第10页
第10页 / 共14页
C语言课程设计教材管理系统.docx_第11页
第11页 / 共14页
C语言课程设计教材管理系统.docx_第12页
第12页 / 共14页
C语言课程设计教材管理系统.docx_第13页
第13页 / 共14页
C语言课程设计教材管理系统.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言课程设计教材管理系统.docx

《C语言课程设计教材管理系统.docx》由会员分享,可在线阅读,更多相关《C语言课程设计教材管理系统.docx(14页珍藏版)》请在冰点文库上搜索。

C语言课程设计教材管理系统.docx

C语言课程设计教材管理系统

沈阳航空航天大学

课程设计

学号__*************_

班级___94070202_____

姓名___于涛____

指导教师__徐晗______

2010年10月08日

 

 

一、需求分析

经过对程序设计题目的分析可知,整个程序的设计实现大致分为五个模块,其中每一个模块对应一个函数,他们的功能分别是:

录入新教材信息,添加已有教材,查找教材信息,保存教材函数。

在这些函数当中,前三个函数的实现严格按照题目的要求,而最后一个函数用来将修改的函数保存在book.txt中。

1.稳定性分析

指系统比较健壮,只要是用户的合理操作,系统都应给出合理正确的回应,而不是出现令用户感到意外的系统错误或系统崩溃。

2.主要功能分析

(1)录入教材信息:

允许用户输入教材名称、作者、出版社、教材册数、编号、售价。

(2)查询教材:

允许按照编号和书名对教材的各项信息进行查询;

(3)添加已有教材:

通过添加已有教材的同时对教材信息的更改;

(4)保存教材函数将执行插入教材信息存入book.txt中。

除上面介绍的功能之外,程序还具有退出功能,可以在输入修改信息之后实现选择退出。

每一本教材记录都包含编号、作者、出版社、售价、书名和数量,在程序当中,将教材记录类型定义为结构体类型,添加以及追加的教材信息直接写入book.txt文件中,其他函数每次对教材记录的访问,其数据来源都是book.txt文件,这样做不但可以保证教材数据的一致性,而且可以对教材数据进行保存,保证每次运行程序都可以采用原来的数据。

二、设计分析

主要有5个功能模块,每个模块对应一个C语言自定义函数。

这些函数原型及其功能简述如下:

1、教材录入函数说明

这个函数用static声明局部变量,使函数调用结束后不消失而保留原值。

用只写的方式打开一个文件夹(book.txt)把数据项写入指定文件(book.txt)中。

关闭文件。

2、教材查询的函数

该函数的核心内容是switch函数的使用、for函数的嵌套使用与strcmp比较字符串函数的使用。

3、已有教材添加函数

该函数的核心内容是if函数嵌套和for函数的使用以及strcmp比较字符串函数的使用

4、教材信息保存函数

这个函数先建立一个文件并把具体的信息存入文件中

1、程序总体结构图

程序结构总图

设置界面函数

新教材信息的录入

教材信息的保存

教材信息的查询

教材信息的更改

2、具体功能框图

(1)录入新教材信息函数

(2)查询教材信息

(3)添加已有教材信息

(4)保存教材信息函数

三、主要界面截图

图1程序主界面

图2录入界面

图3查询界面

四、技术要点

(对本程序贡献较大的C语言知识点;重要算法的设计与实现)

1、结构体的应用

定义了结构体用来描述教材的名称、作者、出版社、编号、册数和售价,具体的定义如下:

#defineB1000

typedefstructBook

{charnum[20];

charname[20];

charauthor[20];

charpress[20];

intcount;

floatshoujia;

}book[B];

structBookbooks[B];

所定义的结构体主要用于定义数组。

2、文件操作

包括了文件的写入、读取和保存三个方面。

例如如下程序段用于保存教材信息:

voidsave()

{

inti=0;

FILE*fp;

fp=fopen("e:

\\book.txt","wr");

while(books[i].count>0)

{

fprintf(fp,"教材名称:

%s教材作者:

%s出版社:

%s册数:

%d编号:

%s售价:

%f\n",books[i].name,books[i].author,books[i].press,books[i].count,books[i].num,books[i].shoujia);

i++;

}

fclose(fp);

}

3、关于查询函数

实现从系统中查询某教材的相关信息的查询函数稍微复杂一些,需要先进行选择是通过名称查询还是编号查询。

如下是通过教材名称查询的函数:

voidchaxun()/*教材查询*/

{FILE*fp;

inti,flag=0;

inta;

charx[32];

chary[32];

if((fp=fopen("e:

\\book.txt","r"))==NULL)

{

printf("此文件无法打开!

\n");

return;

}

printf("请选择查询方式:

1.教材名2.编号\n");

scanf("%d",&a);

switch(a)

{

case1:

printf("输入教材名:

\n");scanf("%s",x);

for(i=0;i<1000;i++)

if(strcmp(books[i].name,x)==0)/*比较输入名与存储名的字符串大小*/

{printf("教材名:

%s教材作者:

%s出版社:

%s册数:

%d编号:

%s售价:

%f\n",books[i].name,books[i].author,books[i].press,books[i].count,books[i].num,books[i].shoujia);

flag=1;

}

if(flag==0)

printf("此教材不存在\n");

break;

五、个人总结

C语言是一门既有趣又非常有用的课程,说难也不难,但是也不简单,只要会很好的应用,便会觉得编程过程也并不感觉枯燥,当程序编完且运行成功之后,便觉得非常有成就感,虽然有时也会被一时解决不了的问题弄的焦头烂额,但在解决的过程中逐渐的、更深的掌握这门课程的知识,所以,这一周的C语言课程设计实习的收获是非常的大的,甚至还有一点觉得实习的时间有点短。

通过这次c语言课程设计,我对C语言的知识进行了比较全面的学习,了解到C语言的简单编程的实际应用。

我的程序基本功能符合题目要求,但也并不是太完美。

例如在输入教材册数的时候如果输入的不是数字的话,不会有提示。

我始终没有想到解决的办法……

通过此次课程设计,我熟悉了函数的调用,指针的应用,数组的运用。

程序可以实现题目所要求各项,知道了实践并真正上机操作的意义。

六、参考文献

1谭浩强.C程序设计.北京:

清华大学出版社,2009

七、源程序

#include

#include

#include

#defineB1000

typedefstructBook/*定义教材结构体*/

{charnum[20];

charname[20];

charauthor[20];

charpress[20];

intcount;

floatshoujia;

}book[B];

structBookbooks[B];

voidluru()/*录入教材信息*/

{

staticinti=0;

printf("\n请输入教材名称:

");

scanf("%s",books[i].name);

printf("请输入作者:

");

scanf("%s",books[i].author);

printf("请输入出版社:

");

scanf("%s",books[i].press);

printf("请输入教材册数:

");

scanf("%d",&books[i].count);

printf("请输入编号:

");

scanf("%s",books[i].num);

printf("请输入售价:

");

scanf("%f",&books[i].shoujia);

printf("教材录入结束.\n");

i++;

}

voidtianjia()/*教材添加*/

{

inti,count;

charname[10];

printf("\n请输入教材名称:

");

scanf("%s",name);

for(i=0;i<1000;i++)

{if(strcmp(books[i].name,name)==0)

{printf("\n输入添加册数:

");

scanf("%d",&count);

books[i].count+=count;

printf("\n教材已添加\n");

break;

}

else

{

printf("\n无此教材\n");

break;

}

}

}

voidsave()

{

inti=0;

FILE*fp;

fp=fopen("e:

\\book.txt","wr");

while(books[i].count>0)

{

fprintf(fp,"教材名称:

%s教材作者:

%s出版社:

%s册数:

%d编号:

%s售价:

%f\n",books[i].name,books[i].author,books[i].press,books[i].count,books[i].num,books[i].shoujia);

i++;

}

fclose(fp);

}

voidchaxun()/*教材查询*/

{FILE*fp;

inti,flag=0;

inta;

charx[32];

chary[32];

if((fp=fopen("e:

\\book.txt","r"))==NULL)

{

printf("此文件无法打开!

\n");

return;

}

printf("请选择查询方式:

1.教材名2.编号\n");

scanf("%d",&a);

switch(a)

{

case1:

printf("输入教材名:

\n");scanf("%s",x);

for(i=0;i<1000;i++)

if(strcmp(books[i].name,x)==0)/*比较输入名与存储名的字符串大小*/

{printf("教材名:

%s教材作者:

%s出版社:

%s册数:

%d编号:

%s售价:

%f\n",books[i].name,books[i].author,books[i].press,books[i].count,books[i].num,books[i].shoujia);

flag=1;

}

if(flag==0)

printf("此教材不存在\n");

break;

case2:

printf("输入编号:

\n");scanf("%s",y);

for(i=0;i<1000;i++)

if(strcmp(books[i].num,y)==0)

{printf("教材名称:

%s教材作者:

%s出版社:

%s册数:

%d编号:

%s售价:

%f\n",books[i].name,books[i].author,books[i].press,books[i].count,books[i].num,books[i].shoujia);

flag=1;

}

if(flag==0)

printf("此教材不存在\n");

break;

default:

break;

}

fclose(fp);

}

voidshow()/*显示操作界面*/

{printf("\n******************沈阳航空航天大学教材管理系统*********************");

printf("\n*1录入教材信息*");

printf("\n*2查询教材信息*");

printf("\n*3更改教材信息*");

printf("\n*4保存教材信息*");

printf("\n*5退出系统*\n");

printf("\n请输入您要选择的操作序号,按回车键确认:

");

}

voidmain()

{intn;

show();

scanf("%d",&n);

while

(1)

{switch(n)

{case1:

luru();break;

case2:

chaxun();break;

case3:

tianjia();break;

case4:

save();break;

case5:

exit(0);break;

default:

break;

}

show();

scanf("%d",&n);

}

FILE*fp;

fp=fopen("e:

\\book.txt","r+");

if(fp==0)

printf("无法打开文件\n");

fclose(fp);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2