设计报告
课题名称:员工销售业绩统计系统学院:
专业班级:电子信息工程14-1
学号:
学生:
指导教师:
2015年 07 月 02 日
学生指导教师
课题名称员工销售业绩统计系统设计时间06月22日-07月02日设计地点
设计目的1.巩固和加深C语言课程中所学的理论知识;
2.掌握C语言编程和程序调试的基本技能;
3.通过综合C语言的基本知识来解决实际问题;
4.学会利用C语言进行基本的软件设计;
5.通过具体程序的练习掌握面向过程的程序设计方法;
6.掌握书写程序设计说明文档的能力;
指导教师评语
系部教研
室
意见
一、需求分析(设计目的)
设计对某部门员工年销售业绩统计信息的管理系统,每个员工信息包括编号、姓名、年龄、性别、第一季度(春季)业绩、第二季度(夏季)业绩、第三季度(秋季)业绩、第四季度(冬季)业绩。
系统功能包括:
1、系统操作以CUI(Command User Interface)界面工作。
2、员工信息的录入(增加数据)。
用数组数据类型赋初值的方法把员工信息送到各个数组中(但注意要是合法数据),然后把它们输出显示。
3、员工信息的删除(删除数据)。
任意输入一个员工的编号,将它所有的信息从数组中删除。
4、员工信息的浏览(显示数据)。
使用功能打印出所有员工编号、姓名、年龄、性别、各季度业绩。
5、员工信息的查找(查找数据)。
任意输入一个员工的编号、姓氏、姓名,将查找的员工所有业绩信息打印出来。
要求能多次查找。
6、员工信息的修改(修改数据)。
任意输入一门课程的编号、姓名,打印出所有相关信息后,可对某一项信息进行修改并保存。
7、员工信息的计算及排序(数据处理)。
计算员工年业绩及季平均业绩,并将员工的业绩按某一季业绩、年业绩、季平均业绩排序。
8、在程序运行时切换数据库(数据库切换),切换至另一部门员工数据库,可进行相同的数据操作。
二、总体设计
1、系统框架图
欢迎界面
指定数据库
菜单选择
增加数据删除数据显示数据查找数据修改数据数据处理数据库切换
退出
2、模块分解
欢迎界面void login();
增加数据void add();
显示数据void list();
声明部分查找数据void search();
数据处理void calculate();
修改数据void revise();
删除数据void delete();
主函数
main()
欢迎界面login();
增加数据add();
询问是否修改
显示数据list();
调用部分查找数据search();
数据处理calculate();
修改数据revise();
删除数据delete();
重启主函数main();
三、详细设计与实现
(详见程序源代码、代码注释)
四、遇到的问题及解决方案
1、问题:子函数函数的声明与调用
解决:借鉴其他程序调用子函数方法并复习相关知识
2、问题:fread、fwrite函数的使用
解决:使用百度百科查询相应函数
(1)函数功能:用来读写一个数据块。
(2)一般调用形式
fread(buffer,size,count,fp);
fwrite(buffer,size,count,fp);
(3)说明
①buffer:是一个指针,对fread来说,它是读入数据的存放地址。
对fwrite来说,是要输出数据的地址。
②size:要读写的字节数;
③count:要进行读写多少个size字节的数据项;
④fp:文件型指针。
⑤注意:
A.完成次写操(fwrite())作后必须关闭流(fclose());
B.完成一次读操作(fread())后,如果没有关闭流(fclose()),则
指针(FILE * fp)自动向后移动前一次读写的长度,不关闭流
继续下一次读操作则接着上次的输出继续输出。
3、问题:CUI(Command User Interface)界面无法对齐
解决:由于\t制表符使用不当、文字字数及界面宽度限制不能完美实现居中,缩减间距使之总体居左,局部文字居中。
4、问题:字符串的比较
解决:百度搜索相关内容
strcmp函数,C/C++函数,比较两个字符串
原型:extern int strcmp(const char*s1,const char*s2);
若s1==s2,则返回零;
若s1>s2,则返回正数;
若s1<s2,则返回负数。
即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。
如:
"A"<"B" "a">"A" "computer">"compare"
特别注意:
strcmp(const char *s1,const char * s2)这里面只能比较字符串,即可用于比较两个字符串常量,或比较数组和字符串常量,不能比较数字等其他形式的参数。
五、总结与体会
课程设计是培养学生综合运用所学知识、发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程。
随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握程序开发技术是十分重要的,而C语言又
是最常见,功能最强大的一种高级语言,因此做好C语言课程设计是十分必要的。
回顾起此次课程设计,至今我们仍感慨颇多。
的确,自从拿到题目到完成整个编程,从理论到实践,在整整半个月的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍。
我做的是员工业绩统计信息管理系统,虽然是很简单的一个小的程序,但对我一个初学者来说却是一个很大的困难。
更加是第一次做这样的课程设计,所以第一天下午在机房做了一个下午却丝毫没有进展,最主要是不知从何开始,这个时候才知道上课老师们不厌其烦的教导是多么的宝贵,这个时候才后悔上课的时候没有认真的听讲。
可是现在一切都晚了,还好时间还算是充裕,只好拿出书本重新复习一下。
特别是函数调用和数组的部分,几乎是一片空白。
不过经过几天的努力,大体上把课本上的知识点看了一遍,知识点也都基本是撑握了,所以下一步就是开始正式的编程序了。
不过毕竟是个新手,还是不知如何下手,于是就在网上下了一篇类似的程序,经过仔细的研究,终于读懂了C
语言编程的基本过程和方法。
经过一波三折,终于开始正式编程。
编程是一件很枯燥很无聊的事情,但是出于完成作业,得到学分的压力,还
必须强迫自己坚持下去,按照老师所说的模块化思想,分部分的进行编写。
而且编程是一件高精度、模范化的事情,稍有疏乎都会影响全局,也可能因为某一处的小的错误而导致整个程序的无法运行。
无论如何是自己的劳动成果,是自己经过努力得到的成绩,同时也是学习C语言的一次实践作业,自己进步的证明。
通过这次课程设计,使我对C语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对C语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对C语言中经常出现的错误也不了解,通过实践的学习,我认识到学好计算机要重视实践操作,不仅仅是学习C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。
在课程设计过程中,收获知识,提高能力的同时,我也学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。
因此在以后的生活和学习的过程中,我一定会把课程设计的精神带到生活中,不畏艰难,勇往直前!。