C程序设计-打印课程设计报告ok-new
c#程序设计课程程序设计报告

C#程序设计设计说明书简单浏览器的设计与实现学生姓名夏守成学号1006111097班级10计算机一班成绩指导教师朱老师计算机科学与技术C#课程设计评阅书课程设计任务书2011—2012学年第一学期专业:计算机科学与技术学号:1006111097 姓名:夏守成课程设计名称:C#课程设计设计题目:简单浏览器的设计与实现完成期限:自2011 年12月14日至2011 年12 月21 日共1周设计依据、要求及主要内容(可另加附页):根据程序设计所学知识,设计与实现一个简单浏览器,该简单浏览器设计的内容和功能要求如下:(1)有合理的首页页面设计,背景柔和,(2)有多个按钮,比如说前进、后退、刷新删除等(3)输入地址栏,支持所有的网址,并有转到功能(4)设计登陆页面。
(5)可以存储网址,进行网内连接,(6)是利用C#编写程序,该浏览器简单但功能齐全(7)使用时同样可以最大化最小化(8)按钮是利用画图工具进行拷贝下来的(9)地址默认为百度要求:系统功能设计基本完善,并写出详细的设计说明书。
指导教师(签字):批准日期:年月日摘要关键词:前进、后退、刷新、输入合法地址、运行程序,在网内搜索,使用vs2008中的C#编写程序,利用画图工具。
拷贝前进、后退的按钮目录1课题描述 (4)2程序设计流程图 (4)2.1 系统说明 (4)2.2主界面的设计 (4)3 功能的设计 (4)3.1 简单浏览器功能的设计 (4)3.简单浏览器功能的设计 (5)3.3 简单浏览器功能的设计 (5)4测试 (5)4.1系统测试 (5)4.2 调试结果 (6)4.3 错误原因分析 (6)总结 (6)参考文献 (6)附录: (7)源代码: (7)1课题描述利用C#编写简单的程序,创建一个简单的浏览器,包含基本的功能,培养编写程序的兴趣。
实践中了解浏览器的一些特性2程序设计流程图2.1 系统说明使用win7系统,vs2008中的控制台应用程序,设计主界面,并拖放按钮。
实用C语言程序设计教程课程设计

实用C语言程序设计教程课程设计一、课程设计介绍本课程设计旨在提高学生对于C语言程序设计的实际应用能力,让学生通过编写有实际用途的程序来掌握C语言的基本语法和编程思想。
通过本课程设计的学习,学生将能够掌握C语言的基本语法、流程控制语句、函数等知识点,并能够熟练使用这些知识点进行程序开发。
二、课程设计目标•掌握C语言的基本语法•熟练应用C语言的流程控制语句和函数•能够独立设计、开发、测试C语言程序•能够处理简单的C语言程序调试和错误处理三、课程设计内容1. 认识C语言本章主要介绍C语言的概述、发展历史、优缺点等方面的内容,让学生了解C语言的基本情况。
2. 基本语法本章主要介绍C语言中的基本语法要点,包括数据类型、运算符、表达式、控制语句、循环语句等等。
3. 函数本章主要介绍C语言中的函数定义和调用、函数的返回值、参数传递等相关内容。
4. 文件操作本章主要介绍C语言中的文件读写操作、文件指针、文件操作函数等相关内容,让学生了解如何进行文件读写操作。
5. 数据结构本章主要介绍C语言中的结构体和指针等相关内容,让学生了解如何使用结构体和指针进行程序开发。
6. 综合项目本章将要求学生利用所学知识进行实际程序的开发,在本章中完成的综合项目可作为课程设计的结题项目。
四、课程设计要求1. 软硬件要求•操作系统:Windows或者Linux•编译器:GCC或者Clang2. 实践要求•学生需要完成本课程设计的所有练习题目,课程设计的结题项目需要具有一定的实际应用场景•学生需要在课程设计期间积极参与课堂讨论和活动,并提交相关的实验报告•学生需要按时完成实验报告和结题项目的提交,如有特殊原因请提前与任课老师联系,并及时提交请假手续3. 成绩评定要求•实验报告成绩占总成绩的50%•结题项目成绩占总成绩的50%五、结语C语言是一门非常实用的编程语言,在很多领域都有其实践价值。
通过本课程设计的学习,相信学生们能够熟练掌握C语言的基本语法和编程思想,同时也能够更好地应用C语言进行实践开发。
C语言程序设计课程设计报告---汉诺塔问题

