《程序设计课程设计》实验报告

合集下载

计算机程序设计语言(VB)课程设计实验报告的撰写要求

计算机程序设计语言(VB)课程设计实验报告的撰写要求

计算机程序设计语言(VB)课程设计实验报告的撰写要求总体要求:文字通顺,条理清楚,结构合理,格式规范。

☆一套完整的课程设计说明书主要包括:A.封面;B.;C.目录;C.正文;D.参考文献;E.致谢;F.附录等。

课程设计说明书一律左侧装订,装订顺序为:封面→课程设计任务书→目录→正文→参考文献→致谢→附录。

☆正文参考格式:一、设计目的二、系统分析三、系统设计四、系统实现五、系统测试六、总结七、参考文献八、致谢九、附录☆具体要求:1.排版要求页面设置:上下页边距为2.54,左右页边距为2.6;字符间距:标准;页面大小:A4;页码:每页下端居中,全部采用阿拉伯数字排序,如1,2,……,99,100,……等,页码两边不加修饰符,页码编号从正文开始;页眉、页码:页眉为“江苏科技大学南徐学院课程设计”,宋体,五号,居中排列;页码居页面底端居中。

页眉页码均从目录后开始设置。

附录中图纸、原文复印件等可不设置。

2.内容应有目录、中文摘要、关键词、正文、参考文献、致谢、附录;3.“目录”两字用小二号宋体加粗且居中,字与字之间空两个汉字宽,空两行为目录内容,目录内容字体用小4号宋体,页码放在行末,目录内容和页码之间用虚线连接,采用两端对齐。

目录根据正文内容自动生成。

4.中文摘要:主要说明本次课程设计(实习)的目的、内容、方法和主要结果,力求语言精炼准确,字数控制在200字以内。

格式如下(□为一个汉字宽):□□【摘□要】:(小4号宋体加粗)××××(小4号宋体)5.关键词:关键词是表述说明书(报告)中主要内容信息的单词或术语,关键词数量一般为3-6个,每个关键词之间用逗号隔开。

格式如下:□□【关键词】:(小4号宋体加粗)×××,××,×××(小4号宋体)6.正文:一级标题(1.1):四号黑体、20磅行距、段前18磅、段后12磅、左对齐;二级标题(1.1.1):13磅黑体、20磅行距、段前后12磅、左对齐;三级标题(1.1.1.1):小四号黑体、20磅行距、段前后6磅、左对齐;正文部分:宋体,小四,20磅行距、两端对齐、首行缩进2字符。

《 面向对象程序设计》课程设计实验报告

《 面向对象程序设计》课程设计实验报告

《面向对象程序设计》课程设计实验报告指导教师小组成员:专业班级: 2010级计算机科学与技术专业开设时间:2011-2012(一)目录1.任务1 (2)1.1 任务介绍 (2)1.2 小组成员任务分配 (2)1.3.1设计思想及主要流程图 (2)1.3.1主要程序清单 (2)1.3.1 运行结果及分析 (4)1.3.2设计思想及主要流程图 (2)1.3.2主要程序清单 (2)1.3.2 运行结果及分析 (4)1.3.3设计思想及主要流程图 (2)1.3.3主要程序清单 (2)1.3.3 运行结果及分析 (4)2.任务2 (2)2.1 任务介绍 (2)2.2 小组成员任务分配 (2)2.3设计思想及主要流程图 (2)2.3主要程序清单 (2)2.3 运行结果及分析 (4)3收获、体会和建议 (4)任务1.按照要求设计类 1.根据输出设计类设计类就是根据数据封装的要求,抽象出适合的类。

有如下测试程序和测试程序的输出结果,要求设计类Welcome 。

void main() { Welcome we; Welcome you(we); you.Display();you.Set(“Thank you.”);cout<<you.Get()<<endl; you.talk(); you.Display();}测试程序的输出结果如右: 设计类Welcome 的原则 1)在头文件Cpp1.h 中声明类 2)在Cpp1.cpp 中实现类3)使用内联函数定义Display()函数2.使用类改写程序编写一个求方程02=++c bx ax 的根的程序,用三个函数分别求当ac b 42+大于零、等于零和小于零时方程的根。

要求从主函数输入a 、b 、c 的值并输出结果。

使用面向过程的解法一般是把变量设为double 型,适用库函数cmath 进行计算。

请注意:使用面向对象的方法解决这个问题,首先要从解一元二次方程出发,抽象一个代表一元二次方程的类。

聊天程序课程设计实验报告

聊天程序课程设计实验报告

聊天程序课程设计实验报告聊天程序的课程设计实验是一项相对复杂的课程设计。

本次实验的主要任务是开发一个由客户端和服务器组成的,可以实现客户端间的文本聊天的程序。

实验的具体实现方法是运用socket通信编程,使用C语言和JavaScript编写客户端和服务器端,利用html和css 构建聊天室的网页界面,实现客户端之间的聊天。

本次实验主要分为三部分:网络编程、网页构建和程序测试。

首先,实验者使用C语言编写客户端和服务器端,实现客户端之间的文本通信;接着,使用html和css构建聊天室网页界面,实现客户端的界面编程;最后,对实现的程序进行测试,确保程序实现所需要的功能。

本次实验实现了以上要求,实现了客户端之间的文本聊天和网页界面的构建,且程序在测试过程中没有发现任何问题,程序可以正常运行。

从这次实验中,实验者掌握了聊天程序的课程设计的相关知识,比如socket通信编程、html和css构建网页界面以及测试程序功能的方法,这些都可以在今后的聊天程序开发中发挥重要作用。

关键词:聊天程序;客户端;服务器;socket编程;HTML;CSS 1. 介绍聊天程序课程设计实验是一项通过计算机实现网络通信的一种实验项目,它包括客户端和服务器两部分,客户端主要是实现聊天室的界面,服务器则是负责网络通信的协调过程。

本次实验的主要任务是开发一个可以实现用户间文本聊天的程序,该程序包括客户端和服务器,可以使多个客户端之间进行文本聊天。

2.验准备本次实验的主要要求是实现一个可以实现多个客户端之间的文本聊天程序,因此需要考虑网络编程、网页构建以及程序测试等内容。

为了实现这一要求,首先要掌握socket编程,以及C语言和JavaScript等开发编程语言;其次,需要掌握HTML和CSS等网页构建语言;最后,也要掌握测试程序功能的方法。

3.验过程本次实验主要分为三部分:网络编程、网页构建和程序测试。

首先,实验者使用C语言开发客户端和服务器端,实现客户端之间的文本通信,同时也使用JavaScript语言实现客户端界面编程;接着,使用HTML和CSS构建聊天室网页界面,使聊天室更有趣;最后,对实现的程序进行测试,确保程序实现所需要的功能。

程序设计基础课程设计实验

程序设计基础课程设计实验

程序设计基础课程设计实验一、课程目标知识目标:1. 让学生理解程序设计的基本概念,掌握编程语言的语法和结构。

2. 培养学生运用程序设计思想解决问题的能力,包括数据表示、逻辑判断和循环控制等。

3. 使学生了解程序设计的流程,学会编写、调试和优化程序。

技能目标:1. 培养学生运用编程工具进行程序设计和调试的能力。

