教师信息管理系统C语言课程设计

上传人:z**** 文档编号:58661837 上传时间:2022-02-28 格式:DOC 页数:59 大小:708KB
收藏 版权申诉 举报 下载
教师信息管理系统C语言课程设计_第1页
第1页 / 共59页
教师信息管理系统C语言课程设计_第2页
第2页 / 共59页
教师信息管理系统C语言课程设计_第3页
第3页 / 共59页
资源描述:

《教师信息管理系统C语言课程设计》由会员分享,可在线阅读,更多相关《教师信息管理系统C语言课程设计(59页珍藏版)》请在装配图网上搜索。

1、件亠對芋捷求今览课程设计任务书计算机科学与技术 专业2010 年级一班 陈金利一、设计题目教师信息管理系统设计二、主要内容教师信息包括教师号、姓名、性别、年龄、学历、职称、工资、住址、电话等(教师号不重复)。试设计一教师信息管理系统,使之能提供以下功能:(1)系统以菜单方式工作(2) 教师信息录入功能 输入(3)教师信息删除功能(4)教师信息浏览功能 输出(5)查询和排序功能:(至少一种查询方式)算法按教师号查询按职称查询等三、具体要求围绕课程设计的目的和意义,基本要求如下:1、认真阅读 C 语言课程设计指导书,明确课程设计的目 的、意义和要求;2、快速总结 C 程序设计语言的精髓,如:函数的

2、概念、函 数的设计和函数的调用;3、快速熟悉 Tuber C 或 C+ 的上机环境。能熟练进行高级 编辑操作(特别是字块操作) ;熟悉步进式、 断点跟踪的程序调试 方法,提高工作效率。4、根据“课程设计题目” ,采用结构化的程序设计思想,确 定系统的总体设计方案、确 定时间进度。如果是多人共一题,则 要首先完成小组内的人员分工与安排,不允许重题现象。5学习并了解良好的程序设计风格。按质、按量、并按时间 完成课程设计的任务。6提供可运行的课程设计系统,参加上机面试答辩。本次课程设计的重点是:学会设计并编写函数,掌握好各函数 之间的调用关系;利用文件操作函数,建立数据库并完成对数据 库的各种操作;

3、掌握几种典型算法的应用(如:冒泡法、选择排 序法和折半查找法) 。同时锻炼学生根据题目进行分析、 设计、编 码、调试程序和书写必要文档的综合处理能力,从实践中学习并 体会程序设计的结构化思想和设计方法。四、进度安排依照教学计划, 课程设计时间为 3 周。按照软件工程的思想, 软件系统的分析设计至关重要, 并要充分重视书写“文档” 。避免 甚至杜绝“拿到题目就编码”的现象。建议将时间分为三个阶段: 第一阶段, 根据题目要求, 拿出系统的总体设计方案: 即构思 各程序模块的算法, 并画出相应的 N-S 图,同时编写相应的文档; 第二阶段,根据 N-S 图编写程序代码并单独调试,再将调试 通过的各个

4、子模块进行集成调试;第三阶段,归纳文档资料,按要求填写在课程设计说明书 上,并参加答辩。三个阶段时间分配的大概比例是: 35:45 :20 。五、完成后应上交的材料1课程设计的题目、系统的总功能和各子模块的功能; 2题目的设计思想(或算法)简述;3 主要程序的框图(要求用 N-S 图);4 源程序代码(要求在关键的位置有注释, 从而增加程序的 可读性);5课程设计的总结报告,主要包括以下内容:(1)课程设计中遇到的主要问题和解决方法;(2 )你的创新和得意之处;(3) 设计中存在的不足与改进的设想;(4) 本次课程设计的感想和心得体会。以上完成的源程序与相关文档,填写在课程设计说明书上,要求干

