VC++课程设计 班级信息输入与显示

2024-07-17

VC++课程设计 班级信息输入与显示(精选6篇)

1.VC++课程设计 班级信息输入与显示 篇一

VC++ 课程设计指导书

江苏科技大学南徐学院电子信息系

2011年9月

《计算机程序设计(vc++)课程设计》课程设计指导书

一. 课程设计教学和任务

《计算机程序设计(vc++)课程设计》是实践性教学环节,是学生必修的一门计算机实践课程。

本课程设计的目的是通过综合性程序设计训练,使学生进一步巩固对计算机程序设计语言(vc++)基本语法,基本算法的理解,加深对面向对象程序设计的理解与应用,并使学生养成模块化,结构化程序设计的良好风格,以及一定的程序组织能力,掌握基本程序设计的方法和技巧,为学习后续课程和实际编程打下良好的基础。

本课程设计的重点要求学生掌握基本程序设计理念和方法,培养学生基本程序设计的应用和开发能力。二. 课程设计要求与内容

1.本课程设计要求

(1)学生必须完成本指导书中所有的小综合设计题,并且完成大综合设计题中的任意一题(具体题目由任课教师指定)。要求:对主要变量及函数要加注释,以说明其功能。

(2)每个学生必须完成课程设计报告一篇。(报告格式见附录)2.课程设计的内容

本课程设计内容包括两个部分:小综合设计题和大综合设计题。

====================================== 附:课程设计报告格式一、二、课程设计目的 课程设计内容

1、小综合题

2、大综合题

三、课程设计体会及建议

小综合设计题

1.二维数组的操作运算

定义一个n×n的二维数组a,将该二维数组中周边元素的值全部置为2,其他元素全部置为0。

例如: 当n为8时生成并输出的矩阵为:

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0 定义类MAT,具体要求如下:

(1)私有数据成员

int n;二维数组的阶数

int *p;将二维数组以一维数组方式存储,p是起始指针。

(2)公有成员函数

MAT(int n1);初始化n,并动态申请数组空间,令p指向该空间。

void create();给数组赋值。

void print();按矩阵方式输出二维数组。

~ MAT();析构函数,释放动态数组空间。

(3)在主函数中完成对该类的测试。键盘输入二维数组的阶数n(如8或6),定义一个MAT类的对象m,用n初始化m,按要求生成并输出数组的值。

2.链表

建立一条无序链表,结点名为node,用一个函数实现将这条链表构成一条新的逆序链表,即将链表头当链表尾,链表尾当链表头。输出这两条链表上各个节点的值。

3.字符串处理

将字符串中指定的英语单词(字母子串)进行单数变复数的处理,单词之间用非字母分隔。为了简化编程,将单词的单数变复数的规则是:直接在单词后加s。例如单词student的复数为students。例如,有下列字符串:

We are student, you are student, too.指定单词student,将字符串中所有的student修改为students。处理后的字符串为:

We are students, you are students, too.试建立一个类Modistr,完成以上工作。具体要求如下:

(1)私有数据成员

char *str;存放指定的字符串;

(2)公有成员函数

Modistr(char *s);构造函数,动态申请字符串空间,用s所指向的串初

始化str;

void print();输出字符串str;

void modify(char *wordp);将wordp所指向的单词转换为复数。

~Modistr();析构函数

(3)在主函数中完成对该类的测试。定义类Modistr的对象mys,用字符串“We are student, you are student, too.”初始化mys,调用函数modify(char *)完成将单词“student”单数变复数的处理。

输出变换前和变换后的字符串。

提示:判断一个字符ch是否为字母,可用系统库函数isalpha(ch)。该函数的功能是:若ch是字母,返回真,否则返回假。使用该函数必须包含头文件ctype.h。

4.素数问题

建立一个类PRIME,求指定范围内的所有素数(质数)。具体要求如下:

(1)私有数据成员

int data[200];依次存放指定范围内的所有素数。

int min,max;存放待求素数的数值范围的下限和上限。

int num;存放min与max之间的素数个数。

(2)公有成员函数

构造函数PRIME(int n1, int n2);用n1和n2初始化待求素数的范围 min、max及num(值为0)。