2. 培养学生独立思考和解决问题的能力,提高编程解题技巧。

3. 培养学生团队协作和沟通能力,能够与他人共同完成程序设计任务。

情感态度价值观目标:1. 培养学生对程序设计的兴趣和热情,激发学生学习编程的积极性。

2. 培养学生勇于尝试、不怕失败的精神,提高学生面对编程挑战的自信心。

3. 引导学生认识到编程在科技发展和社会进步中的重要作用,培养学生的社会责任感和创新意识。

课程性质:本课程为程序设计基础课程,旨在让学生掌握编程基本技能,培养编程思维。

学生特点:学生为初中年级,具备一定的逻辑思维能力,好奇心强,对新鲜事物感兴趣。

教学要求:注重理论与实践相结合,以实例为主线,引导学生主动探索,培养实际编程能力。

将课程目标分解为具体的学习成果,便于教学设计和评估。

二、教学内容1. 程序设计基本概念:程序、编程语言、算法等基本概念介绍。

2. 编程环境搭建:安装编程软件,了解编程环境,学会使用开发工具。

3. 语法基础:变量、数据类型、运算符、表达式和语句等。

4. 控制结构:顺序结构、分支结构(if语句)、循环结构(for、while语句)。

5. 函数与模块:函数的定义、调用、参数传递,模块的导入和使用。

6. 数组与列表:数组的概念、使用,列表的创建、操作。

7. 文件操作:文件的打开、读取、写入和关闭。

8. 编程规范与调试:代码风格、命名规则,调试技巧和错误处理。

9. 综合实例分析:分析实际编程案例,学会运用所学知识解决问题。

教学内容安排与进度:第1-2周:程序设计基本概念,编程环境搭建。

第3-4周:语法基础,变量、数据类型、运算符。

C语言程序课程设计实验报告(用一个字符数组保存一个英文句子)

C语言程序课程设计实验报告(用一个字符数组保存一个英文句子)

河南城建学院《高级语言程序设计》课程设计报告设计题目:用一个字符数组保存一个英文句子专业:计算机科学与技术班级:设计人员:指导教师:计算机科学与工程学院2015年06 月25日一、课程设计题目13.用一个字符数组保存一个英文句子。

二、设计要求1)删除该英文句子中的前导空格,后导空格,并删除句子中多余的空格(单词之间只留一个空格);2)统计该句子中,单词出现的频率;3)查找并替换某个单词。

三、程序介绍1.去除字符组中间空格。

void zhongjian(char a[]){int i,j,k; /*定义整形变量i,j,k。

i,j 作为函数内循环的控制变量。

定义k用于字符组长度存放。

*/ k=strlen(a); /*将字符组a的长度存放于k 中。

(字符组a即待处理的字符组)*/for(i=0;i<k;) /*循环控制,从第一位循环到字符组结束。

*/if(a[i]!=' 'i++; /*条件控制,若当前字符不为空格,跳到下一位再进行循环。

*/else if(a[i]==' ')if(a[i+1]==' ') /*当连续出现两个空格,需要去除一个空格*/{k=k-1; /*字符串总长度减一。

*/ for(j=i;j<k;j++)a[j]=a[j+1]; /*从第一个空格开始,后续所有字符前提一位,即去除第一个空格。

*/a[k]='\0'; /*去除空格后字符组长度减一,原字符组最后一位需要变为\0。

*/continue; /*去除空格后,继续从该位检测,直至不符合该循环条件。

*/}elsei++; /*若不是连续两个空格,则跳到下个字符再进行循环。

*/printf("%s\n",a); /*输出处理后的字符组。

*/ }2.导入及导出函数void daoru(){FILE *p; /*定义一个指针函数,用于指向需要打开的文件。

C语言程序设计课程设计报告

C语言程序设计课程设计报告

C语言程序设计课程设计实验报告一、设计名称:学生成绩治理查询系统实验项目性质:综合性所涉及课程:C语言程序设计打算学时:实验学时12二、设计目的:1.通过本课程设计,培育上机动手能力,使学生巩固《C语言程序设计》课程学习的内容,把握工程软件设计的大体方式,强化上机动手能力,闯过编程关;2.为后续各门运算机课程的学习打下坚实基础。

3.明白得程序设计的思路,把握结构化程序设计的方式,综合利用C语言进行程序编写,巩固常常利用的C语言概念,如数组、指针、结构体、链表、文件操作等,注意良好的程序设计风格的培育。

提高编写程序解决实际问题的能力、调试程序的技术。

三、设计环境(软件、硬件及条件)1.硬件:PC机2.软件:Turbo C++四、设计说明:程序系统的结构:用一系列图表列出本程序系统内的每一个程序(包括每一个模块和子程序)的名称、标识符和它们之间的层次结构关系。

主程序:新建:输入记录(遇#号时停止输入)。

插入:在指定位置插入记录。

显示:列出所有记录。

查询:一、按学号查询;二、按名字排序。

删除:一、按学号删除;二、按名字删除;3、删除所有记录。

排序:一、按语文成绩排序;二、按英语成绩排序;3、按数学成绩排序。

保留:保留为任意名字,系统自动加后缀名为.txt。

读取:读取程序目录下的后缀名为.txt的文件。

退出:退出程序。

五、各功能模块的具体实现,用图表表示。

输入记录显示开始:输入学号输入的学号是否为#Y N 结束,返回主菜单输入记录循环输入结束开始p=hp!=NULL输出学生信息;p=p->next结束按学号(姓名)查询信息Y N读取文件六、各模块(函数)的功能介绍,数据结构设计描述,参数说明等。

STUDENT *init(); /*初始化链表*/STUDENT *create(); /*新建链表*/STUDENT *del_no(STUDENT *h);/*按学号删除信息*/STUDENT *del_name(STUDENT *h); /*按姓名删除信息*/void print(STUDENT *h); /*显示信息函数*/void search_no(STUDENT *h); /*按学号搜索*/void search_name(STUDENT *h); /*按姓名搜索*/STUDENT *insert(STUDENT *h); /*插入信息函数*/void sort(STUDENT *h);/* 排序函数*/void save(STUDENT *h);/*保留数据到文件*/void load(STUDENT *h); /*从文件读取数据*/int menu_main(); /*菜单函数*/void inputs(char *prompt,char *s,int count);/*输出信息*/七、程序代码:Enter records\n");printf(" 2. Add records\n");printf(" 3. List records\n");printf(" 4. Search records\n");printf(" 5. Delete records\n");printf(" 6. Sort records\n");printf(" 9. Quit\n\n");printf("*****************************************\n");do{ printf("\n Enter you choice(1~9):"); /*提示输入选项*/ scanf("%s",s); /*输入选择项*/c=atoi(s); /*将输入的字符串转化为整型数*/}while(c<1||c>9); /*选择项不在1~9之间重输*/return c; /*返回选择项,主程序依照该数挪用相应的函数*/}Search records on number\n");printf(" 2. Search records on name\n");printf(" 3. Back\n\n");printf("*****************************************\n");do{ printf("\n Enter you choice(1~3):"); /*提示输入选项*/ scanf("%s",s); /*输入选择项*/c=atoi(s); /*将输入的字符串转化为整型数*/}while(c<1||c>3);return c; /*返回选择项,主程序依照该数挪用相应的函数*/}Chinese\n");printf(" 2. English\n");printf(" 3. Math\n");printf(" 4. Back\n\n");printf("*****************************************\n");do{ printf("\n Enter you choice(1~4):"); /*提示输入选项*/ scanf("%s",s); /*输入选择项*/c=atoi(s); /*将输入的字符串转化为整型数*/}while(c<1||c>4);return c; /*返回选择项,主程序依照该数挪用相应的函数*/}Delete records on number\n");printf(" 2. Delete records on name\n");printf(" 3. Delete all records\n");printf(" 4. Back\n\n");printf("*****************************************\n");do{ printf("\n Enter you choice(1~4):"); /*提示输入选项*/ scanf("%s",s); /*输入选择项*/c=atoi(s); /*将输入的字符串转化为整型数*/}while(c<1||c>4);return c; /*返回选择项,主程序依照该数挪用相应的函数*/}.");/*提示*/getch(); /*读入任意字符*/}.\n");getch(); /*读入任意字符*/if(p==h)h=p->next;elseq->next=p->next;free(p); /*释放*/printf("\n%s had been deleted\n",s); }printf("\nPress any key to continue..."); getch(); /*读入任意字符*/return h;}.\n");getch();if(p==h)h=p->next;else q->next=p->next;free(p); /*释放*/printf("\n%s had been deleted\n",s);}printf("\nPress any key to continue...");getch(); /*读入任意字符*/return h;}.");getch(); /*读入任意字符*/}.");getch(); /*读入任意字符*/}xt"};STUDENT *p;FILE *fp; /*指向文件的指针*/printf("\n Input the filename:");scanf("%s",outfile);strcat(outfile,last);if((fp=fopen(outfile,"wb"))==NULL) /*打开文件,并判定打开是不是正常*/ {printf("\nCannot open file!\n");exit(1); /*退出*/}p=h;while(p!=NULL){if(fwrite(p,sizeof(STUDENT)-sizeof(p->next),1,fp)!=1){printf("Error!\n");exit(1);} /*写入*/p=p->next;}fclose(fp); /*关闭文件*/printf("\n------OK------\n");printf("Press any key to continue...");getch(); /*读入任意字符*/}xt"};STUDENT *p,*a1=NULL,*a2=NULL;FILE *fp;/*概念文件指针*/printf("\n Input the filename:");scanf("%s",outfile);strcat(outfile,last);if((fp=fopen(outfile,"rb"))==NULL)/*打开文件*/{printf("\nCannot open file!\n");exit(1); /*退出*/}p=h;a1=a2=(STUDENT *)malloc(LEN);fread(a1,sizeof(STUDENT)-sizeof(a1->next),1,fp); while(!feof(fp)){n++;if(n==1)h=a1;else a2->next=a1;a1=(STUDENT *)malloc(LEN);fread(a1,sizeof(STUDENT)-sizeof(a1->next),1,fp);}a2->next=NULL;printf("\n------OK------\n");printf("Press any key to continue...");getch(p); /*读入任意字符*/}///////////////////////////////////////////void sort(STUDENT *h) /*排序函数*/{int i=0,j;STUDENT *p,*q,*t,*h1,*z;clrscr(); /*清屏*/printf("Enter you choice :\n");scanf("%d",&j);z=h;h1=h->next;h->next=NULL;while(h1!=NULL){t=h1;h1=h1->next;q=h;while(t->score[--j]<p->score[--j]&&p!=NULL){q=p;p=p->next;}if(p==q){t->next=p;h=t;}else{t->next=p;q->next=t;}}p=h;while(p!=NULL){i++;p=p->next;}h=z;printf("------OK------\n");}//////////////////////////////////////////////////九、体会、总结本课程设计完成了设计一个学生成绩治理系统,学生的学习成绩进行治理,具有查询和检索功能,而且能够对指定文件操作。