5、净整洁,符合课程设计的要求和规范。六、总评成绩指导教师签名日期年月日系主任审核日期年月旦目录题目设计思想简述5 二.程序的N S图72.1总程序的N S图722各子函数的N S图7221教师信息录入函数 8教师信息浏览函数 8教师信息删除函数 92.2.4 教师信息查询函数 92.2.5 教师信息排序函数 10三源程序代码 11 四 程序运行效果图 334.1 登陆界面 334.2 菜单栏 334.3 录入功能 344.4 浏览功能 344.5 删除功能 354.6 查询功能 354.7 排序功能 36五总结报告 375.1课程设计中遇到的主要问题和解决方法375.2你的创新和得意之处 375

6、.3设计中存在的不足与改进的设想375.4本次课程设计的感想和心得体会38.题目设计思想简述如上图所示,该教师信息管理系统主要是一个以动态链表的应 用为基础来实现对教师信息的录入,查询,删除等功能。定义教师结构体如下:struct teacherlong num;/ 教师号char name20;/ 姓名char sex5;/ 性别int age;/ 年龄char edu20;/ 学历char title20;/ 职称long wage;/ 工资char addr100; / 地址char telep15;/ 电话struct teacher *next;*head=NULL;主函数只进行口令

7、函数和菜单栏函数的调用, 主要工作通过菜 单函数实现。口令为 123456 。菜单栏函数通过用 switch 语句实现不同功能的选择,不同的 功能用不同的子函数实现。 录入教师信息通过建立动态单链表来实现。 浏览教师信息则通过将链表所有数据顺序输出来实现。查询功能只要从链表头开始不断往下一个结点读取信息跟所 要查 找的信息比较, 直到读取到的信息跟所要查找的信息相同或链表尾为止,并把此结点的信息输出。删除教师信息的函数是通过查找链表中有该信息的结点后将 该结点移出链表,即使该结点前一个结点直接指向该结点后面的 结点来达到删除信息的目的。排序函数是通过交换结点在链表中的位置来实现的,即使得 各结

8、点在链表中的位置便是所要得到的排序该信息应在的位置, 这样直接顺序输出链表的信息时就能按所要的排序输出了。二.程序的N S图说明:各功能都是通过调用子函数来实现的2.2各子函数的N S图子函数主要包括教师信息录入,教师信息浏览,教师信息删除, 教师信息查询和教师信息排序等 5个。在退出系统时调用了一个保存信息到文件中的函数,该函数只是简单的应用了文件的读写 功能,在此不写出其 N S图。教师信息录入函数p仁(struct teacher *)malloc(LEN)输入一个教师号 p1-numT、师号为 F链表头为空Head =p1p3=head当p3-next不为空p3=p3-n extp3-