void process();求指定范围内的所有素数,把它们存放在数组data中。求素数的算法必须是:首先将min与max之间的所有奇数依次放入数组data中,然后依次判断data中的每一个元素是否为素数。

若不是素数,则将其值赋为0。最后,数组data中不为0的元素均为素数。将不为0的元素值集中连续存放到数组的前面,同时统计素数个数。

void print();输出求出的所有素数,同时输出素数个数。

(3)在主程序中对该类进行测试。

定义一个PRIME类的对象test,并用待求素数范围min =10, max=200初始化test。通过test调用成员函数求出10至200之间的所有素数,并输出结果。[提示] 素数的定义是“只能被1和它本身整除的正整数”,素数也称为质数。

5.信号系统问题

定义一个类为形状,由它公有派生出正方体、球体和圆柱体。利用虚函数的多态性形式完成计算正方体、球体和圆柱体的体积。具体要求如下:(1)基类: shape 保护数据成员:double a,b;

公有构造函数:shape(double,double); 公有纯虚函数:double volume();(2)派生类

正方体、球体和圆柱体的类名分别为cube,sphere,cylinder, 各派生类均需要定义公有的构造函数以及求体积的虚函数double volume()。(3)派生类为球体时,a为半径,b为0。

派生类为正方体时,a表示边长,b为0。

派生类为圆柱体时,a为圆柱体的边长,b为圆柱体的高。

(4)设计一个完整的程序,分别计算正方体、球体和圆柱体的体积并输出结果。

测试数据如下:

形状类指针变量:p、球体对象:C(0.8)、正方体对象:S(3.2)和圆柱体类对象:R(4.1,5)。用指针p分别指向派生类对象。

输出结果为:

球体的体积是2.14357

正方体的体积是32.768

长方体的体积是263.917 提示:球体的体积公式=4/3*π*半径*半径*半径(其中π取常数3.14)

正方体的体积=棱长×棱长×棱长

圆柱的体积=底面积×高

6.求两个日期之间相差的天数。

设计一个日期类Date,包括日期的年份、月份和日号,编写一个友元函数,求两个日期之间相差的天数。具体要求如下:(1)私有数据成员

int year, month, day;

(2)公有成员函数

Date(int y,int m,int d);//构造函数,初始化日期。void disp();//输出日期。

friend int count day(Date &d,int);// 使用二维数组存放各月天数,第一行对应非闰年,第二行对应闰年。

friend int leap(int year);

//判断是否闰年,是返回1,否则返回0。friend int subs(Date &d1,Date &d2);

//求两个日期之间相差的天数。

(3)在主函数中完成对该类测试,定义两个对象d1(2000,1,1)和d2(2002,10,1),调用subs函数。程序正确的运行结果是: 2000.1.1与2002.10.1之间有1002天

7.身份证。

已知旧身份证号码共15位,其中第7~12位是以2位年份+2位月份+两位日期组成,而新身份证号码共18位,其中第7~14位是以4位年份+2位月份+两位日期组成。试定义一个类ID,根据居民的出生日期检查其身份证号是否正确。

具体要求如下: 1)私有成员:

char s[19] : 存放身份证号。

int yy, mm, dd : 分别存放居民出生日期的年(4位)、月(10~12月两位,其余1 位)、日(两位)。

2)公有成员:

ID(char str[]):构造函数。

int val(char *p): 将数字字符串p转换为相应的十进制数,如“123”转换为数值123,“08”转换为数值8;

int fun(): 根据出生日期检验身份证号是否正确,如果正确,函数值为1,否则为0。

必须使用如下算法:先分别取出身份证中的表示年份、月份、日期的子字符串,然后利用上述int val(char *p)函数转换为数值,再与出生日期的相应成员数据比较。

void print(): 输出所有成员数据。

3)在主函数中输入两个身份证号(一个18位:***910,另一个15位***),分别用这两个身份证号生成类ID的对象,在主函数中通过成员函数fun确定身份证号是否正确并输出相应的信息(身份证号、出生日期、检验结果)。

8.9×9乘法口诀表。

定义一个类MUL,生成如下的9×9乘法口诀表,要求口诀表存储在动态数组中,并输出到屏幕上。运行结果如下: 1 2 3 4

5

6

7

8

9

具体要求如下:(1)私有数据成员

