C语言程序设计.doc_第1页
C语言程序设计.doc_第2页
C语言程序设计.doc_第3页
C语言程序设计.doc_第4页
C语言程序设计.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计课程设计报告完成任务: 1. 用二分法求方程根 2. 链表操作 3 黑白棋游戏 4. 学籍管理程序计算机科学与技术班级:*学号:* 姓名:* 本人于2008年9月1日到9月12日在第四教学楼五楼6号机房20号机器上完成了本次课程设计。所用机器型号不详,主要硬件配置不详,课程设计过程中使用的操作系统是Windows2000,主要开发的平台Microsoft Visual C+ 6.0。任务1 用二分法求方程的根目的与意义:这个程序,能够求出F(x)=在区间1.0,1.5内的一个实根,要求准确精确到小数点后的第二位,通过这个过程让我们能熟悉循环叠代等方法。任务分析:用二分法能够容易的取到这个区间内所需的根。数据结构设计: 开 始求f(a), f(b)F(a+b)/2)= =0C=0; ;C+a=cb=cif|a-b|0YN关键算法:1. if( f|x-y|0)a=c;elseb=c;代码调试与运行: 关于迭代过程中的次数问题,事先已经估计好,所以直接在程序中加如了一个循环6次的FOR循环使之变得更加简便。小结与体会:通过这个程序我对C语言有了更深的了解,开拓了我的视野,思维方式开始多样化,开始学会了用数学模型来解决问题,让我受益匪浅。 任务 2 链表操作目的与意义在屏幕上输出菜单,先从键盘接收整数序列,将这些整数作为链表节点的值,完成链表的创建、节点插入、节点的的删除以及整个链表的撤销等操作。链表是一种非常重要得动态储存结构,可以高效、灵活地对数据进行各项存取操作,其最大特点是可以根据需要的储存空间大小在程序运行过程中申请恰当得储存空间,而不必在不确定所需空间大小的时候静态对空间进行确定,从而不免内存空间的浪费。任务分析1. 向链表中插入节点,2.从链表中删除节点,3.回收空间,4.删除节点。5.创建链表。数据结构设计定义节点得储存类型1. 向链表中插入节点。2. 从链表中删除节点。3. 在连表中查找节点。4. 4撤销链表。5.创建链表。关键算法typedef struct node /*定义链表数据结构*/int data; int sign; struct node *next; NODE;NODE *create() /*创建链表*/ NODE *p1,*p2,*head;int i=0;n=0; p1=p2=(NODE*)malloc(LEN);scanf(%d,&p1-data);p1-sign=1;head=NULL; /*空表头*/while(p1-data!=-1) /*输入-1则停止输入,可根据需要自由修改*/n+;i=n+1;if(n=1) /*为空表定义表头*/head=p1;else /*非空表接链表尾*/p2-next=p1;p2=p1; /*下一次*/p1=(NODE*)malloc(LEN);scanf(%d,&p1-data);p1-sign=i;p2-next=NULL; printf(共有%d个数据n,n);return(head);代码调试与运行之前得程序只能进行一次操作,即进行任意操作后,自动退出程序。进行改动后对利用一个循环解决该问题,并加入了退出系统该操作。小结与体会任务 3 黑白棋游戏目的与意义通过附录中的黑白棋全部代码,阅读该段代码并在机器上调试运行之。然后参阅有关资料,并分析其所实现过程中所用的算法,并在各个环节中提出改进意见,以使程序更为高效,或拥有更好的交互界面。任务与分析看懂游戏代码,了解图形系统文件,以及使用TURBOC和DOSBOX环境下运行代码。代码调试与运行黑白棋得游戏规则:两人对战,每次每边下一粒棋子,所下得棋子四周(包括斜角)要用至少对方一个棋子,所下得棋子和己方棋子所连成得直线上(包括斜角)所有对方得棋子变为己方棋子,两人交替,直至没有棋可以下,或棋盘下满,棋盘上棋子多得一方胜利。通过这个程序可以实现对该游戏的模拟,可见C的功能强大。小结与体会这是我开始学习C语言来见过最长的程序,看懂它发费了我大量时间,也让我知道了C语言的强大。任务 4 学籍管理程序目的与意义通过该程序实现一下功能:1. 在屏幕上显示美观的功能菜单;2. 按班级建立每个学生的个人档案,包括学生的基本情况录入与查询、修改和删除;3. 管理学生成绩,其中包括成绩录入、成绩查询、个人加权成绩、计算修改等;4. 能在班级内按个人加权成绩进行排序,并计算全班加权成绩;5. 能将所有数据进行文件储存操作;6. 程序管理员及其权限和密码管理。实现对一个管理系统的模拟,从各个方面体现程序设计得作用。 数据结构设计菜单(第一次进入通过IF语句来判定是否需要设定管理员密码) 数字0-7分别是为操作:添加学生资料、删除学生资料、查询学生资料、修改学生资料、班级加权排行、保存学生资料、管理员密码修改、退出系统。其中自定义了结果类型,不同的函数对应不同得功能,具体函数将在下面给出。关键算法main() Link l; /*指针l指向NODE型结构体*/ int way,check=0; FILE *fp; NODE *p,*r; printf(=n学籍管理系统n=n); check=password();if(check=1)goto end; l=(NODE*)malloc(sizeof(NODE); l-next=NULL; r=l; /*为下面构造链表作前期工作*/ fp=fopen(C:student.txt,r); if(fp=NULL) fp=fopen(C:student.txt,w+); printf(未找到相应文件,已创建新文件n); while(!feof(fp) p=(NODE*)malloc(sizeof(NODE); if(fread(p,sizeof(NODE),1,fp) /*将文件的内容放入接点p中*/ p-next=NULL; r-next=p; r=p; /*构造了一个NODE型链表,建议画图,容易理解*/ count+; fclose(fp); while(1) printf(nttt*目前共%d条学生记录*n,count); printf( 主 菜 单 n); printf(t1.添加学生资料tt2.删除学生资料tt3.查询学生资料n); printf(t4.修改学生资料tt5.班级加权排行tt6.保存学生资料n); printf(t7.管理员密码修改t0.退出系统n); printf(nn); printf(请你选择操作:); scanf(%d,&way); if(way=0) printf(感谢您使用本系统!n);goto end; switch(way) case 1:add(l);break; /*添加学生*/ case 2:del(l);break;/*删除学生*/ case 3:find(l);break;/*查询学生*/ case 4:update(l);break;/*修改信息*/case 5:rank(l);break;/*加权排行*/ case 6:save(l);break;/*保存信息*/ case 7:newpsw();break;/*修改密码*/ default: printf(n=输入错误!=n);break; end:return 0;代码调试与运行当第一次运行时,就会出现请管理员输入密码,但须先创建密码,然后保存密码,然后选择菜单里的数字选项,如果输入

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论