XXXX大学计算机科学与技术学院课程设计报告2012 — 2013学年第一学期课程名称C/C++高级语言程序设计课程设计设计题目小游戏和图形处理汉诺塔问题学生姓名XXX学号XXXXXXX专业班级XXXXXXXXXXX指导教师XX2012 年X 月XX 日目录一、课程设计问题描述 (1)1、课程设计题目 (1)2、设计任务要求 (1)二、总体设计 (1)1、设计思路 (1)2、汉诺塔求解流程图 (2)三、详细设计 (2)1、汉诺塔问题描述 (2)2、算法分析 (3)3、实现递归的条件 (4)4、用C语言实现 (4)四、程序运行结果测试与分析 (4)1、打开Microsoft Visual C++ 6.0操作平台输入以下的源代码 (4)2、编译源代码 (5)3、组建 (5)4、执行 (5)5、运行结果 (6)6、按任意键结束程序 (7)五、结论与心得 (7)六、参考文献 (8)七、附录:程序源代码 (8)一、课程设计问题描述1、课程设计题目汉诺塔问题2、设计任务要求输入盘子数(2个以上有效),移动速度,开始演示汉诺塔移动的步骤,要求:盘子A,B,C柱需要自己绘制,初始时盘子在A柱上通过B柱最终移动到C 柱上,显示出盘子在几个柱之间的移动过程。
二、总体设计1、设计思路对于一个类似的这样的问题,任何一个人都不可能直接写出移动盘子的每一个具体步骤。
可以利用这样的统筹管理的办法求解:我们假设把该任务交给一个僧人,为了方便叙述,将他编号为64。
僧人自然会这样想:假如有另外一个僧人能有办法将63个盘子从一个座移到另一个座,那么问题就解决了,此时僧人A B C64只需这样做:(1).命令僧人63将63个盘子从A座移到C座(2).自己将最底下的最大的一个盘子从A座移到C座(3).再命令僧人63将63个盘子从B座移到C座为了解决将63个盘子从A座移到B座的问题,僧人63又想:如果能再有一个僧人62能将62个盘子移动到另一座,我就能将63个盘子从A座移动到B座。
c语言课程设计打印月历

c语言课程设计打印月历一、教学目标本节课的学习目标包括以下三个方面:1.知识目标:学生需要掌握C语言编程的基本语法和流程控制语句,理解函数的定义和调用,了解动态内存分配的基本方法。
2.技能目标:学生能够运用C语言编写简单的程序,具备基本的程序调试和运行能力,能够独立完成月历打印程序的编写和调试。
3.情感态度价值观目标:培养学生对计算机编程的兴趣和好奇心,提高学生解决问题的能力和创新意识,培养学生的团队合作精神和自主学习能力。
二、教学内容本节课的教学内容主要包括以下几个部分:1.C语言基本语法和流程控制语句:数据类型、变量、运算符、条件语句、循环语句等。
2.函数的定义和调用:函数的声明、定义、调用和返回值。
3.动态内存分配:malloc、calloc、realloc等函数的使用。
4.月历打印程序的设计和实现:日历格式的输出、闰年的判断、月份和星期的计算等。
三、教学方法本节课采用以下几种教学方法:1.讲授法:教师讲解C语言的基本语法和流程控制语句,函数的定义和调用,动态内存分配的方法等知识点。
2.案例分析法:通过分析月历打印程序的案例,让学生理解程序的设计思路和实现方法。
3.实验法:学生动手编写和调试月历打印程序,培养学生的实际编程能力和问题解决能力。
四、教学资源本节课的教学资源包括以下几个方面:1.教材:C语言编程教程,用于引导学生学习基本语法和编程方法。
2.多媒体资料:PPT课件,用于辅助讲解和展示月历打印程序的设计过程。
3.实验设备:计算机、编程环境(如Code::Blocks、Visual Studio等),用于学生编写和调试程序。
4.网络资源:在线编程平台(如LeetCode、牛客网等),用于学生进行编程练习和交流。
五、教学评估本节课的教学评估将采用以下几种方式:1.平时表现评估:通过观察学生在课堂上的参与程度、提问回答、合作交流等方面的表现,评估学生的学习态度和积极性。
2.作业评估:通过检查学生提交的月历打印程序代码,评估学生对C语言编程知识的掌握程度和问题解决能力。
C++-MFC计算器编程课程设计实践报告

