文档视界 最新最全的文档下载
当前位置:文档视界 › 《通讯录》课程设计报告

《通讯录》课程设计报告

《通讯录》课程设计报告
《通讯录》课程设计报告

《通讯录》课程设计报

一、案例描述

1.、通讯录功能

需要有完整的功能,创建,显示,查询,修改,删除,添加,读取通讯录。

二、界面设计

菜单:

0--创建通讯录

1--显示通讯录

2--查询通讯录

3--修改通讯录

4--删除通讯录

5--添加通讯录

6--保存通讯录

7--读取通讯录

8--结束程序

本软件界面友好,不难操作,单击一格后会提示搜索使用时间,此时按任意键继续。

并且显示记录条数,以及用户需要储存的信息条数的变化,只有用户输入即可。

三、模块化设计方案

1、系统主要函数及功能

1)#include /*I/O函数*/

#include /*标准库函数*/

#include /*字符串函数*/

#include /*字符操作函数*/

#define M 50 /*定义常数表示记录数*/

2)menu_select()函数:菜单函数,函数返回值为整数,代表所选的菜单项。

3)Enter函数:输入记录,形参为结构体数组,函数值返回类型为整型表示记录长度。Int enter(addr t[])

4)Find函数:查找函数,参数为记录数组和记录条数以及姓名s

int find(addr t[],int n,char *s)

5)Delete函数:删除函数,参数为记录数组和记录条数

int delete(addr t[],int n)

6)Add函数:插入记录函数,参数为结构体数组和记录数

int add(addr t[],int n)

7)save函数:保存函数,参数为结构体数组和记录数

void save(addr t[],int n)

8)load函数:读入函数,参数为结构体数组

int load(addr t[])

9)modify函数:修改通讯录

void modify(addr t[],int n)

2、主函数调用各功能函数流程图

四、数据结构描述

void list(addr t[],int n)

