c语言课程设计
c++课程设计心得体会
通过两个星期的折腾,总算把课程设计给完成了,这是一个坚苦而又漫长的过程。是啊,读了那么多年的书,课程设计可是第一次。看着劳动成果,很欣慰!虽然这不是我一个人做的,是大家的共同努力得来的。
“也许完成不了!”两个星期前我们这样说,“完成他没问题!”一个星期前我们这样说,现在我们可以说:“哈哈,完成啦”!
刚开始,可以说是没有头绪,于是就去图书馆找资料,找到了一些关于画图方面的,可是这点小进展远远不够,这只是一个小小的开始。下一步是上网查,找到了些与我们题目相似的,那时我们每个人都很高兴,可是那还不是我们要的,于是又上网查到了些有关的函数等等,终于在我们大家的努力下,完成了这个程序。
虽然对着电脑做程序,有点累有点热,可是当看到劳动成果时,真是别有一番滋味在心头啊!世上无难事,只怕有心人,的确如此。做完这个程序最大的收获就是感受到了集体的力量,当然个人的智慧也是很重要的哦!
做完这个课程设计,我们的自信一下子提高了,我们也会写程序了;尽管对于有些人这种程序会很简单,可对我们C语言初学者来说,已经很不容易了。这次体验为以后的学习计算机的我们增强了信心。享受劳动成果的滋味实在很美妙啊!
C语言程序课程设计心得体会
通过这次C语言的课程设计,我明白了很多也知道了很多,更收获了很多。在课程设计的过程中出现过困难,三周的课程设计已经结束了。回想学习C语言的过程中,既有快乐又有烦恼,回顾这次课程设计,至今我仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整一个星期的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论和知识是远远不够的,只有把所学的理论知识与实际相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考能力。在设计的过程中遇到的问题,这毕竟独立做的,难免会遇到各种各样的问题,同时在设计的过程中发现自己的不足之处,对以前所学的知识理解得不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计之后,一定把以前所学过的知识从新温故。这次课设终于顺利完成了,在设计中遇到了很多编程问题。
做完这个课程设计,我们的自信一下子提高了,我们也会写程序了;尽管对于有些人这种程序会很简单,可对于我们C语言初学者来说,已经很不容易了。这次体验为以后的学习计算机的我们增强了信心。享受劳动成果的滋味实在美妙啊!
很感谢这次的课程设计,它使我更加地体会到多看专业书的重要性,只有掌握了一定量的专业知识才能得心应手地解决诸多问题;另外,在做任何事倒要有耐心,不要一遇到困难就退缩;在学习和工作中要时刻谨记“团结”二字,它好比通向成功的铺路石,不可或缺。
人生的道路是曲折的,但正是因为曲折人生才光彩夺目,在人生的道路上,总遇到重重困难,但正是因为困难我们才变得更坚强。今后的路还很长,面对困难,让我们用行动去俘虏它吧!
C语言程序课程设计心得体会
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在是生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握计算机开发技术十分重要的。
我的题目是文章处理系统的设计,对于我们这些新手来说,这是很大的考验,我一千次一万次的问自己,怎么才能找到课堂所学与实际应用的最佳结合点?怎么才能让自己的程序在篇幅上简单,在使用价值上丰富?怎样让自己的业余更靠近专业?怎样让自己的计划更具有序性,而不会忙无一用?机会是老师,学校,以及无数代教育工作者给的,而能力是自己的,耐性是需要的。
经过自己的琢磨,听取了师姐,师兄们的建议,还查阅了很多书籍,才做到了心中有数,才了解了C语言课程设计的真正用意--培养自学能力,养成程序编辑的好习惯。我从来不相信车到山前必有路的说法,认为那只是懒惰者自寻懒惰的借口,我要积极,要把握,要努力。
回顾起此次课程设计,至今我仍感慨颇多,的确,从从拿到题目到完成整个编程,从理论到实践,在整整半个学期的日子里,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计之后,一定把以前所学过的知识重新温故。
这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在郭老师的辛勤指导下,终于游逆而解。同时,在郭老师的身上我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢
在课程设计过程中,我学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪,黑夜过去了,我们收获的是黎明。
在本次实践中,给我印象最为深刻的是在文件删除程序的编译过程中,先有我的各个子程序都已经编辑成功,那么这最后的程序就将是我成功的关键。老天不会让我太过顺利,他在这最后的时刻设置的障碍,是要考验我的能力,他要置我于死地?在这个问题的解决上,我打了退堂鼓,我不能忍受长时间的无功而反,时间正在消磨我的意志。没有了柳暗花明的一天,那么我怎么能说经受住了考验?谢谢老师的那句话,她说:人力有所不能及,然而,人的精神是不会败倒的。我鼓起勇气,到处问,到处查资料,黄天不负有心人,在一篇文章上,终于看到了我所特别要求的函数,我实现了组合是关键的理论。不得不说这是精神的胜利,是永不言败的精神让我的程序重见天日。谢谢给我指点迷津的老师。
6月11日,我们的课程设计结束了,但是它留给我的印象是不可磨灭的。无论我以后会不会涉及到C语言程序编译的研究,我想,我至少掌握了一种系统的研究方法,我们学习的目的就在于运用,我们运用这种研究方法的时候会很多,我最后要感谢课程设计,它的确教会我很多。
c语言程序设计实训总结范文
一、充分准备,使学生明确实训的目的与要求
本次实训的目的是要求学生通过熟练运用Turbo C 2.0的开发环境,以所掌握的C语言知识为基础,围绕本次安排的实训项目,精心准备,认真调试,通过查阅资料、通过阅读相关程序代码、通过多次上机调试、通过同学们相互讨论,使学生对C语言程序设计有一个全面的了解,从而能更加系统地理解C语言基础知识。
本次实训的要求是:教师要认真给参与实训的学生分好组,注意成绩好坏的搭配。同时,实训前公布本次实训内容,要求每个学生认真做好实训前的准备,查阅相关资料,精心编写代码。各组学生独立完成实训项目,独立撰写实训报告,认真及时进行实训总结。指导教师通过登陆教师后台管理系统对学生的实训过程进行跟踪指导、审核管理、进行批改,并给出考核成绩。教师在实训期间要检查学生到课情况,及时调整指定的分组角色。
二、 精心组织,认真做好项目实训
对教师方面,本次实训要求教师每节实训课必须到场。教师必须清点学生到场情况并做好出勤记录,在有学生缺席的情况下调整好角色分配。同时要求教师必须把实训内容具体分配到课时,并提供相关内容供学生下载。教师通过登陆教师后台管理系统对学生的实训过程进行跟踪指导、审核管理、进行批改,并给出考核成绩;对学生方面,本次实训实训考评分合格与不合格两个档次。不合格的可要求重做,重做的次数不影响考评成绩。对复制的同学,一经发现,要求从头做起, 由老师指定内容, 完成相关的内容, 否则为不合格。
三、 本次实训的效果与经验
通过此次实训,广大同学夯实了基础,锻炼了能力,综合素质得到较大提高。同时实训也为推动我系专业建设提供了丰富的经验。
1、本次实训促进了我系人才培养计划的完善和课程设置的调整。近年来,我系为适应学生的实践需要陆续增设与调整了一系列课程,如开源系列,受到同学们的欢迎。
2、本次实训促进了学生自身的发展。实训项目使学生初步接触C语言,熟悉了C程序设计过程,培养了他们的环境适应能力及发现问题、分析问题、解决问题的实际工作能力,为他们今后的发展打下了良好的基础。
四、存在的问题
实训过程中发现存在下列问题:一是学生素质参差不齐,基本功扎实的学生可以很快地完成本次实训项目,差的学生基本上还没有入门,更别谈开发一个项目了,如何提高学生的整体素质,是今后教学中值得考虑的问题。二是机房部分微机运行状态不太好,一些经常死机,一些同学辛辛苦苦编写的代码由于没有及时存盘,由于死机又得重新做,学生中有一些怨言,建议学校及时更换一些、淘汰一些过时的微机,加大对微机的维护。
总之,我系的专业实训经过几年的开展,积累了较丰富的经验,从系领导到任课教师对此都十分重视,实训组织工作周密细致,日常管理及时而有效,对存在问题能迅速解决。实践证明,专业实训适应高职学生的特点,符合高职教学规律与学生心理预期。专业实训作为计算机各专业教学体系的一个环节,无论对学生成才还是对教学开展,都有极大的促进作用。
c语言课程设计心得体会
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。
回顾起此次单片机课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说三极管PNP管脚不懂怎么放置,不懂分得二极管的正负极,对单片机汇编语言掌握得不好……通过这次课程设计之后,一定把以前所学过的知识重新温故。
这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在梁强老师的辛勤指导下,终于游逆而解。同时,在梁强老师的身上我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!
c语言课程设计报告心得体会
二十一世纪是计算机的世纪,是一个全新的世纪,计算机正逐步入侵我们的生活。刚开始接触计算机的时候感觉很新奇,那时觉得计算机很神秘,于是就产生了以后一定要熟练掌控计算机的念头。怀着这个愿望,我选择了计算机科学与技术为专业,有点兴奋又有点担忧,兴奋的是以后可以经常接触和了解计算机了,担忧的是我几乎没有任何基础,怕跟不上大家的步伐。有死党说我杞人忧天,结果证实我“忧”得不无道理。依然清楚地记得第一学期的上机课,每次上机老师都计分,所以经常手忙脚乱,用“惨不忍睹”来形容是最适合不过了。
紧张的一个学期过后,我们迎来了c语言的学习和一位风趣博学的老师。虽然刚开始学习c语言的时候大家都一筹莫展,但在老师的鼓励和教育下一步步地往前迈,很令人欣慰。在这之后的学习中仍然困难重重,然而“坚持到底就是胜利”这个坚定的信念激励着我们勇往直前。c语言课本的学习总算结束了,多么崎岖的一条学习之路。
大学的教育模式和中学有很大不同,从平常的课程安排和教学就可以知道,但是独立完成课程设计和写论文这种任务对我们来说无疑是一个很大的挑战。十七周开始进行课程设计,老师要求我们写一个计算器的程序,起初大家都被难倒了,然后开始一步步地摸索,先查找有关资料,画计算器的图形,写了好长一段程序才把图形搞定,可老师一看都不满意,要求我们用循环来做,“师”令如山,不得不听从,改吧,这一改又让大家死了好多脑细胞,感觉有点残忍。
完成了计算器的图形很有成就感,毕竟六月天坐在机子前不是令人愉快的事。接下来要进行计算器内部运算程序的设计,说实话,我根本就不知道要做,更不清楚如何着手,不是我妄自菲薄,独立完成这个程序设计根本就是不可能的事,可想而知只能寻求帮助了,但这个程序不是轻而易举就能完成的。有些积极的同学从网上搜索了好多有关这方面的资料,拼拼凑凑,进行了多次讨论,终于完成了这部分的设计,在同学的互相帮助下,大多数人都完成了最重要的一部分程序设计。
接下来就是用循环语句使按键上的数字有闪烁的功能,这个因为之前老师有过提点,所以相对简单一些。
完成了整个程序设计,这次课程设计就接近尾声了,不过最后的课程报告着实让我们苦恼了一两天。小小的抱怨一下应该没关系吧。
整个课程设计终于完成了,完成的好辛苦,好艰难,但还是顺利的完成了。我们付出了很多心血和汗水,但我认为我们得到的更多。如果没有同学们的互相帮助,这次课程设计就不会这么顺利,这种同舟共济的团队精神深深震撼了我,《礼记学记》上也有讲过:“独学而无友,则孤漏而寡闻”。同时有些同学积极的态度让我感到一丝惭愧,他们所体现出的坚持不懈的品质更令我折服。当然这次程序设计也让我看到了自己基础的薄弱。古人有诗云:“路漫漫其修远兮,吾将上下而求索”。从今天起我将不断继续求索,学习之路也好,人生之路也罢。
总之我受益匪浅。
C语言程序课程设计心得体会
三周的课程设计已经结束了。
回想学习C语言的过程中,既有快乐又有烦恼。
从领到书的那一刻,我就很郁闷,《C语言程序设计》到底事学什么的,有什么用。刚开始上课时,还在迷茫这门课程是用来做什么的。不过,这些感受都是在对这门课程不了解的情况下产生的。后来慢慢的接触多了,听老师讲的多了,了解多了,渐渐的产生了兴趣。尤其是学到语句和函数时,上机操作程序,经过编译,调试和运行后,出现界面,当时觉得很好奇,想真正的学好这门课程。通过半个学期的学习,我掌握了基本知识。
下学期开始时,被通知要进行三周的课程设计。当时有点懵,感觉学的东西很少,很零散,不知该怎么练到一起,就要课程设计,是不是太难为我们了。
第一天基本上都是在看书,把基本知识再熟悉一边。到了下午的时候,老师发过来三道练习题,从这几道练习题上我得到了不少启发,然后我们组把整个程序的思路理清了,开始着手写程序。
第一周结束的时候,我感觉自己收获挺大的,从一开始的迷茫,不知道从何下手到把程序中的几个模块编写出来,心里挺开心的。但是,到了第二周,我们由不得不再次陷入困境。在整个程序的编写过程中。最难的就是修改和删除这两个模块,这也是我们第二周要解决的重点问题。
开始编写修改和删除时,很头疼,去向其他人寻求帮助,在别人的帮助和提示下,我编完了修改程序,但编译时老出错,修改后的内容将文本内的信息全部覆盖了。困难之时,我们组的其他人,帮助了我,完成了修改和删除。这样的话,整个程序基本上全部完成了,就剩下完善工作了。我们组写了两个程序,最后,两个程序相互组合,互补,大功告成
虽然设计时完成了,但是我觉得其中还是由一些不足之处:
1.警告句。程序中缺少一些警告句,例如:“是否真的删除(y/n)?”。
2.重名的情况。由于考虑的不周全,没有设计遇到重名的情况该怎么处理。
3.选择单一。我们设计的程序中,只设计了按名字选择,进行操作,忽略了重名的情况。
整个程序完成了,还有很多不完善的地方,希望自己以后办事的时候要认真,仔细,考虑周全。
短短的三周课程设计结束了,但是这段时间里,我又学到了更多C知识,如:对象数组,string类,文件流等,同时我也被提醒以后办事的时候要认真,仔细,考虑周全,也看到了团队精神和互帮互助的重要性。这一点会让我终生受益。通过三周的课程设计,我觉得自己肚子里的墨水多了,收获也挺大的,这三周过的挺充实!
c语言课程设计心得体会
在这为期半个月的时间内,通过我们小组各成员之间的相互讨论和合作,我们完成了学生信息管理系统的程序设计,更值得高兴的是我们的程序得到了大家的喜爱,在每次的简报中都得到了较好的成绩。
虽然在上个学期中,我们已经学习了《C 语言程序设计》这门课,但是我所学的知识最多也就是在做作业的时候才会用到,平时没有什么练习的机会,这次的课程设计是我第一次通过自己构思,和同学讨论并且不断查阅资料来设计一项程序。这次设计,不仅巩固了我以前所学的知识,还让我对c语言有了更深一步的了解,掌握了更多的技巧和技能。
C语言是计算机程序设计的重要理论基础,在我们以后的学习和工作中都有着十分重要的地位。要学好这种语言,仅仅学习课本上的知识是不够的,还要经常自己动手,有较强的实践能力。只有多动手,经常编写程序,才能发现我们学习上的漏洞和自己的不足,并在实践中解决这些问题,不断提高自己转化知识的能力。
在我们小组有解决不了的问题时,我们会主动查阅相关的资料,或向其他同学询问,这不仅丰富了我们的知识,还增进了我们同学之间的友谊。为了增大信息的安全性,需要用文件来存储信息,由于我们在上课时不注重对文件的运用,所以在这方面有较大的困难。我先将书本认认真真地看了一遍,又做了一下课后习题来验证和增进自己的理解,终于,经过我们的不懈努力,我们小组的程序有了突破,成功地实现了用文件来保存并查看学生的信息。
这次设计中,我的收获还有就是学会了用流程图来表达自己的想法,并根据流程图来逐步实现程序的功能。开始的时候,我画流程图很是困难,需要一个多小时才能清楚的根据自己的想法画出图来,后来画多了,就更加了解它的功能,十分得心应手,能够比较快而准确的画出来。
在这次课程设计中,我们首先对系统的整体功能进行了构思,然后用结构化分析方法进行分析,将整个系统清楚的划分为几个模块,再根据每个模块的功能编写代码。而且尽可能的将模块细分,最后在进行函数的调用。我们在函数的编写过程中,我们不仅用到了for循环、循环和s语句,还用到了函数之间的调用(包括递归调用)。由于我们是分工编写代码,最后需要将每个人的代码放到一起进行调试。因为我们每个人写的函数的思想不都一样,所以在调试的过程中也遇到了困难,但经过我们耐心的修改,终于功夫不负有心人,我们成功了!
在参考书上,我们不仅参考了曾经学过的高敬阳主编的《c语言程序设计》,还找到了由谭浩强主编的第三版《c语言》进行参考。
当然,我们的程序还有一些不完善的地方,比如说,当输入的数据不符合我们定义的数据的格式的时候,程序会出现一些错误,有时会出现主菜单的死循环;在一次程序运行中,只能行使一种权限,要想再行使另一种权限,就只能退出程序,然后再运行程序。
三周的小学期即将结束,时间虽短,但是我收获了很多。最后,谢谢老师和同学们的指导,更要感谢我们小组成员之间的合作与交流。
C语言程序课程设计心得体会
在科技高度发展的今天,计算机在人们之中的作用越来越突出。而c语言作为一种计算机的语言,我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。
在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。
由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。包括了程序模块处理、简单界面程序、高级界面程序、程序的添加修改、用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。
上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。
学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。因为学时所限,课程不能安排过多的统一上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:
1、加深对课堂讲授内容的理解
课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。然而要使用c语言这个工具解决实际问题,又必须掌握它。通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。
学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。即把c语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题。只有通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正确地解题。
通过上机实验来验证自己编制的程序是否正确,恐怕是大多数同学在完成老师作业时的心态。但是在程序设计领域里这是一定要克服的传统的、错误的想法。因为在这种思想支配下,可能你会想办法去"掩盖"程序中的错误,而不是尽可能多地发现程序中存在的问题。自己编好程序上机调试运行时,可能有很多你想不到的情况发生,通过解决这些问题,可以逐步提高自己对c语言的理解和程序开发能力。
2、熟悉程序开发环境、学习计算机系统的操作方法
一个c语言程序从编辑、编译、连接到运行,都要在一定的外部操作环境下才能进行。所谓"环境"就是所用的计算机系统硬件、软件条件,只有学会使用这些环境,才能进行程序开发工作。通过上机实验,熟练地掌握c语言开发环境,为以后真正编写计算机程序解决实际问题打下基础。同时,在今后遇到其它开发环境时就会触类旁通,很快掌握新系统的使用。
3、学习上机调试程序
完成程序的编写,决不意味着万事大吉。你认为万无一失的程序,实际上机运行时可能不断出现麻烦。如编译程序检测出一大堆错误。有时程序本身不存在语法错误,也能够顺利运行,但是运行结果显然是错误的。开发环境所提供的编译系统无法发现这种程序逻辑错误,只能靠自己的上机经验分析判断错误所在。程序的调试是一个技巧性很强的工作,对于初学者来说,尽快掌握程序调试方法是非常重要的。有时候一个消耗你几个小时时间的小小错误,调试高手一眼就看出错误所在。
通过这次为数不多的几天计算机实践学习,我们了解了一些关于c语言的知识,理解巩固了我们c语言的理论知识,着对我们将来到社会工作将会有莫大的帮助。同时它让我知道,只要你努力,任何东西都不会太难。
C语言课程设计报告—《商品销售管理》
湖北汽车工业学院电气与信息工程学院
《C语言程序设计》
课程设计
课程设计题目:商品销售管理
专业:电子信息科学与技术
班级:T1023-11
姓名:余勇
成绩:
附录
一、需求分析
1、问题
问题描述:
已知一公司有10种产品(产品编号,产品名称,产品价格,产品产地,库存数量(最开始为1000个)),设计一程序,完成以下功能:
1销售:从键盘输入顾客姓名,销售数量、销售日期,实现销售功能。需要判断产品是否存在,销售数量是否小于库存数量,销售日期格式是否合法(格式为:YYYY-MM-DD,如2009-01-02))
2计算时间段内各个产品的销售总额
3能根据顾客姓名,查询购买历史
4能显示所有顾客的姓名
根据需求,该系统所应包含的信息有以下一些:
商品销售的基本信息:顾客姓名、产品类型、销售数量、销售日期、库存数量、销售总额;
根据需求,该系统所应实现的功能有以下一些:
1.各种基本数据的录入。如:产品销售的基本信息的录入。
2.基于各种基本数据的查询。即允许对已经录入的数据进行查询。例如根据产品编号查询产品的销售历史;根据顾客姓名,查询购买历史。
3.各种基本数据的计算。计算时间段内各个产品的销售总额。
4.数据的显示:显示所有顾客的姓名。
5.数据导出:将销售信息导出到指定文件。
6.数据导入:从指定文件导入销售信息。
2、系统
采用C语言实现,开发环境为VC6.0,可以运行在操作系统及以上皆可。
3、运行要求
1)能不受限制的录入销售信息;
2)界面友好,操作方便,例如保存前需要提示用户是否保存;
3)容错性强,例如数据导出时,如果文件不存在需要提示用户。
二、总体设计
1、系统流程设计
调用choice_read函数
Choice
函数
选择(a)
执行printf函数
开始
调用list_na函数
执行exit退出系统
调用do_c函数
调用do_s函数
调用list_na函数
调用search-p-id函数
调用search_na函数
调用search_ti函数
调用sale函数
调用sho)函数
sho)函数
2、系统模块设计
根据系统的功能设计,设计如下模块
商品销售管理
主界面显示
功能选择
商品销售录入
查询产品的销售历史
时间段内产品的销售总额
查询顾客的购买历史
显示顾客的姓名
保存顾客信息
保存销售信息
结束界面
欢迎界面
主界面模块:完成系统菜单的显示;
功能选择模块:根据用户的选择,完成其相应的功能;
商品销售信息录入:完成用户从界面输入信息,保存入系统的功能;
查询销售产品历史:根据产品的编号ID查询该产品的销售记录的功能;
时间段内产品的销售总额:根据用户的需求,查询任意时间段内的各个产品的销售总额;
查询顾客的购买历史:根据客户的姓名,查询其购买历史;
显示顾客的姓名:根据需要,显示顾客的姓名;
保存顾客信息:根据需要,保存顾客信息至文件;
保存销售信息:根据需要,保存销售信息至文件;
三、详细设计
1、数据结构设计
根据系统要求,系统中需要保存的数据,其结构如下:
数据项名称数据项系统表示数据类型数据长度备注顾客姓名c_na字符串30顾客编号c_id整型产品名称p_na字符串30产品编号p_id字符串19产品价格price单精度产品产地place字符串50产品库存stonu型产品销量nu型产品销售日期s_date字符串10
为了能实现不受限制的增加销售信息,采用链表的结构保存销售信息,在增加销售的基本信息时,创建一个销售信息的节点,将其插入到链表中,示意图如下。
新增销售信息3
销售信息2
销售信息1
使用C语言创建的结构体如下:
structsell//定义商品销售结构体
{
intc_id;
charc_na[30];
charp_id[19];
charp_na[30];
intnu
chars_date[10];
structsellnext;
};
2、界面设计
2.01欢迎界面:
介绍该系统的简要情况。
2.02主界面:
根据系统要求,设计一个字符界面,显示系统的菜单,为了体现友好性,将在每个菜单前显示该菜单项对应的数字
用户输入菜单项前面的数字,主菜单消失,进入该模块的相应界面,进行相应的操作,完成后,回到主界面。
2.03导入商品信息界面:
选择文件导入选项将商品信息从文件中导入,也可以通过键盘手动输入。如:
2.04显示商品信息:
通过文件导入或键盘输入的商品信息,然后显示在屏幕上。给销售员查看销售情况。
2.05输入顾客购买信息:
通过键盘输入顾客购买商品的信息,并且保存至链表和文件中。
2.06按商品编号查询商品销售信息:
通过键盘输入商品的编号查询销售信息
查询结果如下:
2.07按日期范围查询销售记录:
键盘输入查询日期的范围,查询结果如下:
2.08按顾客姓名查询其购买历史:
查询结果如下:
2.09显示顾客姓名:
2.10保存销售信息:
保存本次销售信息至文件。
文件保存信息如下:
顾客编号商品编号销售数量购买日期
==================================================
1517411002011-07-04
2.11保存顾客信息:
文件保存信息如下:
顾客购买记录
顾客姓名顾客代码
张三15174
2.12结束界面:
3、模块实现
1.主界面实现:
模块说明:调用printf函数,在屏幕上打印需要显示的字符信息,需要在显示之前调用syste“cls”)函数将前面的界面清空。
模块流程:
开始
欢迎界面
进入主函数
int
保存销售信息
保存顾客信息
显示顾客的姓名
查询顾客的购买历史
时间段内产品的销售总额
查询产品的销售历史
商品销售录入
功能选择
显示商品信息
执行printf函数
输入指令(a)
a0且a9
是
否
结束界面
3.1主函数流程图
对应的函数:hello,,bye;
2.商品信息的导入实现:
模块说明:从文件导入或者键盘键入现有商品信息。
模块流程:
开始(清屏)
执行choce_read函数
输入指令(a)
a=1a=2
文件导入
键盘键入
返回菜单
3.2商品导入流程图
对应的函数:choice_read,file_read,keyboard;
3.销售信息录入模块实现:
模块说明:从键盘接收输入的销售信息,在动态存储区中创建销售的节点,遍历链表,将其插入到销售链表的最后位置。
模块流程:
开始(清屏)
申请动态存储空间,创建一个节点
给节点中输入销售信息(是否保存?)
否
是
遍历链表,找到最后的节点
将新节点连接到最后的节点上
结束
3.3销售信息流程图
对应的函数:sale,sale_do_save,judge;
4.按编号查找销售历史
模块说明:根据键盘输入的商品编号,在销售链表中遍历查询,若有配对,
则同时输出其节点保存的其他信息。
模块流程:
开始(清屏)
输入要查询的编号啊
遍历链表查找编号,是否有记录
否
是
是
输出该节点中其他的信息
结束
3.4按编号查找流程图
对应函数:search_p_id;
5.日期范围的销售信息查询模块实现:
模块说明:从键盘接收输入一个日期范围,遍历链表,判断节点的日期是否在此日期范围内,如果在,则输出该节点的其他信息,如产品编号,顾客编号等等。
模块流程:
开始(清屏)
输入要查询的日期范围
遍历链表查找日期,是否在日期范围内
否
是
是
输出该节点中其他的信息
结束
3.5按日期范围内查找流程图
对应函数:search_ti;
6.按顾客姓名查询销售记录模块实现:
模块说明:通过键盘输入顾客姓名,在销售链表中遍历查找节点包含的姓名,若姓名配对,则输出该节点的信息。
模块流程:
开始(清屏)
输入要查询的姓名啊
遍历销售链表查找姓名,是否有记录
否
是
是
输出该节点中其他的信息
结束
3.6按顾客姓名查找流程图
对应函数:search_na;
7.显示顾客姓名模块实现:
模块说明:通过键盘输入的顾客姓名,若在顾客链表中查询该姓名,输出其姓名和编号。
模块流程:
开始(清屏)
输入要查询的顾客姓名啊
遍历顾客链表查找姓名,是否有记录
否
是
是
输出该节点中顾客姓名与顾客编号
结束
3.7显示顾客流程图
对应函数:list_na
8.保存销售信息模块:
模块说明:保存在销售链表和顾客链表中的销售信息至文件。
模块流程:
开始(清屏)
遍历销售和顾客链表,是否有记录
否
是
输出节点中的销售信息,打印至文件
结束
3.8保存销售信息流程图
对应函数:do_s;
9.保存销售信息模块:
模块说明:保存在销售链表和顾客链表中的顾客信息至文件。
模块流程:
开始(清屏)
遍历销售和顾客链表,是否有记录
否
是
输出节点中的顾客信息,保存至文件
结束
3.9保存信息流程图
对应函数:do_c;
四:功能模块的调试及测试
1、测试选项
测试的数据:
输入a:
测试结果:
程序运行出现错误,如下
原因:是选择0—9之外的数,不能跳转。
测试数据:1
测试结果:程序运行正常,正常跳转到界面。
2、输入销售信息测试
测试数据:zhangsan11002011-07-32
测试结果:
修改后的测试数据:张三11002011-07-04
测试结果:如上图,测试成功。
原因:姓名只准输入汉字,日期只准输入当前日期,并且销售日期形如(1991-02-27)。
3、按编号查询销售信息测试
测试数据:4;
测试结果:
原因:编号为4的商品未销售。
4、按日期范围内查询销售日期
测试数据:(开始日期)2011-06-01
(结束日期)2011-06-30
测试结果:
原因:该日期内无销售日期。
修改后的日期:(开始日期)2011-06-01
(结束日期)2011-08-01
测试结果:有记录。
5、按顾客姓名查找销售记录:
测试数据:李四
测试结果:
修改后的测试数据:张三
测试结果:
原因:无顾客购买记录,所以显示不出来。
6、保存信息至文件
测试结果:
正确结果:
原因:无销售记录,故显示顾客记录为空。
顾客购买信息.txt的文件内容如下:
顾客购买记录
顾客姓名顾客代码
张三24497
五、实训总结
五、课程实训总结
1、对系统开发的总结(设计亮点,存在的不足,需要改进的地方):
该系统为作者本人自行精心开发,限于个人水平,系统不太完整,功能不太完善,且人性化较为不足,本人将在后续阶段进行优化改正,功能将进一步拓展。有一些地方还是存在较小的麻烦,如在相同顾客的编号在两次购买过程中不相同,造成了系统的不便,本人将会想办法克服这一缺点。但是此系统在已开发的功能上精心布置,完美的界面和人性化的提示与功能还是值得称赞的,并且经过长时间的测试,功能完全正确。