中南大学本科生课程设计(实践)设计报告(程序设计基础)题MFC编程科学计算器目学生1104120502学号学生郭斌繁姓名指导蔡旭晖教师学院交通运输工程学院专业交通运输类1205班班级计算机基础教学实验中心2013年7月1日程序设计(C++)实践报告1.引言C++语言的主要特点表现在两个方面,一是全面兼容C语言,二是支持面向对象的程序:(1) C++是一个更好的C,它保持了C S言的优点,大多数的C程序代码略作修改或不作修改就可在C++的集成环境下调试和运行。
这对于继承和开发当前已在广泛的软件是非常重要的,可以节省大量的人力和物力。
(2) C++是一种面向对象的程序设计语言它使得程序的各个模块的独立性更强,程序的可读性和可移植性更强,程序代码的结构更加合理,程序的扩充性更强。
这对于设计、编制和调试一些大型的软件尤为重要。
⑶C++集成环境不仅支持C++程序的编译和调试,而且也支持C程序的编译和调试。
通常,C++ 程序环境约定:当源程序文件的扩展名为c.时,则为C程序;而当源程序文件的扩展名为cpp.时,则为C++?序。
(4)C++语句非常简练,对语法限制比较宽松,因此C++语法非常灵活。
其优点是给用户编程带来书写上的方便。
其缺点是由于编译时对语法限制比较宽松,许多逻辑上的错误。
次课程设计主要在运算过程中,如果通过计算器来完成,就会减少计算量,该程序即可以在简单计算器键面下进行简单运算,也可以在科学计算器键面下进行高级的科学计算。
并且可以分别计算弧度、角度的三角函数的计算等较为复杂的运算。
(1).设计目标利用MFC程序开发工具设计一款可以进行简单计算及部分科学计算的计算器。
在设计当中将综合“面向对象程序设计与结构化程序设计”的思想方法和知识点,编制一个小型的应用程序系统。
通过此设计进一步提高自己的动手能力,并能使自己清楚的知道开发一个应用程序的思想、方法和流程。
(2).选题分析此次实践所选题目中除了简单的加减乘除运算程序之外还包括了余弦函数、双曲余弦函数、度分秒的转换和X的y次方及y次根号下x的运算程序。
C语言课程设计报告:职工信息管理系统程序设计