nt(*a)[9];a是一个行指针变量,其指向的数组空间是动态生成的,用于存放口诀表。口诀表存放在二维数组的左下三角形中。

(2)公有成员函数

MUL();构造函数,动态生成数组空间。void process();生成乘法口诀表。void print();输出乘法口诀表。

~MUL();析构函数,释放动态数组空间。

(3)在主函数中完成对该类的测试。定义一个MUL类的对象a,通过a调用成员函数求出并输出乘法口诀表。

9.字符串分类。

输入一个字符串,串内有数字和非数字字符。

例如:

ABC2345

345rrf678

jfkld945

将其中连续的数字作为一个整数,依次存放到另一个整型数组b中。如对于上面的输入,将2345存放到b[0]、345放入b[1]………

统计出字符串中的整数个数,并输出这些整数。要求:

(1)在主函数中完成输入和输出工作。

(2)设计一个函数,把指向字符串的指针和指向整数的指针作为函数的参数,并完成从字符串中依次提取出整数的工作。

10.数组元素排序

将含有12个元素的数组作如下处理:先将所有数据按其在数组中的次序分成4等分,然后以每一组数据为单位按其平均值从小到大排序。例如,原数组为:{5,6,7,1,2,3,7,8,9,2,3,5 }处理后的数组为:{1,2,3,2,3,5,5,6,7,7,8,9}试定义一个类DATA完成上述功能,具体要求如下:

(1)私有数据成员int a[12], b[12];数组a用以存放原始数据,数组b用以存放处理后的数据。

(2)公有成员函数DATA(int x[], int n);构造函数。用参数x初始化a,将b的所有元素初始化为0,n为数组x的元素个数。

void convert(int x[4][3]);将a中的数据进行分组,并转换为二维数组x,其中每一组依次为数组x的一行。

void sort();按每组的平均值实现分段排序,并将排序后的数据存放到数据成员b中。

算法要求:利用函数convert()将a转换为二维数组,再求二维数组每一行的平均值,然后根据该平均值从小到大对该二维数组进行行排序,并将结果按题意转换为一维数组存放到b中。

void print();输出a和b的所有元素。

(3)在主函数中利用给定的数组生成类DATA的对象test,并对该类进行测试。假设给定数组为{5, 6, 7, 1, 2, 3, 7, 8, 9, 2, 3, 5}。输入/输出示例:

处理前的数组:5 6 7 1 2 3 7 8 9 2 3 5

处理后的数组:1 2 3 2 3 5 5 6 7 7 8 9

大综合设计题

设计题目一:学生学籍成绩管理系统

每个学生的信息包括:姓名、学号、性别、和学生的成绩信息 如:英语、数学、程序设计及体育成绩等各门课的成绩,要求程序能自动增加一门或是几门课的成绩,同时可以删除课程。

从键盘输入数据,然后,完成如下处理:

1.对学生姓名或学号进行查询,显示其信息,求出其总成绩、平均成绩、平均基点,并且显不在全班的学成绩排名。2.对所有学生,按班级计算平均。

设计题目二:通讯录管理系统

1.系统概要

该系统的功能是实现通讯录管理。2.基本功能要求

(1)输入姓名、单位、电话号码(2)显示上述内容(3)按姓名查找后显示(4)删除有关记录(5)增加记录

(6)保存修改后的文件(7)显示修改后的文件

3.各功能模块的程序流程图。(学生完成)4.完整的源程序代码。(学生设计完成)

设计题目三:小型特殊计算器

1.系统概要

本程序的功能是实现一个特殊的计算器,可以实现复数、有理数、矩阵和集合的特殊计算。程序可以实现复数、有理数的加、减、乘、除,可以实现矩阵的加法、减法和乘法运算,也可以实现集合的求交集、并集、子集的运算。注:可任选两种运算。

2.基本功能要求

(1)功能选择可以用菜单来实现 例如:请选择您的计算内容: 1.复数计算 2.有理数计算 3.矩阵计算 4.集合计算 0.退出

用户通过输入不同的数字进入不同的菜单。次级菜单主要显示本程序的功能,主要的功能有加法、减法、乘法和除法以及集合的求交集、求并集、求子集。(2)运行时给出明确的提示信息。

