收藏 分销(赏)

C语言专业课程设计教材标准管理系统.doc

上传人:a199****6536 文档编号:2496107 上传时间:2024-05-30 格式:DOC 页数:19 大小:141.54KB 下载积分:8 金币
下载 相关 举报
C语言专业课程设计教材标准管理系统.doc_第1页
第1页 / 共19页
C语言专业课程设计教材标准管理系统.doc_第2页
第2页 / 共19页


点击查看更多>>
资源描述
沈 阳 航 空 航 天 大 学 课程设计 学 号 ___ 班 级 ___94070202_____ 姓 名 ___ 于 涛__ __ 指导老师 __ 徐 晗______ 10 月 08 日 目录 一、需求分析 1 二、设计分析 2 三、关键界面截图 7 四、技术关键点 8 五、个人总结 10 六、参考文件 11 七、源程序 11 一、需求分析 经过对程序设计题目标分析可知,整个程序设计实现大致分为五个模块,其中每一个模块对应一个函数,她们功效分别是:录入新教材信息,添加已经有教材,查找教材信息,保留教材函数。在这些函数当中,前三个函数实现严格根据题目标要求,而最终一个函数用来将修改函数保留在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程序设计.北京:清华大学出版社, 七、源程序 #include <stdio.h> #include <stdlib.h> #include <string.h> #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); books[i].count += count; printf("\n教材已添加\n"); break; } else { printf("\n无此教材\n"); break; } } } 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); } 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; case 2: 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); } void show() /*显示操作界面*/ {printf("\n ******************沈阳航空航天大学教材管理系统********************* "); printf("\n * 1 录入教材信息 *"); printf("\n * 2 查询教材信息 *"); printf("\n * 3 更改教材信息 *"); printf("\n * 4 保留教材信息 *"); printf("\n * 5 退出系统 *\n"); printf("\n 请输入您要选择操作序号,按回车键确定:"); } void main() {int n; show(); scanf("%d",&n); while (1) {switch(n) { case 1: luru(); break; case 2: chaxun(); break; case 3: tianjia(); break; case 4: save(); break; case 5: exit(0); break; default: break; } show(); scanf("%d",&n); } FILE *fp; fp = fopen("e:\\book.txt", "r+"); if(fp==0) printf("无法打开文件\n"); fclose(fp); }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服