1.课程论文题目职工信息管理系统程序设计一、题目要求职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。
试设计一职工信息管理系统,使之能提供以下功能:(1)系统以菜单的方式工作。
(2)职工信息录入功能(职工信息用文件保存)。
(3)职工浏览功能。
(4)职工信息查询功能,查询方式可按学历查询或者工号查询。
(5)职工信息的删除、修改功能(可选项)。
2.程序设计思路1、设计思路(1)根据题目要求,应该把职工工资信息用结构体形式输入,在定义一个全局变量和文件指针进行整个程序的运行,然后把职工工资信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;(2)在程序中需实现职工工资浏览、查询、统计等功能的操作,所以需要建立相应的功能模块来实现;(3)另外还需要提供键盘式选择菜单实现功能,在运行时达到所要的目的。
3.功能模块图5.算法设计1.主函数提供输入、处理和输出部分的函数调用,各功能模块采用菜单方式选择。
2浏览模块【分析】该模块的功能是浏览职工的全部信息3排序模块4查询模块【分析】该模块的功能是根据输入的职工按照工号和学历查找对应的记录,找到以后,可进行继续查找或修改信息的操作。
流程图如下:5修改模块【分析】该模块的功能是显示所有职工的信息,考虑到记录较多,建议采用分屏显示。
显示完所有记录后,输入要修改的职工的工号,根据工号查到职工的记录,并提示用户修改该记录的哪部分信息,根据用户做的选择修改相应信息。
流程图如下:6.程序代码#include<stdio.h>#define N 50struct worker{char id[50];char name[20];char sex[10];char age[10];char edu[20];char salary[10];char address[20];char tel[20];}worker[N];void save(int n) //保存函数,保存n个记录{ FILE *fp;int i;if((fp=fopen("worker.txt","wb"))==NULL) //以只写方式为输出打开一个二进制文件{ printf("\nCannot open file\n");}for(i=0;i<n;i++)if(fwrite(&worker[i],sizeof(struct worker),1,fp)!=1)printf("file write error\n");fclose(fp);}int load() //加载函数{ FILE *fp;int i;if((fp=fopen("worker.txt","rb"))==NULL){printf("\nCannot open file\n");return NULL;}for(i=0;!feof(fp);i++)fread(&worker[i],sizeof(struct worker),1,fp);fclose(fp);return(i-1);}void no_input(int i,int n) //工号输入函数,i表示第i个职工的信息,n 表示比较到第n个职工{ int j,k,w1;do{w1=0;printf("工号:");scanf("%s",worker[i].id);for(j=0;worker[i].id[j]!='\0';j++)if(worker[i].id[j]<'0'||worker[i].id[j]>'9') //判断工号是否为数字{puts("请重新输入!\n");w1=1;break;}if(w1!=1)for(k=0;k<n;k++) //比较到第N个职工if(k!=i&&strcmp(worker[k].id,worker[i].id)==0) //判断职工号是否有雷同{puts("请重新输入!\n");w1=1;break;}}while(w1==1);}void input(int i) //输入一个记录的函数{ no_input(i,i);printf("姓名:");scanf("%s",worker[i].name);printf("性别:");scanf(" %s",&worker[i].sex);printf("年龄:");scanf("%s",&worker[i].age);printf("工资:");scanf("%s",worker[i].salary);printf("学历:");scanf("%s",&worker[i].edu);printf("住址:");scanf("%s",worker[i].address);printf("电话:");scanf("%s",worker[i].tel);}void printf_one(int i) //显示一个记录的函数{printf("%10s %10s %5s %5s %8s %6s %10s %10s\n",worker[i].id,worker[i].name,worker[i].sex,worker[i].age,worker[i].salary,worker[i].edu,worker[i].address,worker[i].tel); }void printf_back() //一个任务结束后选择是好似浏览还是返回{ int k,w;printf("\n\n\tSuccessful^-^.\n\n");printf("接下来做什么?\n\n\t1).浏览全部\t2).返回: [ ]\b\b");scanf("%d",&w);if(w==1)browse();else menu();}modify_data(int i,int n) //修改函数{ int c,w1;do{puts("\nmodify by=>\n\n 1).工号 2).姓名 3).性别 4).年龄 5).工资6).学历 7).地址 8).电话 9).取消");printf("请选择?:[ ]\b\b");scanf("%d",&c);if(c>9||c<1){puts("\nChoice error!please again!");getchar();}}while(c>9||c<1);do{switch(c){case 1:no_input(i,n);break;case 2:printf("name:");scanf("%s",worker[i].name);break;case 3:printf("sex:");scanf("%s",worker[i].sex);break;case 4:printf("age:");scanf("%s",worker[i].age);break;case 5:printf("salary:");scanf("%s",worker[i].salary);break;case 6:printf("edu:");scanf("%s",worker[i].edu);break;case 7:printf("address:");scanf("%s",worker[i].address);break;case 8:printf("tel:");scanf("%s",worker[i].tel);break;case 9:menu();break;}puts("\nNow:\n");printf_face();printf_one(i);printf("\n确定?\n\n\t1).是2).否,重新修改3).不保存退出[ ]\b\b");scanf("%d",&w1);if(w1==1)save(n);}while(w1==2);return(w1);}printf_face() //显示数据结构项目{ printf("\n\t工号姓名性别年龄工资学历地址电话号码\n"); }void enter() //输入模块{ int i,n;printf("输入多少个职工信息(0-%d):",N-1);scanf("%d",&n);printf("\n 请输入职工信息\n\n");for(i=0;i<n;i++)input(i);if(i!=0)save(n);printf_back();}browse() //浏览模块{ int i,j,n;n=load();printf_face();for(i=0;i<n;i++){if((i!=0)&&(i%10==0)){printf("\n\n按任意键显示下一页...");getch();puts("\n\n");}printf_one(i);}printf("\t这里有 %d 条记录.\n",n);printf("\n按任意键返回...");getch();menu();}modify() //修改模块{struct worker s;FILE *fp;int i,n,k,w0=1,w1,w2=0;n=load();do{k=-1;printf_face();for(i=0;i<n;i++){if((i!=0)&&(i%10==0)) //目的是分屏显示{printf("\n\n记住要修改的工号.按任意键显示下一页");getch();puts("\n\n");}printf_one(i); //调用显示一个记录的函数}do{printf("\n\n输入要修改的职工工号! 工号:");scanf("%s",s.id); //输入要修改的IDfor(i=0;i<n;i++) //查找要修改的数据if(strcmp(s.id,worker[i].id)==0){k=i; //找到要修改的记录s=worker[i]; //把worker[i]备份,以便恢复}if(k==-1)printf("\n\n未找到请重输");}while(k==-1); //当k=-1表示没有找到printf_face(); //调用显示数据结构项目的函数printf_one(k); //调用显示一个记录的函数w1=modify_data(k,n); //修改记录并返回保存控制值w1,w1=1表示用户已确认修改if(w1==1){printf("\Successful^_^.\n\n修改另一个?\n\n\t1).是 2).否,保存退出\t[ ]\b\b");scanf("%d",&w0);w2=1; //用来控制保存,使w2=1是标记已有过修改}else{w0=0;if(w2==1)worker[k]=s;}if(w0!=1&&w2==1)save(n);}while(w0==1);menu();}search() //查询模块{ int c,w1;do{puts("\nsearch by=>\n\n1).工号 2}.学历 3).取消并返回"); printf("Which you needed?:[ ]\b\b");scanf("%d",&c);if(c>3||c<1){ puts("\nchoice error!please again!");getchar();}}while(c>3||c<1);{switch(c){case 1:search1();break;case 2:search2();break;case 3:menu();break;}}}search1() //按工号查询模块{int i,n,k,w1=1,w2,w3,w4;struct worker s;n=load();do{do{k=-1;printf("\n\n输入要查询的工号! id:");scanf("%s",s.id);printf_face();for(i=0;i<n;i++)if(strcmp(s.id,worker[i].id)==0){k=i;printf_one(k);break;}if(k==-1){printf("\n\nNo exit!please");printf("\n\n继续查找?\n\t1).是 2).否,返回 [ ]\b\b");scanf("%d",&w1);if(w1==2) menu();}}while(k==-1&&w1==1);w4=0;w3=0;if(k!=-1){printf("\n\n接下来干什么?\n\t1).查找另一个 2).修改 3).返回菜单[ ]\b\b");scanf("%d",&w2);switch(w2){case 1:search1();break;case 2:w3=modify_data(k,n);break;case 3:{menu();break;}}}}while(w2==1);menu();}search2() //按学历查询模块{int i,n,k,w1=1,w2,w3,w4;struct worker s;n=load();do{do{k=-1;printf("\n\n请输入你要查询的学历:\n");scanf("%s",);printf_face();for(i=0;i<n;i++)if(strcmp(,worker[i].edu)==0){k=i;printf_one(k);}if(k==-1){printf("\n\nNo exit!please");printf("\n\n继续查找?\n\t1).是 2).否,返回 [ ]\b\b");scanf("%d",&w1);if(w1==2) menu();}}while(k==-1&&w1==1);w4=0;w3=0;if(k!=-1){printf("\n\n接下来干什么?\n\t1).查找另一个 2).修改 3).返回菜单[ ]\b\b");scanf("%d",&w2);switch(w2){case 1:search2();break;case 2:w3=modify_data(k,n);break;case 3:{menu();break;}}}}while(w2==1);menu();}menu(){int n,w1;do{puts("\t\t*******************菜单*******************\n\n");puts("\t\t\t\t1.录入职工信息");puts("\t\t\t\t2.浏览职工信息");puts("\t\t\t\t3.查询职工信息");puts("\t\t\t\t4.修改职工信息");puts("\t\t\t\t5.退出");puts("\t\t****************************************\n\n");printf("请选择(1~5): [ ]\b\b");scanf("%d",&n);if(n<1||n>5) //对选择的数字作判断{w1=1;getchar();}else w1=0;} while(w1==1);switch(n){case 1:enter();break; //录入 case 2:browse();break; //浏览 case 3:search();break; //查询 case 4:modify();break; //修改 case 5:exit(0); //退出}}main(){menu();}7.程序运行结果下面是各个模块的的界面截图(1)、主菜单(2)、输入模块(3)、浏览模块(3)、查找模块(4)、修改模块8.编程中遇到的困难及解决方法温故而知新,可以为师矣。
C++课程设计报告 addressboook。(简易通讯录)
C++语言课程设计报告一、课题名称:简单通讯录管理二、报告内容一、程序功能;二、课题分析;三、设计中的问题与解决方法;四、对设计的感想和心得。
五、典型测试数据组;六、源程序代码(含注释);(一)程序功能本程序的功能是为用户提供简单的通讯录进行管理,通过该程序存储联系人信息,提供关键字(只能是英文关键字进行查找)查找功能,可以对数据进行修改、删除、添加等操作。
各按钮的功能如下:查找记录:以姓名为关键字,查找并显示该记录。
若查找不到,则显示“好象没有”;添加记录:将当前记录按姓名序加入通讯录,然后显示第一条记录;修改记录:修改当前记录,显示当前记录。
姓名为关键字,不允许修改;删除记录:删除当前记录,然后显示第一条记录;第一条记录:将当前记录指针移动至首节点,若已为首节点,则不移动;前一条记录:将当前记录指针向前移动一个节点,若已为首节点,则不移动;后一条记录:将当前记录指针向后移动一个节点,若已为尾节点,则不移动;最后一条记录:将当前记录指针移动至尾节点,若已为尾节点,则不移动;加载:从文件中掉入已保存的通讯录数据;保存:保存通讯录数据;退出:退出系统;(二)课题分析本课程设计的数据有每个人的姓名,电话号码和Email地址等信息,并且所有人的数据以姓名为关键字英文字母按升序排放,存在前后关系,同时为了减少执行“添加”、“删除”等操作时对数据的过于复杂和繁琐的操作,采用双向链表而非数组来进行数据的的存储和操作。
同时需要一个文本文件来存储联系人信息,运行程序是从该文本文件中导入数据。
可视化编程的过程中涉及到了“Static Text”、“Edit Box”、“Button”三种控件,三种控制中Edit Box为编辑筐,为用户提供操作的界面。
(三)设计中遇到的问题及解决办法1、从文本中写入数据时可能指针指错位臵,导致不能正常进行。
解决的办法是对指针进行必要跟踪,把该函数写入独立的cpp文件中,单个进行检查。
大学程序设计实践报告(2篇)
第1篇 一、引言 随着计算机技术的飞速发展,程序设计已经成为计算机科学领域的基础课程。在大学阶段,程序设计课程旨在培养学生的编程思维、算法设计能力和编程实践能力。本报告将详细记录我在大学期间进行的程序设计实践,包括实践内容、过程和收获。
二、实践内容 1. 课程学习 在大学期间,我参加了《C语言程序设计》、《数据结构》、《操作系统》等课程,通过学习这些课程,我掌握了C语言编程基础、数据结构设计和操作系统原理等知识。
2. 实验课程 在实验课程中,我完成了以下实践项目: (1)C语言编程:实现了学生信息管理系统、计算器程序、冒泡排序等小型项目。 (2)数据结构:实现了链表、栈、队列、二叉树等数据结构,并进行了相应的操作。
(3)操作系统:学习了进程管理、内存管理、文件系统等知识,并实现了简单的文件系统。
3. 课程设计 在课程设计环节,我选择了“图书管理系统”项目。该项目包括用户注册、登录、查询、借阅、归还等功能。在项目开发过程中,我运用了面向对象编程思想,使用了Java语言和MySQL数据库。
4. 参加竞赛 为了提高自己的编程能力,我参加了“蓝桥杯”全国软件和信息技术专业人才大赛。在比赛中,我独立完成了题目,并取得了优异的成绩。
三、实践过程 1. 学习阶段 在实践过程中,我首先通过课堂学习、阅读教材和参考书籍,掌握了程序设计的相关知识。在遇到问题时,我会积极向老师和同学请教,并查阅相关资料。
2. 实验阶段 在实验阶段,我按照实验指导书的要求,逐步完成了各个实验项目。在实验过程中,我学会了如何使用集成开发环境(IDE),如Visual Studio、Eclipse等,并掌握了调试技巧。
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语言程序设计课程设计总结(菁选6篇
c语言程序设计课程设计总结(菁选6篇c语言课程设计个人总结篇一当前,计算机已经成为人们工作、学习和生活中必不可少的工具,整个社会对计算机的高度依赖促使一个崭新的文化形态的形成――计算机文化。
随着高等教育从精英教育阶段进入大众教育阶段,教育部高等学校计算机科学与技术教学指导委员会在计算机基础课程教学基本要求中提出了1+X的课程设置方案[1],理工类学生在学学计算机基础课程后,接下来就要学习C语言程序设计,C语言程序设计已经成为各高校普遍开设的基础课程。
本文总结了我们在教学和实践中的一些做法和体会。
C语言功能强大,使用灵活方便,应用面广,可移植性好,兼有高级语言的优点和低级语言的特点[2],这也使得初学者较难学习和掌握,在教学中我们发现,学生往往对编程解决实际问题感到困难,不知从何下手,而一些考试题目往往重视考查语法的细节,而对编程能力考查得不多。
对于C语言程序设计的教学,我们从培养学生的兴趣和能力,以及计算机思维能力出发,进行了一系列教学的探索与实践。
一、教学师资团队建设人才培养师资队伍是关键,教学团队的建设是保障教学效果和实施教学的基础和支撑[3]。
根据本课程的特点和大一学生的基础,学院确定了一支老中青相结合的骨干教师组成本课程教学团队,团队由一位教授、一位副教授、四位讲师和三位助教组成,分别承担理论教学和实验教学任务,这支队伍年龄、职称结构合理,团队中的教师在每学期的教学督导和学生评教中,成绩都在良好以上,从根本上保证了课程的教学质量。
坚持教学团队的凝聚力建设,定期研讨,统一思想。
每周教研时间及时交流教学中出现的问题及解决方法,对教学过程进行总结反思,坚持互相听课,集体研究讨论教案、课件制作,对每个实验内容、案例的选用、考核的内容和方式等都经过团队的统一讨论确定。
重视教学团队中教师自身的进修和提高,团队中的多名教师先后参加了国家精品课程师资培训、全国高等学校计算机实验与实践教学研讨会、全国高等院校程序设计精品课程教学专题研讨会等,教师都很珍惜每一次与兄弟院校的教师、专家交流与学习的机会,教师及时把学习体会传达到团队的每一位教师,汲取其他院校的一些好的做法运用到我们的教学实践中,这些做法对促进教师的知识更新、教育理论的学习、教学方法的改进和教学能力的提高起到积极的作用,也保证了课程的教学能不断向前推进。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 课 程 设 计 报 告 课程名称 C语言程序设计 课题名称 飞机订票系统
专 业 网络工程 班 级 0901班 学 号 200903120104 姓 名 郭 武 指导教师 陈淑红 刘洞波 李杰君
2010年7月11日 2
湖南工程学院 课 程 设 计 任 务 书
课程名称 C语言程序设计 课 题 飞机订票系统
专业班级 网络工程0901班 学生姓名 郭 武 学 号 200903120104 指导老师 陈淑红 刘洞波 李杰君 审 批
任务书下达日期 2010年 6月 28 日 任务完成日期 2010年 7月 11日 3
一、设计内容与设计要求 一、设计内容: 飞机订票系统
1.1问题描述: 假设某航空公司只有M架N个座位的飞机,每架飞机每天飞行一趟。通过该系统来实现机票的订购问题。
1.2功能要求: 1)、本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:起飞地、目的地 航班号、座次号码、座次订出与否标记、订座者的姓名和订座者的身份证号码。 2)、本系统显示这样的菜单: (1) 输入航班信息 (2)输出航班信息 (3)查找航班信息 a.显示空座的数量 b.显示空座的信息 c.显示已订座的信息 d.起飞时间 (4)订票预约 (5)删除定票预约 (6)退出系统 1、本系统成功执行菜单的每个信息,选项4)和5)将要求额外的输入,并且它们都允许用户收回其输入。 2、查找航班信息既可按线路查,也可按目的地查。 4、在两次运行之间,数据被保存于一个文件里,当本程序重新开 始的时候,它首先从该文件读入数据
1.3 算法提示: 1、数据结构:结构体类型数组 4
2、数据库结构:下表构成该系统的基本数据库。
航班号 起飞时间 目的地 座次号 座次订出与否的标记 订票者姓名 订票者身份证号码 int char char int Char char char
1.4测试数据: 每架飞机的座位N=12,M=5
1.5 其它: 对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其它功能。
二、设计要求 1).设计正确,方案合理。 2).界面友好,使用方便。 3).程序精炼,结构清晰。 4).设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。 5).上机演示。
二、进度安排
第 18 周 星期一上午 课题讲解 查阅资料 星期一下午 系统需求分析 模块设计 星期二上午 算法、数据结构设计 主程序设计 星期二下午 各功能模块程序设计 修改完善程序 星期五下午 各功能模块程序设计 修改完善程序 第 19 周 时间待定
星期五下午 答辩 5
目 录 一、需求分析 ............................................................................................................... 6 1、程序的功能....................................................................................................... 6 2、输入输出的要求............................................................................................... 8 二、概要设计 ............................................................................................................... 9 三、详细设计 ............................................................................................................. 11 1、数据类型......................................................................................................... 11 2、模块分析......................................................................................................... 12 3、函数的调用关系............................................................................................. 12 四、调试分析以及设计体会 ..................................................................................... 13 1、测试数据......................................................................................................... 13 2、调试分析......................................................................................................... 13 3、心得体会......................................................................................................... 14 五、使用说明 ............................................................................................................. 15 六、附录 ..................................................................................................................... 17 1、参考书目......................................................................................................... 17 2、源程序清单(带注释)................................................................................. 17 七、计算机科学与技术系课程设计评分表 ............................................................. 40 6
一、需求分析 1.1 系统功能需求 1.1.1 程序的功能 1.系统管理员功能: 1)录入和修改航班和机票的信息:输入航班号,输入起飞港,途径港,到达港,录入起飞时间,到达时间,飞行总共用时,可随时修改航班信息 2)输出航班的信息:输入航班号便可输出之前输入的航班信息 2. 客户需要的功能: 1)查找航班信息: a.显示空座的数量 b.显示空座的信息 c.显示已订座的信息 d.起飞时间 2)订票预约:查询航班信息后,提前订票预约需要的飞机票, 3)删除定票预约 4)退出系统 7
1.1.2 主要模块流程图 1.1.3 功能描述 功能序号 功能名称 功能说明 3 查询 查询空座信息,包括空座数量。 查询已定座的信息,包括起飞时间。 4 订票预约 ①填写个人信息:包括乘客姓名、乘客所在单位,乘客身份证号 ②填写订单信息:包括起飞城市、起飞时间、到达城市、路径城市。
5 删除订票 由于各种原因,客户不再需要订购的飞机票,客户可以删除之前定的飞机票,只需依次输入航班号,座位号,确定删除即可。
1.1.4各功能模块的功能描述 (1)显示菜单函数: FLIGHT fltlist[5]; PASSENGER psglist[5][12]; ReadFlight(fltlist); PASSENGER* k;k=(PASSENGER*) psglist; ReadPassenger(k); 用户可以根据菜单提示,选择相关菜单。 (2)查找函数:
主函数 输入航班信息 查找航班信息 输出航班信息
退出系统 8
查询航班号函数chaxunhangban(FLIGHT fltlist[]),查询已定座信息函数chaxunyidingxinxi(PASSENGER* psglist), 查空位信息函数chakongweixinxi(FLIGHT fltlist[],PASSENGER* psglist),查空位个数函数chakongweigeshu(FLIGHT fltlist[],PASSENGER* psglist)。 本算法实现查找航班信息功能。用户可以根据航班号或起飞抵达城市查找航班信息。如果没有该航班信息,将提示相关信息。 (3)主控函数: void main(void)从数据文件中读入航班信息,用户选择某菜单,实现调用该菜单功能的函数。 (4)订票函数: void Book(FLIGHT fltlist[],PASSENGER* psglist) 本算法实现订票功能。用户输入订票信息后,该算法就会根据用户输入信息查找航班信息,找到就显示订票成功相关信息,且该航班票量减去用户订的票数。如没找到,则提供相关的其他航班信息。该算法功能可以循环执行。 (5)退票函数: void tuipiao(FLIGHT fltlist[],PASSENGER* psglist) 本算法实现退票功能。用户可以根据自己的航班型号退票。 当用户输入航班型号退票,该算法会根据用户的航班型号查找储存在以head为头节点链表中的客户信息,找到删除该客户信息节点,并输出退票成功相关信息。否则提示没有该客户信息。
1.2 输入输出的要求 1.2.1 输入的要求
输入必须按以下五个步骤进行:
1)输入航班号,航班号为0到4的数; 2) 输入起飞港,比如beijing; 3) 输入途径港,比如tianjing; 4) 输入到达港,比如shanghai; 5) 输入起飞时间,比如12:00;输入到达时间,比如14:00,输入总共用时,比如02:00