比如,输入一个什么类型的数据。根据用户的输入计算输出结果。由于数据类型比较多,可以一次输入第一个复数的实部,第一个复数的虚部,再输入第二个复数的实部、虚部。矩阵运算需要先输入矩阵的行数和列数,然后依次输出矩阵的第一行第一列的元素、第一行第二列的元素等等,依次类推。有理数运算需要一次输入有理数的分子、分母。集合运算需要输入集合的元素个数,然后依次输入集合中的每一个元素。

3.各功能模块的程序流程图。(学生完成)4.完整的源程序代码。(学生设计完成)

设计题目四:选修课小系统

1.系统概要

通过这一款选修课小系统,学生可以登入学生端进行选课及其他的操作,管理者通过登入管理端可以进行对选修课系统的数据的管理和维护。在学生端主要设置了3个基本功能:学生选课、学生情况、选课情况等;在管理端主要设置了9个基本功能:增加/删除学生、增加/删除课程、更改学分、填写成绩、学生情况、选课情况、保存数据等。这些功能基本上能满足选课的基本要求。此程序可以初步体现课程设计的目标。2.基本功能要求

用VC++编写一个界面美观流畅学生选课系统。学生有名字,学生最多可学五门课程,学生实际学的门数,可以给定学生的名字,可以得到学生的名字,可以得到学生给定课程的成绩,可以得到学生所学课程的平均成绩,可以给学生增加一门课(同时在该课程中增加一个学生)。课程最多有30个学生,课程有实际学生

数,课程有实际学生名单,课程有学分数,课程有每个学生成绩,课程可以得到学分数,课程可以设置学分数,课程可以得到班平均成绩,课程可以得到某个学生成绩。

3.各功能模块的程序流程图。(学生完成)4.完整的源程序代码。(学生设计完成)

设计题目五:学生成绩管理系统

系统上采用VC++为开发环境,这个编译器功能完善,使用方便。课程设计《学生成绩管理系统》,它的主要功能是对学生的成绩进行修改和管理。

系统功能要求:(1)界面

************************************ 学生成绩管理系统

************************************ ************************************ ** 1--输入数据 ** ** 2-查询成绩 ** ** 3--修改成绩 ** ** 4--输出所有学生成绩 ** ** 5--统计及格和优秀人数 ** ** 6--退出系统 ** *************************************(2)功能

程序的主要功能是输入学生姓名、成绩,学号自动生成,并可以对学生的成绩按学号和姓名进行查询。该系统具有存贮学生数据,按学号、姓名查询,按需要修改学生成绩,列出学生成绩和统计功能。

2.VC++课程设计 班级信息输入与显示 篇二

一.课程基本信息

开课单位:经济管理学院信息管理系

课程编号:

英文名称: Programming Language VC++ Course Design

学时:总计32学时,其中理论授课0学时,实验(含上机)32学时

学分:2.0学分

面向对象:信息管理与信息系统、信息管理与信息系统(电子商务方向)本科专业

教材:

《Visual C++程序设计》,潘克勤,华为主编,中国铁道出版社,2008年 1月 第1 版

《Visual C++程序设计解析与实训》,张晓如,王芳主编,中国铁道出版社,2008年 3月 第1 版

主要教学参考书目或资料:

1.Visual C++开发技术大全——软件工程师典藏.明日科技 编著.北京:人民邮电出版社,2007年3月

2.C++大学教程.(美)戴特尔(Deitel,H.M.)等著,张引 等译.北京:电子工业出版社,2007年2月

3.全国计算机等级考试上机考试习题集.全国计算机等级考试命题研究组 编.天津:南开大学出版社,2007年11月

二.教学目的和任务

课程设计是课程教学中的一项重要内容,是完成教学计划达到教学目标的重要环节,是一门专业基础课或专业课教学计划中综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践能力、为毕业设计及毕业后从事专业技术工作打下基础,提高学生全面素质具有重要的意义。因此,《程序设计语言VC++课程设计》的目的就是要通过一个学生成绩管理系统的实际开发,提高学生应用所学知识分析问题,解决问题和实际动手的能力,更加熟练地掌握C++程序开发的基本方法和工作步骤,对系统开发实践有进一步体会。从而综合复习课程中的所有理论知识点,进一步熟练面向对象程序的开发方法和流程,提高学生独立分析问题和解决问题的能力。真正理解书本知识,牢固掌握课堂教学内容。

