数据结构c课程设计

2024-04-24

数据结构c课程设计(共8篇)

篇1:数据结构c课程设计

C语言与数据结构课程设计报告

学 号 2014014083 姓 名 汪明 课程设计题目 通讯录的制作

2016 年 1

目 录 需求分析 1.1 功能与数据需求 1.1.1 题目要求的功能 1.1.2 扩展功能 1.2 界面需求 1.3 开发环境与运行需求 2 概要设计 2.1主要数据结构 2.2程序总体结构 2.3各模块函数说明 3 详细设计

3.1算法分析与设计 3.2主要程序段设计 4 测试 5 使用说明

5.1应用程序功能的详细说明 5.2应用程序运行环境要求 5.5输入数据类型、格式和内容限制 6 总结提高

6.1课程设计总结

6.2开发中遇到的问题和解决方法 6.3 对自己完成课设完成情况的评价

6.4《C语言与数据结构课程设计》课程的意见与建议 附录:程序源代码

需求分析 1.1 功能与数据需求

1)输入信息--enter();2)显示信息---display();3)查找以姓名作为关键字---search();4)删除信息---delete();5)存盘---save();6)装入---load();

1.2 界面需求

1)每条信息至包含 :姓名(NAME)街道(STREET)城市(CITY)邮编(EIP)国家(STATE)几项;电话号码(TEL); 2)作为一个完整的系统,应具有友好的界面和较强的容错能力; 3)需要链表实现;

4)上机能正常运行。

1.3 开发环境

开发环境:

测试系统:Windows7,开发工具:Dev-C++ 概要设计 2.1主要数据结构

//构建链表的结构体 typedef struct CLUB { char NAME[20];//姓名 char STREET[20];//街道 char CITY[20];//城市 char STATE[20];//国家 char PHONE[20];//电话号码 char EIP[10];//邮编 struct CLUB *next;}CLUB;CLUB *headLink;

2.2程序总体结构 //主要函数

void Enter(CLUB *t);//录入 void Search(void);//查找

void Display(void);//输出输入的所有信息 void Delete(void);//删除信息 void Save(void);//保存

void Load(void);//从文件中的内容 //界面函数

void Menu(void);//显示菜单

2.2各模块函数说明

void CreateHeadLink(void);//创建 void Load(void);//从文件中的内容 void Menu(void);//显示菜单

void InsertOneNode(CLUB *t);//增加新结点

CLUB *MallocNode(void);//申请一个新结点,并将其初始化 void Enter(CLUB *t);//输入

void InsertOneNode(CLUB *t);//在链表的结尾处增加一个结点 void Search(void);//查找

void DesplayOneNode(CLUB *t);//输出一个结点的信息 void Display(void);//输出输入的所有信息 void Delete(void);//删除信息

void ChangeInforByName(void);//修改信息 void Save(void);//保存 详细设计

3.1算法分析与设计

Enter函数:从键盘中获得数据,通过scanf将各数据放入对应的链表中 Display函数:将链表中的数据输出 3.2主要程序段设计测试 使用说明

5.1应用程序功能的详细说明

先输入联系人的基本信息,可以显示录入的所有联系人的信息,可以将联系人的信息保存到CLUB.txt,当第二次运行时可以直接从CLUB.txt文件中调用 5.2应用程序运行环境要求 5.5输入数据类型、格式和内容限制 6 总结提高

6.1课程设计总结

6.2开发中遇到的问题和解决方法 6.3 对自己课程设计完成情况的评价 附录:程序源代码

#include #include #include #include #include #include typedef struct CLUB { char NAME[20];//姓名

char STREET[20];//街道

char CITY[20];//城市

char STATE[20];//国家

char PHONE[20];//电话号码

char EIP[10];//邮编 struct CLUB *next;}CLUB;CLUB *headLink;//链表表头指针 void CreateHeadLink(void);//创建 void Load(void);//从文件中的内容 void Menu(void);//显示菜单

void InsertOneNode(CLUB *t);//增加新结点

CLUB *MallocNode(void);//申请一个新结点,并将其初始化 void Enter(CLUB *t);//输入

void InsertOneNode(CLUB *t);//在链表的结尾处增加一个结点 void Search(void);//查找

void DesplayOneNode(CLUB *t);//输出一个结点的信息 void Display(void);//输出输入的所有信息 void Delete(void);//删除信息

void ChangeInforByName(void);//修改信息 void Save(void);//保存

int choose;//用于接收用户的选择 //主函数 int main(){ int j;system(“color 3E”);printf(“nnnnnnnnnn”);printf(“ttt %c ”,1);printf(“欢迎进入通信录!nn”);printf(“正在进入,请等候”);for(j=0;j<6;j++){ Sleep(300);printf(“.”);} system(“cls”);

CreateHeadLink();Menu();} //函数功能:从文件中读信息 void Load(void){ FILE *fp;CLUB *p;p=(CLUB *)malloc(sizeof(CLUB));headLink=p;p->next=NULL;fp=fopen(“CLUB.txt”,“r”);if(!fp){ printf(“文件不存在n”);return;} p=MallocNode();while(fscanf(fp,“%s%s%s%s%s%sn”,p->NAME,p->STREET,p-> CITY,p->STATE,p->PHONE ,p->EIP)>0){ InsertOneNode(p);p=MallocNode();} fclose(fp);}

//函数功能:显示菜单,根据用户的输入完成相应的功能 void Menu(void){ CLUB *p;printf(“nt|***********欢迎使用通信录信息管理系统****************|n”);printf(“t提示:为保证您的操作得到保存,请按正常顺序退出系统^_^n”);printf(“tt+------------主菜单---------------+n”);printf(“tt+ [1]******显示电话簿信息 +n”);printf(“tt+ [2]按姓名查找电话簿信息 +n”);printf(“tt+ [3]******录入电话簿信息 +n”);printf(“tt+ [4]******删除电话簿信息 +n”);printf(“tt+ [5]按姓名修改电话簿信息 +n”);printf(“tt+ [6]**保存所有电话簿信息 +n”);printf(“tt+ [7]装入文件中电话簿信息 +n”);printf(“tt+ [0]****************退出 +nn”);printf(“请输入指令:”);scanf(“%d”,&choose);//取得用户的选择