{

int i;

printf("\n\n*******************ADDRESS******************\n");

printf("name qq telephone\n");

printf("------------------------------------------------\n");

for(i=0;i

printf("%-20s%-20s%-25s\n",t[i].name,t[i].qq,t[i].tele);

if((i+1)%10==0) /*判断输出是否达到10条记录*/

{printf("请按任意键继续...\n");

getchar(); }

printf("************************END*******************\n");}

/*显示指定的一条记录*/

void print(addr temp)

{

printf("\n\n********************************************\n");

printf("name qq telephone\n"); printf("------------------------------------------------\n");

printf("%-20s %-20s %-25s\n",https://www.docsj.com/doc/ca2467087.html,,temp.qq,temp.tele);

printf("**********************END***********************\n");}

/*查找记录*/

void search(addr t[],int n)

{char s[20]; /*保存待查找姓名字符串*/

int i; /*保存查找到结点的序号*/

printf("请输入待查找人姓名: ");

scanf("%s",s);

i=find(t,n,s); /*调用find函数,得到一个整数*/

if(i>n-1) /*如果整数i值大于n-1,说明没找到*/

printf("不能找到! \n");

else

print(t[i]); /*找到,调用显示函数显示记录*/}

五、算法设计

1、搜索算法(流程图)

2、速度控制算法(流程图)

3、表达式计算器

六、程序运行结果

(第一次使用)

(创建通讯录)

(显示通讯录)(查找通讯录)

(修改通讯录)(删除通讯录)(读取通讯录)(添加通讯录)(保存通讯录)

七、总结

1、工作时间

主菜单的实现–半小时

创建通讯录– 1小时

显示通讯录—1小时

查询通讯录—2小时

修改通讯录—2小时

删除通讯录—2小时

添加通讯录—2小时

保存通讯录—半小时

读取通讯录—半小时

结束程序—20分钟

通讯录记录条数—2小时

是否继续程序—半小时

2、分工情况

每位成员都先了代码,把相对好的版块选取,然后由组长拼接,把报告做出来。

3、心得体会

通过这次的课程学习,学会了合作与交流中的一些大道理,当然专业知识比如调用函数。这样的学习还是挺好的。

六、总程序

#include /*I/O函数*/

#include /*标准库函数*/

#include /*字符串函数*/

#include /*字符操作函数*/

#define M 1000 /*定义常数表示通讯录条数*/

typedef struct/*定义数据结构*/

{

char name[20]; /*姓名*/

char qq[15]; /*QQ号码*/

char tele[15]; /*电话号码*/

char email[30]; /*电子邮件*/

char home[30]; /*家庭住址*/

}addr;

int length;/*保存通讯录长度*/

/*菜单函数,函数返回值为整数,代表所选的菜单项*/

int menu()

{

int c;

system("cls"); /*清屏*/

printf("\n");

printf(" 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8\n");

printf(" 8 8\n");

printf(" 8 请输入您的选项编号(0-8): 8\n");

printf(" 8 8\n");

printf(" 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8\n");

printf(" 8 8\n");

printf(" 8 0--创建新通讯录8\n");

printf(" 8 1--显示通讯录8\n");

printf(" 8 2--查找通讯录8\n");

printf(" 8 3--修改通讯录8\n");

printf(" 8 4--删除通讯录8\n");

printf(" 8 5--添加通讯录8\n");

printf(" 8 6--保存通讯录8\n");

printf(" 8 7--读取通讯录8\n");

printf(" 8 8--结束程序8\n");

printf(" 8 8\n");

printf(" 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8\n");

printf("\n\t\t\t\t共有%d条通讯信息,您还可以输入%d条通讯录\n",length,1000-length);

do{

printf("\n 请选择菜单项(0-8):"); /*提示输入选项*/

scanf("%d",&c); /*输入选择项*/

}while(c<0||c>8); /*选择项不在0~8之间的显示重新输*/

return c; /*返回主程序,根据选择的数值调用相应的函数*/

}

/*建立一个新的通讯录,形参为结构体数组,函数值返回类型为整型表示通讯录的条数*/ int input(addr t[])

{

void save();/*调用下面的函数说明*/

int i,n;

length=0;

printf("\n\t\t------您将建立新的通讯录------");

printf("\n\n请输入您要输入的通讯录条数(0-1000):");

scanf("%d",&n); /*输入您要输入的通讯录条数*/

if(n<=0||n>1000)

{

printf("\n\t您输入的条数错误,请重新选择输入正确的!\n");

n=0;

}

else

{

for(i=0;i

{

printf("\n请输入详情");

printf("\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");

printf("\n姓名:" );

scanf("%s",t[i].name);

printf("\nQQ:");

scanf("%s",t[i].qq);

printf("\n联系电话:");

scanf("%s",t[i].tele);

printf("\nE-mail:");

scanf("%s",t[i].email);

printf("\n家庭地址:");

scanf("%s",t[i].home);

printf("\n\t\t您已经成功输入%d条了\n",i+1);

length++;

printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n\n");

if((i+1)%5==0)

save(t,length);

}

}

return i; /*返回通讯录条数*/

}

/*显示通讯录,参数为通讯录数组和通讯录条数*/

void show(addr t[],int n)

{

int i;

printf("\n\n\t————————————通——讯——录———————————\n");

printf("\t name qq tele email home\n");

printf("\t____________________________________________________________\n\n");

for(i=0;i

printf("\t%2d、%-12s%-12s%-12s%-12s%-12s\n",i+1,t[i].name,t[i].qq,t[i].tele,t[i].email,t[i].ho me);

printf("\n\t——————————————E-N-D——————————————\n"); }

/*显示指定的一条记录*/

void print(addr m)

{

printf("\n\n\t\n");

printf("\t name qq tele email home\n");

printf("\t______________________________________________________________\n\n");

printf("\t %-12s%-12s%-12s%-12s%-12s\n",https://www.docsj.com/doc/ca2467087.html,,m.qq,m.tele,m.email,m.home);

printf("\n\t——————————————E-N-D——————————————\n"); }

/*查找通讯录*/

void search(addr t[],int n)

{

char s[20];

int i;

printf("\n请输入要查找人的姓名:");

scanf("%s",s);

i=find(t,n,s); /*调用find函数,得到一个整数*/

if(i>n-1) /*如果整数i值大于n-1,说明没有找到*/

printf("找不到您要的通讯录信息!\n");

else

print(t[i]); /*找到该通讯录,调用显示函数显示通讯录*/

}

/*查找函数,参数为通讯录数组和通讯录条数以及姓名s */

int find(addr t[],int n,char *s)

{

int i;

for(i=0;i

{

if(strcmp(s,t[i].name)==0) /*通讯录中的姓名和待比较的姓名是否相等*/ return i; /*相等,则返回该记录的下标号,程序结束*/ }

return i; /*返回i值*/

}

/*删除函数,参数为通讯录数组和通讯录条数*/

int delete(addr t[],int n)

{

char s[20]; /*要删除记录的姓名*/

int ch=0;

int i,j;

printf("请输入待删除人姓名:");

scanf("%s",s);

i=find(t,n,s); /*调用find函数*/

if(i>n-1) /*如果i>n-1超过了数组的长度*/

printf("\n没找到要删除的记录!");

else

{

print(t[i]); /*调用输出函数显示该条通讯录信息*/

printf("\n确认是否要删除?(是:1/否:0):");

scanf("%d",&ch); /*输入一个整数0或1*/

if(ch==1) /*如果确认删除整数为1*/

{

for(j=i+1;j

{

strcpy(t[j-1].name,t[j].name); /*将后一条通讯录的姓名复制到前一条*/

strcpy(t[j-1].qq,t[j].qq); /*将后一条通讯录的QQ号码复制到前一条*/

strcpy(t[j-1].tele,t[j].tele); /*将后一条通讯录的电话复制到前一条*/

strcpy(t[j-1].email,t[j].email);/*将后一条通讯录的Email复制到前一条*/

strcpy(t[j-1].home,t[j].home);/*将后一条通讯录的家庭住址复制到前一条*/ }

n--; /*通讯录总条数减1*/

}

}

return n; /*返回通讯录条数*/

}

/*添加通讯录函数,参数为结构体数组和通讯录条数*/

int add(addr t[],int n)

{

addr temp; /*新输入通讯录信息*/

int i,j;

char s[20]; /*确定输入在哪个记录之前*/

printf("\n\t请输入详情");

printf("\n\n\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");

printf("\n\t姓名:" );

scanf("%s",https://www.docsj.com/doc/ca2467087.html,);

printf("\n\tQQ:");

scanf("%s",temp.qq);

printf("\n\t联系电话:");

scanf("%s",temp.tele);

printf("\n\tE-mail:");

scanf("%s",temp.email);

printf("\n\t家庭地址:");

scanf("%s",temp.home);

printf("\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n\n");

printf("\n\t\t请输入您要插入位置的姓名:");

scanf("%s",s);

i=find(t,n,s); /*调用find,确定贴加位置*/

for(j=n-1;j>=i;j--) /*从最后一个记录开始向后移动一条*/

{

strcpy(t[j+1].name,t[j].name); /*将当前通讯录的姓名复制到后一条*/

strcpy(t[j+1].qq,t[j].qq); /*将当前通讯录的QQ号码复制到后一条*/

strcpy(t[j+1].tele,t[j].tele); /*将当前通讯录的电话号码复制到后一条*/

strcpy(t[j+1].email,t[j].email);/*将当前通讯录的Eamil复制到后一条*/

strcpy(t[j+1].home,t[j].home);/*将当前通讯录的家庭地址复制到后一条*/ }

strcpy(t[i].name,https://www.docsj.com/doc/ca2467087.html,); /*将新输入通讯录的姓名复制到第i个位置*/

strcpy(t[i].qq,temp.qq); /*将新输入通讯录的QQ号码复制到第i个位置*/

strcpy(t[i].tele,temp.tele); /*将新输入通讯录的电话复制到第i个位置*/

strcpy(t[i].email,temp.email);/*将新输入通讯录的Email复制到第i个位置*/

strcpy(t[i].home,temp.home);/*将新输入通讯录的家庭地址复制到第i个位置*/

n++; /*通讯录条数加1*/

return n; /*返回通讯录条数*/

}

/*修改通讯录,参数为结构体数组和通讯录条数*/

void modify(addr t[],int n)

{

char s[20];

addr temp;

int i;

int ch=0;

printf("\t请输入您要修改的通讯录姓名:");

scanf("%s",s);

i=find(t,n,s); /*调用find函数,得到一个整数*/

if(i>n-1) /*如果整数i值大于n-1,说明没有找到*/

printf("不能找到该通讯录信息!\n");

else

{

printf("\n\t请修改通讯录");

printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");

printf("\n姓名:" );

scanf("%s",https://www.docsj.com/doc/ca2467087.html,);

printf("\nQQ:");

scanf("%s",temp.qq);

printf("\n联系电话:");

scanf("%s",temp.tele);

printf("\nE-mail:");

scanf("%s",temp.email);

printf("\n家庭地址:");

scanf("%s",temp.home);

printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n\n");

printf("\n确认是否要修改?(是:1/否:0):");

scanf("%d",&ch); /*输入一个整数0或1*/

if(ch==1)

{

strcpy(t[i].name,https://www.docsj.com/doc/ca2467087.html,);

strcpy(t[i].qq,temp.qq);

strcpy(t[i].tele,temp.tele);

strcpy(t[i].email,temp.email);

strcpy(t[i].home,temp.home);

}

}

}

/*保存函数,参数为结构体数组和通讯录条数*/

void save(addr t[],int n)

{

int i;

FILE *fp; /*指向文件的指针*/

if((fp=fopen("cfree.txt","wb"))==NULL) /*打开文件,并判断是否可以打开*/

{

printf("\t打开通讯录失败!\n");

exit(1); /*退出*/

}

fprintf(fp,"%d",n); /*将通讯录条数写入文件*/

fprintf(fp,"\r\n"); /*将换行符号写入文件*/

for(i=0;i

{

fprintf(fp,"%-12s%-12s%-12s%-12s%-12s",t[i].name,t[i].qq,t[i].tele,t[i].email,t[i].home);

fprintf(fp,"\r\n"); /*将换行符号写入文件*/

}

fclose(fp);/*关闭文件*/

printf("\t\t\t=-=-=-=-=-=保存通讯录成功!\n");

}

/*读取函数,参数为结构体数组*/

int read(addr t[])

{

int i,n;

FILE *fp; /*指向文件的指针*/

if((fp=fopen("cfree.txt","rb"))==NULL)/*打开文件*/

{

printf("\n\n\n\t尊敬的用户,这是您第一次使用该程序,请按任意键开始记载通讯录...\n ");

getch();

return 0; /*退出*/

}

fscanf(fp,"%d",&n); /*读入通讯录条数*/

for(i=0;i

fscanf(fp,"%12s%12s%12s%12s%12s",t[i].name,t[i].qq,t[i].tele,t[i].email,t[i].home);

fclose(fp); /*关闭文件*/

printf("\t\t=-=-=-=-=-=读取通讯录成功!\n");

return n; /*返回记录数*/

}

/*主函数*/

main()

{

addr t[M]; /*定义结构体数组*/

system("color 7c");

for(;;)/*无限循环*/

{

length=read(t);

switch(menu()) /*调用主菜单函数,返回值整数作开关语句的条件*/

{

case 0:length=input (t);break;/*输入通讯录*/

case 1:show(t,length);break; /*显示全部通讯录*/

case 2:search(t,length);break; /*查找某个通讯录*/

case 3:modify(t,length);break;/*修改某个通讯录*/

case 4:length=delete(t,length);break; /*删除某个通讯录*/

case 5:length=add(t,length); break; /*添加一个通讯录*/

case 6:save(t,length);break; /*保存通讯录*/

case 7:length=read(t); break; /*读取通讯录*/

case 8:exit(0); /*如返回值为8,则程序结束*/

}

printf("\n\t\t\t 共有%d条通讯信息,您还可以输入%d条通讯录\n",length,1000-length);

printf("\n\n\t\t\t\t\t=-=-=-=-=-=-=-=请您按回车键返回主菜单\n");

fflush(stdin);/*以保证调试输出可以在正确的时间输出*/

printf("\n\n");

getch();

save(t,length);

}

}

图书馆管理系统课程设计报告.doc

图书馆管理系统设计报告 一、实习题目:图书馆管理系统 二、实习工具:前台开发工具选择Visual Basic 6.0;后台数据库选择Access;中间层采用ADO数据访问技术,将对数据库的操作以类的形式封装。 三、实习目的:通过建立一个图书馆管理系统来管理图书。掌握Visual Basic 的语言特点和编程技巧,熟悉控件的属性、事件和方法。掌握用ADO控件访问数据库的技术,实现在数据库中的添加、查询和删除等操作。 四、实习内容: 1)需求分析:在进行一个项目的设计之前,先要进行必要的需求分析。图书馆信息系统要求完成如下基本功能: ?可以实现图书的类别管理和图书的信息管理。对图书的各种信息的查询,包括逐个浏览,以及对图书信息的增加、删除和修改操作。另外,可以根据输入的信息来检索某个图书的信息。 ?可以实现读者的类别管理和读者的信息管理。对读者的各种信息的查询,包括逐个浏览,以及对读者信息的增加、删除和修改操作。另外,可以根据输入的信息来检索某个读者的信息。 ?可以实现图书借阅管理。包括借书信息、还书信息以及相关信息的查询。 ?可以实现对系统管理。 2)结构设计:根据上面的需求分析,开发设计不同的窗体系统,每一个窗体实现不同的功能,可以设计下面的几个模块。 ?图书管理模块:用来实现图书类别和信息管理。 ?读者管理模块:用来实现读者类别和信息管理。 ?图书借阅管理模块:用来实现借书和还书管理。 ?系统管理模块:用来实现用户的增加和修改等操作。 系统功能模块图如下: 3)

这里的数据库采用Access,用ADO作为连接数据对象。 设计数据库系统时应该首先充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。数据库设计一般包括如下几个步骤: ?数据库需要分析。 ?数据库概念结构设计。 ?数据库逻辑结构设计。 数据库需求分析 用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入,收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为后而后具体设计打下基础。 数据库逻辑结构设计 逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图,转换为与选用的具体机器上的DBMS产品所支持的数据模型相符合的逻辑结构。 E-R图向关系模型转换的结果如下所示: 读者类别表(种类编号、读者种类、借书数量、借书期限、有效期限)。 读者信息表(读者编号、读者姓名、读者种类)。 图书类别表(类别编号、类别名称)。 图书信息表(图书编号、图书名称、图书类别、作者姓名、出版社名称、出版日期、价格、登记日期)。 借书信息表(图书编号、图书名称、图书作者、图书类别、出版社)。 4)实现代码:(类似代码略) 主窗体代码:在本项目中,子菜单事件都是Click事件,这里先给出主窗体部分的代码。 下面是响应“添加图书类别”子菜单Click事件,调出添加图书类别窗体代码。 Private Sub tjts_Click() 添加图书类别.Show End Sub 下面是响应“添加读者信息”子菜单Click事件,调出添加读者信息窗体代码。 Private Sub tjdx_Click()

数据结构课程设计报告模板

《数据结构I》三级项目报告 大连东软信息学院 电子工程系 ××××年××月

三级项目报告注意事项 1. 按照项目要求书写项目报告,条理清晰,数据准确; 2. 项目报告严禁抄袭,如发现抄袭的情况,则抄袭者与被抄袭者均 以0分计; 3. 课程结束后报告上交教师,并进行考核与存档。 三级项目报告格式规范 1. 正文:宋体,小四号,首行缩进2字符,1.5倍行距,段前段后 各0行; 2. 图表:居中,图名用五号字,中文用宋体,英文用“Times New Roman”,位于图表下方,须全文统一。

目录 一项目设计方案 (3) 二项目设计分析 (4) 三项目设计成果 (4) 四项目创新创业 (5) 五项目展望 (6) 附录一:项目成员 (6) 附录二:相关代码、电路图等 (6)

一项目设计方案 1、项目名称: 垃圾回收 2、项目要求及系统基本功能: 1)利用数据结构的知识独立完成一个应用系统设计 2)程序正常运行,能够实现基本的数据增加、删除、修改、查询等功能3)体现程序实现算法复杂度优化 4)体现程序的健壮性 二项目设计分析 1、系统预期实现基本功能: (结合本系统预期具体实现,描述出对应基本要求(增、删、改、查等)的具体功能) 1. 2. 3. 4. 5. 6. 7. 2、项目模块功能描述 (基本分为组织实施组织、程序功能模块编写、系统说明撰写等。其中程序功能子模块实现) 模块一: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 模块二: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 模块n: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

课程设计报告模板)

课程设计报告模板()

————————————————————————————————作者: ————————————————————————————————日期: ?

课程设计(论文)任务书 软件学院软件+电商专业09级(2)班 一、课程设计(论文)题目基本模型机设计与实现 二、课程设计(论文)工作自2011年6月 20 日起至2011年 6月 24日止。 三、课程设计(论文) 地点:计算机组成原理实验室(5#301) 四、课程设计(论文)内容要求: 1.课程设计的目的 通过课程设计的综合训练,在掌握部件单元电路实验的基础上,进一步掌握整机 概念。培养学生实际分析问题、解决问题和动手能力,最终目标是想通过课程设计的形式,帮助学生系统掌握该门课程的主要内容,更好地完成教学任务。 2.课程设计的任务及要求 1)基本要求? (1)课程设计前必须根据课程设计题目认真查阅资料; (2)实验前准备好实验程序及调试时所需的输入数据; (3)实验独立认真完成; (4)对实验结果认真记录,并进行总结和讨论。 2)课程设计论文编写要求 (1)按照书稿的规格撰写打印课设论文 (2)论文包括目录、绪论、正文、小结、参考文献、附录等 (3)正文中要有问题描述、实验原理、设计思路、实验步骤、调试过程与遇到问题的解决方法、总结和讨论等 (4)课设论文装订按学校的统一要求完成 3)课设考核 从以下几方面来考查:

(1)出勤情况和课设态度; (2)设计思路; (3)代码实现; (4)动手调试能力; (5)论文的层次性、条理性、格式的规范性。 4)参考文献 [1]王爱英.计算机组成与结构[M]. 北京:清华大学出版社, 2007. [2] 王爱英. 计算机组成与结构习题详解与实验指导[M]. 北京:清华大学出版社, 2007. 5)课程设计进度安排 内容天数地点 构思及收集资料1图书馆 实验与调试 3 实验室 撰写论文 1 图书馆 6)任务及具体要求 设计实现一个简单的模型机,该模型机包含若干条简单的计算机指令,其中至少包括输入、输出指令,存储器读写指令,寄存器访问指令,运算指令,程序控制指令。学生须根据要求自行设计出这些机器指令对应的微指令代码,并将其存放于控制存储器,并利用机器指令设计一段简单机器指令程序。将实验设备通过串口连接计算机,通过联机软件将机器指令程序和编写的微指令程序存入主存中,并运行此段程序,通过联机软件显示和观察该段程序的运行,验证编写的指令和微指令的执行情况是否符 合设计要求,并对程序运行结果的正、误分析其原因。 学生签名: 亲笔签名 2011年6月20 日 课程设计(论文)评审意见 (1)设计思路:优( )、良()、中( )、一般()、差( ); (2)代码实现:优()、良()、中()、一般()、差();

微机原理课程设计电压报警器实验报告

南通大学电子信息学院 微机原理课程设计 报告书 课题名: 班级: 姓名: 学号: 指导老师: 日期: xxx

目录 1.设计目的 (2) 2.设计内容 (2) 3.设计要求 (2) 4.设计原理 (3) 5.硬件电路图 (3) 6.程序代码 (5) 7.程序及硬件系统调试情况 (19) 8.设计总结与体会 (19)

一、设计目的 课程设计是培养和锻炼学生在学习完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力的重要教学环节。它具有动手、动脑和理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一个重要教学环节。 通过课程设计,要求学生熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,使学生得到微机开发应用方面的初步训练。让学生独立或集体讨论设计题目的总体设计方案、编程、软件硬件调试、编写设计报告等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。通过本次课程设计使学生熟练掌握微机系统与接口扩展电路的设计方法,熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法。 通过课程设计实践,不仅要培养学生事实求是和严肃认真的工作态度,培养学生的实际动手能力,检验学生对本门课学习的情况,更要培养学生在实际的工程设计中查阅资料,撰写设计报告表达设计思想和结果的能力。 二、设计内容 设计一个电压报警器,要求采集实验箱提供的0~5V的电压,当输入电压在3V以内,显示电压值,如2.42。当输入电压超过3V,显示ERR,并报警。电压值可在七段数码管显示,点阵广告屏显示或液晶屏显示。报警形式自行设计,

数据结构图书管理系统课程设计报告

一、设计题目与要求 【问题描述】 设计一个计算机管理系统完成图书管理基本业务。 【基本要求】 (1) 每种书的登记内容包括书号、书名、著作者、现存量和库存量; (2) 对书号建立索引表(线性表)以提高查找效率; (3) 系统主要功能如下: ①采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加; ②借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量; ③归还:注销对借阅者的登记,改变该书的现存量。 二、小组分工 小组成员: 小组分工:图书初始化、新书入库、登记读者信息、文件保存 借书系统、还书系统 图书信息查询、读者信息查询 三、需求分析 图书管理系统共需要八个模块,分别是1图书初始化、2新书入库、3添加读者信息、4借书模块、5还书模块、6查询图书信息、7查询读者信息、8退出。 我负责其中的四个模块,如下所示: 1)图书初始化 输入图书的一些信息,编号、作者、书名、数量,使有一定的库存。 2)新书入库 新书采编入库,输入编号后如果有次数只需输入数量,没有则继续输入书名、作者、数量。 3)添加读者信息 读者信息初始化,输入读书证号和姓名,只有输入书证号和姓名才能进行借书还书 4)退出和文件保存 退出读书管理系统并保存读者和图书信息。