三.教学目标与要求

学生按照课程设计任务书要求,通过两周的时间,设计出一个学生成绩管理系统,能实现对某班级学生成绩的管理及奖学金、三好生的评定工作。要求具备查询和检索等功能,并且能够对指定文件进行操作,也可以将多个文件组成一个文件。从而进一步掌握算法的描述、了解初步的数据结构,熟悉C++语言的语句格式、功能及其应用。

四.教学内容、学时分配及其基本要求

实验项目 学生课程成绩管理系统 设计内容:

设计一程序,实现对某班级学生成绩的管理及奖学金、三好生的评定工作。要求具备查询和检索等功能,并且能够对指定文件进行操作,也可以将多个文件组成一个文件。

设计要求:

⒈应严格按照开发小型项目的基本流程进行设计。⒉成绩管理程序至少应具有以下功能:

⑴输入:学生的基本信息,包括学号、姓名、性别、籍贯、VC++成绩、英语成绩、物理成绩等; ⑵计算:每个学生的总成绩、平均成绩,所有学生单科的平均成绩,找出总成绩和单科成绩最高的学生并输出;

⑶查询:可以按学号、姓名等进行成绩查询;

⑷排序:可以按学号、姓名、VC++成绩、英语成绩、物理成绩、总成绩、平均成绩等进行排序并输出;

⑸删除:删除某条记录;

⑹按学分积点计算办法计算出每个学生的学分积点,并按从高到低的顺序排列输出。

⑺按奖学金评定办法,从特等奖开始,输出获得奖学金的学生名单及该生的学习成绩与学分积点。⑻按三好生评定办法,输出获得三好生的学生名单。⑼定义类,用类和对象的知识进行系统设计和实现。

本实验由单人一组完成,根据课程设计任务书的要求,在教师的指导下,进行资料的查阅,规范地进行系统分析与系统设计工作。本实验是以学生自主设计为主的开放模式组织教学。

六.考核方式及考核方法

⒈考核方式为考查。

在课程设计的最后一次上机时间进行检查和成绩评定。⒉考核方法

通过设计答辩方式,并结合学生的动手能力、独立分析解决问题的能力和创新精神,课程设计报告和答辩水平以及学习态度综合考评。

成绩分为五个等级:

优:能独立完成设计要求所规定的全部内容,设计方案正确、基本概念清楚,有独到的见解或创造性。

良:能较好完成设计要求所规定的全部内容,设计方案正确,分析问题正确、基本概念清楚。

中:能完成设计要求规定的全部内容,设计方案基本正确,基本概念清楚。及格:基本完成设计要求规定的内容,设计方案基本合理,基本概念较清楚。

不及格:未完成设计要求规定的内容,设计方案不合理,或有较严重缺陷,基本概念不清楚。考核标准包括:

程序设计的可用性、实用性、通用性、可扩充性(30%); 学生的动手能力、创新精神(30%); 课程设计报告(20%); 答辩水平(20%)。

3.必应输入法状态栏隐藏了怎么显示 篇三

就可以看到必应输入法的状态栏啦: 如果您使用的是Win8系统,请先调出系统的语言栏,方法是:打开控制面板 → 时钟、语言和区域 → 语言 → 高级设置 → 勾选使用桌面语言栏: 后面的步骤就和WinXP/Win7上一样了,在必应输入法的图标上右击,选择弹出菜单中的“任务栏中的其他图标”,

必应输入法状态栏隐藏了怎么显示

4.VC++课程设计 班级信息输入与显示 篇四

会议纪要

9月20日下午4:00在计算机学院计算机基础教学部办公室举行了《VC++与面向对象技术》重点课程教学研讨会。计算机基础教学部甘玲、李盘林、李兴春、蒋贵全、张璞、汪建、刘达明,计算机软件教学部王晓蓉、刘群,计算机实验中心吴思远、邹洋等老师参加了会议。会议由项目组负责人甘玲主持。

会议议程:

1.该课程在本学期教学中发现的问题及措施;该课程的内容及学时分布; 2.该课程的考试方式及成绩计算; 3.该课程实验要求及集中上机的问题; 4.该课程网站建设情况;