switch(choose){

case 1: Display();//显示所有电话簿的信息 Sleep(2000);system(“cls”);break;case 2: Search();//按姓名查找信息 Sleep(2000);system(“cls”);break;case 3: //录入新信息

p=MallocNode();//先申请一个新结点 Enter(p);//要求用户输入信息到新结点中 InsertOneNode(p);//将新结点加到链表中 Sleep(2000);system(“cls”);break;case 4: Delete();//删除电话簿信息

Sleep(2000);system(“cls”);break;case 5:

ChangeInforByName();//按姓名修改电话簿信息 Sleep(2000);system(“cls”);break;case 6: Save();//保存 Sleep(2000);system(“cls”);break;case 7:

Load();//装入 Display();Sleep(2000);system(“cls”);break;case 0: Save();//保存数据后再退出 free(headLink);exit(1);break;default:

} break;} Menu();//递归调用

// 函数功能:建立链表表头 void CreateHeadLink(void){ CLUB *p;p=(CLUB *)malloc(sizeof(CLUB));headLink=p;p->next=NULL;} // 函数功能:增加新结点 void InsertOneNode(CLUB *t){ CLUB *p;p=headLink;while(p->next){ p=p->next;} p->next=t;} //函数功能:申请一个新结点,并将其初始化 CLUB *MallocNode(void){ CLUB *p;int i;p=(CLUB*)malloc(sizeof(CLUB));if(p==NULL)return NULL;for(i=0;i<20;i++)p->NAME[i]=';

for(i=0;i<20;i++)p->STREET[i]=';

for(i=0;i<10;i++)p->CITY[i]=';

for(i=0;i<20;i++)p->STATE[i]=';

for(i=0;i<20;i++)p->PHONE[i]=';

for(i=0;i<20;i++)p->EIP[i]=';

p->next=NULL;} return p;//函数功能:录入电话簿信息 void Enter(CLUB *t){

} printf(“请输入姓名: n”);scanf(“%s”,t->NAME);printf(“请输入街道信息:n”);scanf(“%s”,t->STREET);printf(“请输入城市信息:n”);scanf(“%s”,t->CITY);printf(“请输入国家信息:n”);scanf(“%s”,t->STATE);printf(“请输入电话号码:n”);scanf(“%s”,t->PHONE);printf(“请输入邮编信息:n”);scanf(“%s”,t->EIP);//函数功能:在链表的结尾处增加一个结点 void InsertOneNode(void){ CLUB *p;p=headLink;while(p->next){ p=p->next;} p->next=p;} //函数功能:根据用户输入的姓名显示电话簿的信息 void Search(void){ CLUB *p;char NAME[20];char flag=0;p=headLink->next;printf(“请输入要查询的姓名信息:n”);scanf(“%s”,NAME);while(p){ if(strcmp(p->NAME,NAME)==0){ printf(“n 姓名t街道t城市t国家t电话号码t邮编n”);DesplayOneNode(p);flag=1;break;} p=p->next;} if(!flag)} printf(“对不起,不存在姓名为 %s 的电话簿信息n”,NAME);//函数功能:输出一个结点的信息 void DesplayOneNode(CLUB *t){ printf(“%st”,t->NAME);printf(“%st”,t->STREET);printf(“%st”,t->CITY);printf(“%st”,t->STATE);printf(“%st”,t->PHONE);printf(“%st”,t->EIP);printf(“nt”);} //函数功能:显示所有电话簿的信息 void Display(void){ CLUB *p;p=headLink->next;if(p==NULL){ printf(“现在没有电话簿信息,请先输入电话簿信息nn”);return;} printf(“n”);printf(“nt姓名t街道t城市t国家t电话号码t邮编ntnt”);while(p){ DesplayOneNode(p);p=p->next;} p=NULL;} //函数功能:根据用户输入的姓名删除 void Delete(void){ char NAME[20];CLUB *p,*q;char flag=0;printf(“请输入要删除的姓名信息:”);scanf(“%s”,NAME);p=headLink;q=headLink->next;while(q){ if(strcmp(q->NAME,NAME)==0){ p->next=q->next;free(q);flag=1;break;} p=p->next;q=q->next;} if(!flag){

} printf(“不存在该姓名的信息n”);return;} printf(“成功删除n”);//函数功能:根据输入的姓名修改电话簿信息 void ChangeInforByName(void){ CLUB *p;char NAME[20];char flag=0;p=headLink->next;printf(“请输入姓名:n”);scanf(“%s”,NAME);while(p){ if(strcmp(p->NAME,NAME)==0){

printf(“请输入新的街道信息:n”);scanf(“%s”,&p->STREET);printf(“请输入新的电话号码:n”);scanf(“%s”,&p->PHONE);printf(“修改成功n”);break;}

} p=p->next;} // 函数功能:保存链表数据到文件中 void Save(void){ CLUB *p;FILE *fp;p=headLink->next;if(p==NULL){

} printf(“现在没有电话簿信息,请先输入电话簿信息nn”);return;} fp=fopen(“CLUB.txt”,“w+”);if(!fp){ printf(“文件不存在n”);return;} while(p){ fprintf(fp,“%st%st%st%st%st%sn”,p->NAME,p->STREET,p-> CITY,p->STATE,p->PHONE,p->EIP);p=p->next;} fclose(fp);

篇2:数据结构c课程设计

班级:12级计科1班 姓名:卜倩倩

一、教学背景

知识基础: 在前段时间的学中,学生已经掌握了一下知识:c语言的基本数据类型及其运算、顺序程序设计等。

教学方法:以教为主的课件讲解,包括:回顾—讲授—举例—讨论—评价五个部分。

二、教学目标

认知目标:

1、掌握几种运算符(关系运算符、逻辑运算符、条件运算符)的特点,清楚没种运算符的优先级和结合性;

2、了解条件与程序流程的关系;

3、了解不同数据使程序的流程覆盖不同的语句、分支和路径;

4、了解if语句和switch语句的使用方法,及其运用; 能力目标:

1、能够使用if语句编写条件选择程序;

2、能够使用嵌套if语句和switch语句编写多分支选择结构程序;

3、进一步培养学生全面地观察问题、分析问题和逆向思维的能力; 情感目标:

培养学生敢于挑战,勇于探索的精神和善于观察,大胆创新的思维品质。

三、教学重点和难点

重点:

If语句、switch语句、条件运算符; 难点:

嵌套if语句的使用方法,while语句的使用方法;

四、教学策略:

1、为学生提供了多种学习情境和充分的学习效果展示机会,培养了学生独立思考能力,增强了学生的学习信心;

2、根据主讲内容,教师用大量的例题和习题,让同学们在对概念的了解上,学会了怎样具体运用所学知识

五、教学过程

1、通过知识回顾,创设情境,引入概念;

2、讲授新的学习内容;

3、利用例题的形式,让同学们加深对概念的理解;

4、通过练习巩固所学知识;

六、教学评价

篇3:数据结构c课程设计

我院C程序设计课程与数据结构课程是分上下学期开设的, 将C程序设计课程作为数据结构课程的前导课, 综合两门课程的教学效果, 发现具有以下弊端:

首先, 在C程序设计的讲授过程中, 教师和学生会花大部分时间在基本概念、程序结构、数组上, 而数据结构的学习必须以函数、指针、结构体为基础, 这样导致学生在数据结构的学习上不能得心应手。

其次, 两门课程分上下学期分开学习, 导致教师在讲解数据结构时还要花时间复习C语言的内容, 这样就使得数据结构课程的学时不够用。

最后, 数据结构部分内容对于高职高专学生来说, 学习难度大、实际应用不上。

基于以上原因, 我院教师觉得两门课程的改革势在必行, 于是, 为了有更好的教学效果, 缩短学时, 提出将两门课程合并。同时这两门课程的教学内容相互关联也使这两门课程的整合具有了可能性和必要性。

2、课程整合设计的理念和思路

我们根据市场对高职人才的需求, 着重培养学生的实际动手能力, 把高职学生的培养模式与课程紧密结合起来。在整合过程中, 合理地分配学时, 注重内容的新颖和信息量, 重新构建课程知识体系, 重新制定课程标准, 重新设计教学内容, 编写适合本校学习学生的教材、实验指导书、课件。同时我们秉承“以知识学习为基础, 以素质培养为目标, 以能力训练为本位”课程建设理念, 设定了课程改革的大致方向。具体表现在以下三个方面:

(1) 将知识融入到任务中。知识是学生可持续发展的坚实基础, 是学生能力提升的坚强后盾。学习知识的最有效途径是应用知识, 做到“学以致用、用学结合、边学边用”。我们围绕知识教学为中心, 选择富有特色的教学实例, 通过任务驱动、案例促进知识学习。

(2) 将素质的培养贯穿到整个教学过程中。在课程建设和教学过程中, 强调学生形成良好的编程风格, 具有良好的职业道德、严谨的思维能力;通过课堂实例的讨论, 使学生具备良好的团队合作能力、较强的表达能力和良好的心理素质, 激发学生的创新能力;通过作业和思考题的布置, 培养学生自学和自我增值的能力。

(3) 基于能力训练的项目设计。针对完成项目的过程, 将程序设计能力分解为编写流程图能力、阅读程序的能力、按流程图写程序能力、调试程序的能力。我们在教学项目实践中设置了多个能力点, 在项目设计时, 要求每个项目实现过程的完整性, 尽量覆盖每个能力点的训练。

3、课程整合措施

3.1 教学内容的整合

整个课程的教学内容以C程序设计内容为主线, 将数据结构的内容渗透、溶入C程序的教学内容中, 对于数据结构的内容以“必需、够用”为度。具体的教学内容包含:

(1) C语言和数据结构的基础知识:C程序编辑与运行环境、算法、流程图、数据类型、常量、变量、表达式与运算符, 数据结构的基本概念和术语。

(2) 顺序程序设计:格式、字符输入输出函数, 顺序程序设计的应用。

(3) 选择结构程序设计:关系与逻辑运算符、If、Switch语句。

(4) 循环结构程序设计:while、do-while、for、break与continue语句的格式及其应用。

(5) 函数:函数的定义与调用、函数的嵌套与递归调用, 变量的作用域与存储类型, 编译预处理。

(6) 数组和结构体:数组和结构体的定义及应用;线性表的顺序存储结构, 顺序线性表的创建和输出;顺序线性表中的排序、查找算法。

(7) 指针和链表:指针的定义及其在程序中的应用, 指针变量作为函数参数的使用方法;链表的表示和实现。

(8) 栈、队列和树:栈、队列、树及二叉树的定义及存储结构、应用。

(9) 图:图的基本概念、图的存储结构、图的遍历、最小生成树、最短路径与最短距离、拓朴排序。

3.2 实验设计思想

C程序设计和数据结构都是实践性很强的课程, 因此在理论教学的同时, 还要合理安排上机实践。两门课程整合后, 根据以往实验教学的经验, 重新安排各种实验, 以巩固、加深教学内容。实验形式较以往的单一形式不同, 为验证型、纠错型、引导型、设计型, 实验内容做到循序渐进、由浅入深, 有利于学生阅读、调试、设计程序能力的提高。例如:在学习顺序结构设计时, 教师安排一个设计型实验, 由键盘任意输入一个四位的正整数, 编程求各位数字之和。学习选择结构设计时, 将实验改为由键盘任意输入一个四位的正整数, 编程判断并输入它的位数以及各位数字之和, 要求学生用“选择结构”编制程序。学完循环结构程序设计后, 将其改为引导型题目, 要求学生用“循环结构”实现。

顺序结构程序如下:选择结构程序如下:

通过完成不同类型的实验, 有目的的、分层次地培养学生的实践能力, 使学生学会从实验过程中获得启发, 获取知识、积累经验。

在课程学习结束后, 进行2周的课程设计。课程设计是由指导教师根据本门课程的教学目标和能力训练的要求选择设计一个项目, 该项目的内容不仅涵盖了C程序设计与数据结构课程理论教学的主要知识点, 同时能够提高学生应用C语言与数据结构的知识解决实际问题的能力。

3.3 教学方法探讨和手段设计