四、概要设计 图书信息和读者信息都采用结构体类型保存。 图书信息里面包括:图书编号、图书名称、作者、现有量、库存量、指向下一节点的指针。 读者信息里面包括:读者编号、读者姓名、借书数量、可借图书数量、指向下一节点的指针。 所有图书和读者都分别以链表的形式存储,并以编号为唯一主键。采用链表形式便于数据的添加与删改。 主要的操作为:系统初始化,图书入库,读者信息登记,图书信息和读者信息文件的保存。 五、详细设计 数据结构的定义: 图书信息: typedef struct book {

数据结构课程设计报告

《数据结构与算法》课程设计报告 学号: 班级序号: 姓名: 指导教师: 成绩: 中国地质大学信息工程学院地理信息系统系 2011年12 月

1.需求规格说明 【问题描述】 利用哈夫曼编码进行对已有文件进行重新编码可以大大提高减小文件大小,减少存储空间。但是,这要求在首先对一个现有文件进行编码行成新的文件,也就是压缩。在文件使用时,再对压缩文件进行解压缩,也就是译码,复原原有文件。试为完成此功能,写一个压缩/解压缩软件。 【基本要求】 一个完整的系统应具有以下功能: (1)压缩准备。读取指定被压缩文件,对文件进行分析,建立哈夫曼树,并给出分析结果(包括数据集大小,每个数据的权值,压缩前后文件的大小),在屏幕上输出。 (2)压缩。利用已建好的哈夫曼树,对文件进行编码,并将哈夫曼编码及文件编码后的数据一起写入文件中,形成压缩文件(*.Haf)。 (3)解压缩。打开已有压缩文件(*.Haf),读取其中的哈夫曼编码,构建哈夫曼树,读取其中的数据,进行译码后,写入文件,完成解压缩。 (4)程序使用命令行方式运行 压缩命令:SZip A Test.Haf 1.doc 解压缩命令:SZip X Test.Haf 2.doc或SZip X Test.Haf 用户输入的命令不正确时,给出提示。 (5)使用面向对象的思想编程,压缩/解压缩、哈夫曼构建功能分别构建类实现。 2.总体分析与设计 (1)设计思想: 1、压缩准备:1> 读文件,逐个读取字符,统计频率 2> 建立哈夫曼树 3> 获得哈弗曼编码 2、压缩过程: 1> 建立一个新文件,将储存权值和字符的对象数组取存储在文件头

课程设计报告【模板】

模拟电子技术课程设计报告设计题目:直流稳压电源设计 专业电子信息科学与技术 班级电信092 学号 200916022230 学生姓名夏惜 指导教师王瑞 设计时间2010-2011学年上学期 教师评分 2010年月日

昆明理工大学津桥学院模拟电子技术课程设计 目录 1.概述 (2) 1.1直流稳压电源设计目的 (2) 1.2课程设计的组成部分 (2) 2.直流稳压电源设计的内容 (4) 2.1变压电路设计 (4) 2.2整流电路设计 (4) 2.3滤波电路设计 (8) 2.4稳压电路设计 (9) 2.5总电路设计 (10) 3.总结 (12) 3.1所遇到的问题,你是怎样解决这些问题的12 3.3体会收获及建议 (12) 3.4参考资料(书、论文、网络资料) (13) 4.教师评语 (13) 5.成绩 (13)

昆明理工大学津桥学院模拟电子技术课程设计 1.概述 电源是各种电子、电器设备工作的动力,是自动化不可或缺的组成部分,直流稳压电源是应用极为广泛的一种电源。直流稳压电源是常用的电子设备,它能保证在电网电压波动或负载发生变化时,输出稳定的电压。一个低纹波、高精度的稳压源在仪器仪表、工业控制及测量领域中有着重要的实际应用价值。 直流稳压电源通常由变压器、整流电路、滤波电路、稳压控制电路所组成,具有体积小,重量轻,性能稳定可等优点,电压从零起连续可调,可串联或关联使用,直流输出纹波小,稳定度高,稳压稳流自动转换、限流式过短路保护和自动恢复功能,是大专院校、工业企业、科研单位及电子维修人员理想的直流稳压电源。适用于电子仪器设备、电器维修、实验室、电解电镀、测试、测量设备、工厂电器设备配套使用。几乎所有的电子设备都需要有稳压的电压供给,才能使其处于良好的工作状态。家用电器中的电视机、音响、电脑尤其是这样。电网电压时高时低,电子设备本身耗供电造成不稳定因家。解决这个不稳定因素的办法是在电子设备的前端进行稳压。 直流稳压电源广泛应用于国防、科研、大专院校、实验室、工矿企业、电解、电镀、充电设备等的直流供电。 1.1直流稳压电源设计目的 (1)、学习直流稳压电源的设计方法; (2)、研究直流稳压电源的设计方案; (3)、掌握直流稳压电源的稳压系数和内阻测试方法。 1.2课程设计的组成部分 1.2.1 设计原理

微机原理课程设计报告交通灯

WORD格式微机原理课程设计 设计题目交通灯的设计 实验课程名称微机原理 姓名王培培 学号080309069 专业09自动化班级2 指导教师张朝龙 开课学期2011至2012学年上学期

一、实验设计方案 实验名称:交通灯的设计实验时间:2011/12/23 小组合作:是□否?小组成员:无 1、实验目的: 分析实际的十字路口交通灯的亮灭过程,用实验箱上的8255实现交通灯的控制。(红,黄,绿三色灯) 2、实验设备及材料: 微机原理和接口技术实验室的实验箱和电脑设备等。 3、理论依据: 此设计是通过并行接口芯片8255A和8086计算机的硬件连接,以及通过8253延时的方法,来实现十字路口交通灯的模拟控制。 如硬件连接图所示(在后),红灯(RLED),黄灯(YLEDD)和绿灯(GLED)分别接在8255 的A,B,C口的低四位端口,PA0,PA1,PA2,PA3分别接1,2,3,4(南东北西)路口的红灯,B,C口类推。8086工作在最小模式,低八位端口AD0~AD7接到8255和8253的D0~D7,AD8~AD15通过地址锁存器8282,接到三八译码器,译码后分别连到8255和8253的CS片选端。8253的 三个门控端接+5V,CLOCK0接由分频器产生的1MHZ的时钟脉冲,OUT0接到CLOCK1和CLOCK,2 OUT1接到8086的AD18,8086通过检测此端口是否有高电平来判断是否30s定时到。OUT2产生 1MHZ方波通过或门和8255的B口共同控制黄灯的闪烁。8255三个口全部工作在方式0既基本 输入输出方式,红绿灯的转换由软件编程实现。

4、实验方法步骤及注意事项: ○1设计思路 红,黄,绿灯可分别接在8255的A口,B口和C口上,灯的亮灭可直接由8086输出0,1 控制。 设8253各口地址分别为:设8253基地址即通道0地址为04A0H,通道1为04A2H,通道2 为04A4H,命令控制口为04A6H。 黄灯闪烁的频率为1HZ,所以想到由8253产生一个1HZ的方波,8255控制或门打开的时 间,在或门打开的时间内,8253将方波信号输入或门使黄灯闪烁。 由于计数值最大为65535,1MHZ/65536的值远大于2HZ,所以采用两个计数器级联的方 式,8253通道0的clock0输入由分频器产生的1MHZ时钟脉冲,工作在方式3即方波发生器方 式,理论设计输出周期为0.01s的方波。1MHZ的时钟脉冲其重复周期为T=1/1MHZ=1s,因此 通道0的计数初值为10000=2710H。由此方波分别作为clock1和clock2的输入时钟脉冲,所以 通道1和通道2的输入时钟频率为100HZ,通道1作计数器工作在方式1,计数初值3000=BB8H 既30s,计数到则输出一个高电平到8255的PA7口,8255将A口数据输入到8086,8086检测 到高电平既完成30s定时。通道2工作在方式3需输出一个1HZ的方波,通过一个或门和8086 共同控制黄灯的闪烁,因此也是工作在方波发生器方式,其计数初值为100=64H,将黄灯的状态 反馈到8055的端口PB7和PC7,同样输入到8086,8086通过两次检测端口状态可知黄灯的状态 变化,计9次状态变化可完成5次闪烁。 三个通道的门控信号都未用,均接+5V即可。 ○ 2硬件原理及电路图 由于8255A与8086CPU是以低八位数据线相连接的,所以应该是8255A的A1、A 0 线分别与 8086CPU的A2、A线相连,而将8086的 1 A 0 线作为选通信号。如果是按8255A内部地址来看, 则在图中它的地址是PA口地址即(CS+000H),PB口地址为(CS+001H),PC口地址为(CS+002H),

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

《管理信息系统实习》报告 专业班级 学生姓名 指导教师王桃群 时间 2012.3.13~2012.3.23 成绩 评语

一、课程设计题目 图书管理系统 二、系统需求 1.系统的准备 操作系统:Windows xp 数据库系统:SQL Server 2000 或 SQL Server 2005 客户端开发工具:Visual Studio 2005或其他开发工具 2.知识准备 熟悉SQL Server 2000 或 SQL Server 2005的使用; 熟悉C#、https://www.docsj.com/doc/ca2467087.html,或其他语言进行数据库编程。 3.系统分析 图书信息包括:每种图书都有书名、ISBN、一名或多名作者(译者)、出版社、定价和内容简介等; 读者信息包括:借书证记录有借阅者的姓名、密码、所在单位和类别等; 读者凭借书证借书,教师最多借书15本书,借书期限最长为90天,学生最多借书8本书,借书期限最长为30天。对于超期未还的读者不能继续借书,每本书每超期一天罚款0.05元。 三、系统设计 1.体系结构 本系统使用c/s模式的两层结构,表示层(USL)和数据访问层(DAL)。 表示层(USL):为客户提供对应用程序的访问,以Windows应用程序或Web 应用程序的形式提供实现的功能。 业务逻辑层(BLL):实现应用程序的业务功能,以类库的形式为表示层提供服务。 数据访问层(DAL):实现整个系统所有的数据库连接、数据存取操作,以组

件类库的形式为业务逻辑层提供服务。 此外,实体类,简单地说是描述一个业务实体的类。业务实体直观一点的理解就是整个应用系统业务所涉及的对象,从数据存储来讲,业务实体就是存储应用系统信息的数据表,将数据表中的每一个字段定义成属性,并将这些属性用一个类封装,这个类就称为实体类。 2.功能模块框图 3.数据库设计 1. 读者类别表(ReaderType)

数据结构课程设计报告模板

课程设计说明书 课程名称:数据结构 专业:班级: 姓名:学号: 指导教师:成绩: 完成日期:年月日

任务书 题目:黑白棋系统 设计内容及要求: 1.课程设计任务内容 通过玩家与电脑双方的交替下棋,在一个8行8列的方格中,进行棋子的相互交替翻转。反复循环下棋,最后让双方的棋子填满整个方格。再根据循环遍历方格程序,判断玩家与电脑双方的棋子数。进行大小判断,最红给出胜负的一方。并根据y/n选项,判断是否要进行下一局的游戏。 2.课程设计要求 实现黑白两色棋子的对峙 开发环境:vc++6.0 实现目标: (1)熟悉的运用c语言程序编写代码。 (2)能够理清整个程序的运行过程并绘画流程图 (3)了解如何定义局部变量和整体变量; (4)学会上机调试程序,发现问题,并解决 (5)学习使用C++程序来了解游戏原理。 (6)学习用文档书写程序说明

摘要 本文的研究工作在于利用计算机模拟人脑进行下黑白棋,计算机下棋是人工智能领域中的一个研究热点,多年以来,随着计算机技术和人工智能技术的不断发展,计算机下棋的水平得到了长足的进步 该程序的最终胜负是由棋盘上岗双方的棋子的个数来判断的,多的一方为胜,少的一方为负。所以该程序主要运用的战术有削弱对手行动战术、四角优先战术、在游戏开局和中局时,程序采用削弱对手行动力战术,即尽量减少对手能够落子的位置;在游戏终局时则采用最大贪吃战术,即尽可能多的吃掉对手的棋子;而四角优先战术则是贯穿游戏的始终,棋盘的四角围稳定角,不会被对手吃掉,所以这里是兵家的必争之地,在阻止对手进角的同时,自己却又要努力的进角。 关键词:黑白棋;编程;设计

EDA课程设计说明书参考格式

<>课程设计说明书 题目 院、部: 学生姓名: 指导教师:王晓丽职称助教 专业: 班级: 完成时间:

摘要(三号,黑体,居中,字间空两格字符) (空二行换行) 空4格打印摘要内容(小四号宋体,行距20)。 关键词:(摘要内容后下空一行打印“关键词”三字(小四号黑体),其后为关键词(小四号宋体),每一关键词之间用分号隔开,最后一个关键词后不打标点符号。 ABSTRACT ①居中打印“ABSTRACT”,再下空二行打印英文摘要内容。②摘要内容每段开头留四个空字符。③摘要内容后下空一行打印“Key words”,其后为关键词用小写字母,每一关键词之间用分号隔开,最后一个关键词后不打标点符号。 Key words :aaa;bbb;ccc

目录(3号,黑体,居中) (空1行,以小4号黑体设置字体及大小,行间距22、字间距标准) 1 XXXXXX………………………………………………………………………… 1.1 XXXXXX……………………………………………………………………… 1.2 XXXXXX……………………………………………………………………… ┇ 2 XXXXXX………………………………………………………………………… 2.1 XXXXXX……………………………………………………………………… 2.2 XXXXXX……………………………………………………………………… ┇ 3 4 结束语 参考文献………………………………………………………………………………. 致谢……………………………………………………………………………………附录……………………………………………………………………………………

微机原理课程设计报告

微型计算机技术课程设计 指导教师: 班级: 姓名: 学号: 班内序号: 课设日期: _________________________

目录 一、课程设计题目................. 错误!未定义书签。 二、设计目的..................... 错误!未定义书签。 三、设计内容..................... 错误!未定义书签。 四、设计所需器材与工具 (3) 五、设计思路..................... 错误!未定义书签。 六、设计步骤(含流程图和代码) ..... 错误!未定义书签。 七、课程设计小结 (36)

一、课程设计题目:点阵显示系统电路及程序设计 利用《汇编语言与微型计算机技术》课程中所学的可编程接口芯片8253、8255A、8259设计一个基于微机控制的点阵显示系统。 二、设计目的 1.通过本设计,使学生综合运用《汇编语言与微型计算机技术》、《数字电子技术》等课程的内容,为今后从事计算机检测与控制工作奠定一定的基础。 2.掌握接口芯片8253、8255A、8259等可编程器件、译码器74LS138、8路同相三态双向总线收发器74LS245、点阵显示器件的使用。 3.学会用汇编语言编写一个较完整的实用程序。 4.掌握微型计算机技术应用开发的全过程,包括需求分析、原理图设计、元器件选用、布线、编程、调试、撰写报告等步骤。 三、设计内容 1.点阵显示系统启动后的初始状态 在计算机显示器上出现菜单: dot matrix display system 1.←left shift display 2.↑up shift display 3.s stop 4.Esc Exit 2.点阵显示系统运行状态 按计算机光标←键,点阵逐列向左移动并显示:“微型计算机技术课程设计,点阵显示系统,计科11302班,陈嘉敏,彭晓”。 按计算机光标↑键,点阵逐行向上移动并显示:“微型计算机技术课程设计,点阵显示系统,计科11302班,陈嘉敏,彭晓”。 按计算机光标s键,点阵停止移动并显示当前字符。 3.结束程序运行状态 按计算机Esc键,结束点阵显示系统运行状态并显示“停”。 四.设计所需器材与工具 1.一块实验面包板(内含时钟信号1MHz或2MHz)。 2.可编程芯片8253、8255、74LS245、74LS138各一片,16×16点阵显示器件一片。

JAVA图书管理系统课程设计

山东建筑大学 课程设计说明书 题目:图书管理系统 课程: JAVA程序设计基础课程设计院(部):信息与电气工程学院 专业:物联网工程 班级:物联121 学生姓名:李明钰 学号:032 指导教师:关华 完成日期:2015年7月10日

一摘要............................................ 错误!未定义书签。二所需软件......................................... 错误!未定义书签。 三 E-R图与结构功能图............................... 错误!未定义书签。 E-R图...................................... 错误!未定义书签。 功能结构图.................................. 错误!未定义书签。四所需表格......................................... 错误!未定义书签。 Sql创建语句................................ 错误!未定义书签。五页面的结构和关系................................. 错误!未定义书签。六程序截图......................................... 错误!未定义书签。七总结............................................ 错误!未定义书签。八参考文献......................................... 错误!未定义书签。附录................................................ 错误!未定义书签。 (1)登录模块代码............................... 错误!未定义书签。 (2)图书管理模块代码........................... 错误!未定义书签。

数据结构课程设计报告

编号 课程设计 题目 1、一元稀疏多项式计算器 2、模拟浏览器操作程序 3、背包问题的求解 4、八皇后问题 二级学院计算机科学与工程学院 专业计算机科学与技术 班级 2011级 37-3班 学生姓名 XX 学号 XXXXXXXXXX 指导教师 XXXXX 评阅教师 时间 1、一元稀疏多项式计算器 【实验内容】 一元稀疏多项式计算器。

【问题描述】 设计一个一元稀疏多项式简单计算器。 【需求分析】 其基本功能包括: (1)输入并建立多项式; (2)输出多项式,输出形式为整数序列为:n,c1,e1,c2,e2,……,cn,en,其中n 是多项式的项数,ci,ei分别是第i项的系数和指数,序列按指数降序排序;(3)多项式a和b相减,建立多项a+b; (4)多项式a和b相减,建立多项式a-b; (5)计算多项式在x处的值; (6)计算器的仿真界面(选做); 【概要设计】 -=ADT=- { void input(Jd *ha,Jd *hb); void sort(dnode *h)

dnode *operate(dnode *a,dnode *b) float qiuzhi(int x,dnode *h) f",sum); printf("\n"); } 【运行结果及分析】 (1)输入多项式:

(2)输出多项式(多项式格式为:c1x^e1+c2x^e2+…+cnx^en): (3)实现多项式a和b相加: (4)实现多项式a和b相减: (5)计算多项式在x处的值:

2、模拟浏览器操作程序 【实验内容】 模拟浏览器操作程序 【问题描述】 标准Web浏览器具有在最近访问的网页间后退和前进的功能。实现这些功能的一个方法是:使用两个栈,追踪可以后退和前进而能够到达的网页。在本题中,要求模拟实现这一功能。 【需求分析】 需要支持以下指令: BACK:将当前页推到“前进栈”的顶部。取出“后退栈”中顶端的页面,使它成为当前页。若“后退栈”是空的,忽略该命令。 FORWARD:将当前页推到“后退栈”的顶部。取出“前进栈”中顶部的页面,使它成为当前页。如果“前进栈”是空的,忽略该命令。 VISIT:将当前页推到“后退栈”的顶部。使URL特指当前页。清空“前进栈”。 QUIT:退出浏览器。 假设浏览器首先加载的网页URL是:http:

课程设计报告撰写规范

.课程设计报告撰写规范

————————————————————————————————作者:————————————————————————————————日期: 2

江西理工大学应用科学学院信息工程系 课程设计规范 (试行) 信息工程系 二○一○年六月

第1章内容要求 第1章内容要求 课程设计报告由以下几个部分组成组成,依次为: I、统一的封面,封面之后为课设评分表及答辩记录表; II、摘要; III、目录; IV、课程设计总结报告正文; V、总结(本课题核心内容、特点和方案的优缺点、改进方向和意见)VI、按统一格式列出主要参考文献。 1

第2章格式要求 第2章格式要求 课程设计报告每部分从新的一页开始,各部分要求如下: 2.1封面 统一的封面(含课程设计课题名称、专业、班级、姓名、学号、指导教师等,详见第五部分“格式范例”) 2.2摘要 应概括地反映出本课程设计的主要内容,包括工作目的、实验研究方法、研究成果和结论,重点是本论文的主要工作。摘要力求语言精炼准确,建议500字以内。摘要中不要出现图片、图表、表格或其他插图材料。 关键词是为了便于作文献索引和检索工作而从论文中选取出来用以表示全文主题内容信息的单词或术语。 关键词在摘要内容后另起一行标明,一般3~5个,之间用“;”分开。 2.3 目录 目录由标题名称和页码组成,包括:正文(含结论)的一级、二级和三级标题和序号。具体格式见第五部分“格式范例”。 2.4 符号说明 如果课程设计报告中使用了大量的物理量符号、标志、缩略词、专门计量单位、自定义名词和术语等,应将全文中常用的这些符号及意义列出。如果上述符号和缩略词使用数量不多,可以不设专门的主要符号表,但在报告中出现时须加以说明。缩略词应列出中英文全称。 2

汇编与微机原理课程设计报告

微机接口课程设计报告 (题目:模拟自动门) 指导老师郭兰英 班级2015240204

目录 一概述 (1) 1.1 课程设计名称 (1) 1.2 课程设计要求 (1) 1.3 课程设计目的 (1) 二设计思想 (1) 三实施方案 (2) 3.1 获得传感器和“门”的状态 (2) 3.2 驱动步进电机和点阵模块 (2) 3.3 实现硬件延时 (3) 四硬件原理 (3) 4.1 中断控制器8259 (4) 4.2并行接口8255 (4) 4.3 定时/计数器8254 (5) 4.4 点阵LED显示屏 (5) 4.5 步进电机 (6) 4.6 红外距离传感器 (7) 五软件流程 (8) 六程序运行结果及分析 (11) 6.1 开门状态 (11) 6.2 关门状态 (12) 6.3 关门操作进行时中断到开门操作 (14)

6.4特殊状态 (15) 七个人感想 (16) 八附录 (18)

一、概述 1.1课程设计名称 模拟自动门 1.2课程设计要求 1)用汇编语言编程完成硬件接口功能设计。 2)硬件电路基于80x86微机接口。 3)程序功能包含:步进电机转动、点阵显示开关门、传感器检测是否有人、8254延时。 4)传感器检测有人时开门,门全开后延时几秒关门,若关门时检测到有人,立刻开门。 1.3课程设计目的 通过本课程设计,让学生对微机系统有一个较面的理解,对典型数字接口电路的应用技术有一个较深入的掌握,并对应用系统进行硬件原理和软件编程进行分析、设计和调试,达到基本掌握简单微型计算机应用系统软硬件的设计方法,提高项目开发能力的目的。要求同学分组完成课题,写出课程设计说明书,画出电路原理图,说明工作原理,编写设计程序及程序流程图。 二、设计思想 本程序主要功能是模拟商场等公共场所的自动门,实现有物体靠近并被传感器检测到时发生一系列变化的效果,模拟实现开门关门的功能。 为了尽量模拟真实场景下的自动门状态变化,本程序主要可以实现以下功能: 1、当传感器可检测范围内检测到物体,并且“门”为“关”的状态,立即“打开门”,即用一系列的硬件动作模拟自动门打开的动作和状态。 2、当“门”完全打开后一段时间后,传感器范围内检测不到物体时,立即“关闭门”, 用一系列的硬件动作模拟自动门关闭的动作和状态。

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

