c语言课程设计报告.docx
- 文档编号:18166791
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:28
- 大小:526.90KB
c语言课程设计报告.docx
《c语言课程设计报告.docx》由会员分享,可在线阅读,更多相关《c语言课程设计报告.docx(28页珍藏版)》请在冰点文库上搜索。
c语言课程设计报告
课程设计报告
课程名称C语言程序设计
课题名称数据库管理系统设计
专业材料成型及控制工程
班级班
学号
姓名潮哥
指导教师何宏肖伟平
2012年12月20日
湖南工程学院
课程设计任务书
课程名称C语言程序设计
课题名称数据库管理系统设计
专业材料成型及控制工程
班级班
学号
姓名潮哥
指导教师何宏肖伟平
审批
任务书下达日期2012年12月20日
任务完成日期2013年1月6日
一、设计任务书………………………………………………………2
1.1设计内容………………………………………………2
1.2题目……………………………………………………2
1.3涉及的知识点…………………………………………2
1.4题目具体要求…………………………………………2
1.5设计要求………………………………………………3
2、系统总体思路……………………………………………………4
2.1总体功能设计…………………………………………4
2.2各模块功能设计………………………………………5
2.3系统总体模块框图……………………………………6
2.4总程序流程图…………………………………………7
2.5各程序流程图…………………………………………8
2.6流程说明………………………………………………16
三、系统的调试………………………………………………………18
3.1Create系统的调试……………………………………18
3.2Stock系统的调试………………………………………19
四、程序清单…………………………………………………………22
五、总结与体会………………………………………………………27
六、参考文献…………………………………………………………28
七、课程设计评分表…………………………………………………29
1、设计内容与设计要求
1.设计内容:
数据库管理系统设计
2.题目
库存信息管理系统
3.涉及的知识点:
①掌握并熟练运用C语言的基本数据类型与各种表达式,程序的流程控制语句;
②掌握函数的定义,函数的返回值,函数的调用,函数的形式参数和实际参数之间的关系;掌握变量的作用域与生存期,了解函数的作用域。
③掌握并熟练运用库函数的应用。
④掌握数组的基本概念。
熟练掌握一维数组、二维数组的应用、掌握字符数组与字符串的关系以及字符串的简单处理。
⑤掌握结构的概念,结构类型的定义,结构变量的定义和初始化,结构成员的表示,结构的赋值含义,结构与指针、函数的关系。
4.题目具体要求:
从文件读取数据,提供新增、删除、修改和显示等功能,并将修改后的数据写入一个新的文件。
1、库存表单如下:
编号:
long4bytes
库存物品名称:
char20bytes
库存物品数量:
int2bytes
库存物品单价:
int2bytes
库存物品总额:
int2bytes
2、系统功能模块如下:
(1)建立库存表单;
(2)菜单实现以下功能:
①计算库存物品总额;
②显示库存表单信息;
③新增一个库存表单;
④库存物品出库(领出物品)(按库存物品编号);
⑤查询一个库存物品状态(按库存物品编号)。
⑥将修改后的库存物品表单存于一个新文件中。
5.设计要求:
1.要求每个学生必须独立思考,认真并按时完成本课程设计所包含的所有内容;
2.要求学生必须按照课程设计报告的完整格式说明设计内容,设计任务分析过程和算法,给出程序流程图和全部源程序;
3.设计报告的完整格式应包括以下部分的内容:
1设计总体思路;
2程序及各个模块说明;
3总体模块框图;
4各个程序模块说明;
5程序流程图;
6程序清单;
7课程设计总结与体会(不少于400字)。
4.上机时要求必到,设计完成,必须演示程序,答辩并提交设计报告。
5.总评成绩由三部分组成:
报告占20%,平时占20%,课程设计题目各占30%。
2、系统总体思路
1、总体功能设计:
Create系统存放了库存物品的编号、名称、数量、单价。
每个物品的信息定义在一个结构体变量中。
Stock系统通过读文件程序、显示程序、计算总和程序、附加信息程序、修改程序、查询程序、保存程序来实现库存物品信息管理系统的读取物品信息功能、显示物品信息功能、计算物品总额功能、显示物品总额功能、计算物品出库后剩余物品信息功能、查询物品剩余信息功能、保存物品信息功能。
各个功能的调用通过主函数中的switch语句来实现。
其结构如下:
switch(choice)
{
case1:
Read();break;/*读取物品信息功能*/
case2:
Disp();break;/*显示物品信息功能*/
case3:
Count();break;/*计算物品总额功能*/
case4:
Append();break;/*显示物品总额功能*/
case5:
Modify();break;/*计算物品出库后剩余物品信息功能*/
case6:
Query();break;/*查询物品剩余信息功能*/
case7:
Save();break;/*保存物品信息功能*/
case0:
exit(0);/*退出系统*/
}
2、各模块功能设计
Create系统:
创建一个库存表单,输入并保存库存物品的编号、名称、数量、单价,其保存的信息被Stock系统读取。
Stock系统:
读文件程序模块(Read):
读取Create系统所保存的库存表单信息,也是后面模块操作的初始信息。
显示模块(Disp):
显示Create系统所保存的信息,以便了解库存信息。
计算总和模块(Count):
将库存信息的数量和单价相乘,计算出物品总额。
附加信息模块(Append):
将物品总额和编号、名称、数量、单价一起输出。
修改模块(Modify):
输入提取物品的编号和数量,计算领取后的物品的数量和总额。
查询模块(Query):
这个模块可以按学生的编号来查询物品所有的信息,并显示物品的所有信息,以便查询者阅读。
保存模块(Save):
保存领取后库存物品的信息。
3、系统总体模块框图:
4、总程序流程图:
Sele=5
5、各程序流程图:
Create系统:
输入
文件的建立
函数的调用
定义变量
开始
结束
文件打开
输出
保存数据
打开文件程序:
打开文件
显示程序:
计算总和程序
开始
定义i
END
i++
总额=数量*单价
i 显示总额程序: 定义i=0 定义i变量 i 输出 END 开始程序 修改程序: 定义inum END 求剩余总额 求剩余数量 输出2 输出1 i<2? 开始 查询程序: 输出物品信息 输入j 输出提示 END 定义j 开始 保存程序: END 保存文件 i 新建文件 定义*fp和i 开始 6、流程说明: 1 读文件程序模块(Read): 程序通过系统函数fopen实现文件的打开,通过while语句和fscanf函数将Create系统所保存的数值分别赋值到主函数中。 2 显示模块(Disp): 程序通过for语句和系统函数printf将物品的编号、名称、数量、价格、输出。 3 计算总和模块(Count): 程序通过s[i].sum=s[i].num*s[i].price;语句计算出库存物品的总额,通过for语句将所有库存物品的价格和数量相乘得出所有库存物品的总额。 4 附加信息模块(Append): 程序通过for语句和printf函数将物品的编号、名称、数量、价格、总额输出。 5 修改模块(Modify): 程序定义了num2,scanf函数将领取数量num2输入,通过语句s[i].num=s[i].num-num2; s[i].sum=s[i].num*s[i].price; 计算出剩余物品的数量和总额,实现对物品库存信息的修改,通过for语句对所有的库存物品的修改。 6 查询模块(Query): 程序通过输入一个变量j来实现是按物品编号来查找,通过while语句判断是否需要查询,输入正确编号程序将通过printf函数输出所需查询的结果,若输入“0”退出查询。 7 保存模块(Save): 程序通过(FILE*fp;)语句定义文件指针,(fp=fopen("d: \\new.txt","w");)语句确定文件的保存途径和文件名,通过for语句和fprintf函数将所有物品信息保存到名称为new的txt文件中,实现了文件的保存。 3、程序调试 1、Create系统的调试 运行Create系统: 2、Stock的调试 运行读文件程序、显示程序 运行计算总和程序、附加信息程序: 运行修改程序: 运行查询程序: 运行保存程序: 输入0终止系统。 4、程序清单 1、Create系统 #include"stdio.h" #include"string.h" #include"math.h" #include"stdlib.h" intsize=0; structSto {longintno; charname[20]; intnum; intprice; intsum; }; structStos[100]; voidmain() {inti=0; structStos1; FILE*fp; fp=fopen("e: \\x.txt","w"); for(i=0;i<2;i++) {printf("Inputno: "); scanf("%ld",&s[i].no); printf("Inputname: "); scanf("%s",s[i].name); printf("Inputnumandprice: "); scanf("%d%d",&s[i].num,&s[i].price); fprintf(fp,"%ld\n%s\n%d\n%d\n",s[i].no,s[i].name,s[i].num,s[i].price); printf("\n"); } fclose(fp); fp=fopen("c\\x.txt","r"); while(fscanf(fp,"%ld\n%s\n%d\n%d\n",&s1.no,s1.name,&s1.num,&s1.price)! =EOF) printf("\n%ld,%s,%d,%d\n\n",s1.no,s1.name,s1.num,s1.price); } 2、Stock系统 #include"stdio.h" #include"string.h" #include"math.h" #include"stdlib.h" intsize=0; structSto {longintno; charname[20]; intnum; intprice; intsum; }; structStos[100]; voidRead() { inti=0; FILE*fp; fp=fopen("e: \\x.txt","r"); while(fscanf(fp,"%ld\n%s\n%d\n%d\n",&s[i].no,s[i].name,&s[i].num,&s[i].price)! =EOF) i++; fclose(fp); size=i; } voidDisp() { inti; printf("NoNameNumPriceSum\n"); for(i=0;i printf("%ld\t%s\t%d\t%d\t%d\n",s[i].no,s[i].name,s[i].num,s[i].price,s[i].sum); } voidCount() { inti; for(i=0;i s[i].sum=s[i].num*s[i].price; } voidSort() { } voidAppend() { inti; printf("NoNameNumPriceSum\n"); for(i=0;i printf("%ld\t%s\t%d\t%d\t%d\n",s[i].no,s[i].name,s[i].num,s[i].price,s[i].sum); } voidModify() {inti; intnum2; for(i=0;i<2;i++) { printf("请输入需领取%s的数量: ",s[i].name); scanf("%d",&num2); s[i].num=s[i].num-num2; s[i].sum=s[i].num*s[i].price; } } voidQuery() { intj; printf("输入所查物品的编号(输入0终止查询)"); scanf("%d",&j); printf("NoNameNumPriceSum\n"); while(j-1 { printf("%ld\t%s\t%d\t%d\t%d\n",s[j-1].no,s[j-1].name,s[j-1].num,s[j-1].price,s[j-1].sum); printf("输入所查物品的编号(输入0终止查询)"); scanf("%d",&j); } } voidSave() {FILE*fp; inti; fp=fopen("e: \\new.txt","w"); for(i=0;i fprintf(fp,"%ld\n%s\n%d\n%d\n%d\n",s[i].no,s[i].name,s[i].num,s[i].price,s[i].sum); fclose(fp); } voidmain() { intchoice; menu: printf("\t\t\t1.读文件\n"); printf("\t\t\t2.陈列信息\n"); printf("\t\t\t3.计算总和\n"); printf("\t\t\t4.附加信息information\n"); printf("\t\t\t5.修改信息information\n"); printf("\t\t\t6.信息查询intformation\n"); printf("\t\t\t7.保存信息tofile\n"); printf("\t\t\t0.退出系统\n\n"); printf("\t\t\tPleaseenterchoice(0~7)"); scanf("%d",&choice); switch(choice) { case1: Read();break; case2: Disp();break; case3: Count();break; case4: Append();break; case5: Modify();break; case6: Query();break; case7: Save();break; case0: exit(0); } if(choice<0||choice>7)printf("\n\n\n\t\tpleasechooseagain! \n\n"); gotomenu; } 5、课程设计总结与体会 通过几天的课程设计,通过实践来理解和巩固理论知识,使我对C语言程序设计有了一个更加深入的认识,从刚开始的初略了解到有了比较深入的认识,能够比较灵活的运用。 C语言是一门比较灵活、有趣而且实践性非常强的课程,单从理论课上是难以领略到它的精髓,我们只有从它的实践运用中,才能体会到了学习C语言的乐趣和好处。 在课程设计的这段时间里,我学到了许多东西,同时也使我对以前学的东西有了一个更深更透彻的理解。 比如: 能够灵活的运用循环,switch语句,结构体的定义、引用、使用,指针的定义、使用等。 虽然对C语言编程还有许多不明白,但这段时间我真的获易匪浅,原来理论课上一些没弄懂知识点通过上机实践差不多都弄懂了。 课程设计也就是学以致用嘛,让自己了解自己所学怎样用于实际应用中。 正所谓实践出真知,在实践中我们才能发现自己所存在的问题和不足。 在编程过程中总是出现这个或那个问题,比如说总是在scanf语句中少掉地址符“&”,最终导致程序无法运行。 这也源于自己平时没养成好的习惯,初心大意吧,以后得多多注意啊。 在编程过程出现诸多问题是免不了的,不过还好最终通过与同学讨论或请教老师都一一解决了。 为了与同学讨论解决问题,我甚至放弃了使用自己的电脑而去电子阅览室上机编程。 在这次课程设计中,我再一次深深地体会到了了与别人合作交流的重要性,虽说每个人独立编程,但总少不了遇到问题,遇到问题就得解决啊。 在与同学的交流讨论中,取长补短,不仅别人帮我解决了问题,同样我也帮别人解决了问题。 六、参考文献 1.《C语言程序设计》主编陈世清浙江大学出版社 2.《C语言程序设计实践教程》主编陈世清浙江大学出版社 七、课程设计评分表 课题名称: 数据库管理系统设计 项目 评价 设计方案的合理性与创造性 设计与调试结果 设计说明书的质量 答辩陈述与回答问题情况 课程设计周表现情况 综合成绩 教师签名: 日期:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 报告