程序设计基础课程设计报告

程序设计基础课程设计报告

程序设计基础课程设计报告
本次课程设计旨在深化我们对程序设计基础的理解和应用。

通过实际操作,我们学习了算法设计、数据结构选择及代码优化等关键技能。

在解决问题的过程中,我们遇到了诸如逻辑错误、运行效率低等问题,但通过团队合作、反复调试和查阅资料,最终成功解决了这些问题。

这次课程设计不仅提高了我们的编程能力,还锻炼了我们的逻辑思维和团队协作能力。

我们深刻认识到,良好的程序设计不仅需要扎实的理论知识,还需要灵活的应用能力和不懈的探索精神。

展望未来,我们将继续巩固和扩展程序设计知识,努力提升编程水平,为解决实际问题和推动科技发展贡献自己的力量。

面向对象程序设计课程实验总结报告

面向对象程序设计课程实验总结报告

舉申科按衣專课程实验报告课程名称:面向对象程序设计院系:专业班级:____________学号:__________姓名:_______________指导教师:____________实验一.面向过程的整型栈编程 (1)1. 需求分析 (1)1.1题目要求 (1)1.2需求分析 (1)2. 系统设计 (2)2.1概要设计 (2)2.2详细设计 (3)4. 软件测试 (4)5. 特点与不足 (4)5.1技术特点 (4)5.2不足和改进的建议 (5)6. 过程和体会 (5)6.1遇到的主要问题和解决方法 (5)6.2课程设计的体会 (5)7. 源码和说明 (5)7.1文件清单及其功能说明 (5)7.2用户使用说明书 (5)7.3源代码 (5)实验二.面向对象的整型栈编程 (12)1. 需求分析 (12)1.1题目要求 (12)1.2需求分析 (12)2. 系统设计 (13)2.1概要设计 (13)2.2详细设计 (13)3. 软件开发 (14)4. 软件测试 (14)5. 特点与不足 (14)5.1技术特点 (14)5.2不足和改进的建议 (15)6. 过程和体会 (15)7. ......................................................................................................................................... 源码和说明. (15)7.1文件清单及其功能说明 (15)7.2用户使用说明书 (15)7.3源代码 (15)实验三.基于算符重载的整型栈编程 (19)1. 需求分析 (19)1.1题目要求 (19)1.2需求分析 (19)2. 系统设计 (20)2.1概要设计 (20)2.2详细设计 (20)3. 软件开发 (20)4. 软件测试 (20)5. 特点与不足 (21)5.1技术特点 (21)5.2不足和改进的建议 (21)6. 过程和体会 (21)6.1遇到的主要问题和解决方法 (21)6.2课程设计的体会 (21)7. 源码和说明 (21)7.1文件清单及其功能说明 (21)7.2用户使用说明书 (21)7.3源代码 (21)实验四.面向对象的整型队列编程 (25)1. 需求分析 (25)1.1题目要求 (25)1.2需求分析 (25)2. 系统设计 (26)3. 软件开发 (26)4. 软件测试 (26)5. 特点与不足 (26)5.1技术特点 (26)5.2不足和改进的建议 (26)6. 过程和体会 (26)6.1遇到的主要问题和解决方法 (26)6.2课程设计的体会 (27)7. ..................................................................................................................................... 源码和说明 (27)7.1文件清单及其功能说明 (27)7.2用户使用说明书 (27)7.3源代码 (27)实验五.基于组合的整型队列编程 (31)1. 需求分析 (31)1.1题目要求 (31)1.2需求分析 (31)2. 系统设计 (31)3. 软件开发 (32)4. 软件测试 (32)5. 特点与不足 (32)5.1技术特点 (32)5.2不足和改进的建议 (32)6. 过程和体会 (32)6.1遇到的主要问题和解决方法 (32)6.2课程设计的体会 (32)7. 源码和说明 (33)7.1文件清单及其功能说明 (33)7.2用户使用说明书 (33)7.3源代码 (33)实验六.基于继承的整型队列编程 (37)1. 需求分析 (37)1.1题目要求 (37)1.2需求分析 (38)2. 系统设计 (38)3. 软件开发 (38)4. 软件测试 (38)5. 特点与不足 (38)5.1技术特点 (38)5.2不足和改进的建议 (38)6. 过程和体会 (39)7. .......................................................................................................................................... 源码和说明. (39)7.1文件清单及其功能说明 (39)7.2用户使用说明书 (39)7.3源代码 (39)实验一.面向过程的整型栈编程1. 需求分析1.1题目要求整型栈是一种先进后出的存储结构,对其进行的操作通常包括判断栈是否为空、向栈顶添加一个整型元素、出栈等。