首先, 不管学习什么样的课程, 兴趣是最好的老师。在过去的教学过程中, 发现大部分学生抱怨程序设计太难、不好学、难读、编程无从下手等问题。因此, 针对学生的这种情况, 调动学生学习的兴趣和积极性显得尤为重要。经常用学生生活中的小实例来结合课程的教学, 让学生明白C语言和数据结构离我们很近, 而且很有用。再者, 采用“启发、引导”教学方法。在授课过程中, 引导学生提出问题、分析问题、划分程序模块、算法设计, 最终编写出程序。这种教学方法能够很好的吸引学生的注意力, 调动学生的学习主动性。最后, 有效利用现代化教学手段辅助教学:一是精心制作课件, 制作Flash动画, 使用多媒体进行教学。二是有效的利用实训室和教学软件进行一体化教学, 边讲边做, 增加互动教学过程, 提高学生的动手能力。三是借助职教新干线、BBS等网络平台进行网络互动交流。

4、结语

整合之后的课程以C程序设计内容为主线, 将数据结构的内容溶入其中, 根据需要对课程内容进行相应的调整。整合后的课程更注重学生阅读程序、调试程序、编写程序能力的培养。当然, 肯定还是存在一些问题, 需要在今后的教学实践中不断地修正和完善。

摘要:C程序设计和数据结构是高职院校计算机专业重要的专业基础课。在以往教学中, 两门课程是独立教学, 教学效果并不好。针对这一情况, 我院教师决定对两门课程整改, 提出将两门课程合并。本文根据我院高职高专学生的特点和两门课程教学目标, 分析了这两门课程整合的可行性和必要性, 对课程整合的思路和方法、实践教学的设计等相关内容进行了探讨和研究。

关键词:C语言,数据结构,整合,高职

参考文献

[1]谢莉莉, 李勤, 傅春等“.C语言与数据结构”课程的教学改革实践[J].北京:计算机教育, 2009 (7) .

[2]周成义.高职C语言与数据结构课程的整合实践[J].<职业时空>, 2009第3期.

[3]张世和.数据结构[M].北京:清华大学出版社, 2008:2.

篇4:数据结构c课程设计

1.在《C程序设计》与《数据结构》教学中对课程整合概念的理解

理论上,课程整合是指对课程设置、各课程教育教学目标、教学设计、评价等诸要素作系统的考察与操作。在实际教学中,课程整合是指考虑到各门相互分裂的课程之间的有机联系,将这些课程综合化。

在传统的教学模式中,《C程序设计》是先行课程,《数据结构》是后续课程,它们都是学习操作系统、数据库原理和应用、面向对象程序设计等课程的基础。《C语言程序设计》是学生最先接触的结构化程序设计语言,其教学目的主要是使学生了解结构化程序设计的算法和思路,掌握程序设计和调试的基本技巧,培养良好的软件设计基础。《数据结构》主要是研究非数值应用问题中数据之间的逻辑关系和对数据的操作,同时还研究如何将具有逻辑关系的数据按一定的存储方式存放在计算机内。其教学目的主要是使学生掌握数据的逻辑结构、存储结构及其相应的算法,培养学生解决实际问题的能力,即能够把现实世界中的客观问题,变换为在计算机内的表示形式,学会组织数据、选择算法、养成良好的程序设计风格。

《数据结构》课程中分析数据之间的逻辑关系和确定数据在计算机内的存储结构是所有程序设计过程中必须完成的两大任务,且《数据结构》中算法描述的语言又多采用C语言,两门课程之间存在着紧密而内在联系,为两门课程的整合提供了可能性。

2.《C程序设计》与《数据结构》的教学现状

在传统的教学模式中,《C程序设计》是先行课程,《数据结构》是后续课程,将两门课程分开来教学,人为地割断了它们之间的内在联系,导致学生在学习《C程序设计》时,仅局限于C语言的语法层面上,不能把C语言的程序设计思路和语法知识具体运用到数据结构的算法中去,使理论知识与实践运用脱钩。而在学习《数据结构》时,由于教师的更换和教材的多样化,任课教师又不得不花掉一、两周的时间来复习C语言的相关知识,造成了课时的浪费和学生反感。在具体运用时,又出现学生能理解数据结构中的算法和读懂算法,却不能运用C语言去实现算法等程序设计能力较差的现象。笔者长期从事这两门课程的教学工作,一直在探索如何提高这两门课程的教学效果,培养学生运用C语言这个工具去解决实际问题的能力。

3.《C程序设计》与《数据结构》课程整合的思路

在高职院校计算机应用专业的课程体系中,实现《C程序设计》和《数据结构》这两门课程的整合,要结合职业教育培养实用型人才的目标,根据后续专业课程的需要来确定。《C程序设计》和《数据结构》课程整合化的思路以C语言为工具,以实践为中心,重视基础知识,注重能力培养,对两门课程教学内容和教学模式进行优化和整合。

在实施过程中,将这两门课程整合为一门课程,课程名称为《C程序设计与数据结构》,在一个学期内完成授课内容。坚持理论联系实践的教学模式,突出实践教学的重要性,去掉繁琐的理论推导,重新设计教学、实训大纲,处理教材,合理分配学时。在具体教学中,以C语言为主线,将数据结构的内容溶入到C语言的教学中,对数据结构的内容以“适度够用”为原则,适当地进行删减,以满足高职教育培养应用型人才的教学需要。

4.《C程序设计》与《数据结构》课程整合的具体实施

(1)整合后理论课教学的内容和学时分配

整合后周学时为6节,总学时为102节(按17个教学周计),其中理论课时为68节,上机实践课时为34节。

(2)课程整合后的实践教学设计

在实践教学中,要进一步巩固对理论知识的理解,提高学生灵活运用数据结构和算法的能力,使学生在编程、上机操作、程序调试与正确性验证等基本技能方面得到训练和提高。实验可分两部分,一是验证性实验,主要结合课堂理论教学内容展开,学生可以对在课堂上学到的基本算法进行验证;二是运用性实验,组织学生以小组为单位设计一些实用程序,要求学生从实际出发,在具体、真实的环境中分析研究数据对象的特性,构造合理的数据结构以及相应的算法。

(3)课程整合后的考试要求

整合后的课程培养目标是提高学生的计算机应用能力,计算机应用能力包括了三个层次:操作使用能力、应用开发能力和创新能力。因此整合后的课程考核,应采取理论基础闭卷和上机操作开卷相结合的方式进行,综合评价应从以下三个方面来着手。