目录 第1章绪论 (2) 第2章需求分析 (2) 第3章总体设计 (3) 第4章数据库设计 (4) §4.1 概念结构设计 (4) §4.2 逻辑结构与物理结构设计 (5) 第5章详细设计 (7) 第6章编码 (8) 第7章测试 (14) §7.1 测试 (14) §7.2 发现错误和解决方法 (17) 第8章设计总结 (17) 学习体会(附录1) (17) 致谢(附录2) (18) 参考文献(附录3) (18)

第1章绪论 图书馆是信息交换和资源流通的重要媒介,对图书馆的信息化管理将大大提高图书资源的利用和信息的交换速度。图书管理系统是通过将借阅信息以数据库的形式由网络传输来完成各用户(教师或学生)所要的借阅方面的需求(如借阅,归还,预订等)。以打破传统的人工选课模式,极大地方便了使用人员和管理人员,节约了时间和空间,实现图书借阅自动化,自由化,使图书资源得到充分利用。建立图书管理系统,使每个用户自由地选到自己需要的图书,避免传统借书模式的繁琐、低效率、借阅程序臃肿等等的缺点,减轻相关人员的负担。 本图书管理系统运用SQLServer2000、C++Builder等软件实现了基本的管理员登录、图书管理、读者管理、借还图书、图书查询以及信息维护等功能的图书管理系统。 第2章需求分析 图书管理系统主要包括系统管理、读者管理、图书采购、图书编目、图书流通、统计、查询等一系列的功能。 1、读者管理 (1).新学期建立新班级,删除毕业班读者。 (2).为新生办理新借阅证。 (3).读者管理能完成读者调动、借书证挂失、补办、停止借阅、单独打印读者条码等日常事务。 (4).读者类别可以分类,可为每一类读者指定借阅规则。 (5).读者可以通过管理员远程预约图书。 2、采编管理 (1).有完善的采编功能,能对新采购图书可以进行有效采编。 (2).图书采编能对相关图书进行分类别号编号,借助可扩展的编目库减轻编目人员的工作。 (3).图书注销有完整的备查档案。 3、流通管理 (1).借书完全通过输入借阅证号,识别借书证是否有效,根据设定的规则进行管理。提示读者已借书数、超期图书应缴罚款等参考信息。根据图书的种类确定借阅期限。罚款单价根据图书种类确定。 (2).还书完全通过条码识别,自动作超期记录。 (3).图书预约可以为读者提供方便,可以进行管理及打印到书通知。 (4).图书损坏、丢失处理能显示每本书上次损坏的记录以及其它信息。 4、统计管理