课程设计实验报告-图书管理系统

课程设计实验报告-图书管理系统

课程报告课程名称:程序设计实践专业班级:计科1401学生姓名:牛草原学号:201416010101任课教师:张玉宏学期:2013-2014学年第二学期课程报告任务书开发一个图书信息管理系统,图书信息包括:图书编号、书名、作者、出版社、类别、出版时间、价格等基本信息(也可以根据自己情况进行扩充,比如是否借出、库存量等)。

使之能提供以下基本功能:(1)图书信息录入功能(图书信息用文件保存)--输入(2)图书信息浏览功能--输出(3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式):①按书名查询②按作者名查询③按照价钱排序④按出版时间排序等等(4)图书信息的删除与修改扩展功能:可以按照自己的程度进行扩展。

比如(1)简单的权限处理(2)报表打印功能(3)甚至根据自己情况,可以加上学生信息和借阅信息的管理,并扩充为图书借阅系统。

(4)模糊查询(5)综合查询(6)统计功能比如统计处某一类别的图书信息或筛选出小于指定数量库存的图书信息等等,总之,可以根据自己需求进行分析功能。

成绩评定教师:目录引言 (3)绪论 (3)一.需求分析 (3)二.概要设计 (5)2.1数据结构 (5)2.2数据需求 (5)2.3模块划分 (5)2.4程序总体框架 (6)三.详细设计 (6)3.1登陆界面 (7)3.2功能服务 (21)四.调试分析 (48)五.程序不足与改进 (49)六.课程心得总结 (49)引言经过对程序设计题目的分析可知,整个程序的设计实现大致可以分为五个模块,其中每个模块对应一个函数,他们分别是:图书的添加函数void add_book(void);删除图书的函数void delete_book(void);查询图书的函数void inquire_book(void);对图书进行修改的函数void revise_book(void);以及对图书进行排序的函数void sort_book(void);在这几个函数中,其功能的实现严格按照题目的要求:1 图书信息录入函数:主要功能是从键盘上输入图书信息并将其写入文件中,作为图书馆的书库。

c课程设计的实验报告

c课程设计的实验报告

c课程设计的实验报告一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、数据结构和算法,培养学生编写简单程序的能力,使学生了解计算机编程的基本思维和方法,提高学生解决实际问题的能力。

具体分为以下三个部分:1.知识目标:学生能够理解并掌握C语言的基本语法、数据结构和算法,了解程序设计的基本概念和原理。

2.技能目标:学生能够运用C语言编写简单的程序,解决实际问题,培养学生的编程能力和解决问题的能力。

3.情感态度价值观目标:培养学生对计算机科学的兴趣和热情,使学生认识到计算机技术在现代社会中的重要地位和作用,提高学生学习的积极性和主动性。

二、教学内容根据教学目标,本课程的教学内容主要包括C语言的基本语法、数据结构和算法。

具体安排如下:1.C语言的基本语法:包括变量、数据类型、运算符、表达式、语句等基本概念和用法。

2.数据结构:包括数组、链表、栈、队列等基本数据结构及其操作。

3.算法:包括排序算法、查找算法、递归算法等基本算法及其实现。

三、教学方法为了实现教学目标,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。

1.讲授法:通过讲解C语言的基本语法、数据结构和算法,使学生掌握相关知识。

2.讨论法:学生进行小组讨论,引导学生主动思考和探索问题,提高学生的编程能力和解决问题的能力。

3.案例分析法:通过分析典型程序案例,使学生了解编程的实际应用,提高学生的编程能力和解决问题的能力。

4.实验法:安排实验室实践环节,让学生亲自动手编写程序,培养学生的编程能力和解决问题的能力。

四、教学资源为了支持教学内容和教学方法的实施,本课程将准备以下教学资源:1.教材:《C程序设计语言》(K&R)作为主教材,辅助以《C PrimerPlus》等参考书籍。

2.多媒体资料:制作课件、教学视频等,以直观展示C语言的基本语法、数据结构和算法。

3.实验设备:计算机实验室,配备必要的编程软件和调试工具,为学生提供实践编程的环境。

《程序设计课程设计》实验报告

《程序设计课程设计》实验报告

《程序设计》课程设计姓名:学号:班级:软件工程14 班指导教师:成绩:1.消除类游戏1.1【问题描述】消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进行,棋盘的每一行每一列的方格上放着一个有颜色的棋子,当一行或一列上有连续三个或更多的相同颜色的棋子时,这些棋子都被消除。

当有多处可以被消除时,这些地方的棋子将同时被消除。

1.2【基本要求】现在给你一个n行m列的棋盘(1≤n,m≤30),棋盘中的每一个方格上有一个棋子,请给出经过一次消除后的棋盘。

请注意:一个棋子可能在某一行和某一列同时被消除。

输入数据格式:输入的第一行包含两个整数n, m,用空格分隔,分别表示棋盘的行数和列数。

接下来n行,每行m个整数,用空格分隔,分别表示每一个方格中的棋子的颜色。

颜色使用1至9编号。

输出数据格式:输出n行,每行m个整数,相邻的整数之间使用一个空格分隔,表示经过一次消除后的棋盘。

如果一个方格中的棋子被消除,则对应的方格输出0,否则输出棋子的颜色编号。

1.3【测试数据】为方便调试程序,可将输入数据先写入一个文本文件,然后从文件读取数据处理,这样可避免每次运行程序时都要从键盘输入数据。

测试数据一输出说明:棋盘中第4列的1和第4行的2可以被消除,其他的方格中的棋子均保留。

棋盘中所有的1以及最后一行的3可以被同时消除,其他的方格中的棋子均保留。

