1、引言经过大一下学期对C语言学习,了解到了很多C语言相关知识。学习过程有很多迷惑不过当自己能够独立看懂,能够独立完成一个简单程序时,心中就会收获无限喜悦和成就感。我能够看懂部分简单程序,编写部分简单程序,更多是学会了一个思想编程,它让我去思索很多日常生活中事物是怎样经过一个个小小函数实现其功效,激发我探究爱好,更让我认真学习C语言程序设计。C语言是在中国外广泛使用一个计算机语言。C语言简练紧凑、使用灵活方便、运算符丰富、适用范围大、可移植性好。它既含有高级语言特点,又含有汇编语言特点。它能够作为系统设计语言,编写工作系统应用程序,也能够作为应用程序设计语言,编写不依靠计算机硬件应用程序。在这次课
2、程设计中我将经过亲自设计程序,让自己熟悉C语言操作,更熟练掌握C语句。初步体会编程过程,在不停调试中取得最为完整程序,为未来程序深入学习打下基础和培养爱好。1 功效介绍和设计要求11程序功效介绍能够向文件中录入、删除、添加、查询职员信息,也能够从文件中导出来浏览12程序设计要求职员信息包含职员号、姓名、性别、年纪、学历、工资、住址、电话等(职员号不反复)。试设计职员信息管理系统,使之能提供以下功效:系统以菜单方法工作职员信息录入功效(职员信息用文件保留)输入职员信息浏览功效输出查询信息功效:(最少一个查询方法)算法按职员号查询按学历查询 按电话查询职员信息删除、添加功效2 程序总体设计框图输入
3、函数 :用键盘输入职员信息写入函数:将信息写入指定文本文件导出函数:将信息导出放在结构数组em中 浏览函数 :将全部信息显示在屏幕上按职员号查询 :输入职员号显示信息 显示主菜单查询函数按电话查询 :输入名字显示信息按学历查询 :输入学历显示信息删除函数:删除原有职员信息添加函数:添加新职员信息3 关键函数介绍主函数:main()显示系统工作菜单,罗列该系统全部功效。先申明全部将会调用到函数名。再利用选择函数switch即可依据使用者所输入功效代号进入对应功效程序。亮点:定义一个全局变量*p和全局变量。其中表示目前系统中职员人数,指向地址,追踪人数改变,这么在添加或删除造成人数改变后,浏览函数
4、display()能够正确显示出目前人数职员信息。宏定义defineN指定首次输入职员人数,可依据不一样需要随时更改。显示菜单开始输入功效代码switch(n) n=1 n=2 n=3 n=4 n=5 default退出Exit(0)调用添加函数Add()调用查询函数Search()调用删除函数Del()调用浏览函数Display()调用输入函数Input()结束输入函数:void input()定义一个结构struct employee和数组em【N】用来储存N个职员全部信息(职员号em【i】number、姓名em【i】name、性别em【i】sex、年纪em【i】age、学历em【i】xu
5、eli、工资em【i】wage、住址em【i】address、电话em【i】telephone)。经过for循环输入全部职员信息。用printf语句提醒需要输入内容,接着用scanf语句输入对应内容。输入完成后套用保留函数save(N)将所输入信息写入指定文件。开始i=1Printf(“创建完成”)结束i+Printf(“提醒需要输入内容”)Scanf(“输入信息”)in =0!=0保留函数:voidsave(intm)定义文件指针,用只写打开指定在盘“d:/bbb.txt”文本文件。首先用语句判定文件是否打开成功,若返回值不为,则可继续下面操作。用循环经过语句将结构数组中内容写入保留在盘文本
6、文件里面。形参m指需要写入文件职员人数。最终关闭文件。开始fopen(“d:bbb.txt”, “w”)exit=0Printf写入文件i=1&n=7) flag=1; break; else flag=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
7、(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;default :break; getchar(); printf(n); printf(是否继续进行(y or n):n); scanf(%c,&a); if(a=y) flag=1; system(cls); /*清屏*/ m
8、enu(); /*调用菜单函数*/ printf(请再次选择你需要操作步骤(1-6):n); scanf(%d,&n); printf(n); else exit(0); void input() /*录入函数*/ int i,m; printf(请输入需要创建信息职员人数(1-100):n); scanf(%d,&m); for (i=0;im;i+) printf(职员号: ); srand(int)time(0); emi.num=rand()%10000+0000; if(emi.num!=emi-1.num) printf(%8d ,emi.num); printf(n); prin
9、tf(请输入姓名: ); scanf(%s,emi.name); getchar(); printf(请输入性别(f-女 m-男): ); scanf(%c,&emi.sex); printf(请输入年纪: ); scanf(%d,&emi.age); printf(请输入学历: ); scanf(%s,emi.xueli); printf(请输入工资: ); scanf(%d,&emi.wage); printf(请输入住址: ); scanf(%s,emi.addr); printf(请输入电话: ); scanf(%ld,&emi.tel); printf(n); printf(n创建完
10、成!n); save(m);void save(int m) /*保留文件函数*/ int i; FILE*fp; if (fp=fopen(employee_list,wb)=NULL) /*创建文件并判定是否能打开*/ printf (cannot open filen); exit(0); for (i=0;im;i+) /*将内存中职员信息输出到磁盘文件中去*/ if (fwrite(&emi,sizeof(struct employee),1,fp)!=1) printf(file write errorn); fclose(fp);int load() /*导入函数*/ FILE*
11、fp; int i=0; if(fp=fopen(employee_list,rb)=NULL) printf (cannot open filen); exit(0); else do fread(&emi,sizeof(struct employee),1,fp); i+; while(feof(fp)=0); fclose(fp); return(i-1);4.2.2 调试过程5 设计心得和总结:经过一学期C语言学习,我们掌握了C语言基础知识,能够读懂她人用c语言设计编译程序。平时程序设计大多是在书上看到全部是以书面形式出现,即使有所接触,但全部不完全。而这周课程设计,却让我们完完全全用
12、自己所学到知识编写了一个完整系统程序。这是一个新挑战,也是一个新学习。我们组选择题目是职员信息管理系统。这需要我们自己设计一个系统,能够输入信息,保留到文件里,再从文件里调出来,使之显示在屏幕上,进行删除、添加、查询等对信息修改。初看到这个题目认为很简单,但当我做到电脑前准备开始编写代码时候才发觉无从下手。经过去图书馆查找程序设计相关书籍,和上网参考前人编写类似程序,我脑中才有了一个大约方向。慢慢开始着手写下了第一段输入函数代码,因为这是我们平时课堂上用最多最熟printf语句,写了很长一大段,调式运行竟然成功了,立即信心倍增。于是我开始迫不及待开始写第二段保留函数。我记得第一天下来,我只写好
13、了这两个函数,但还是很快乐,因为这是我编第一个小系统成功开始!接下来几天全部在宿舍整个下午对着电脑不停编译、调试、修改,每次编好一个能够成功运行程序,全部会感到很欣慰,并增加继续下去信心。当然其中也有碰到困难时候。好几次碰到编好程序调试没有错误,却偏偏不能运行这种情况,自己编程序自己极难发觉当中错误,而电脑又没有提醒,这时候就很受打击,也会着急。反复检验全部找不出毛病来时候就会有想要放弃念头。有时候就直接关机去做别事情,等再开始做程序时候,才发觉先前错误所在。这时候会有一个“柳暗花明又一村”欣慰感觉。总而言之,碰到困难,能够先放一放,让脑子休息一下,忘记错误记忆。或许等过段时间再回过头来,就会
14、很轻易发觉之前错误了。伴随编好程序越多,累积经验也越多,查找错误就越快了。还有会发觉很多程序有很多相同之处,能够经过复制修改发式来编写。即使题目要求只需要两种查询方法,但当我编出规律以后自然就想多写一个,写完就会有很大成就感了。当全部功效函数全部编好后,我用主函数将她们串起来,这是碰到最大问题就是经过删除、添加后职员人数会发生改变。想了很久,又翻以前课堂笔记,最终想到了使用全局变量来处理这个问题。这个问题成功处理预示着我们职员信息管理系统大功告成!总而言之,经过这一次课程设计,我们体会到了痛苦和愉快同存感觉。当最终一次成功串联运行全部函数时,真很快乐。经过这次实践,我们能够更熟练掌握C语言,尤其是循环和文件,当初在课堂上没有学太清楚,这个程序设计以后全部很明白了。同时增加了我们对程序设计爱好,暑假回家我还会尝试着做部分其它小系统。6 参考文件1谭浩强。C程序设计(第二版)。北京:清华大学出版社,2谭浩强。C程序设计题解和上机指导(第二版)。北京:清华大学出版社,3baidu文库