


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、WORD格式引言通过大一下学期对 C语言的学习,了解到了很多 C语言的相关知识。学习的过程有很多困惑但是当自己能够独立的看懂,能够独立的完成一个简单的程序时, 心中就会收获无限的喜悦和成就感。我可以看懂一些简单的程序,编写一些简单的程序, 更多的是学会了一种思想编程,它让我去思考很多日常生活中的事物是怎样通过一个个小小的函数实现其功能的,激发我探究的兴趣,更让我认真学习C语言的程序设计。C 语言是在国内外广泛使用的一种计算机语言。C 语言简洁紧凑、使用灵活方便、运算符丰富、适用X围大、可移植性好。它既具有高级语言的特点, 又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序, 也
2、可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。在这次的课程设计中我将通过亲自设计程序,让自己熟悉 C语言操作,更熟练的掌握 C语句。初步体会编程的过程,在不断的调试中获得专业资料整理WORD格式最为完整的程序,为将来的程序深入学习打下根底和培养兴趣。1 功能简介和设计要求11程序功能简介可以向文件中录入、删除、添加、查询职工信息,也可以从文件中导出来浏览12程序设计要求职工信息包括职工号、*、性别、年龄、学历、工资、住址、电话等职工号不重复。试设计职工信息管理系统,使之能提供以下功能:系统以菜单方式工作职工信息录入功能 ( 职工信息用文件保存 ) 输入职工信息浏览功能输出查询信息功
3、能: ( 至少一种查询方式 )算法按职工号查询按学历查询按查询职工信息删除、添加功能专业资料整理WORD格式2专业资料整理WORD格式2 程序总体设计框图:输入函数用键盘输入职工信息写入函数: 将信息写入指定文本文件导出函数: 将信息导出放在构造数组em中:浏览函数将所有信息显示在屏幕上:按职工号查询输入职工号显示信息专业资料整理WORD格式显示主菜单:按查询查询函数:按学历查询输入名字显示信息输入学历显示信息专业资料整理WORD格式删除函数添加函数: 删除原有的职工信息: 添加新的职工信息专业资料整理WORD格式3 主要函数介绍主函数: main()显示系统工作菜单,罗列该系统所有功能。先声
4、明所有将会调用到的函数名。再运用选择函数switch 即可根据使用者所输入的功能代号进入对应的功能程序。亮点:定义一个全局变量*p 和全局变量。其中表示当前系统中职工人数,指向的地址,追踪人数变化,这样在专业资料整理WORD格式3专业资料整理WORD格式添加或者删除导致人数变化后, 浏览函数 display()能够正确显示出当前人数的职工信息。宏定义define N 指定首次输入的职工人数,可根据不同需要随时更改。开场显示菜单输入功能代码switch(n)n=1n=2n=3n=4n=5default调 用 输调 用 浏调 用 查调 用 删调 用 添退出入览函数询函数除函数加函数Exit(0)函
5、数Display()Search()Del()Add()Input()完毕输入函数: void input定义一个构造 struct employee 和数组 em【N】用来储存 N 个职工的所有信息职工号 em【i 】number、* em【i】name、性别 em【i 】sex、年龄 em【i】age、学历 em【i】xueli、工资 em【i 】wage、住址 em【i】address、em【i】telephone。通过 for 循环输入所有职工信息。用专业资料整理WORD格式4专业资料整理WORD格式printf 语句提示需要输入的内容,接着用scanf 语句输入相应内容。输入完毕后套
6、用保存函数saveN将所输入的信息写入指定文件。开场i=1=0i<n!=0Printf “提示需要输入的内容Scanf“输入信息i+Printf “创立完毕完毕保存函数: void save int m定义文件指针,用" 只写 " 翻开指定在盘的“d:/bbb.txt文本文件。首先用语句判断文件是否翻开成功,假设返回值不为,那么可继续下面操作。用循环通过语句将构造数组中的内容写入保存在盘的文本文件里面。形参 m指需要写入文件的职工人数。最后关闭文件。专业资料整理WORD格式5专业资料整理WORD格式开场fopen“ d:bbb.txt , “wexit=0! =0i=
7、0i<m=0!=0Printf 写入文件i+fclose fp完毕导出函数: void load(int b)首先判断 fopen"只读 " 翻开“d:/bbb.txt是否成功,假设其返回值不为零,继续下面操作。用for 循环通过 fscanf 语句将文件中的职工信息取出放到 em构造数组里面。形参b 指需要导出的职工人数。最后关闭文件。 图 同上。4 功能模块函数设计和调试4.1 功能模块函数设计专业资料整理WORD格式6专业资料整理WORD格式在整个程序的编译过程中,在调试的时候出现了好多的错误和警告,经过认真的分析和修改都可以解决,但是其中遇到最大的问题是所有程
8、序代码编完放在一起后,虽然能够成功运行,但是还是出现了一些小问题,就是在调用随机分配函数时职工的工号不随机分配,每次到了自动分配工号的时候都会跳过那一步就直接进展下一环节输入了。这使我百思不得其解,后来我在网上查询了好多资料后终于明白了,原来在使用随机分配函数时首先要调用随机分配函数所在的函数库,这样才能够正常使用。使用时如果职工人数发生变化,会导致文件后部出现乱码的现象。假设要使每次运行都正常,必须在人数改变后退出程序,修改宏定义 N 的值。这样很不方便,不能够连续运行。为解决这一大问题,最后我想到了定义一个全局变量,用来追踪最新的人数。特别是删除和添加这两个会导致人数变化的函数中,全局变量
9、 p 起了很大作用。经过一边修改一边调试,最终可以成功的用 p 串联整个函数,在连续运行时,总能根据最新的人数调用各个函数。另外在串联所有函数时,调试提示出错:有以下几个函数:“search;srand;display;basic;types解决:在函数名前加 void 指明类型。整个程序代码是分块书写的,每个函数都可以独立运行。只有输入函数查询菜单函数写得很顺利,一次性就能够成功运行,其他函数在调试过程中或多或少都出现了问题。保存函数 save()在调试和的时候都没有出现错误提示,但在运行的时候出现了问题。写入指定位置的文件,翻开后总会有乱码。与c 语专业资料整理WORD格式7专业资料整理W
10、ORD格式言课本上的例题对照后发现,在存储文件时一定要指定文件的存储类型。这样才能够正确的进展存储,不会出现乱码的现象。导出函数 load()遇到两个问题。 1 是为方便直接将保存函数复制过来进展修改时,忘了修改文件的翻开方式,不能运行。经过屡次检查后终于发现了,解决:将只写改为只读就ok 了。 2 是用 fscanf 语句时,漏写地址符。调试和都没问题,但点击运行后,总出现一个提示出错的蓝色小窗口。经过教师的提示发现了错误的所在。 解决方法:在 等之前加上取地址符就可以解决。在进展职工信息录入的时候一定要注意中文和英文之间的切换,不然的话会出现无法正确的输入和跳转现象。4.2
11、 程序调试4.2.1原始数据int num;char name10;char sex;int age;char xueli30;int wage;char addr30;long int tel;em100;/* 定义一个构造体 */void menu();void input();void save(int);void display();void del();void add();void search();void search_num();void search_xueli();void search_tel();void modify();/* 定义各函数 */void menu()
12、/* 菜单函数 */专业资料整理WORD格式8专业资料整理WORD格式printf(" C 语言程序设计 n");printf("n");printf("机设 1401 班 X凯凯 n");printf("n");printf("*职工信息管理 *n");printf("1.录入职工信息 ");printf("2.浏览职工信息 n");printf("3.查询职工信息 ");printf("4.删除职工信息 n");
13、printf("5.添加职工信息 ");printf("6.修改职工信息 n");printf("7.退出 n");printf("*谢谢使用 *n");printf("n");printf("n");void main()menu();/* 调用菜单函数 */int n,flag;char a;doprintf(" 请选择你需要操作的步骤(1-7):n");scanf("%d",&n);if(n>=1&&
14、n<=7)flag=1;break; elseflag=0;printf(" 您输入有误,请重新选择!");while(flag=0); while(flag=1) switch(n)case 1:printf("输入职工信息 n");printf("n");input();break;case 2:printf("浏览职工信息 n");printf("n");display();break;case 3:printf("按职工号查询职工信息 n");printf(&q
15、uot;n");search();break;case 4:printf("删除职工信息 n");printf("n");del();break;case 5:printf("添加职工信息 n");printf("n");add();break;case 6:printf("修改职工信息 n");printf("n");modify();break; case 7:exit(0);break;专业资料整理WORD格式9专业资料整理WORD格式default :bre
16、ak;getchar();printf("n");printf(" 是否继续进展 (y or n):n");scanf("%c",&a);if(a='y')flag=1;system("cls");/* 清屏 */menu(); /* 调用菜单函数 */printf(" 请再次选择你需要操作的步骤(1-6):n");scanf("%d",&n);printf("n"); else exit(0);void input()/*
17、 录入函数 */int i,m;printf(" 请输入需要创立信息的职工人数 (1-100):n"); scanf("%d",&m);for (i=0;i<m;i+)printf(" 职工号:");srand(int)time(0);emi.num=rand()%10000+20210000;if(emi.num!=emi-1.num)printf("%8d ",emi.num);printf("n");printf(" 请输入* :");scanf(&quo
18、t;%s",);getchar();printf(" 请输入性别 (f- 女m-男):");scanf("%c",&emi.sex);printf(" 请输入年龄 :");scanf("%d",&emi.age);printf(" 请输入学历 :");scanf("%s",emi.xueli);printf(" 请输入工资 :");scanf("%d",&emi.wage);printf
19、(" 请输入住址 :");scanf("%s",emi.addr);专业资料整理WORD格式10专业资料整理WORD格式printf(" 请输入 :");scanf("%ld",&emi.tel);printf("n");printf("n 创立完毕 !n");save(m);void save(int m)/* 保存文件函数 */int i;FILE*fp;if (fp=fopen("employee_list","wb")=
20、NULL)/* 创立文件并判断是否能翻开*/printf ("cannot open filen");exit(0);for (i=0;i<m;i+) /* 将内存中职工的信息输出到磁盘文件中去*/ if (fwrite(&emi,sizeof(struct employee),1,fp)!=1)printf("file write errorn");fclose(fp);int load()/* 导入函数 */FILE*fp;int i=0;if(fp=fopen("employee_list","rb&qu
21、ot;)=NULL)printf ("cannot open filen");exit(0);elsedofread(&emi,sizeof(struct employee),1,fp);i+;while(feof(fp)=0);fclose(fp);return(i-1);4.2.2调试过程专业资料整理WORD格式11专业资料整理WORD格式5 设计心得与总结:经过一学期的 C语言学习,我们掌握了 C 语言的根底知识,能够读懂别人用 c 语言设计编译的程序。平时的程序设计大多是在书上看到的都是以书面的形式出现,虽然有所接触,但都不完全。而这周的课程设计,专业资料整
22、理WORD格式12专业资料整理WORD格式却让我们完完全全用自己所学到的知识编写了一个完整的系统程序。这是一个新的挑战,也是一种新的学习。我们组选择的题目是职工信息管理系统。这需要我们自己设计一个系统,可以输入信息,保存到文件里,再从文件里调出来,使之显示在屏幕上,进展删除、添加、查询等对信息的修改。初看到这个题目觉得很简单,但当我做到电脑前准备开场编写代码的时候才发现无从下手。通过去图书馆查找程序设计相关的书籍,和上网参考前人编写的类似程序,我脑中才有了一个大概的方向。慢慢开场着手写下了第一段输入函数的代码,因为这是我们平时课堂上用的最多最熟的 printf 语句,写了很长一大段,调式运行竟然成功了,顿时信心倍增。于是我开场迫不及待的开场写第二段保存函数。我记得第一天下来,我只写好了这两个函数,但还是很开心,因为这是我编的第一个小系统的成功的开场!接下来的几天都在宿舍整个下午的对着电脑不断的编译、调试、修改,每次编好一个能够成功运行的程序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农业经济合同的订立教学设计-2025-2026学年中职专业课-农业经营与管理-农林类-农林牧渔大类
- 北京链家岗前新人训考试及答案解析
- 中考体育模拟试题及答案
- 公共预算考试试题及答案
- 发票知识竞赛题及答案
- 2025年幼师考试题及答案
- 儿童康复治疗自测试题(含答案)
- 2025年乡村医生考试题库及答案解析
- 计算机网络考试题及答案
- 2025年院前急救、卒中、胸痛、创伤中心及“两病防治”培训试题及答案
- 2025年高中学业水平合格性考试政治模拟试卷试题(含答案解析)
- 2024年食品安全抽检监测技能大比武理论考试题库(含答案)
- 全国质量奖现场汇报材料(生产过程及结果)课件
- 政策评价-卫生政策分析课件
- 短歌行(优质课一等奖).课件
- 北师大版小学数学五年级上册第一单元《练习一》同步练习带答案
- 球墨铸铁管规格尺寸理论重量表
- 饮食习惯与健康
- 华为人力资源管理纲要2.0
- 第二章 园艺设施的类型、结构、性能及应用
- 银行卡收单外包服务协议范本
评论
0/150
提交评论