1.4【功能实现】#include <iostream>#include <windows.h>using namespace std;int main(){int m, n, i ,j;int temp;cin >> n >> m;temp = m;m = n;n = temp;int * map = new int[m * n];int * mark = new int[m * n];int * tmap = map;int * tmark = mark;int dif = 0;//输入for ( i = 0 ; i < m ; i++ )for (j = 0; j < n; j++)cin >> *(tmap + i * n + j);for (i = 0; i < m; i++)for (j = 0; j < n; j++){//横行if ((tmap + 2 - map) % n != 0 || (tmap + 1 - map) % n != 0)if (*(tmap) == *(tmap + 1) && * (tmap + 1) == *(tmap + 2)){dif = tmap - map;*(tmark + dif) = 0;*(tmark + dif + 1) = 0;*(tmark + dif + 2) = 0;}//竖列if (tmap + 2 * n - map < m * n || tmap + n - map < m * n)if (*(tmap) == *(tmap + n) && * (tmap + n) == *(tmap + 2 * n)) {dif = tmap - map;*(tmark + dif) = 0;*(tmark + dif + n) = 0;*(tmark + dif + 2 * n) = 0;}tmap = map + (j+1) + i * n;}//输出cout << endl;tmap = map;for (i = 0; i < m; i++)for (j = 0; j < n; j++)if (* (tmark + i * n + j) == 0)*(tmap + i * n + j) = 0;for (i = 0; i < m; i++){for (j = 0; j < n; j++)cout<< *(tmap + i * n + j)<<" ";cout << endl;}system("pause");return 0;}1.5【结果和截图】1.6【心得体会】通过这次试验,我对c语言编译器和对棋盘类游戏中的棋子行列删除有了更加深刻的认识和了解。

C语言课程设计实验报告

C语言课程设计实验报告

扬州大学信息工程学院课程设计报告课程名称《C语言程序设计》设计题目学生成绩管理系统1 学生姓名班级学号指导老师目录一、课题内容和要求 (3)二、总体设计 (4)三、详细设计 (5)数据结构设计 (5)系统各功能模块设计 (6)四、系统调试与测试 (7)程序在调试过程中遇到的主要问题及采取的解决措施 (7)系统的测试数据及运行结果 (7)五、用户手册 (8)六、课程设计小结 (8)七、参考文献 (8)八、附录 (9)一、课题内容和要求设计和实现一个“学生成绩管理系统”,满足以下要求:1.系统以菜单方式工作;2.使用链表或结构数组对学生成绩进行管理和维护;3.使用二进制文件在磁盘上保存学生记录信息;4.链表中各结点或结构数组中各元素包括“学号、姓名、语文、数学、外语、平均分”基本字段;5.实现如下基本功能:(1)查看所有学生信息(2)查找学生(查找指定学号的学生,显示该学生的学号、姓名、所有课程成绩)(3)删除学生(删除指定学号的学生)(4)排序(按学号由小到大排序)(5)添加学生记录(新增学生记录,将其添加到链表或结构数组中)(6)插入学生记录(在链表或结构数组已按学号有序的提下,将学生记录插其中合适的位置)(7)计算平均分(计算每位学生每门课程的平均分)(8)将学生记录保存到文件(将链表或结构数组中的数据以文件的形式存盘)(9)从文件中读出学生记录(将已经存盘的文件读入内存,进行管理)6.创新部分(1)将数据保存为*.csv文件,可用Excel等软件直接打开,方便数据的管理二、总体设计三、详细设计数据结构设计:系统各功能模块设计:个人设计部分创建空表函数所调用的listCreatList函数:该函数创建一个带头尾结点的链表,并返回链表的头指针;排序函数所调用的listSort函数:该函数接受一个链表头指针,并参照elementcmp函数所指定的标准进行排序操作.执行正常则返回值0;打印函数所调用的listWalk函数:该函数接受一个链表头指针和一个walk方法函数,将链表遍历并用指定的函数进行操作(如输出到屏幕),执行正常则返回值0;插入函数所调用的listInsert函数:该函数接受一个链表头指针和一个学生结构体,随后在链表头部创建新节点,并在其数据域中赋值.执行正常则返回值0;按序插入函数所调用的listInsertInRange函数:该函数接受一个链表头指针和一个学生结构体,先按序找到指定位置,在其后创建新节点,并在其数据域中赋值.执行正常则返回值0;删除函数所调用的listDel函数:该函数接受一个链表头指针和一个整型变量x,先按x找到删除的前一位置,随后进行删除操作.执行正常则返回值0;查找函数所调用的listFind函数:该函数接受一个链表头指针和一个整型变量x,按x返回所在元素的指针.四、系统调试与测试1.程序在调试过程中遇到的主要问题(1)变量名称不恰当,指针使用不灵活(2)采取的解决措施:查阅参考书2.系统的测试数据及运行结果>lNo Name Chinese Math English average10 uu 78.00 89.00 68.00 78.33>wPlease enter the file name:yyyList has been saved as yyy.csv.>rPlease enter the file name:yyyLoading completed.>lNo Name Chinese Math English average10 uu 78.00 89.00 68.00 78.33>dPlease enter the No to delete one student:10The data of No.10 student has been deleted.>lNo Name Chinese Math English averageEmpty!五、用户手册C 创建一个新的列表;W 保存当前数据为一个表格文件;R 读取表格文件到当前列表;L 列出所有学生数据;D 通过学号删除某个学生的数据;I 插入某个学生的数据;I(大写) 按顺序插入某个学生的数据;S 按学号排序;H 给予帮助;E 退出程序.六、课程设计小结由于是第一次参与编写实验课程设计,我学会了团队合作,很多东西还是不懂,所以要反复翻阅课本,查阅资料,及时与小组成员进行沟通交流,单凭个人的力量很难完成。

课程设计实验报告

课程设计实验报告

课程设计实验报告课程设计是综合性实践教学环节,下面是的课程设计实验报告范文,欢迎阅读参考!1.加深对课堂讲授内容的理解,掌握解决实际应用问题时所应具有的查阅资料、技术标准和标准,以及软件编程、调试等能力,掌握面向对象的编程思想及Java语言程序设计的规律与技巧,为进一步学习web应用开发及今后从事专业工作打下根底。

2. 使用本学期学习的Java SE技术(也可以使用课堂教学中没有学习过的Java技术,但是应当以Java SE技术为主)完成多功能日历GUI程序的设计,使之具有如下根本功能:一年日历用12页显示,每页显示一个月的日历。

日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。

3.在完成根本功能的根底上发挥自己的想象力与创造力,使程序凸显出与众不同的特点与功能,形本钱小组的特性色。

1.问题描述准确、标准。

2.程序构造合理,调试数据准确、有代表性.。

3.界面布局整齐,人机交互方便。

4.输出结果正确。

5.正确撰写实验报告。

编写一个GUI程序实现日历的功能。

一年日历用12页显示,每页显示一个月的日历。

日历可以按年或月前后翻动,能够显示当前的日期以及当前农历,可以为每页日历选择背景图片。

可以实现显示时钟,时钟能进展整点报时。

可以实现备忘记事功能,能在每天添加、修改、删除记事等操作。

1.在上机实验前,小组成员进展选题讨论,确定小组感兴趣而又伸缩性强的题目多功能日历。

2.在第一次上机实验时讨论分工,分工明确之后,分头合作进展。

3.各成员完成自己的任务后,最后进展统筹合并,以及程序最后的优化。

4. 根据实验结果,写出合肥工业大学实验报告。