5.该课程第一阶段工作情况及下一阶段工作安排; 6.该课程在教学计划中的课程整合及修改意见。

会议就以上问题展开了讨论,与会者都发表了自己的见解。

1.本学期教学中,老师们普遍感到学生基础太差,前面学习的C语言知识基本都忘了,感觉学时不够。如果按照《Visual C++》课程的要求是不可能完成的。这也符合我们修改教学计划(将2004级《Visual C++与面向对象技术》改为两门课限选课《面向对象程序设计-C++》和任选课《Visual C++》)、修改教学大纲(2003级仍按《Visual C++与面向对象技术》的执行,但修改了教学大纲)、制订相应授课计划,大家统一了认识,明确了目标,重点在C++面向对象技术。

2.由于学时的问题,及上述意见,确定了考试方式用笔试和上机考试结合的方式,笔试占70%,机试占20%,平时(作业及出勤)占10%。机试采用随堂测试,由实验老师完成。

3.集中上机安排有些欠妥,课程还未完成,即在开学第四周进行。鉴于客观原因,只在Visual C++平台下,复习巩固C++面向过程部分的编程能力的训练,同时,提前做一些C++面向对象部分的编程能力训练,为课程的高效进行提供良好的基础,望实验老师注意!

4.现在网站正在紧张地进行,由李兴春和李盘林两位老师负责,9月份内完成,本周看初样。希望各位老师配合,提供资料(如源代码)。由汪建老师为课件加工处理形成网络课件,同时负责录像资料上网。

5.经过一年的建设,该课程取得了一些成绩,如师资队伍、教材建设、网站建设、教学大纲(统一了理论与实践)等教学资料共享等,但在教学研究、论文撰写等方面还需努力!刘达明老师负责资料的收集整理。

6.与该课程密切相关的C语言程序设计课程应该调整到第二学期上,而且在程序设计能力方面尚待加强。后续课程《Visual C++》与《Windows程序设计》也应修改教学大纲,明确教学目标,形成一条有序的程序设计链,完成学校赋予我们的使命,完成学生寄予我们的厚望!

5.运载火箭瞄准信息显示系统设计 篇五

运载火箭瞄准信息显示系统设计

瞄准系统中的转换器、瞄准控制器及传输电缆部分是最容易受干扰的环节,也是瞄准系统可靠性的控制点.通过在光电经纬仪目镜后部加装电荷耦合装置(charge coupled device, CCD)成像装置,并将成像装置采集的主、副光电经纬仪的图像,采集到计算机进行处理,从而以更直观的方式显示出来,完成运载火箭瞄准信息显示系统的.设计,解决运载火箭瞄准系统工作状态远程监测、显示的问题,从而提高瞄准系统的可靠性.

作 者:郭保新 唐建 GUO Baoxin TANG Jian 作者单位:装备指挥技术学院,航天装备系,北京,101416;中国酒泉卫星发射中心,甘肃,酒泉,732750刊 名:装备指挥技术学院学报 ISTIC英文刊名:JOURNAL OF THE ACADEMY OF EQUIPMENT COMMAND & TECHNOLOGY年,卷(期):200718(2)分类号:V5530关键词:瞄准 运载火箭 信息 显示 设计

6.单片机数码管显示课程设计 篇六

目录引言...............设计任务和要求.............1

2.1 设计目的............1

2.2 设计意义............1总原理图及主要模块的流程图......1

3.1 总原理图及元器件清单..............1

3.2 主要流程图..........1性能测试与分析.............35 结论与心得..........4致谢...........4

参考文献.............4

单片机数码管显示课程设计引言

从上世纪70年代第一批单片机问世,短短二三十年时间,单片机技术已经成为计算机技术的一个重要分支,广泛运用到工业控制、仪器、仪表、消费产品,汽车、办公自动化和通信等领域。因此,单片机技术已经成为电子、测控、自动化、通信等许多工科专业学生的必备技能。

我用AT89C51芯片来设计一个简单的数码管显示。此设计给出了源代码,通过仿真测试,其性能指标达到了设计要求。

关键词:单片机,AT89C51,数码管设计任务和要求