数据结构课程设计报告

数据结构课程设计 设计说明书 TSP 问题 起止日期:2016 年 6 月27 日至2016 年7 月 1 日 学生姓名 班级 学号 成绩 指导教师( 签字) 2016 年7 月 1 日

目录 第1 章需求分析.................................................................................1... 1.1 简介 (1) 1.2 系统的开发背景 (1) 1.3 研究现状 (1) 第2 章概要设计.................................................................................2... 2.1 系统开发环境和技术介绍 (2) 2.2 系统需求分析 (2) 2.2.1 总体功能分析 (2) 2.2.2 核心功能分析 (3) 第3 章详细设计...................................................................................4... 3.1 系统开发流程 (4) 3.2 系统模块设计 (4) 3.3 系统结构 (6) 3.2 系统流程图 (6) 第4 章调试分析...................................................................................7... 4.1 程序逻辑调试 (7) 4.2 系统界面调试 (8) 第5 章测试结果...................................................................................9... 5.1 测试环境 (9) 5.2 输入输出测试项目 (9) 5.3 测试结果 (10) 结论.....................................................................................................1..1.. 参考文献................................................................................................1..1. 附录.......................................................................................................1..2..

微机原理课程设计报告-数字时钟的实现(附代码)

合肥工业大学 计算机与信息学院 课程设计 课程:微机原理与接口技术设计专业班级:计算机科学与技术x班学号: 姓名:

一、设计题目及要求: 【课题6】数字时钟 1.通过8253 定时器作产生秒脉冲定时中断。在中断服务程序中实现秒、分、小时的进位(24小时制)。 2.在七段数码管上显示当前的时分秒(例如,12 点10 分40 秒显示为121040)。 3.按“C”可设置时钟的时间当前值(对准时间)。 二、设计思想: 总体思想: 1、功能概述: 实验箱连线: 本实验建立在Dais实验箱基础上完成的基本连线及程序如下: 138译码器: A,B,C,D,分别连接A2,A3,A4,GS; y0连接8253的CS片选信号; y1连接8259的CS片选信号; 8253连线: 分频信号T2接8253的CLK0; 8253的OUT0接8259的IR7; 8253的gate信号接+5V; 8259连线: 8259的数据线接入数据总线;

本程序包括显示模块,键盘扫描模块,时间计数模块,设置模块等几个模块, (1)程序运行后,LED显示000000初始值,并且开始计数 (2)按C键进行设置初始时间,考虑到第一个数只能是0,1,2,当第一个数显示2时第二个数只能显示0~4,同理下面各位应满足时钟数值的合理的取值; (3)在手动输入初始值时,按D键进行回退1位修改已设置值,连续按D键可以全部进行删除修改。 2、主程序设计 主程序中完成通过调用子程序完成对8253及8259的初始化,对8259进行中断设置。主要在显示子程序和键盘子处理程序之间不断循环,8253每一秒给8259一个刺激,当8259接受到刺激后会给CPU一个中断请求,CPU会转去执行中断子程序,而中断子程序设置成时间计数加,即完成电子表的整体设计。详细流程图见图三-1。 3、LED显示子程序设计 本程序显示部分用了6个共阳极LED作为显示管,显示程序要做到每送一次段码就送一次位码,每送一次位码后,将位码中的0右移1位作为下次的位码,从而可以实现从左到右使6个LED依次显示出相应的数字。虽然CPU每隔一定时间便执行显示程序,但只要这个时间段不太长,由于人眼的视觉作用,就可以在6个LED上同时见到数字显示。 4、键盘扫描子程序设计 本程序需要用键盘对时间的初始值进行设置,因此对键盘扫描的子程序需要满足的功能如下: 判断是否是C键,若不是就返回至主程序,若是C键就开始对时间初始值进行设置,同时因注意到第一个值不可以超过2,第一个数是2时第二数不能超过4,余下的同理要满足时间数值的取值范围呢,若不是合法输入不予反应继续等待输入。当遇到输入数值错误时可以按下D键进行删除一位重新设置;当6位初始值全部设置成功后,电子表将自动开始走表。 5、时间运算子程序设计 该子程序的主要功能是对时、分、秒的运算,并把运算出的最终结果存到事先已经开辟

相关文档
相关文档 最新文档