《C语言程序设计基础》上机实验报告(模版) 下载本文

内容发布更新时间 : 2024/5/5 1:37:59星期一 下面是文章的全部内容请认真阅读。

{ t=t->next; if(fwrite(t,sizeof(WORKERBASIC),1,fp)!=1) { printf(\ PrintPause(); break; } } } free(head); fclose(fp); PrintPause(); return 0; } } printf(\ PrintPause(); return 0; }

int Slecting(int flag) { switch(flag) { case 1: return Add(); case 2: return Scan(); case 3: return Edit(); case 4: return Modify(); case 5: return Delete(); case 6: return Into(); case 7: return 1; default: return 0; } }

int main() {

/*选择功能*/

int flag=1,key,esc=0,i,j; while(!esc) { Initial(); /*画程序界面*/ Guangtiao(flag); /*画光条*/ key=getch(); /*等待键盘输入*/ if (key>=0x31&&key<=0x36) /*可以按数字键选择菜单*/ { flag = key-0x30; esc=Slecting(flag); } switch(key) /*匹配按键 执行功能*/ { case UP: /*光标上移*/ flag--; if (flag<1) flag=7; /*光标回跳*/ break; case DOWN: flag++; /*光标下移*/ if (flag>7) /*光标回跳*/ flag=1; break; case ENTER: /*确认功能*/ esc=Slecting(flag); break; } } return 0; } ??

一个大的问题就是每次当用链表将数据存入文件当中时,无法将内存当中的链表释放,这是老师给我提出的问题,我也觉的是个很大的问题。

七【上机实验中的其他它问题及心得】

经过一学期的C语言学习,我们掌握了C语言的基础知识,能够读懂别人用c语言设计的程序。平时的程序设计大多是以填空的形式出现,虽然有所接触,但都不完全。而这两周的课程设计,却让我们完完全全用自己学到的知识编写一个完整的体统程序。这是一个新的挑战,也是一种新的学习。

我选择的是备选题目中的——职工信息管理系统。这需要我自己设计一个系统,可以输入信息,保存到文件里,再从文件里调出来,使之显示在屏幕上,进行删除、添加(并且这两项功能要用链表完成)等对信息的修改。初看到这个题目觉得很简单,但当我做到电脑前准备开始编写代码的时候才发现无从下手。通过去图书馆查找程序设计相关的书籍,

和上网参考前人编写的类似程序,我脑中才有了一个大概方向。

首先的就是老师要求的必须使用光条菜单,但自己完全没有光条菜单的概念,我花费了很多时间在百度搜索,一直没有找到理想的光条菜单。直到有同学做出来了,我就去询问,这才了解了做光条菜单的基本要求和方法,然后在我认真搞懂了光条函数的原理之后,我就开始根据自己程序的要求制作光条菜单,把自己程序的功能完全用光条菜单显示出来。经过自己的努力,最终还是把光条菜单做出来了。但当时做出来的仅仅只能够用键盘上的上下左右健来控制,我的想法就是也可以根据系统的功能选项,制作出能够利用键盘上的数字健也能够控制自己的功能选项,这样就能够让自己的程序更具有操作性,然后根据查资料可以了解到可以用0x数来表示键盘上的数字健,然后就多加了一个可以用数字健来控制功能的方法。

然后自己就开始编写录入功能的程序,我采用的是一个功能一个程序的方法,这样就能够更好的检查自己的程序,以防出错,开始编写录入功能的时候,存入文件当时还不是很了解,然后就翻了书,查了资料,问了同学这才知道怎样讲录入的信息存入文件,而且打开文件的方式也会根据自己的功能而不同,这也是当时难住我的地方,接着就是浏览功能,这里到没有多大的问题,只是美观上下了点功夫,调了很久,然后就是最让自己为难的链表,大概是因为自己的链表没有学的怎么好,所以自己都没有多大的底气,幸好我室友帮我认真讲解了一下链表,然后听过自己对书上知识的了解,和寝室室友的共同编写下,这才用链表把添加和删除的功能编写好,在这里,我和我室友都是编写的职工管理系统,所以我们经常讨论这其中存在的问题,但最后我们两个通过各自的努力用链表把这两个重要的功能编写好了。在编写这两个功能的过程中,我深刻的明白了为什么老师要求我们用链表来编写程序了,因为链表对于这个程序来说显得更加的高效,让程序运行的速度更加快,这样就能够省去更多的时间,让这个系统更加的有效率。也明白了在以后工作的时候,编程当中方法的选择也会对自己程序的效率产生很大的影响。最后遇到的就是对职工的查询功能,这里我选择可以运用两种方式进行选择查询,但这其中就是根据姓名和职工号的查询,这里就是字符串和数字两种不同类型的查询方法。而且老师要求的方法是必须使用折半查找方法,这样我就只有下去对折半查找方法进行了研究,也让自己费了点劲。还有就是当时的程序每次运行是都会显示出上次程序运行的痕迹,最后问了同学才知道要添加一个清屏函数,这样就会让自己的程序看着很清楚,不会那么的模糊不清。

到了我把几个最重要的功能都编写成功之后,我遇到的最大的麻烦就是怎么样将这些功能都整合到运用光条菜单控制当中,最后终于功夫不负有心人,我最终把这些功能整合到了一起,通过自己的不断调试,最终做成了这个职工管理系统。但最后的答辩自己还是有点紧张,而且老师也指出了我程序当中存在的问题,而最大的问题就是每次当用链表将数据存入文件当中时,无法将内存当中的链表释放,这是个大的问题,我在后面的时间中,也将针对这些问题,对程序进行改进。

总之,经过这一次的课程设计,我们体会到了痛苦与快乐同存的感觉。当最后一次成功串联运行所有函数时,真的很开心。通过这次实践,我们能够更熟练掌握C语言,特别是循环和文件和链表,当时在课堂上没有学太清楚的,这个程序设计之后都很明白了。同时增加了我们对程序设计的兴趣,暑假回家我还会尝试着做一些其他的小系统。