实验报告应当包括:实验内容,程序流程图,类构造,程序清单,运行结果,以及通过上机取得的经历。

5.详细的上机实验步骤见任务分工及程序设计进度表。

经过小组成员的共同努力,最终我们小组设计的多功能日历程序能够实现实验的根本要求——一年日历用12页显示,每页显示一个月的日历。

python课程设计实验报告总结

python课程设计实验报告总结

python课程设计实验报告总结一、教学目标本课程的目标是让学生掌握Python编程的基础知识,包括数据类型、控制结构、函数、模块和文件操作等。

通过课程的学习,学生应能够编写简单的Python程序,并能够运用Python解决一些实际问题。

此外,通过课程的学习,学生还应培养良好的编程习惯和逻辑思维能力,提高自主学习和解决问题的能力。

二、教学内容本课程的教学内容主要包括Python编程的基本概念和语法,具体包括数据类型、控制结构、函数、模块和文件操作等。

课程内容将结合具体的编程实例进行讲解,以便学生能够更好地理解和掌握。

此外,课程还将安排一些实践性的编程作业和项目,以便学生能够将所学的知识应用到实际问题中。

三、教学方法本课程将采用讲授法、案例分析法和实验法等多种教学方法。

讲授法主要用于向学生传授Python编程的基本概念和语法;案例分析法主要用于分析具体的编程实例,以便学生能够更好地理解和掌握;实验法主要用于让学生通过实际操作来巩固所学的知识。

此外,课程还将鼓励学生进行讨论和交流,以激发学生的学习兴趣和主动性。

四、教学资源本课程的教学资源主要包括教材、参考书、多媒体资料和实验设备等。

教材和参考书将用于向学生提供Python编程的基本概念和语法;多媒体资料将用于辅助讲解和展示具体的编程实例;实验设备将用于让学生进行实际操作。

此外,课程还将利用网络资源,如在线编程平台,以便学生能够随时进行编程实践和交流。

五、教学评估本课程的评估方式包括平时表现、作业和考试等。

平时表现主要评估学生的出勤、课堂参与度和团队合作能力;作业主要评估学生的编程能力和解决问题的能力;考试主要评估学生对Python编程基础知识的掌握程度。

评估方式应客观、公正,能够全面反映学生的学习成果。

此外,课程还将鼓励学生进行自我评估和同伴评估,以提高学生的自我认识和反思能力。

六、教学安排本课程的教学安排将分为16周,每周2课时。

教学时间安排在上课日的一定时间段,地点为教室或实验室。

java课程设计实验报告

java课程设计实验报告

java课程设计实验报告Java课程设计实验报告。

一、实验目的。

本次实验旨在通过设计一个简单的Java程序,加深对Java语言的理解和应用,同时锻炼学生的编程能力和解决问题的能力。

二、实验内容。

本次实验要求设计一个简单的学生成绩管理系统,实现对学生成绩的录入、查询、修改和删除等功能。

具体要求如下:1. 设计一个学生类,包括学生的基本信息(学号、姓名、性别等)和成绩信息(语文、数学、英语等科目成绩)。

2. 实现学生成绩的录入功能,可以一次性录入多个学生的成绩信息。

3. 实现学生成绩的查询功能,可以根据学号或姓名查询学生的成绩信息。

4. 实现学生成绩的修改功能,可以修改指定学生的成绩信息。

5. 实现学生成绩的删除功能,可以删除指定学生的成绩信息。

三、实验设计。

在本次实验中,我首先设计了一个学生类,包括学号、姓名、性别和成绩等属性,并提供了相应的构造方法和get、set方法。

然后,我设计了一个学生成绩管理系统的主类,其中包括录入、查询、修改和删除等功能的实现。

在录入功能中,我使用Scanner类实现了从控制台输入学生信息的功能,并将学生信息保存到一个ArrayList中。

在查询功能中,我通过学号或姓名遍历ArrayList,找到相应的学生信息并输出。

在修改功能中,我同样通过遍历ArrayList找到指定学生信息,并提供修改选项,用户可以选择要修改的成绩信息进行修改。

在删除功能中,我也是通过遍历ArrayList找到指定学生信息,并进行删除操作。

四、实验结果。

经过一系列的调试和测试,我成功实现了学生成绩管理系统的设计要求。

用户可以通过简单的命令行界面,实现学生成绩的录入、查询、修改和删除等功能。

系统运行稳定,操作简单,符合设计要求。

五、实验总结。

通过本次实验,我对Java语言的面向对象编程有了更深入的理解,掌握了ArrayList的使用方法,提高了编程能力和问题解决能力。

同时,通过设计一个实用的学生成绩管理系统,我也加深了对Java语言的应用和实践,为以后的学习和工作打下了坚实的基础。

c语言程序设计课程设计总结(菁选6篇

c语言程序设计课程设计总结(菁选6篇

c语言程序设计课程设计总结(菁选6篇c语言课程设计个人总结篇一当前,计算机已经成为人们工作、学习和生活中必不可少的工具,整个社会对计算机的高度依赖促使一个崭新的文化形态的形成――计算机文化。

随着高等教育从精英教育阶段进入大众教育阶段,教育部高等学校计算机科学与技术教学指导委员会在计算机基础课程教学基本要求中提出了1+X的课程设置方案[1],理工类学生在学学计算机基础课程后,接下来就要学习C语言程序设计,C语言程序设计已经成为各高校普遍开设的基础课程。

本文总结了我们在教学和实践中的一些做法和体会。

C语言功能强大,使用灵活方便,应用面广,可移植性好,兼有高级语言的优点和低级语言的特点[2],这也使得初学者较难学习和掌握,在教学中我们发现,学生往往对编程解决实际问题感到困难,不知从何下手,而一些考试题目往往重视考查语法的细节,而对编程能力考查得不多。

对于C语言程序设计的教学,我们从培养学生的兴趣和能力,以及计算机思维能力出发,进行了一系列教学的探索与实践。

一、教学师资团队建设人才培养师资队伍是关键,教学团队的建设是保障教学效果和实施教学的基础和支撑[3]。

根据本课程的特点和大一学生的基础,学院确定了一支老中青相结合的骨干教师组成本课程教学团队,团队由一位教授、一位副教授、四位讲师和三位助教组成,分别承担理论教学和实验教学任务,这支队伍年龄、职称结构合理,团队中的教师在每学期的教学督导和学生评教中,成绩都在良好以上,从根本上保证了课程的教学质量。

坚持教学团队的凝聚力建设,定期研讨,统一思想。

每周教研时间及时交流教学中出现的问题及解决方法,对教学过程进行总结反思,坚持互相听课,集体研究讨论教案、课件制作,对每个实验内容、案例的选用、考核的内容和方式等都经过团队的统一讨论确定。

重视教学团队中教师自身的进修和提高,团队中的多名教师先后参加了国家精品课程师资培训、全国高等学校计算机实验与实践教学研讨会、全国高等院校程序设计精品课程教学专题研讨会等,教师都很珍惜每一次与兄弟院校的教师、专家交流与学习的机会,教师及时把学习体会传达到团队的每一位教师,汲取其他院校的一些好的做法运用到我们的教学实践中,这些做法对促进教师的知识更新、教育理论的学习、教学方法的改进和教学能力的提高起到积极的作用,也保证了课程的教学能不断向前推进。

太原理工大学软件工程程序设计实验报告

太原理工大学软件工程程序设计实验报告

《程序设计》课程设计姓名:学号:班级:软件工程1334班指导教师:杨永强成绩:2015年6月实验一:谁拿了最多奖学金1.【问题描述】(1)问题描述某校的惯例是在每学期的期末考试之后发放奖学金。

发放的奖学金共有五种,获取的条件各自不同:1) 院士奖学金,每人8000元,期末平均成绩高于80分(>80),并且在本学期内发表1篇或1篇以上论文的学生均可获得;2) 五四奖学金,每人4000元,期末平均成绩高于85分(>85),并且班级评议成绩高于80分(>80)的学生均可获得;3) 成绩优秀奖,每人2000元,期末平均成绩高于90分(>90)的学生均可获得;4) 西部奖学金,每人1000元,期末平均成绩高于85分(>85)的西部省份学生均可获得;5) 班级贡献奖,每人850元,班级评议成绩高于80分(>80)的学生干部均可获得;只要符合条件就可以得奖,每项奖学金的获奖人数没有限制,每名学生也可以同时获得多项奖学金。