①笔试。笔试主要是考察学生对理论知识的系统性的理解,可由客观题型(如选择、填空题等)和主观题型组成,客观题型要立足于基础知识,小而全,避免死记硬背。主观题型要灵活多样,如问题解决分析、程序编写等。占整个评价的30%。

②上机实践。上机实践贯穿于整个教学当中,所以要注重过程考核,结合实训计划,在各单元模块结束时,进行随堂考核,并认真检查和记录学生考核情况,作为期末上机实践成绩的一部分。实行各单元过关,有了各单元模块的考核,到期末上机操作综合考核时就不成问题了。通过对上机操作实践的评价,可以考察学生应用计算机解决实际问题的能力。占整个评价的40%。

③学生的平时表现。学生的平时表现是指是否认真上课、听课,上机练习的任务是否独立完成,上机设计的任务是否有创意,作业是否按时上交等等,这些资料的积累,有利于对学生学习情况的全面认识。学生在整个授课过程中的表现,占整个评价的30%。

在课程整合中,合理的考核方案能促进学生知识的积累,避免学生考前突击和死记硬背现象,使学生真正学到知识。

随着我国经济的突飞猛进和国家对职业教育的高度重视,高职教学改革也在不断深入,探索高职计算机专业应用型人才的培养模式,加强《C程序设计》与《数据结构》课程建设与教学改革也将不断深入,作为一名长期从事计算机教学的教育工作者,更要转变观念,探索新的教育教学模式,培养更多适应我国社会主义现代化建设需要的高素质应用型专业人才。

篇5:c课程设计

学院

学院:信息工程学院 部门:文体部 姓名:刘少卿 信息

有时候不得不感叹时间过得太快,转眼间我已经在学院学生会担任文体部部长半年了,这半年有很多的收获,也有些遗憾。我在担任部长的一年不仅学会了很多工作中的知识,更懂得了作为一个部长不仅应有领导能力,更要有良好的共同协调能力,能充分发挥各个部员的优势来更好的完成工作,积极听取别人的建议。我会尽力将担任部长一年来的工作心得,以便能更快适应工作,更好的促进文体部发展。

回顾这一学期,我们文体部的新成员都慢慢地成长起来,在这学期我们手牵手坚持不懈的完成了工作,其中有欢乐,有无奈,可我们都在这段经历中学会了团结协作,懂得了责任与担当,工作能力上也得到很大的提升。

在学院领导的关心支持下,学生会换届工作顺利进行,文体部共招收干事 9 名,学生会日常管理工作得以正常开展起来。2014级新生的加入,为文体部注入了新的血液,大家最初都不太熟悉彼此,比较的陌生,但经过这一个学期的共同工作,相互之间都比较熟悉了,大家的默契度也提高了,这对部门的工作开展有了很大的帮助。

为了增强团体合作精神,展现当代大学生积极向上的精神风貌,活跃学习氛围,给同学们一个真正展示自我风采和勇气的舞台,使同学们的大学生活过得更加丰富多彩,更加有意义。我们文体部与其他各个部门协同举办或参与了许多有趣的活动,如:新生篮球赛、运动会、乒乓球比赛、羽毛球比赛、脱口秀、拔河友谊赛等。在这些比赛中同学间增进了友谊,班级间的关系更加融洽,也让我们的工作能力得到了进一步的锻炼。我觉得这些活动充分发挥了体育活动的功效,不管比赛结果如何,我们展示了我们光彩,我觉得很成功!

在一系列的活动期间,文体部取得了很多成绩,但也有不足。

1、部门的定位欠缺,导致部分活动的后续跟进工作进展缓慢。

2、因为各种因素,部门内部分工不平衡,有所失调。

3、没有给干事提供充足的锻炼的平台。

4、与班委缺乏简洁、高效的反馈途径,缺乏充足的沟通。

5、分工没有具体到人,所以造成工作完成不及时或出现有的工作没人做的情况。

对于这些不足之处在以后的工作中我会多加注意争取以后让我部门的工作更加顺利地进行。

篇6:c课程设计

设计要求:

每人选定2个题目,限1人选的题目只能由1人单独完成,限2人选的题目可由1-2人完成。

1.模块化程序设计 2.锯齿型书写格式 3.必须上机调试通过 设计报告格式:

1、设计目的

2、总体设计(程序设计组成框图、流程图)

3、详细设计(模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等)

4、调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施

5、源程序清单和执行结果:清单中应有足够的注释

检查要求:

1、每个人必须有可运行的程序(学期末检查);

2、每个人必须交《C语言课程设计报告》(打印稿)打分标准:

1、根据平时上机考勤;注重平时上机成绩,教师要不定期检查学生进度,学生不得以自己有私人电脑为借口而不来上机。

2、根据程序运行结果;

3、根据《C语言课程设计报告》,学生能对自己的程序面对教师提问并能熟练地解释清楚

以上三项缺一不可,否则不能到得相应学分

1、职工信息管理系统设计(限最多2人完成)

职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。试设计一职工信息管理系统,使之能提供以下功能:

系统以菜单方式工作,所有信息保存到文件中 职工信息录入功能(职工信息用文件保存)--输入 职工信息浏览功能 --输出

查询和排序功能:(至少一种查询方式)--算法

按工资查询 按学历查询

职工信息删除、修改功能(任选项)

2、图书信息管理系统设计(限最多2人完成)

图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功能:

系统以菜单方式工作,所有信息保存到文件中 图书信息录入功能(图书信息用文件保存)--输入 图书信息浏览功能--输出 查询和排序功能:(至少一种查询方式)--算法

按书名查询 按作者名查询

图书信息的删除与修改(可选项)

3、学生信息管理系统设计(限最多2人完成)

学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能:

系统以菜单方式工作,所有信息保存到文件中 学生信息录入功能(学生信息用文件保存)---输入 学生信息浏览功能---输出 查询、排序功能---算法

按学号查询 按姓名查询

学生信息的删除与修改(可选项)

4、学生选修课程系统设计(限最多2人完成)

假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。试设计一选修课程系统,使之能提供以下功能:

系统以菜单方式工作,所有信息保存到文件中 课程信息录入功能(课程信息用文件保存)--输入 课程信息浏览功能--输出

查询功能:(至少一种查询方式)--算法v 按学分查询 按课程性质查询

学生选修课程(可选项)

5、销售管理系统(限最多2人完成)

某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容:

1)销售员的代号 2)产品的代号

3)这种产品的当天的销售额

每位销售员每天可能上缴0-5张便条。假设,收集到了上个月的所有便条,编写一个处理系统,所有信息保存到文件中,读取上个月的销售情况(自己设定),进行如下处理。

1)计算上个月每个人每种产品的销售额。

2)按销售额对销售员进行排序,输出排序结果(销售员代号)

3)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)

4)输出统计报表

销售统计报表

产品代号

销售之和 销售员代号

每种产品之和

总和

6、设计一个简单计算器(限最多1人完成)

要求: 在功能上功能尽量模拟windows操作系统中的计算器,系统界面不做强制要求。

7、编写一万年历系统(限最多1人完成)

要求: 模仿现实生活中的挂历.当前页以系统当前日期的月份为准显示当前月的每一天(显示出日及对应的星期几).当系统日期变到下一月时,系统自动翻页到下一月.8、学生成绩管理(限最多2人完成)

1.主要功能:

(1)能按学期、按班级完成对学生成绩的录入、修改

(2)能按班级统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序

(3)能查询学生成绩,不及格科目及学生名单(4)能按班级输出学生的成绩单(5)所有信息保存到文件中

9、通讯录管理(限最多1人完成)

1.主要功能:

(1)能建立、修改和增删学生通讯录(2)能够按多种方式进行查询

2.要求:界面友好,易于操作,所有信息保存到文件中

10、一元多项式简单的计算器(限最多1人完成)

1主要功能:

(1)输入并建立多项式;(2)输出多项式;

(3)两个多项式相加,建立并输出和多项式;(4)两个多项式相减,建立并输出差多项式。

(5)算法的时间复杂度、另外可以提出算法的改进方法 实现提示:可选择带头结点的单向循环链表或单链表存储多项式,头结点可存放多项式的参数,如项数等。

2.要求:一元多项式简单计算器的基本功能

11、图书管理系统(限最多2人完成)

1、功能描述

新进图书基本信息的输入。2.图书基本信息的查询。3.对撤消图书信息的删除。4.为借书人办理注册。

5.办理借书手续(非注册会员不能借书)。6.办理还书手续

信息描述:有关该系统基本信息的描述,如:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等

7.所有信息保存到文件中

12、用栈来设置密码(限最多1人完成)

要求:用栈来做一个密码验证程序,密码验证只有三次机会。

13、双向链表的排序(限最多1人完成)

要求:输入一个双向链表,显示些双向链表并对此双向链表排序,所有信息保存到文件中

14、成绩记录簿(限最多2人完成)

编制一个C语言成绩记录簿,每个学生信息包括:学号、姓名、C语言成绩。具体功能:

(1)创建信息链表并以磁盘文件保存;

考核方式

课程设计完成情况; 课程设计报告;

课程设计期间的表现.参考评定依据

课程设计成绩评定的依据有设计文档资料、具体实现设计方案的程序及课程设计考勤登记表,其中平时成绩占总成绩的20%。

优:按要求完成题目,有完整的符合标准的文档,文档有条理、文笔通顺,格式正确,其中有总体设计思想的论述,有正确的流程图,程序完全实现设计方案,设计方案先进,软件可靠性好;

良:完成设计题目,有完整的符合标准的文档,文档有条理、文笔通顺,格式正确;有完全实现设计方案的软件,设计方案较先进;

中:基本完成题目,有完整的符合标准的文档,有基本实现设计方案的软件,设计方案正确;

及格:基本完成题目,有完整的符合标准的文档,有基本实现设计方案的软件,设计方案基本正确;

不及格:没有完成题目的要求,没有完整的符合标准的文档,软件没有基本实现设计方案,设计方案不正确。

提交资料:

课程设计报告

提交报告的内容

一、题目内容的描述

二、应用程序功能的详细说明

三、输入数据类型、格式和内容限制;

四、主要模块的算法描述 –以程序流程图的方式给出 –简要的语言描述

五、结束语

六、程序的源代码清单

七、报告的字数,不算源代码清单不少于4页 提交报告的格式

正文宋体小四号字

每个自然段开始空两格.文中英文用新罗马(time new roman),四号

源程序清单用英文新罗马五号 正文宋体小四号字 提交报告封面

软件:需提供源程序,并能正常运行。

篇7:c课程设计

完成一个类似TC集成系统菜单的西文下拉菜单的设计,支持鼠标,不要求实现个子菜单的功能,界面仿turboc2.0系统菜单.二、课程设计的要求与数据

1、进一步掌握和利用C语言进行程设计的能力;

2、进一步理解和运用结构化程序设计的思想和方法;

3、初步掌握开发一个小型实用系统的基本方法;

4、学会调试一个较长程序的基本方法;

5、学会利用流程图或N-S图表示算法;

6、掌握书写程序设计开发文档的能力。

三、课程设计应完成的工作

1、编写完成相应题目的程序;

2、编写课程设计报告,课程设计报告的内容应包括以下6个部分:

1)需求分析:包括设计题目、设计要求以及系统功能需求分析; 2)总体设计:包括系统总体设计框架和系统功能模块图;

3)详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图; 4)调试分析过程描述:包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等,适当的包含结果截图); 5)总结:课程设计完成了哪些功能,有没有什么扩展功能?还有哪些地方需要改进?课程设计过程中的学习体会与收获、对本次课程设计的认识以及自己的建议等内容;

6)附录:主要源程序代码,含必要的注释。

3、答辩:在实验室建立程序运行的环境,并在指导教师的监督下,独立解决问题、运行程序和回答教师提出的问题。

四、课程设计进程安排 序号设计各阶段内容

地点起止日期 1 下达任务书,说明设计要求;收集资料

实验3#517 6.18 2 总体方案设计、详细设计实验3#517 6.19 3 编写程序,调试分析实验3#517 6.20 4

撰写报告并上交,答辩 实验3#517 6.21

五、应收集的资料及主要参考文献