2.1 设计目的1.学习基本理论在实践中综合运用的初步经验,掌握模拟电路设计的基本方法、设计步骤,培养综合设计与调试能力。

2.了解AT89C51这个芯片的使用和性能指标测试方法。

3.培养实践技能,提高分析和解决实际问题的能力。

2.2 设计意义

为了更好地熟悉和掌握单片机的基本功能和编程,掌握数码管动态扫描显示原理及实现方法。自我动态扫描显示电路驱动程序的编写方法。通过课程设计,达到理论与实际应用相结合,提高学生对微机硬件结构的软件设计方法的理解,使学生能够根据实际应用,初步实现硬件及软件的设计,对硬件开发有更深层的认识,为今后打软硬件开发,打下坚实的基础。总原理图及及主要模块的流程图

3.1 总原理图及元器件清单

(1)我用Proteus 7 professional来画出我设计的总原理图,如图3-1。

如图3-1

此电路图就用到AT89C51这个芯片,和一个数码管。

3.2 主要流程图(四号宋体加粗)

1.主程序的流程图

图3.2-1主流程图

2.子程序的流程图

图3.2-2子流程图性能测试与分析

主程序和子程序都存放在AT89C51单片机中。主程序的功能是:显示数字。子程序的功能有:延时。程序代码:

ORG 0000H;初始化

LJMP START;转入主程序

ORG 0010H;初始化

START:

CLR P2.7;P2.7←00H

MOVR0,#00H;R0←00H

MOV R2,#10;R2←10

MAIN:

MOV DPTR,#TAB;DPTR←TAB

MOV A,R0;A←(RO)

MOVC A,@A+DPTR;A←((A)+(DPTR))

MOV P0,A;P0←(A)

LCALL DELAY;调用延时程序

INC R0;RO←(R0)+1

DJNZR2,MAIN;判断

JMP START;循环

DELAY:;延时程序

MOV R3,#11

D1: MOV R4,#100

D2: MOV R5,#100

DJNZ R5,$

DJNZ R4,D2

DJNZ R3,D1

RET

TAB:

DB 00101000B;0

DB 11101011B;1

DB 00110010B;2

DB 10100010B;3

DB 11100001B;4

DB 10100100B;5

DB 00100100B;6

DB 11101010B;7

DB 00100000B;8

DB 10100000B;9

END

我用Proteus 7 professional 软件来测试我设计的电路图。当运行时,数码管显示0。如图4-1。

图4-1

当221ms后,数码管显示1。如图

4-2.图4-2

我的程序是一个循环的,一直到显示9,之后又重新开始显示0。在此不一一列出来。

为了能在实际在到应用,我用开发板来验证我所设计的电路图。其结果如下:

图4-3显示1

图4-4显示8

从仿真的结果可以看出,我的设计是满足我设计的要求的。结论与心得

通过单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新,是要我们学会将理论很好地联系实际,并不断地去开动自己的大脑,从为人类造福的意愿出发,做自己力所能及的,别人却没想到的事。使之不断地战胜别人,超越前人。同时,更重要的是,我在这一设计过程中,学会了坚持不懈,不轻易言弃。设计过程,也好比是我们人类成长的历程,常有一些不如意,也许这就是在对我们提出了挑战,勇敢过,也战胜了,胜利的钟声也就一定会为我们而敲响。

这个设计过程中,我遇到过许多次失败的考验,就比如,我在软件上仿真软件上能实现其功能,但是把它写进开发板就无法运行,我不停地找原因。最后我找到了答案,这样我明白,做设计不但是软件可以运行,用在硬件上一样是那么重要的。我做的这个设计主要是用AT89C51这个芯片来实现,这个芯片具有很多优点,程序简单易读,结构清楚,最重要的是成本低。很适合我们学生用来学生。在做这个设计的过程中,我也了解到了自己的不足,在日后的学习中,我还需加倍努力学习。

参考文献)

[1]梁炳东.单片机原理与应用。北京:人民邮电出版社,2009

[2]

[3]http://wenku.baidu.com/album/view/702db2c7aa00b52acfc7cae7

致谢(小三号 宋体 加粗)

上一篇:有个爱你的人不容易下一篇:幼儿园中班语言教案《大伞和小伞》及教学反思