例如姚林的期末平均成绩是87分,班级评议成绩82分,同时他还是一位学生干部,那么他可以同时获得五四奖学金和班级贡献奖,奖金总数是4850元。

2.【设计需求及分析】(1)设计思路先定义了一个Student的结构体,它里面定义了关于学生的各个属性。

比如期末平均成绩,班级评议成绩,班干部等等。

然后设计了一个判断函数,判断他得到奖学金的多少。

接下来就是主函数了,在主函数里,有着输出输入变量,和赋值函数,最重要的是比较函数,比较出哪一位学生的奖学金多及所有金额的总计。

最后输出。

下面是关键步骤:(2)输出输入格式输入数据格式格式:输入的第一行是一个整数N(1 <= N <= 100),表示学生的总数。

接下来的N行每行是一位学生的数据,从左向右依次是姓名,期末平均成绩,班级评议成绩,是否是学生干部,是否是西部省份学生,以及发表的论文数。

姓名是由大小写英文字母组成的长度不超过20的字符串(不含空格);期末平均成绩和班级评议成绩都是0到100之间的整数(包括0和100);是否是学生干部和是否是西部省份学生分别用一个字符表示,Y表示是,N表示不是;发表的论文数是0到10的整数(包括0和10)。

C++程序设计实验报告

C++程序设计实验报告

C++程序设计实验报告一、实验目的(1)学习编写简单的C++程序,并掌握C++程序的基本格式与规范,理解C++程序结构的特点。

(2)掌握函数的定义和调用方法。

(3)练习重载函数、函数模板、系统函数的使用。

(4)学习使用VC ++的debug调试功能,使用step into追踪到函数内部。

(5)学习类与对象的定义和使用方法以及对象的声明。

(6)学习具有不同属性的数据成员与成员函数的访问方式。

(7)理解构造函数和析构函数的定义与执行过程。

(8)掌握运算符重载的方法。

(9)学习使用虚函数实现动态多态性。

(10)熟悉流类库中常用的类及其成员函数的用法。

(11)学习标准输人输出及格式控制。

(12)学习对文件的应用方法(二进制文件、文本文件)。

二、实验内容与实验步骤实验一:(1)输人并运行所给的参考程1,并将程序中的注释部分也输人计算机,体会和理解程序的基本格式规范。

(2)编写一个函数把华氏温度转换为摄氏温度,转换公式为C= (F一32)*5/9。

(3)编写重载函数Maxl可分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值。

(4)使用重载函数模板重新实现上小题中的函数Maxl。

(5)使用系统函数pow(x,y)计算x y的值,注意包含头文件math.h。

(6)用递归的方法编写函数求Fibonacci级数,观察递归调用的过程。

实验二:(1)定义一个CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run、stop,其中rank为枚举类型CPU_ Rank,定义为enum CPU_ Rank(P1 = 1,P2,P3,P4,P5,P6,P7),frequency为单位是MHz的整型数,voltage为浮点型的电压值。

观察构造函数和析构函数的调用顺序。

(2)定义一个简单的Computer类,有数据成员芯片(CPU),内存(ram),光驱(cdrom)等等,有两个公有成员函数run、stop,CPU为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象,定义并实现这个类。

Java程序设计实验报告

Java程序设计实验报告

滁州学院课程设计报告课程名称:Java程序设计设计题目:四则运算测试系统系别:计算机与信息工程学院专业:计算机科学与技术组别:第七组起止日期: 2011年11月20日~ 2012 年1月8日指导教师: 马骏计算机与信息工程学院二○ 一一年制课程设计任务书目录1 需求分析 (1)1.1 课程设计目的与要求 (1)1.1.1 课程设计目的 (1)1.1.2 课程设计要求 (1)2 概要设计 (2)3 详细设计 (3)4 程序源代码 (4)5 程序运行于调试 (11)总结 (12)致谢 (12)参考文献 (12)1 需求分析1.1 课程设计目的与要求1.1.1 课程设计目的Java语言是面向对象的开发方法是当今世界最流行的开发方法,是当今流行的网络编程语言。

它具有面向对象、跨平台、分布应用等特点。

它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。

很多程序开发人员得第一选择。

为了将课堂上得知识掌握得更加透彻,深刻把握Java语言的重要概念及其面向对象的特性,锻炼学生熟练的应用面向对象的思想和设计方法解决实际问题的能力,开设了Java程序设计课程设计。

让学生自己动手动脑,将书本上得知识运用到实践当中去,使知识能更好得融会贯通。

学习任何知识得目的都是要将它运用到实践中去,所以我们要运用已有的知识,独立得将这个课程设计完成,只有这样,我们才能将知识变成本领,变成属于自己得东西,通过一个学习得学习,我们已经有可一定得Java基础,现在我们就要利用这些基础,来完成课程设计。

这次课程设计我主要研究了利用已学的Java知识编辑一个四则运算测试系统。

通过此次课程设计,来巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、JCreator等开发工具的运用,拓宽常用类库的应用。

并通过自己动手,自主得学习,对Java这门课程有更深得了解与认识。

1.1.2 课程设计要求程序实现十道100以内四则运算数学题,能根据题目计算出答案,与输入答案对比,判断做题是否正确,最后计算分数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《程序设计》课程设计姓名:学号:班级:软件工程14 班指导教师:成绩:1.消除类游戏1.1【问题描述】消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进行,棋盘的每一行每一列的方格上放着一个有颜色的棋子,当一行或一列上有连续三个或更多的相同颜色的棋子时,这些棋子都被消除。

当有多处可以被消除时,这些地方的棋子将同时被消除。

1.2【基本要求】现在给你一个n行m列的棋盘(1≤n,m≤30),棋盘中的每一个方格上有一个棋子,请给出经过一次消除后的棋盘。

请注意:一个棋子可能在某一行和某一列同时被消除。

输入数据格式:输入的第一行包含两个整数n, m,用空格分隔,分别表示棋盘的行数和列数。

接下来n行,每行m个整数,用空格分隔,分别表示每一个方格中的棋子的颜色。

