实训名称: 基本编程技能实训
成 绩:
时间: 2017 年 6 月 26 日至 2017 年 10月 20日
一、题目
1、电话簿管理系统 2、商品销售管理系统
3、基于内存的学籍管理系统(以windows系统实现为主,尝试Linux平台下的程序实现)
二、实训的性质和任务
1、巩固和强化学生的程序设计基本知识和基本技能,尤其是C语言的基本数据类型、构造类型、函数、指针、文件等等方面的基本知识和技能。
2、培养和训练学生综合利用所学基本知识和基本技能进行小型应用程序开发的技能。 3、培养学生适应岗位需要,独立分析问题、解决问题的基本能力,以及团队合作精神。
三、实训的基本要求
通过本次实训,学生应达到以下几个方面的要求: 1、素质要求
以积极认真的态度对待本次实训,遵章守纪,团队协作。善于发现问题,分析问题,解决问题,努力培养自己的独立工作能力。 2、知识要求
熟练账务C语言的集成开发环境的使用,以及C语言的数据类型、语法、基本结构等。熟练掌握C语句的功能、用法以及函数的调用使用和头文件的使用等。 3、能力要求
学生应具有一定的项目分析能力、任务分解能力、组织实施能力以及理论练习实际应用的能力。
学生应具有一定的查阅教材、各类相关资料及工具书的能力,进而养成自我学习的习惯。通过本次实训使学生基本能够把握C语言的精髓,并能够熟练使用C语言编写简单的程序和通过实际的分析、理论练习实际能够编制出现实生活或模拟现实生活中简单的、常见的系统。
四、实训内容及要求
天/日期 任务描述 通过标准 第1天 说明系统功能,明确课题任务与涉及的要求、分配具体的学生理解题目 任务。分析实训内容,讲解相关知识,引导学生入门。 第2天 学生具体分析第一个实训题目,明确思路和任务,并可以画出相关流程图 查询相关书籍、资料,设计出每一个模块的流程图;理解并设计相关的数据类型定义。 第3天 编写printheader()、printdata()两个函数 第4天 编写Disp()、stringinput()两个函数 第5天 编写Locate()、Add()两个函数,完成定位和添加功能 代码通过 代码通过 代码通过 第6天 编写Quran()、Del()两个函数,完成查询和删除功能 代码通过 第7天 编写Insert()、Modify()函数,实现插入和修改功能 代码通过 第8天 编写Save()、SelectSort()两个函数,实现存盘和排同上 序功能 第9天 编写函数main()函数,整合前面的功能模块,完成整个系成功运行系统 统 第10天 学生具体分析第二个实训题目,明确思路和任务,并可以画出相关流程图 查询相关书籍、资料,设计出每一个模块的流程图;理解并设计相关的数据类型定义。 第11天 建立录入函数系统,小规模数据实验,录入字符,数字,代码通过 字母,以及三部分内容的混合形式 第12天 对录入的数据实现修改,还原,删除 第13天 用户名的增加,新建,删除用户 第14天 数据的查询 ,数据查询函数的应用,小样本数据实验 第15天 以链表形式来保存数据,链表结构体的混合使用 通过代码测试 画出流程图 代码通过 界面建立完毕 第16天 掌握内存函数malloc(size), calloc()函数的使用 第17天 实现文件的读取操作 第18天 实现查询和更新功能 第19天 实现统计功能 第20天 答辩 第21天 撰写实训报告 内存空间分配通过 代码通过 代码通过 代码通过 按照要求完成任务,阐述清楚。 格式满足相关文档要求 五、考核指标及成绩评定
实训成绩评定方法:
平时成绩(20%)+验收与答辩(50%)+实训报告(30%)=总评成绩 验收与答辩成绩评定标准: 1、全部完成90-100 2、主要功能完成70-90 3、部分功能完成60-70 4、少部分完成40-60 5、几乎没做0-40
完 成 期 限: 2017年10月20日 指导教师签名:
2017年 6 月 26 日
目 录
1 实训简介·····································································4 实训任务······························································4
题目简介······························································4 主要内容······························································4 基本要求······························································4
2 总体设计流程·······························································5 总体设计思路························································5 设计流程······························································5 包含的模块···························································5 3 系统详细设计·······························································6
主函数········································································6 各功能模块设计····························································7
4 设计的实现··································································9 5 总结···········································································11 6 参考文献·····································································12
1 实训简介
1.1 实训任务
1、巩固和强化学生的程序设计基本知识和基本技能,尤其是C语言的基本数据类型、构造类型、函数、指针、文件等等方面的基本知识和技能。
2、培养和训练学生综合利用所学基本知识和基本技能进行小型应用程序开
发的技能。
3、培养学生适应岗位需要,独立分析问题、解决问题的基本能力,以及团队合作精神。
题目简介
电话簿管理系统是具有数据插入、更新、删除、显示和查询功能的电话簿管
理程序。
主要内容
(1)数据包括姓名、工作单位、电话号码和E-MAIL地址等。 (2)可对记录中的姓名和电话号码进行更新。 (3)可增加和删除记录。 (4)可显示所有的保存的记录。 (5)可按姓名或电话号码进行查询。
基本要求
通过本次实训,应达到以下几个方面的要求: 1、素质要求
以积极认真的态度对待本次实训,遵章守纪,团队协作。善于发现问题,分
析问题,解决问题,努力培养自己的独立工作能力。
2、知识要求
熟练C语言的集成开发环境的使用,以及C语言的数据类型、语法、基本结构等。熟练掌握C语句的功能、用法以及函数的调用使用和头文件的使用等。
3、能力要求
应具有一定的项目分析能力、任务分解能力、组织实施能力以及理论练习实际应用的能力。
学生应具有一定的查阅教材、各类相关资料及工具书的能力,进而养成自我学习的习惯。通过本次实训使学生基本能够把握C语言的精髓,并能够熟练使用C语言编写简单的程序和通过实际的分析、理论练习实际能够编制出现实生活或模拟现实生活中简单的、常见的系统。
2 总体设计流程
2.1 总体设计思路
根据上面的要求可知,系统有菜单选择、数据输入、数据查找、数据更新、数据的存储等功能。
设计流程
开始 显示一系列功能选输入n,判断n是否是1~6 根据n的值调用各功能模块函数 结束 图2-1 主程序流程图
包含的模块
可以将系统设计分为四大模块,即显示、查找、更新(包括增加和删除)和退出,如图2-2所示。其中,主要功能是显示、查询和更新三个模块。
通讯录管理系统 显示 查询 更新 退出 图2-2 系统功能模块图
3 系统详细设计
3.1 主函数
主函数设计比较简洁,只提供输入、功能处理和输出部分得函数调用。其中各功能模块采用菜单方式选择。
程序如下: int main() {
struct person a[100]; int A[100],i,X; for(i=0;i<100;i++) A[i]=i; do {
printf(\"*************************菜单
************************\\n\");
printf(\" 请选择要进行的操作\\n\"); printf(\" 1 : 输入联系人信息\\n\");
printf(\" 2 : 分屏显示所有联系人信息\\n\"); printf(\" 3 : 查找联系人信息\\n\"); printf(\" 4 : 删除联系人信息\\n\"); printf(\" 5 : 增加联系人信息\\n\");
printf(\" 6 : 修改联系人信息\\n\"); printf(\" 0 : 退出\\n\");
printf(\"*************************菜单
************************\\n\");
}
}
while(X!=0);
scanf(\"%d\ switch(X) {
case 1: fun1(a,A);break; case 2: fun2(a,A);break; case 3: fun3(a,A);break; case 4: fun4(a,A);break; case 5: fun5(a,A);break;
case 6: fun6(a,A);break; }
3.2 各功能模块设计
★数据结构:
通讯录的各类数据信息均用字符型数组,用结构体的形式,把各个信息
作为结构的成员。结构体的变量可以是指针类型,结构体的类型如下:
struct person {
char name[20]; char WP[20]; char PN[20]; char MPN[20]; char FZ[20]; char EM[20];
char QQ[20];‘’‘’‘’
};
★fun1 (struct person b[100],int B[100]):输入联系人信息函数。本函数通过do while 循环语句进行对联系人各类信息的输入。
★void fun2 (struct person F[100],int h[100]):分屏显示联系人信息函数。利用if else语句和嵌套for语句作为循环体通过结构体数组来进行对存储的联系人的各类信息分屏显示。定义一个输出结构数组,定义一个数p,k=0,分屏显示所有联系人,十个联系人为一页,t+1为页数,判断如果t为0,运用一个for循环输出所有联系人信息,则所有数据在一页显示,否则运用一个双重循环,第一层循环为显示的页数循环,第二层循环为输出每页的联系人信息,在显示完一页之后,输入p,如果P为1,则运用system(“cls”),清除屏幕,运用循环操作继续执行显示操作,直到k ★void fun4(struct person c[100],int k[100]):联系人信息删除函数。通过for语句作为本函数的循环体,由if来判断是否删除联系人信息。 ★void fun5(struct person b[100],int B[100]):联系人信息添加函数。本函数通过do while 循环语句进行对联系人各类信息的添加。 ★void fun6(struct person T[100],int r[100]):修改联系人信息函数。通过for语句作为本函数的循环体,来进行联系人信息的修改。 4 设计的实现 1、主菜单输入联系人信息 图4-1 2、显示所有联系人信息 图4-2 3、查找联系人 图4-3 4、删除联系人 图4-4 5、添加联系人 图4-5 6、修改联系人信息 图4-6 5 总结 在这次实训中,让我感觉到了许多以前从未有过的经历,实训过程中曾经想放弃过,因为实在太复杂,感觉太困难,但经过自己的努力和老师耐心指导,最终我们还是完成了设计任务,看到程序运行的正确结果,内心充满无限的辛慰和自豪。虽然不是很优秀,但是还是有一种充实的感觉。? 总之,编程尤其是调试是一项细致深入的工作,需要下工夫、动脑子、善于积累经验,只有这样不断的努力,锻炼自己,才能在这方面不断提高。同时,我也深深地体会到,只有把理论基础打好,在实践中才能得心应手。 6 参考文献 [1]?甘勇.《C语言程序设计》. 河南科学技术出版社. 2016年 [2]谭浩强.《C程序设计(第四版)》.清华大学出版社. 2008 [5] ?.《C Primer Plus (第6版) 中文版》. 人民邮电出版社. 2016年 目 录 1 实训简介·····································································14 实训任务······························································14 题目简介······························································14 主要内容······························································14 基本要求······························································14 2 总体设计流程·······························································15 总体设计思路························································15 设计流程······························································15 包含的模块···························································16 3 系统详细设计·······························································16 主函数········································································16 各功能模块设计····························································19 4 设计的实现··································································24 5 总结···········································································27 6 参考文献·····································································28 1 实训简介 实训任务 1、巩固和强化学生的程序设计基本知识和基本技能,尤其是C语言的基本数据类型、构造类型、函数、指针、文件等等方面的基本知识和技能。 2、培养和训练学生综合利用所学基本知识和基本技能进行小型应用程序开发的技能。 3、培养学生适应岗位需要,独立分析问题、解决问题的基本能力,以及团队合作精神。 题目简介 商品销售管理系统是具有数据插入、更新、删除、显示和查询功能的商品销 售管理程序。 主要内容 1)销售员的代号 2)产品的代号 3)这种产品的当天的销售额 4)输出统计报表 基本要求 通过本次实训,应达到以下几个方面的要求: 1、素质要求 以积极认真的态度对待本次实训,遵章守纪,团队协作。善于发现问题,分 析问题,解决问题,努力培养自己的独立工作能力。 2、知识要求 熟练C语言的集成开发环境的使用,以及C语言的数据类型、语法、基本结构等。熟练掌握C语句的功能、用法以及函数的调用使用和头文件的使用等。 3、能力要求 应具有一定的项目分析能力、任务分解能力、组织实施能力以及理论练习实际应用的能力。 学生应具有一定的查阅教材、各类相关资料及工具书的能力,进而养成自我 学习的习惯。通过本次实训使学生基本能够把握C语言的精髓,并能够熟练使用C语言编写简单的程序和通过实际的分析、理论练习实际能够编制出现实生活或模拟现实生活中简单的、常见的系统。 2 总体设计流程 2.1 总体设计思路 根据上面的要求可知,系统有菜单选择、数据输入、数据查找、数据更新、数据的存储等功能。 设计流程 输入记录 保存到文件 读取文件 每位销售员的销售每种产品的销售额 按销售额对销售员 显示便条清单 退出管理 图2-1 包含的模块 可以将系统设计分为八大模块: 即主界面显示:完成系统菜单的显示;功能选择模块:根据用户的选择完成相应的功能; 销售管理信息的输入:完成用户从界面输入销售管理信息,保存入系统的功能; 销售信息的修改:完成用户从界面输入销售管理信息,在系统中查询定位,并将录入的数据保存入系统的功能; 销售信息的查询:完成用户从界面输入的条件,在系统中查询符合条件的销售信息,并在界面上显示的功能; 销售管理信息的导入:完成用户从界面输入需要导入的文件路径名称,读取该文件的内容,保存入系统,并在界面上显示导入内容的功能; 销售管理信息的导出:完成用户从界面输入需要导出的文件路径名称,将系统中销售管理信息保存入文件中; 销售管理信息的删除:完成用户从界面输入需要的销售管理信息的姓名,并将其从系统中删除。 如图2-2所示。其中,主要功能是显示、查询和更新三个模块。 3 系统详细设计 3.1 主函数 主函数设计比较简洁,只提供输入、功能处理和输出部分得函数调用。其中各功能模块采用菜单方式选择。 程序如下: int main () { void insert(); void del(); void input(); void show(); void save(); void sort(); void statistics_sailer(); int i; { printf(\"----------------------------------\\n\"); printf(\"| 销售管理系统 |\\n\"); printf(\"|>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>|\\n\"); while (1) printf(\"| 0退出销售管理系统 |\\n\"); printf(\"| 1销售员信息录入 |\\n\"); printf(\"| 2销售员信息显示 |\\n\"); printf(\"| 3销售额信息保存 |\\n\"); printf(\"| 4产品总销售额由大到小排序 |\\n\"); printf(\"| 5统计产品销售额信息 |\\n\"); printf(\"| 6插入销售员及其信息 |\\n\"); printf(\"| 7删除销售员及其信息 |\\n\"); printf(\"|<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<|\\n\"); printf(\"| 请选择系统的功能项 |\\n\"); printf(\"----------------------------------\\n\"); scanf(\"%d\ switch(i) { case 0: printf(\"o 退出销售管理系统 o\\n\"); exit(0);break; case 1: printf(\"-----销售员信息录入-----\\n\"); input();break; case 2: printf(\"-----销售员信息显示-----\\n\"); show();break; case 3: printf(\"-----销售额信息保存-----\\n\"); save();break; case 4: printf(\"-----总销售额信息排序-----\\n\"); sort();break; case 5: printf(\"-----统计产品销售额信息-----\\n\"); statistics_sailer();break; case 6: printf(\"-----插入销售员及其信息-----\\n\"); case 7: printf(\"-----删除销售员及其信息-----\\n\"); insert();break; del();break; default:printf(\"输入错误,请重新选择!!\"); } break; } } 销售管理 销 主 界 面 显 示 售 功 能 选 择 管 理 信 息 输 入 销 售 管 理 信 息 修 改 销 售 管 理 信 息 查 询 销 售 管 理 信 息 导 入 销 售 管 理 信 息 导 出 销 售 管 理 信 息 删 除 图2-2 3.2 各功能模块设计 ★数据结构: 销售管理系统的各类数据信息均用字符型数组,用结构体的形式,把各个信息作为结构的成员。结构体的变量可以是指针类型,结构体的类型如下: struct seller { char num[10]; char name[20]; int sailerl; int sailerm; int sum; }seller[200]; ★void input(): 销售员信息输入函数 void input() { int i; printf(\"请输入销售员个数\\n\"); scanf(\"%d\ for(i=0;i printf(\"输入销售员工号:\\n\"); scanf(\"%s\ printf(\"请分别输入产品一和产品二的销售额:\\n\"); scanf(\"%d%d\ } system(\"cls\"); } ★void show (): 销售员信息显示函数 void show () { struct seller *p; system(\"cls\"); printf(\"姓名 工号 产品一销售额 产品二销售额:\\n\"); for(p=seller;p } ★void save (): 销售员信息保存函数 void save () { FILE *fp; int i; fp=fopen(\"\ for(i=0;i system(\"cls\"); printf(\"\\n\\n\"); printf(\"保存成功!\\n\"); printf(\"\\n\\n\"); } ★void sort(): 总销售额信息排序函数 void sort() { struct seller temp; int i,j; for(i=0;i for(j=0;j temp=seller[i]; seller[i]=seller[i+1]; seller[i+1]=temp; printf(\"姓名 工号 产品一销售额 产品二销售额 产品 总销售额:\\n\"); for(i=0;i eller[i].sailerm,seller[i].sum); } ★void statistics_sailer (): 统计产品销售额信息函数 void statistics_sailer () { int i,sum1,sum2,sum; sum1=0;sum2=0;sum=0; for(i=0;i system(\"cls\"); sum1+=seller[i].sailerl; sum2+=seller[i].sailerm; sum=sum1+sum2; printf(\"产品一的销售额:%d\\n\ printf(\"产品二的销售额:%d\\n\ printf(\"产品总的销售额:%d\\n\ } ★void insert(): 插入数据函数 void insert() { char ch; do { printf(\"\\n\\输入新插入销售员信息\\n\"); printf(\"\\n输入销售员姓名:\"); fflush(stdin); gets(seller[n].name); printf(\"\\n输入销售员工号:\"); } while(ch!='N'); } ★void del(): 删除数据函数 void del() { char seller_name[20]; scanf(\"%s\ fflush(stdin); printf(\"\\n输入产品一销售额:\"); fflush(stdin); scanf(\"%d\ printf(\"\\n输入产品二销售额:\"); fflush(stdin); scanf(\"%d\ printf(\"\\n\\n\"); n=n+1; sort(); printf(\"是否继续输入?(Y/N)\"); ch=getch(); system(\"cls\"); int i,j; printf(\"输入要删除销售员的姓名:\"); fflush(stdin); scanf(\"%s\ for(i=0;i for(j=i;j n=n-1; } break; save(); } system(\"cls\"); 4 设计的实现 1、主菜单销售员信息输入 图4-1 2、销售员信息显示 图4-2 3、销售额信息保存 图4-3 4、产品销售额有大到小排序 图4-4 5、统计产品销售额信息 图4-5 6、插入销售员及其信息 图4-6 7、删除销售员及其信息 图4-7 5总结 在这次实训中,让我感觉到了许多以前从未有过的经历,实训过程中曾经想 放弃过,因为实在太复杂,感觉太困难,但经过自己的努力和老师耐心指导,最终我们还是完成了设计任务,看到程序运行的正确结果,内心充满无限的辛慰和自豪。虽然不是很优秀,但是还是有一种充实的感觉。? 总之,编程尤其是调试是一项细致深入的工作,需要下工夫、动脑子、善于积累经验,只有这样不断的努力,锻炼自己,才能在这方面不断提高。同时,我也深深地体会到,只有把理论基础打好,在实践中才能得心应手。 6参考文献 [1]?甘勇.《C语言程序设计》. 河南科学技术出版社. 2016年 [2]谭浩强.《C程序设计(第四版)》.清华大学出版社. 2008 [5] ?.《C Primer Plus (第6版) 中文版》. 人民邮电出版社. 2016年 实训成绩评定表 成绩 采用五级分制:优、良、中、及格、不及格 指导教师评语: 签 名: 年 月 日 因篇幅问题不能全部显示,请点此查看更多更全内容