1、郑州轻工业学院实 训 报 告实训名称: 基本编程技能实训 成 绩: 时间: 2017 年 6 月 26 日至 2017 年 10 月 20 日一、题目1、电话簿管理系统2、商品销售管理系统3、基于内存的学籍管理系统(以 windows 系统实现为主,尝试 Linux 平台下的程序实现)二、实训的性质和任务1、巩固和强化学生的程序设计基本知识和基本技能,尤其是 C 语言的基本数据类型、构造类型、函数、指针、文件等等方面的基本知识和技能。2、培养和训练学生综合利用所学基本知识和基本技能进行小型应用程序开发的技能。3、培养学生适应岗位需要,独立分析问题、解决问题的基本能力,以及团队合作精神。1三、实
2、训的基本要求通过本次实训,学生应达到以下几个方面的要求:1、素质要求以积极认真的态度对待本次实训,遵章守纪,团队协作。善于发现问题,分析问题,解决问题,努力培养自己的独立工作能力。2、知识要求熟练账务 C 语言的集成开发环境的使用,以及 C 语言的数据类型、语法、基本结构等。熟练掌握 C 语句的功能、用法以及函数的调用使用和头文件的使用等。3、能力要求学生应具有一定的项目分析能力、任务分解能力、组织实施能力以及理论练习实际应用的能力。学生应具有一定的查阅教材、各类相关资料及工具书的能力,进而养成自我学习的习惯。通过本次实训使学生基本能够把握 C 语言的精髓,并能够熟练使用 C 语言编写简单的程
3、序和通过实际的分析、理论练习实际能够编制出现实生活或模拟现实生活中简单的、常见的系统。四、实训内容及要求天/日期任务描述 通过标准第 1 天 说明系统功能,明确课题任务与涉及的要求、分配具体的任务。分析实训内容,讲解相关知识,引导学生入门。学生理解题目第 2 天 学生具体分析第一个实训题目,明确思路和任务,并可以查询相关书籍、资料,设计出每一个模块的流程图;理解并设计相关的数据类型定义。画出相关流程图第 3 天 编写 printheader()、printdata()两个函数 代码通过第 4 天 编写 Disp()、stringinput()两个函数 代码通过第 5 天 编写 Locate()
4、、Add()两个函数,完成定位和添加功能 代码通过第 6 天 编写 Quran() 、Del()两个函数,完成查询和删除功能 代码通过第 7 天 编写 Insert() 、Modify()函数,实现插入和修改功能 代码通过第 8 天 编写 Save() 、SelectSort()两个函数,实现存盘和排序功能同上第 9 天 编写函数 main()函数,整合前面的功能模块,完成整个系统成功运行系统第 10天学生具体分析第二个实训题目,明确思路和任务,并可以查询相关书籍、资料,设计出每一个模块的流程图;理解并设计相关的数据类型定义。画出相关流程图第 11天建立录入函数系统,小规模数据实验,录入字符,
5、数字,字母,以及三部分内容的混合形式代码通过第 12天对录入的数据实现修改,还原,删除 通过代码测试第 13天用户名的增加,新建,删除用户 画出流程图2第 14天数据的查询 ,数据查询函数的应用,小样本数据实验 代码通过第 15天以链表形式来保存数据,链表结构体的混合使用 界面建立完毕第 16天掌握内存函数 malloc(size), calloc()函数的使用 内存空间分配通过第 17天实现文件的读取操作 代码通过第 18天实现查询和更新功能 代码通过第 19天实现统计功能 代码通过第 20天答辩 按照要求完成任务,阐述清楚。第 21天撰写实训报告 格式满足相关文档要求五、考核指标及成绩评定
6、实训成绩评定方法: 平时成绩(20%)+验收与答辩(50%)+实训报告(30%)=总评成绩验收与答辩成绩评定标准:1、全部完成 90-1002、主要功能完成 70-903、部分功能完成 60-704、少部分完成 40-605、几乎没做 0-40完 成 期 限: 2017 年 10 月 20 日 指 导 教 师 签 名 : 2017 年 6 月 26 日目 录1 实训简介431.1 实训任务41.2 题目简介41.3 主要内容41.4 基本要求42 总体设计流程5 2.1 总体设计思路52.2 设计流程52.3 包含的模块53 系统详细设计63.1 主函数63.2 各功能模块设计74 设计的实现
7、95 总结116 参考文献1241 实训简介1.1 实训任务1、巩固和强化学生的程序设计基本知识和基本技能,尤其是 C 语言的基本数据类型、构造类型、函数、指针、文件等等方面的基本知识和技能。2、培养和训练学生综合利用所学基本知识和基本技能进行小型应用程序开发的技能。3、培养学生适应岗位需要,独立分析问题、解决问题的基本能力,以及团队合作精神。1.2题目简介电话簿管理系统是具有数据插入、更新、删除、显示和查询功能的电话簿管理程序。1.3主要内容(1)数据包括姓名、工作单位、电话号码和 E-MAIL 地址等。(2)可对记录中的姓名和电话号码进行更新。(3)可增加和删除记录。(4)可显示所有的保存
8、的记录。(5)可按姓名或电话号码进行查询。1.4基本要求通过本次实训,应达到以下几个方面的要求:1、素质要求以积极认真的态度对待本次实训,遵章守纪,团队协作。善于发现问题,分析问题,解决问题,努力培养自己的独立工作能力。2、知识要求熟练 C 语言的集成开发环境的使用,以及 C 语言的数据类型、语法、基本结构等。熟练掌握 C 语句的功能、用法以及函数的调用使用和头文件的使用等。3、能力要求应具有一定的项目分析能力、任务分解能力、组织实施能力以及理论练习5显示一系列功能选项开始输入 n,判断 n 是否是 16根据 n 的值调用各功能模块函数结束实际应用的能力。学生应具有一定的查阅教材、各类相关资料
9、及工具书的能力,进而养成自我学习的习惯。通过本次实训使学生基本能够把握 C 语言的精髓,并能够熟练使用 C 语言编写简单的程序和通过实际的分析、理论练习实际能够编制出现实生活或模拟现实生活中简单的、常见的系统。2 总体设计流程2.1 总体设计思路根据上面的要求可知,系统有菜单选择、数据输入、数据查找、数据更新、数据的存储等功能。2.2设计流程 图 2-1 主程序流程图2.3 包含的模块可以将系统设计分为四大模块,即显示、查找、更新(包括增加和删除)和退出,如图 2-2 所示。其中,主要功能是显示、查询和更新三个模块。6通 讯 录 管 理 系 统 显 示 查 询 更 新 退 出 图 2-2 系统
10、功能模块图3 系统详细设计3.1 主函数主函数设计比较简洁,只提供输入、功能处理和输出部分得函数调用。其中各功能模块采用菜单方式选择。程序如下:int main()struct person a100;int A100,i,X;for(i=0;i|n“);printf(“| 0 退出销售管理系统 |n“);18printf(“| 1 销售员信息录入 |n“);printf(“| 2 销售员信息显示 |n“);printf(“| 3 销售额信息保存 |n“);printf(“| 4 产品总销售额由大到小排序 |n“);printf(“| 5 统计产品销售额信息 |n“);printf(“| 6
11、插入销售员及其信息 |n“);printf(“| 7 删除销售员及其信息 |n“);printf(“|name,p-num,p-sailerl,p-sailerm);printf(“nn“);void save ():销售员信息保存函数void save ()FILE *fp;int i;fp=fopen(“seller.txt“,“w“);for(i=0;in;i+)fwrite(system(“cls“);printf(“nn“);printf(“保存成功!n“);printf(“nn“);void sort():总销售额信息排序函数void sort()22struct seller t
12、emp;int i,j;for(i=0;in;i+)selleri.sum=selleri.sailerl+selleri.sailerm;for(j=0;jn-1;j+)for(i=0;in-1-j;i+)if(selleri.sumselleri+1.sum)temp=selleri;selleri=selleri+1;selleri+1=temp;system(“cls“);printf(“姓名 工号 产品一销售额 产品二销售额 产品总销售额:n“);for(i=0;in;i+)printf(“n%st%st%dt%8dt%8dn“,selleri.name,selleri.num,se
13、lleri.sailerl,selleri.sailerm,selleri.sum);void statistics_sailer ():统计产品销售额信息函数void statistics_sailer ()int i,sum1,sum2,sum;sum1=0;sum2=0;sum=0;for(i=0;in;i+)sum1+=selleri.sailerl;23sum2+=selleri.sailerm;sum=sum1+sum2;system(“cls“);printf(“产品一的销售额:%dn“,sum1);printf(“产品二的销售额:%dn“,sum2);printf(“产品总的销
14、售额:%dn“,sum);void insert():插入数据函数void insert()char ch;doprintf(“ntt 输入新插入销售员信息n“);printf(“n 输入销售员姓名:“);fflush(stdin);gets(sellern.name);printf(“n 输入销售员工号:“);scanf(“%s“,sellern.num);fflush(stdin);printf(“n 输入产品一销售额:“);fflush(stdin);scanf(“%d“,printf(“n 输入产品二销售额:“);fflush(stdin);scanf(“%d“,printf(“nn“
15、);24n=n+1;sort();printf(“是否继续输入?(Y/N)“);ch=getch();system(“cls“);while(ch!=N);void del():删除数据函数void del()char seller_name20;int i,j;printf(“输入要删除销售员的姓名:“);fflush(stdin);scanf(“%s“,seller_name);for(i=0;in;i+)if(strcmp(seller_name,selleri.name)=0)for(j=i;jn;j+)selleri=selleri+1;n=n-1;break;save();syst
16、em(“cls“);254 设计的实现1、主菜单销售员信息输入图 4-12、销售员信息显示图 4-23、销售额信息保存26图 4-34、产品销售额有大到小排序图 4-45、统计产品销售额信息27图 4-56、插入销售员及其信息图 4-6287、删除销售员及其信息图 4-75 总结在这次实训中,让我感觉到了许多以前从未有过的经历,实训过程中曾经想放弃过,因为实在太复杂,感觉太困难,但经过自己的努力和老师耐心指导,最终我们还是完成了设计任务,看到程序运行的正确结果,内心充满无限的辛慰和自豪。虽然不是很优秀,但是还是有一种充实的感觉。 总之,编程尤其是调试是一项细致深入的工作,需要下工夫、动脑子、善于积累经验,只有这样不断的努力,锻炼自己,才能在这方面不断提高。同时,我也深深地体会到,只有把理论基础打好,在实践中才能得心应手。6 参考文献1 甘勇.语言程序设计. 河南科学技术出版社. 2016 年2谭浩强. C 程序设计(第四版) 清华大学出版社. 20085 Stephen Prata.C Primer Plus (第 6 版) 中文版. 人民邮电出版社. 2016 年29实训成绩评定表成绩 采用五级分制:优、良、中、及格、不及格