颜色使用1至9编号。

输出数据格式:输出n行,每行m个整数,相邻的整数之间使用一个空格分隔,表示经过一次消除后的棋盘。

如果一个方格中的棋子被消除,则对应的方格输出0,否则输出棋子的颜色编号。

1.3【测试数据】为方便调试程序,可将输入数据先写入一个文本文件,然后从文件读取数据处理,这样可避免每次运行程序时都要从键盘输入数据。

测试数据一输出说明:棋盘中第4列的1和第4行的2可以被消除,其他的方格中的棋子均保留。

棋盘中所有的1以及最后一行的3可以被同时消除,其他的方格中的棋子均保留。

1.4【功能实现】#include <iostream>#include <windows.h>using namespace std;int main(){int m, n, i ,j;int temp;cin >> n >> m;temp = m;m = n;n = temp;int * map = new int[m * n];int * mark = new int[m * n];int * tmap = map;int * tmark = mark;int dif = 0;//输入for ( i = 0 ; i < m ; i++ )for (j = 0; j < n; j++)cin >> *(tmap + i * n + j);for (i = 0; i < m; i++)for (j = 0; j < n; j++){//横行if ((tmap + 2 - map) % n != 0 || (tmap + 1 - map) % n != 0)if (*(tmap) == *(tmap + 1) && * (tmap + 1) == *(tmap + 2)){dif = tmap - map;*(tmark + dif) = 0;*(tmark + dif + 1) = 0;*(tmark + dif + 2) = 0;}//竖列if (tmap + 2 * n - map < m * n || tmap + n - map < m * n)if (*(tmap) == *(tmap + n) && * (tmap + n) == *(tmap + 2 * n)) {dif = tmap - map;*(tmark + dif) = 0;*(tmark + dif + n) = 0;*(tmark + dif + 2 * n) = 0;}tmap = map + (j+1) + i * n;}//输出cout << endl;tmap = map;for (i = 0; i < m; i++)for (j = 0; j < n; j++)if (* (tmark + i * n + j) == 0)*(tmap + i * n + j) = 0;for (i = 0; i < m; i++){for (j = 0; j < n; j++)cout<< *(tmap + i * n + j)<<" ";cout << endl;}system("pause");return 0;}1.5【结果和截图】1.6【心得体会】通过这次试验,我对c语言编译器和对棋盘类游戏中的棋子行列删除有了更加深刻的认识和了解。

2数字统计2.1【问题描述】某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*109)。

已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。

2.2【基本要求】现给你n个自然数,统计这些自然数中每个不相同数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。

输入数据有n+1行。

第1行是整数n(1≤n≤200000),表示自然数的个数;第2~n+1行每行一个自然数。

输出有m行(m为n个自然数中不相同数的个数),按照自然数从小到大的顺序输出。

每行输出两个整数,分别是自然数和该数出现的次数,其间用一个空格隔开。

2.3【测试数据】为方便调试程序,可将输入数据先写入一个文本文件,然后从文件读取数据处理,这样可避免每次运行程序时都要从键盘输入数据。

由于数据量可能很大,要注意程序的运行效率。

2.4【实现提示】定义顺序表,元素类型为:Element,顺序表类型为:SeqList,用顺序表的数组data记录自然数和该数出现的次数。

定义如下:typedef struct data{long int number;long int count;} Element;typedef struct list{Element data[10000]; /*存储自然数和该数出现的次数*/int length; /*存储不同自然数的个数,即顺序表的长度*/} SeqList;对输入的每一个数据,在顺序表中查找,若存在,则该数出现次数增1,否则将该数插入顺序表中,出现次数为1,插入后使顺序表中的数据按自然数有序。

2.5【功能实现】#include<stdio.h>void main(){typedef struct data{long int number;long int count;} Element;typedef struct list{Element data[10000]; /*存储自然数和该数出现的次数*/int length; /*存储不同自然数的个数,即顺序表的长度*/} SeqList;SeqList a;Element data1[10000],data2;int n=0,s=1,i,j;/*n代表输入数的个数,s等同于a.length,代表不同数的个数*/ for(i=0;i<10000;i++){data1[i].count=0;}printf("请输入要输入数的个数\n");scanf("%d",&n); /*输入要输入数的个数*/for(i=0;i<n;i++){scanf("%d",&a.data[i].number); /*输入n个数*/}data1[0].number=a.data[0].number;data1[0].count++;for(i=1;i<n;i++){for(j=0;j<s;j++)if(a.data[i].number==data1[j].number){data1[j].count++;break;}if(j==s){data1[s].number=a.data[i].number;data1[s].count++;s++;}}for(i=1;i<s;i++)for(j=0;j<s-i;j++)if(data1[j].number>data1[j+1].number){data2=data1[j];data1[j]=data1[j+1];data1[j+1]=data2;}printf("结果如下\n");for(i=0;i<s;i++){printf("%d,%d\n",data1[i].number,data1[i].count);}}2.6【结果和截图】2.7【心得体会】通过本次实验,我对c语言编译器和n个数的排序和统计有了更加深刻的认识和了解。

3.画图3.1【问题描述】用 ASCII 字符来画图是一件有趣的事情,并形成了一门被称为 ASCII Art 的艺术。

例如,下图是用 ASCII 字符画出来的 CSPRO 字样。

..____.____..____..____...___.../.___/.___||.._.\|.._.\./._.\.|.|...\___.\|.|_).|.|_).|.|.|.||.|___.___).|..__/|.._.<|.|_|.|.\____|____/|_|...|_|.\_\\___/.3.2【基本要求】实现一个用 ASCII 字符来画图的程序,支持以下两种操作:画线:给出两个端点的坐标,画一条连接这两个端点的线段。

简便起见题目保证要画的每条线段都是水平或者竖直的。

水平线段用字符 - 来画,竖直线段用字符 | 来画。

如果一条水平线段和一条竖直线段在某个位置相交,则相交位置用字符 + 代替。

填充:给出填充的起始位置坐标和需要填充的字符,从起始位置开始,用该字符填充相邻位置,直到遇到画布边缘或已经画好的线段。

注意这里的相邻位置只需要考虑上下左右 4 个方向,如下图所示,字符 @ 只和 4 个字符 * 相邻。

.*.*@*.*.输入数据格式如下:第1行有三个整数m, n和q。

m和n分别表示画布的宽度和高度,以字符为单位。

q表示画图操作的个数。

(2 ≤ m, n ≤ 100,0 ≤ q ≤ 100)第2行至第q + 1行,每行是以下两种形式之一:0 x1 y1 x2 y2:表示画线段的操作,(x1, y1)和(x2, y2)分别是线段的两端,满足要么 x1= x2且 y1≠y2,要么 y1=y2 且 x1≠x2。

(0≤x1 ,x2<m,0≤y1 ,y2<n)。

1 x y c:表示填充操作,(x, y)是起始位置,保证不会落在任何已有的线段上;c 为填充字符,是大小写字母。

(0≤x<m,0≤y<n)。

画布的左下角是坐标为 (0, 0) 的位置,向右为x坐标增大的方向,向上为y坐标增大的方向。

这q个操作按照数据给出的顺序依次执行。

相关文档
最新文档