好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

计算机C语言课程设计——教材管理系统.doc

17页
  • 卖家[上传人]:ali****an
  • 文档编号:110010019
  • 上传时间:2019-10-28
  • 文档格式:DOC
  • 文档大小:161KB
  • / 17 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 沈 阳 航 空 航 天 大 学 课程设计学 号 __2009040702072_班 级 ___94070202_____ 姓 名 ___ 于 涛__ __指导教师 __ 徐 晗______2010年 10 月 08 日沈阳航空航天大学设计用纸目录一、需求分析 1二、设计分析 2三、主要界面截图 7四、技术要点 8五、个人总结 10六、参考文献 11七、源程序 1115一、需求分析经过对程序设计题目的分析可知,整个程序的设计实现大致分为五个模块,其中每一个模块对应一个函数,他们的功能分别是:录入新教材信息,添加已有教材,查找教材信息,保存教材函数在这些函数当中,前三个函数的实现严格按照题目的要求,而最后一个函数用来将修改的函数保存在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、结构体的应用定义了结构体用来描述教材的名称、作者、出版社、编号、册数和售价,具体的定义如下:#define B 1000 typedef struct Book { char num[20]; char name[20]; char author[20]; char press[20]; int count; float shoujia;}book[B];struct Book books[B];所定义的结构体主要用于定义数组。

      2、文件操作包括了文件的写入、读取和保存三个方面例如如下程序段用于保存教材信息:void save() { int i = 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、关于查询函数实现从系统中查询某教材的相关信息的查询函数稍微复杂一些,需要先进行选择是通过名称查询还是编号查询。

      如下是通过教材名称查询的函数:void chaxun() /*教材查询*/{ FILE *fp; int i,flag=0; int a; char x[32]; char y[32]; if((fp=fopen("e:\\book.txt","r"))==NULL) { printf("此文件无法打开!\n"); return; } printf("请选择查询方式:1.教材名 2.编号\n"); scanf("%d",&a); switch(a) { case 1: 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 #define B 1000 typedef struct Book /*定义教材结构体*/{ char num[20]; char name[20]; char author[20]; char press[20]; int count; float shoujia;}book[B];struct Book books[B]; void luru() /*录入教材信息*/{ static int i = 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++;}void tianjia() /*教材添加*/{ int i,count; char name[10]; printf("\n请输入教材名称:"); scanf("%s",name); for(i=0;i<1000;i++){ if(strcmp(books[i].name,name)==0) { printf("\n输入添加册数:"); scanf("%d", &count); 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.