9、n ext=p1当教师号不为0输入教师的姓名,性别,年龄,学历,职称,月薪,住址, 电话9n/=+1head=p1p2-n ext=p1p2=p1p仁(struct teacher *)malloc(LEN)输入一个教师号 p1-nump2- next=NULL说明:p1=(struct teacher *)malloc(LEN) 中 LEN 是在程序幵 头的宏定义(#define LEN sizeof(struct teacher) 。其中 n 为全 局变量,用来统计链表的结点数,以下出现的n都是同一个。222教师信息浏览函数p=head链表头为空7显示“还 未录入 过信息”输出p所指向的位

10、置中的教师的所有信息p=p-n ext直到p为空说明:实际程序中在链表头为空是提供了可以浏览之前保存在文件中的信息的功能,当选择该功能时就调用了一个读取文件的 函数。该函数只是对文件读写的简单应用,详细请看后面第三部 分代码,这里不写出其 N-S图。223教师信息删除的函数表头为空?F输出“还 未录 入过输入要删除教师信息的教师号ip1=head当 i!=p1-num224教师信息查询的函数在查询方面程序为用户提供了 4种不同方式的查询,每一种方 、,人 =0 十一式的查询为一个子函数,此时也是米用一个菜单栏函数进行选择 查询方式并调用该种方式的函数。菜单栏函数跟主程序菜单栏的 算法一样,此处

11、只给出查询函数的 N S图。T-.链表头为空? 一-F输出“还未录入程序”并退出函数输入要查找的教师信息的对应方法的对应数据ip=head当p非空时Vp中对应信息不等7输出p所指向的位置的教师的所有信息11j=j+0p=p-n ext不为_0?一说明:该N S图是对应姓名,教师号,职称,年龄四种查找 方式的函数的。当选择教师号查找时,输入i的即为教师号,与i做比较的为p中的教师号,选择其他查找方式时类似。225教师信息排序函数排序也跟查询一样给出多种排序方式并采用菜单栏函数,此处输出“还未录入过教师信息”并退出函数二个结点为空Fp仁headp2=head-n ext也只给出排表头数的空?M说明

12、:p1,p2指向的结点用来比较,p3 , p4是用来记录结点的,当选用的排序方式不同, p1,p2 用来比较的信息为所选方式的信三源程序代码#include #include #include #include #define LEN sizeof(struct teacher)/ 宏定义结构体字节数 int n=0;struct teacher/ 定义结构体long num;/ 教师号char name20;/ 姓名char sex5;/ 性别int age;/ 年龄char edu20;/ 学历char title20;/ 职称long wage;/ 工资char addr100;/ 地址

13、char telep15;/ 电话struct teacher *next;/ 指向下一个结点 *head=NULL;void key()/ 口令检查的函数int i;long a;for(i=0;inext)if(fwrite(p,sizeof(struct teacher),1,fp)!=1)printf(n 此处数据有误 n);fclose(fp);exit(0);void read()/ 从文件读出数据的函数struct teacher teach299,temp;int i=0;FILE *fp;char 20;printf(n 请输入存有教师信息的文件名: );scanf(%s,)

14、;if(fp=fopen(,rb)=NULL)printf(n 无法打开文件 n);exit(0);fseek(fp,-sizeof(struct teacher),2);/* 将位置指针从文件末 尾后退一个结构体的字节数 */fread(&temp,sizeof(struct teacher),1,fp);/* 从所指向的文 件中读出数据存储到结构体变量 temp 中*/fseek(fp,0,0);/ 将位置指针移到文件的开头if(fread(&teachi,sizeof(struct teacher),1,fp)=1)/* 判断 文件开头读入的数据是否为空 */printf(n 存有的教师

15、信息如下 :n);while(teachi.num!=temp.num)/ 进行循环读取文件printf(教师号:ld,姓名:%s,性别:%s,年龄:%d,学历:s,teachi. nu m,teachi. name,teachi.sex,teachi.age,teachi.edu);printf(职称:sn月薪:ld,住址:%s,电话:sn ”,teachi.title,teachi.wage,teachi.addr,teachi.telep);i=i+1;fread(&teachi,sizeof(struct teacher),1,fp);/*从文件中读入数据存储到结构体变量 teach

16、【i 】中 */ 输出文件中的最后一个信息printf(教师号:%Id,姓名:%s,性别:%s,年龄:%d,学历:%s,teachi. nu m,teachi. name,teachi.sex,teachi.age,teachi.edu);printf(” 职称:%sn月薪:%Id,住址:%s,电话:sn ”,teachi.title,teachi.wage,teachi.addr,teachi.telep);fclose(fp);else printf( 该文件中无教师信息 n);/ 文件为空时输出此处void creat()/ 录入教师信息的函数struct teacher *p1,*p2

17、,*p3;p1=p2=(struct teacher *)malloc(LEN);/*申请一个结构体字节数的空间用来存储一个教师的信息 */printf( 请输入一位教师的教师号(结束录入请输入 0 ):);scanf(%ld,&p1-num);if(p1-num!=0)/ 判断用户是要结束录入还是要存储信息if(head=NULL) head=p1;/*判断链表是否为空 ,是则将链表头指向 p1*/else / 链表不为空则将链表尾指向 p1p3=head;/p3 用来记录链表的尾部while(p3-next!=NULL)/* 若 p3 不是链表尾则将 p3 指向 下一个结点 */p3=p3

18、-next;p3-next=p1;/ 将最后一个结点指向 p1while(p1-num!=0)/ 判断用户是否结束录入功能n 加一/ 录入该教师号的教师对应的信息 printf( 姓名 : ); scanf(%s,p1-name); printf( 性别: ); scanf(%s,p1-sex); printf( 年龄: ); scanf(%d,&p1-age); printf( 学历: ); scanf(%s,p1-edu); printf( 职称: ); scanf(%s,p1-title); printf( 月薪: ); scanf(%ld,&p1-wage); printf( 住址:

19、); scanf(%s,p1-addr); printf( 电话: ); scanf(%s,p1-telep); n=n+1;/ 给统计录入的教师数/*判断是否为第一个录入的信息,是则将链表头指向pl,否则将 p2 指向 p1*/if(n=1) head=p1;else p2-next=p1;p2=p1;/p2 用来记录链表的最后一个结点p1=(struct teacher *)malloc(LEN);/重新申请空间printf( 请输入一位教师的教师号 (结束录入请输入 0): ); scanf(%ld,&p1-num);p2-next=NULL;/ 将最后一个结点指向空void print

20、()/ 输出教师信息的函数struct teacher *p;int i;p=head;if(head!=NULL)/ 判断链表是否为空printf(n 这d位教师的信息为:n,n);doprintf(教师号:ld,姓名:%s,性别:%s,年龄:%d,学历:s,职称: %sn, p-num, p-name, p-sex, p-age, p-edu, p-title);printf(月薪:%ld,住址:%s,电话:%sn,p-wage,p-addr,p-telep);p=p-next;/ 将下一个结点的首地址赋给 p while(p!=NULL);/ 到链表尾时结束循环else/ 链表为空时执行

21、以下部分printf(n 你此次登录系统还没有录入教师信息,可进行以下操作: n);printf(1【: 浏览以前保存在文件中的教师信息】2:【开始录入教师信息】n);printf(3:【退出系统】4: 【返回菜单】 n);printf( 请选择: );scanf(%d,&i);while(i4)printf( 选择无效,请重新输入正确选项: );scanf(%d,&i);if(i=1) read();/ 调用从文件读取数据的函数if(i=2) creat();/ 调用录入信息的函数if(i=3) exit(0);/ 退出系统void del()/ 删除教师信息的函数struct teache

22、r *p1,*p2;long i;if(head=NULL)/ 判断链表是否为空printf(n 还未录入过教师信息 n);/ 链表为空时输出return;printf( 请输入要删除教师信息的教师号: ); scanf(%ld,&i);p1=head;while(i!=p1-num)/ 直到 p1 指向的结点是要删除的信息位 置if(p1-next=NULL) break;/p1 的下个结点为空则退 出循环p2=p1;/p2 用来记录 p1 的前一个结点 p1=p1-next;/p1 指向下一个结点if(i=p1-num)/ 判断 p1 是否为要删除的信息if(p1=head) head=p

23、1-next;/* 若 p1 为头结点则将头 指针指向 p1 的下一个结点 */else p2-next=p1-next;/*p1 非头结点则将 p1 后面的 结点连接到 p1 前一个结点的后面 */printf(n 已删除教师号为 %ld 的教师信息 n,i);n=n-1;/ 记录教师数的 n 要减一/p1 不是要删除的信息则表示要删除的信息不再链表中else printf(n 已录入的教师信息中没有教师号为 %ld 的 n,i);return;void sort1()/ 按教师号进行排序的函数struct teacher *p1,*p2,*p3,*p4;int i,j;if(head=NU

24、LL)printf(n 还未录入过教师信息 n);return;if(head-next!=NULL) /判断是否只有一个信息/ 用冒泡法排序p1=head;/p1 记录用来比较的两个结点中的前面一个 p2=head-next;/p2 记录比较的两个结点中的后面个 for(i=1;in;i+)/ 实现 n-1 趟比较的外循环for(j=0;jnump2-num)/* 比较相邻两个结点中 教师号大小 */ 当 p1 的教师号大时则对调两个结点的位置 if(p1=head) head=p2;else p3-next=p2;/*p1 为头结点时则将头指 针指向 p2 ,否则就将 p2 连接到用来记录

25、 p1 前一个结点的 p3 的后面 */p4=p2-next;/p4 用来记录 p2 后面的结点p2-next=p1;/p1 的结点换到原来 p2 的位 置p1-next=p4;/ 原来 p2 后面的结点连接到p1p3=p2;/p3 记录下 p2 的位置p2=p4;/p2 指向原来位置的下一个结点else/*p1 中教师号没有打过 p2 中教师号,则将p1 ,p2 都指向它们各自位置的下一个结点 */p3=p1;/ 记录 p1 后移一位后它前个结点的位置p1=p2;p2=p2-next;p1=head;/p1 指向链表头,开始下一趟外循环的准备p2=p1-next;/p2 指向链表第二个结点p

26、rintf(n 按教师号排序后的教师信息如下: n);print();/ 调用教师信息浏览函数void sort2()/ 按月薪排序的函数,算法跟按教师号排序的一样 struct teacher *p1,*p2,*p3,*p4;int i,j;if(head=NULL)printf(n 还未录入过教师信息 n); return;if(head-next!=NULL)p1=head;p2=head-next;for(i=1;in;i+)for(j=0;jwagep2-wage)if(p1=head) head=p2; else p3-next=p2; p4=p2-next;p2-next=p1;

27、p1-next=p4;p3=p2;p2=p4;elsep3=p1;p1=p2;p2=p2-next;p1=head;p2=p1-next;printf(n 按月薪排序后的教师信息如下: n);print();void sort3()/ 按年龄排序的函数,算法跟按教师号排序的一样 struct teacher *p1,*p2,*p3,*p4;int i,j;if(head=NULL)printf(n 还未录入过教师信息 n);return;if(head-next!=NULL)p1=head;p2=head-next;for(i=1;in;i+)for(j=0;jagep2-age)if(p1=

28、head) head=p2; else p3-next=p2; p4=p2-next;p2-next=p1;p1-next=p4;p3=p2;p2=p4;elsep3=p1;p1=p2; p2=p2-next;p1=head;p2=p1-next;printf(n 按年龄排序后的教师信息如下: n) print();void choose1()/ 选择排序方式的函数排序方式int i;printf(n);printf(1:【按教师号排序】2:【按年龄排序】 n);printf(3:【按月薪排序】 n);printf( 请选择: );scanf(%d,&i);while(i3)printf( 选

29、择无效,请重新输入正确选项:);scanf(%d,&i);switch(i)case 1:sort1();break;case 2:sort3();break;case 3:sort2();break;void search1()/ 按教师号查找的函数struct teacher *p;long i;/ 存储用户输入的想要删除的教师号if(head=NULL)printf(n 还未录入过教师信息 n);return;printf( 请输入要查找的教师信息的教师号: );scanf(%ld,&i);for(p=head;p!=NULL;p=p-next)/p 顺序指向结点与 i 比较,找出有 i

30、 的数据的结点并输出 if(p-num=i)printf(教师号:ld,姓名:%s,性别:%s,年龄:%d,学 历:s,职称:%sn,p-nu m,p-n ame,p-sex,p-age,p-edu,p-title);printf(月薪:%Id,住址:%s,电话:%sn,p-wage,p-addr,p-telep);return;printf( 已录入的教师信息中不存在该教师号 n);void search2()/ 按姓名查找的函数struct teacher *p;char i20;/ 记录用户输入的想要删除的姓名int j=0;/j 用来记录找到了多少个信息if(head=NULL)pri

31、ntf(n 还未录入过教师信息 n);return;printf( 请输入要查找的信息的教师姓名: ); scanf(%s,i);for(p=head;p!=NULL;p=p-next) if(strcmp(p-name,i)=0)/ 比较 p 指向的结点中的姓名跟 i 的是否一致,是则输出printf(教师号:ld,姓名:%s,性别:%s,年龄:%d,学历:s,职称:%sn,p-nu m,p-n ame,p-sex,p-age,p-edu,p-title);printf(月薪:%Id,住址:%s,电话:%sn,p-wage,p-addr,p-telep);j=j+1;/ 每输出一个教师的信息

32、则 j 加一if(j=0) printf( 已录入的教师信息中不存在该姓名的教师 n);void search3()/ 按职称查找的函数, 算法与按姓名查找的一样 struct teacher *p;char i20;int j=0;if(head=NULL)printf(n 还未录入过教师信息 n);return;printf( 请输入要查找的信息的教师职称: ); scanf(%s,i);for(p=head;p!=NULL;p=p-next) if(strcmp(p-title,i)=0)printf(教师号:ld,姓名:%s,性别:%s,年龄:%d,学 历:s,职称:%sn,p-nu

33、m,p-n ame,p-sex,p-age,p-edu,p-title);printf(月薪:%Id,住址:%s,电话:%sn,p-wage,p-addr,p-telep);j=j+1;if(j=0) printf( 已录入的教师信息中不存在该职称的教师n);void search4()/ 按年龄查找的函数, 算法与按教师号查找的一 样struct teacher *p;int i,j=0;if(head=NULL)printf(n 还未录入过教师信息 n);return;printf( 请输入要查找的信息的教师年龄: );scanf(%d,&i);for(p=head;p!=NULL;p=p

34、-next)if(p-age=i)printf(教师号:ld,姓名:%s,性别:%s,年龄:%d,学 历:s,职称: %sn, p-num, p-name, p-sex, p-age, p-edu, p-title);printf(月薪:%ld,住址:%s,电话:%sn,p-wage,p-addr,p-telep);j=j+1;if(j=0) printf( 已录入的教师信息中不存在该年龄的教师n);void choose2()/ 选择查找方式的函数int i;printf(查询方式n);printf(1:【按教师号查询】2:【按姓名查询】n);printf(3:【按职称查询】4:【按年龄查询

35、】n);printf( 请选择: );scanf(%d,&i);while(i4);printf( 选择无效,请重新输入正确选项: scanf(%d,&i);switch(i)case 1:search1();break;case 2:search2();break;case 3:search3();break;case 4:search4();break;void menu()/ 菜单栏函数int i;printf(菜单n);printf(1:【教师信息录入】2:【教师信息输出】n);printf(3:【教师信息删除】4:【查询个人信息】n);printf(5:【排序】6:【退出系统】 n)

36、;printf( 请选择 : );scanf(%d,&i);while(i6)printf( 选择无效,请重新输入正确选项:II);scanf(%d,&i);switch(i)case 1:creat();break;case 2:print();break;case 3:del();break;case 4:choose2();break;case 5:choose1();break;case 6:save();menu();void main()/ 主函数key();menu();四.程序运行效果图4.1登陆界面4.2菜单栏龙订飾序煜押君计QBebug2(n(ni4124ife击利翩&.*

37、 第 Rill2 4 k-申別几口它.123阪迎.进.I系统1出耳亠1息八続师谊出4.3录入功能4.4浏览功能 b E 圮聘序農坚密岀Sdbumiao:葩 141241 exe-G单:菓u 出.11.” 货索 in自出 齧爲 rlrlrlA务. rffll 自h自 信信 眶|序 二+FLFLE13 52n.牖歸韶非序】:曙髒啊哼 1宴L丿1_p讥汽6. 題岀盍绣!f敕师号:疵舍别隅.輩:弧学丹梓*网铀翻教肺 戶薪汐胆此住址:傑山市禅城区江湾一歸珂常”电话:334W234itSli=4.5删除功能FP乍爛昱毀谍卷閔WDebugf。的1412411燼制豆于E: O1豔戈諭噬删唱息的舸号:3已圖除教

38、师号为的教师信息录卑:聽網t=【退出索统】:【抱4.6查询功能4.7排序功能五总结报告5.1 课程设计中遇到的主要问题和解决方法在这次的 C 语言课程设计的编程中,由于以前对链表和文件这 两部分的内容了解过少, 因此在编程中涉与到这两方面的内容时, 照成了很大的阻碍,最主要是在对链表的结点进行交换,对文件 某些特殊的读写不清楚。而且由于第一次接触这类比较复杂一点 的题目,在循环方面的应用有所不足,这也是一个问题。在遇到这些问题时,对于每一个问题在实在无思路时,我首先 会查阅相关的书籍,像文件中末尾读起的方法,在通过查看 言的书后我才知道原来有专门的库函数可以用;在查阅完书籍确 定该了解的基本内

39、容已了解之后,自己再重新思考算法,然后不 断的在 VC+ 中调试,根据它的提示修正错误,直到编译无错且 运行的结果正确为止。5.2 你的创新和得意之处 这个教师信息管理系统不仅按要求可以让用户自己选择要实现 录入,浏览,查找,删除,排序中的任一种功能,而且在退出系 统时为用户提供能是否要保存该次的信息到文件中的选择。且在 浏览中当检查到用户该次登录还未录入过信息时,提供了是否要 查看以前保存的文件的功能。5.3 设计中存在的不足与改进的设想在设计过程中,由于对 C 语言的理解不够透彻,特别是链表和 文件方面边查书边调试才写出来的,所以导致程序在一定程度上 的不严密,例如浏览其他文件的信息只有在

40、检测到该次登录还未 录入过信息时才会提供用户选择之类的。当然,最主要的原因是 由于第一次接触这种较复杂点的题目,在算法的设计上不好,才 导致程序过于冗长不严谨的。程序在查找和排序时其实可以不用 每种方式都写一个函数的,这样程序就不会显得过于冗长。而且 系统提供功能选择方面也可以再调整的更完善。5.4 本次课程设计的感想和心得体会 从拿到题目到完成的三周时间里,我了解到了原来在C 语言的方面的应用我所存在的不足,更掌握了很多之前不懂的知识。在 此次的课程设计中,刚接触到题目时我就发觉了一个被我遗忘了 的严重问题,那就是编程的能力只有通过不断敲写代码才能保持 和提高的。由于过长时间没有写过代码的缘

41、故,在拿到以前已经 编过的简单题目时我也得查找书籍才最终编写完成,这重新提醒 了我在编程方面实践的重要。由于第一次拿到设计一个系统这样比较复杂的题目,尽管最后 设计出来的系统很简单,当中间我所遇到的问题还是很多,甚至 比学 C 语言时做过的所有题目遇到的还多。因此在编程时我几乎 又把 C 语言的整本书重新看了一遍,有了更深刻的认识。另外, 在这次的编写中, 我了解到了以前所未了解的一个很重要的地方, 就是设计算法的能力。因为以前所接触的题目都比较简单,所以 没有专门想过设计算法,跟没有意识到其重要性,这次的题目让 我明白了要编写出一个好的程序,设计一个好的算法是非常必要 的。由于开始我在设计算法方面的意识不足,导致这次写出来的 代码很累赘很繁琐,这时非常不好的。另外,我发现细节的注意 不管是多熟悉编程了都很必要的,即使到最后快完成的时候我也 会犯下缺函数的括号,语句缺冒号之类的小错误。虽然这次完成题目的结果不太好,但能够自己独立完成还是带 给了我很大的喜悦。这次课程设计使我意识到自己的多处不足, 让我有机会去改进,为以后的编程之路打好基础,以后我还会自 己多些找题目来实践,以提高我的能力。

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!