[1] 谭浩强.C程序设计(第三版)[M],北京:清华大学出版社,2005.9

[2] 谭浩强.C程序设计题解与上机指导(第三版)[M],北京:清华大学出版社,2005.7 [3] 刘振安.C程序设计课程设计,北京:机械工业出版社,2004.9 发出任务书日期: 2007年 6 月 18 日指导教师签名: 计划完成日期:

2007年 6 月 22 日基层教学单位责任人签章:

主管院长签章:

目录设

目的与

要求………………………………………………………………页码

设计………………………………………………………………………

设计………………………………………………………………………页

3.1

设计………………………………………………………………页码

3.1.1 XX

(可选)…………………………………………………页码 3.1.1 YY功

(可选)…………………………………………………页码 3.1.1 ZZ功

(可选)…………………………………………………页码 3.2数据结构设计………………………………………………………………页码

分析……………………………………………………………………页码

总结………………………………………………………………………

附录……………………………………………………………………………页码 6 答辩记录(正文处请留出适当空白)………………………………………页码 7 指导教师意见(正文处请留出十行空白)…………………………………页码 目的与要求

完成一个类似TC集成系统菜单的西文下拉菜单的设计,支持鼠标,不要求实现个子菜单的功能,界面仿turboc2.0系统菜单.总体设计 详细设计 #include“stdio.h”

#include“stdlib.h” #include“dos.h”

#include“conio.h”

#include“bios.h”

#define DOWN 0x5000

#define UP 0x4800

#define Esc 0x011b

#define ENTER 0x1c0d

#define Backspace 0xe08

#define ALT_B 12288 /*组合键alt+b*/ int key;

inttextx,texty;

char save[4096];char c[4096];structmenustruct

{

char name[40];charstr[11][20];int n;}m1[1];inti,j;void menu()

{

system(“cls”);

textbackground(BLUE);window(1,1,25,80);

clrscr();

textx=3;texty=2;gotoxy(1,2);printf(“%c”,218);for(i=0;i<78;i++)printf(“%c”,196);printf(“%c”,191);for(i=3;i<=23;i++)

{

gotoxy(1,i);

printf(“%c”,179);

gotoxy(80,i);printf(“%c”,179);

}

printf(“%c”,192);for(i=0;i<78;i++)printf(“%c”,196);printf(“%c”,217);gotoxy(1,1);

textcolor(7);

for(i=0;i<80;i++)cprintf(“%c”,219);selectitem();

drawselectitem();gettext(2,3,78,23,c);

}

selectitem(){

strcpy(m1[0].name,“*************menu*************”);strcpy(m1[0].str[0],“ intput ”);

strcpy(m1[0].str[1],“ consult ”);strcpy(m1[0].str[2],“ output ”);strcpy(m1[0].str[3],“ modify ”);strcpy(m1[0].str[4],“ delete ”);strcpy(m1[0].str[5],“ recover ”);strcpy(m1[0].str[6],“ add ”);strcpy(m1[0].str[7],“ save ”);strcpy(m1[0].str[8],“ open ”);

strcpy(m1[0].str[9],“ tong ji ”);strcpy(m1[0].str[10],“ exit ”);m1[0].n=11;

}

drawselectitem()

{

for(i=0;i<3;i++)

RedText(i,1,m1[i].name);

}

RedText(intx,inty,char *z)

{

textbackground(7);gotoxy(3+x*20,y);for(j=0;z[j];j++)

{

if(j==0)

textcolor(RED);else textcolor(BLACK);cprintf(“%c”,z[j]);

} }

BlackText(intx,inty,char *z)

{

textbackground(0);textcolor(15);gotoxy(3+20*x,y);cputs(z);

}

Run(){

while(1)

{

gotoxy(textx,texty);

key=bioskey(0);switch(key)

{

case ALT_B:

case Esc:DrawM1(0);break;

case UP:

{

if(textx==3)textx=23;textx--;gotoxy(texty,textx);

} break;

case DOWN:

{

if(textx==23)

textx=3;textx++;

gotoxy(texty,textx);

} break;

case Backspace:

{

if(texty==2&&textx==3)

continue;else {

if(texty!=2)texty--;else if(texty==2)

{

texty=78;textx--;

}

gotoxy(texty,textx);

printf(“ ”);

gotoxy(texty,textx);}

}break;

case ENTER:

{

if(textx==23)continue;textx++;texty=2;

gotoxy(texty,textx);

}break;default:

{

if(texty==79&&textx==23)continue;else if(texty==79&&textx!=23)

{

textx++;texty=2;}

gotoxy(texty,textx);printf(“%c”,key);if(texty==79)continue;else texty++;

}

}

}

}

DrawFrame(intl,intu,intr,intd,inttcolor,intbcolor)

{

textbackground(bcolor);textcolor(bcolor);for(i=1;i<=r;i++)

{

for(j=u;j<=d;j++){ gotoxy(i,j);

printf(“%c”,219);

}

}

textcolor(tcolor);for(i=u+1;i

{

gotoxy(1,i);

cprintf(“%c”,179);gotoxy(r,i);

cprintf(“%c”,179);

}

for(i=l+1;i

{

gotoxy(i,u);

cprintf(“%c”,196);gotoxy(i,d);

cprintf(“%c”,196);

}

gotoxy(l,u);

cprintf(“%c”,218);gotoxy(r,u);cprintf(“%c”,191);gotoxy(l,d);

cprintf(“%c”,192);gotoxy(r,d);

cprintf(“%c”,217);

}

DrawM1(int n)

{

gettext(1,1,80,25,save);BlackText(n,1,m1[n].name);

DrawFrame(3+20*n-1,2,3+20*n+19,3+m1[n].n,0,7);

for(i=3;i<3+m1[n].n;i++)

{

if(i==3)

BlackText(n,i,m1[n].str[i-3]);

else RedText(n,i,m1[n].str[i-3]);

}

gotoxy(79,1);MoveM1(n,3);

}

MoveM1(intn,int x){

int flag=1;while(flag)

{

gotoxy(79,1);key=bioskey(0);gotoxy(79,1);switch(key)

{

case Esc:

puttext(1,1,80,25,save);flag=0;break;case UP:

RedText(n,x,m1[n].str[x-3]);if(x==3)

x=3+m1[n].n-1;else x--;

BlackText(n,x,m1[n].str[x-3]);flag=1;

break;case DOWN:

RedText(n,x,m1[n].str[x-3]);if(x==(3+m1[n].n-1))x=3;else x++;

BlackText(n,x,m1[n].str[x-3]);flag=1;break;

case ENTER:

puttext(1,1,80,25,save);

Enter(n);flag=0;break;

}

gotoxy(79,1);

}

}

Enter(int m)

{

switch(m){

case 0: printf(“ student input”);break;

case 1: printf(“ student consult ”);break;case 2: printf(“ student output ”);break;case 3: printf(“ student modify ”);break;

case 4: printf(“ student delete ”);break;case 5: printf(“ student recover”);break;case 6: printf(“ student add”);break;case 7: printf(“ student save ”);break;case 8: printf(“ student open ”);break;case 9: printf(“ student tong ji”);break;case 10: printf(“ student exit”);exit(0);

}

}

main(){

menu();Run();

篇8:C语言与数据结构课程整合的研究

从学科体系上说, 《C语言程序设计》着重讲授C语言的语法和程序设计方法, 《数据结构》主要讲授线性和非线性结构的逻辑结构、存储结构及相关算法, 它们之间是相对独立的, 因此, 传统的教学模式通常是将两门课程分开在两个学期, 大一第一学期开设C语言, 第二学期开设数据结构, 这种以学科知识体系为本位的教学模式违背了高职教育“理论知识够用, 注重应用能力培养”为目标的原则, 已致于学生普遍认为C语言难学, 数据结构更难懂。首先, 解决问题的完整过程被拆分。用计算机解决一个实际问题需要两个过程:解决问题的算法和用计算机实现算法。数据结构描述了解决一个问题的算法思路, C语言可以将算法在计算机上实现, 这两个过程原本是一个统一的整体, 却分开在两个学期, 使学生将完整的过程分开学习, 不符合学习的规律。其次, C语言学时少, 内容不完整。在学习C语言时, 教师一般都会从基本概念、数据类型、顺序结构、条件选择、数组、循环、指针, 最后到文件的顺序讲授整门课程。由于学时的限制, 一般到循环后, 整个教学过程也即将结束, 同时, 教师在讲授时注重知识点的讲解, 而不是用C语言解决实际问题, 学生学完后只是掌握了编程设计的基本概念, 并没有形成一定的编程思想。最后, C语言与数据结构教学内容脱节。在C语言的学习中, 由于学时有限, 指针和结构体学习不到, 而这部分内容恰恰是数据结构中的常用知识, 因此很多学生在学习过程中就会放弃, 从而导致整个教学过程的失败。

2、课程整合的可行性

从完整地解决一个实际问题的角度看, 数据结构课程注重培养学生的逻辑思维能力和分析解决问题的能力, 提供解决实际问题的算法思想, C语言作为一种语言工具, 可以将算法用计算机实现, 这两个过程对于应用计算机解决一个实际问题来说是缺一不可的, 也是密不可分的。从课程内部的知识结构看, C语言中体现了数据结构的思想, 数据结构中应用了C语言的知识。

3、课程整合的思路

3.1 整合后的课程目标。

根据以上对两门课程传统教学的分析和课程间的内在关联, 本课程改革的目标是:将C语言与数据结构的知识内容有机整合, 设计一些生活中常用的案例和项目覆盖教学知识点, 在解决问题的同时学习知识, 注重培养学生应用数据结构知识分析解决实际问题的能力和以C语言为工具应用计算机解决问题的能力。

3.2 课程整合的原则。

在课程整合时本着“兴趣导向, 应用为本, 理论够用”的原则, 抛弃按学科体系组织教学内容的传统模式, 代之以“应用能力培养”为目标组织教学内容的新模式, 案例和项目的选择既能激发学生的学习兴趣, 又具有实用性, 同时减少课程中难度较大, 应用较弱的理论教学内容, 在此基础上对课程内容按照学以致用的原则重新组合, 形成具有高职特点的全新的教学知识体系。

3.3 课程内容整合。

基于上述对课程改革的想法和思路, 列出了两门课程的传统的教学内容 (如表1) , 将表1中相同或相通的知识点有机有序地结合, 以完整的案例和应用项目为依托将所有零散的知识难易适当、循序渐进、合理的分配、贯穿在其中。让学生在相同时间里掌握更多的知识, 提高对编程语言和数据结构课程的理解。

通过表1可以看出:两门课程的知识点都是零散的, 也有重复的和相通的。整合时要化零为整, 去除重复, 合理贯通。

3.4 课程整合后的教学方法与教学手段。

高职院校的学生普遍理论底子薄, 缺乏自信心, 动手能力较强, 针对这一特点, 在教学方法上, 不能是“填鸭式”地以教为主, 而应采取“上机实践, 分组讨论, 学生讲解, 教师辅导”等多种教学方法;在教学手段上, 也不能是单一的板书或多媒体, 而应运用“仿真环境, FLASH动画, 音频视频, 教具模具”等多种教学手段。这样, 才能激发学生的学习兴趣, 达到良好地教学效果。

4、结束语

整合后的课程从项目开发的角度突出了“整体框架学习-分步分项训练-模拟项目开发”的思想, 遵循了“由易到难, 由浅入深”的认知过程, 体现了“理实结合, 应用为主, 理论够用”的高职教育理念, 突破了传统的以学科知识体系为本位的教学模式, 是一次创新性的教学改革。

摘要:《C语言程序设计》与《数据结构》课程是高职院校计算机类专业开设的两门非常重要的专业课程, 学院往往在教学上投入很多, 却收效甚微。学生普遍反映C语言难学, 数据结构更难懂。针对此情况, 本文分析了传统教学模式存在的弊端, 从课程间的内在联系揭示了课程整合的可行性, 确定了课程整合的目标和原则, 提出了课程整合的想法和思路。

关键词:C语言,数据结构,课程整合

参考文献

[1]李筠.数据结构[M].清华大学出版社

[2]李震平.C语言程序设计项目教程.北京理工大学出版社

上一篇:通校生车辆管理办法下一篇:2024年十大国内新闻