VC课程设计学生成绩管理系统详解和源码

VC课程设计学生成绩管理系统详解和源码
VC课程设计学生成绩管理系统详解和源码

VC++课程设计

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

设计者:张守阳(20102973)

班级:计本10级二班

使用软件: VC++6.0

使用数据库: ACCESS

设计流程

一、设计理念

开发一款学生成绩管理程序,实现学生基本信息的录入、查询及浏览和修改操作。以及学生成绩的录入、查询、浏览以及统计分析等功能。以上功能以可视化界面方式进行操作,并将学生成绩信息保存。

二、数据库设计

在这个程序中,所用到的数据库是ACCESS数据库。在数据库中,添加了8个表,分别是NO1OBJECT、NO1STUDENT、NO1STUINFO、NO1TEACHER、NO2OBJECT、NO2STUDENT、NO2STUINFO、NO2TEACHER.

这8个表分别记录着两个班的:成绩概况、学生成绩、学生信息、教师信息。

三、程序设计

此成绩管理系统共有两个模块:一个是学生成绩管理模块,一个是学生信息管理模块。在登录成功后(登录用户名和密码都是:admin)会出现主窗口。

在主窗口中可以通过单击两个模块的按钮实现来实现两个模块间的切换。

学生成绩模块所实现的功能是:根据班级选项显示学上成绩信息,并且实现成绩的添加、修改、删除、查询功能。

学生信息模块能够实现学生信息的显示、添加、修改和删除功能。

四、此程序的介绍

此程序是基于对话框的MFC程序。

所有的弹出式对话框是模态对话框,由于用到的对话框较多,所以定义的类较多,看起来有点眼花缭乱。由于我对MFC掌握程度有限,这个程序做的有点粗糙,既不美观,在功能上也有许多不尽人意的地方,或许还会存在bug。

五、程序的实现

1)、修改APP类

由于此程序用到数据库,所以需要先连接数据源。此程序通过采用代码来连接到所设计的数据源。

首先将设计的数据库复制到工程所在根目录下,再在APP中的initInstance()函数中添加如下代码:

///////加载数据源

if (!AfxSocketInit())

{

AfxMessageBox(IDP_SOCKETS_INIT_FAILED);

return FALSE;

}

CString sPath;

GetModule(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);

sPath.ReleaseBuffer ();

int nPos;

nPos=sPath.ReverseFind ('\\');

sPath=sPath.Left (nPos);

nPos=sPath.ReverseFind('\\');

sPath=sPath.Left (nPos);

CString lpszFile = sPath + "\\mydb.mdb";

char* szDesc;

int mlen;

szDesc=new char[256];

sprintf(szDesc,"DSN=%s? DESCRIPTION=TOC support source? DBQ=%s?

FIL=MicrosoftAccess? DEFAULTDIR=%s?? ","mydb",lpsz);

mlen = strlen(szDesc);

for (int i=0; i

{

if (szDesc[i] == '?')

szDesc[i] = '\0';

}

if (FALSE == SQLConfigDataSource(NULL,ODBC_ADD_DSN,"Microsoft Access Driver (*.mdb)\0",(LPCSTR)szDesc))

AfxMessageBox("SQLConfigDataSource Failed");

try

{

CString strConnect;

strConnect.Format("DSN=mydb;");

if(!m_DB.OpenEx(strConnect,CDatabase::useCursorLib))

{

AfxMessageBox("Unable to Connect to the Specified Data Source");

return FALSE ;

}

}

catch(CDBException *pE)

{

pE->ReportError();

pE->Delete();

return FALSE;

}

//////////////////////////////

其中m_DB是定义的一个CDatabase 对象,用来指向数据库mymdb。

2)、新建CRecordset 数据集类

在项目中,共有四个数据集类,分别是CDRecordset、 CBRecordset、 CTRecordset、CSinfoRecordset。它们分别对应学生成绩表、成绩概况表、教师表和学生信息表。3)、学生成绩模块的代码

BOOL CBaDialog::OnInitDialog()

{

CDialog::OnInitDialog();

CDRecordset m_Set(&theApp.m_DB);

CBRecordset m_bSet(&theApp.m_DB);

CTRecordset m_tSet(&theApp.m_DB);

//////////初始化列表控件ListCtrlx

unsigned i=0;

CODBCFieldInfo Info;

m_Set.Open();

m_ListCtrlx.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);

for( i=0;i

{

m_Set.GetODBCFieldInfo(i,Info);

m_ListCtrlx.InsertColumn(i,Info.m_strName,LVCFMT_LEFT,80);

}

m_Set.Close();

//////////初始化列表控件ListCtrlb

m_bSet.Open();

m_ListCtrlb.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);

for( i=0;i

{

m_bSet.GetODBCFieldInfo(i,Info);

m_ListCtrlb.InsertColumn(i,Info.m_strName,LVCFMT_LEFT,80);

}

m_bSet.Close();

////////////////////////////////////

/////////////初始化列表控件ListCtrll

m_ListCtrll.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES); m_ListCtrll.InsertColumn(0,_T("科目"),LVCFMT_IMAGE|LVCFMT_LEFT);

m_ListCtrll.InsertColumn(1,"任课老师");

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

m_ListCtrll.SetColumnWidth(i,80);

m_cob.SetCurSel(1);

this->Enable(FALSE);

m_Timer=SetTimer(1,2,NULL);

m_bIsAsc=TRUE;

m_bS=TRUE;

return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }

void CBaDialog::OnStatr()

{

// TODO: Add your control notification handler code here

m_ListCtrlx.DeleteAllItems();

m_ListCtrlb.DeleteAllItems();

m_ListCtrll.DeleteAllItems();

if(m_Set.IsOpen())

m_Set.Close();

if(m_bSet.IsOpen())

m_bSet.Close();

m_cob.GetLBText(m_cob.GetCurSel(),m_Getstring);

this->Select();

if(m_Getstring=="计本一班")

m_tSet.Open();

if(m_Getstring=="计本二班")

m_tSet.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2TECHER]");

m_nRecordCount=this->Show(); //初始化“学生成绩详单”,并返回字段数 this->display(); //初始化“各科成绩概况”

this->exhibit(); //将teacher表中的记录加载到“任课教师” m_bS = GetDlgItem(IDC_STATR)->EnableWindow(true);

this->Enable(TRUE);

}

int CBaDialog::Show()

{

int i=0;

m_Set.MoveFirst();

do

{

CString s;

s.Format("%d",m_Set.m_column1);

m_ListCtrlx.InsertItem(i,s,0);

m_ListCtrlx.SetItemText(i,1,m_Set.m_column2);

s.Format("%.1f",m_Set.m_column3);

m_ListCtrlx.SetItemText(i,2,s);

s.Format("%.1f",m_Set.m_column4);

m_ListCtrlx.SetItemText(i,3,s);

s.Format("%.1f",m_Set.m_column5);

m_ListCtrlx.SetItemText(i,4,s);

s.Format("%.1f",m_Set.m_column6);

m_ListCtrlx.SetItemText(i,5,s);

s.Format("%.1f",m_Set.m_column7);

m_ListCtrlx.SetItemText(i,6,s);

s.Format("%.1f",m_Set.m_column8);

m_ListCtrlx.SetItemText(i,7,s);

s.Format("%.2f",m_Set.m_column9);

m_ListCtrlx.SetItemText(i,8,s);

i++;

m_Set.MoveNext();

} while(!m_Set.IsEOF());

m_Set.Close();

return i;

}

void CBaDialog::display()

{

int i=0;

m_bSet.MoveFirst();

do

{

CString s;

m_ListCtrlb.InsertItem(i,m_bSet.m_column1,0);

s.Format("%.1f",m_bSet.m_column2);

m_ListCtrlb.SetItemText(i,1,s);

s.Format("%.2f",m_bSet.m_column3);

m_ListCtrlb.SetItemText(i,2,s);

s.Format("%d",m_bSet.m_column4);

m_ListCtrlb.SetItemText(i,3,s);

s.Format("%d",m_bSet.m_column5);

m_ListCtrlb.SetItemText(i,4,s);

i++;

m_bSet.MoveNext();

} while(!m_bSet.IsEOF());

m_bSet.Close();

}

void CBaDialog::exhibit()

{

int i=0;

do

{

m_ListCtrll.InsertItem(i,m_tSet.m_column1,0);

m_ListCtrll.SetItemText(i,1,m_tSet.m_column2);

i++;

m_tSet.MoveNext();

}while(!m_tSet.IsEOF());

m_tSet.Close();

}

void CBaDialog::Enable( BOOL p)

{

BOOL HB;

HB=p;

GetDlgItem(IDC_ADD)->EnableWindow(HB);

GetDlgItem(IDC_DELECT)->EnableWindow(HB);

GetDlgItem(IDC_EDIT)->EnableWindow(HB);

GetDlgItem(IDC_FIND)->EnableWindow(HB);

GetDlgItem(IDC_ALL)->EnableWindow(HB);

}

CString CBaDialog::Select() //班级的选择

{

if(m_Getstring=="计本一班")

{

m_Set.Open();

m_bSet.Open();

}

else

{

m_Set.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2STUDENT]");

m_bSet.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2OBJECT]");

}

return m_Getstring;

}

void CBaDialog::Equal()

{

for(int i=0;i<5;i++)

{

float p=0;

if(i==0)

p=m_Set.m_column3;

if(i==1)

p=m_Set.m_column4;

if(i==2)

p=m_Set.m_column5;

if(i==3)

p=m_Set.m_column6;

if(i==4)

p=m_Set.m_column7;

m_bSet.Edit();

if(Selec==FALSE)

{

m_bSet.m_column2-=p;

m_bSet.m_column3=(float)(m_bSet.m_column2/m_nRecordCount);

if(p>=60)

m_bSet.m_column4-=1;

if(p>=80)

m_bSet.m_column5-=1;

}

else

{

m_bSet.m_column2+=p;

m_bSet.m_column3=(float)(m_bSet.m_column2/m_nRecordCount);

if(p>=60)

m_bSet.m_column4+=1;

if(p>=80)

m_bSet.m_column5+=1;

}

m_bSet.Update();

if(!m_bSet.IsEOF())

m_bSet.MoveNext();

else

break;

}

}

void CBaDialog::Xuan()

{

m_ListCtrlb.DeleteAllItems();

this->display();

m_ListCtrlx.DeleteAllItems();

this->Show();

}

void CBaDialog::OnTimer(UINT nIDEvent)

{

// TODO: Add your message handler code here and/or call default CString m_string;

m_cob.GetLBText(m_cob.GetCurSel(),m_string);

if(m_Getstring!=m_string)

{

GetDlgItem(IDC_STATR)->EnableWindow(TRUE);

this->Enable(FALSE);

}

CDialog::OnTimer(nIDEvent);

}

void CBaDialog::OnAdd()

{

// TODO: Add your control notification handler code here

Selec=TRUE;

CAddialog dlg;

/////////////////////////////

if(m_Set.IsOpen())

m_Set.Close();

if(m_bSet.IsOpen())

m_bSet.Close();

if(m_tSet.IsOpen())

m_tSet.Close();

m_cob.GetLBText(m_cob.GetCurSel(),m_Getstring);

this->Select();

if(m_Getstring=="计本一班")

m_tSet.Open();

if(m_Getstring=="计本二班")

m_tSet.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2TECHER]");

/////////////////////////////////

if( dlg.DoModal()==IDOK)

{

m_Set.AddNew();

m_nRecordCount+=1;

m_Set.m_column1=dlg.m_nxue;

m_Set.m_column2=dlg.m_strName;

m_Set.m_column3=dlg.m_fmaths;

m_Set.m_column4=dlg.m_fphysical;

m_Set.m_column5=dlg.m_fchemistry;

m_Set.m_column6=dlg.m_fenglish;

m_Set.m_column7=dlg.m_fpolitic;

m_Set.m_column8=dlg.m_fmaths+dlg.m_fphysical+dlg.m_fchemistry+dlg.m_fengli sh+dlg.m_fpolitic;

m_Set.m_column9=(float)(m_Set.m_column8/5);

this->Equal();

m_Set.Update();//Update()一定放在Equal()后

m_Set.Requery();

this->Xuan();

}

}

void CBaDialog::OnDelect()

{

// TODO: Add your control notification handler code here CDelectDialog dlg;

Selec=FALSE;

if(dlg.DoModal()==IDOK)

{

this->Select();

m_Set.MoveFirst();

BOOL sel=FALSE;

do

{

if(m_Set.m_column1!=dlg.m_nxue)

m_Set.MoveNext();

else

{

m_nRecordCount-=1;

sel=TRUE;

m_bSet.MoveFirst();

this->Equal();

m_Set.Delete();

m_Set.Requery();

break;

}

}while(!m_Set.IsEOF());

if(sel==FALSE)

{

AfxMessageBox("没有此记录");

return;

}

else

this->Xuan();

}

}

c语言学生成绩管理系统含源代码

C 语言程序设计作业 一设计项目:学生成绩管理系统 二总体设计: 2:模块功能说明: 1 输入功能:输入学生姓名学号及成绩。 2 查看功能:输出姓名学号及各科成绩。 3 查询功能:通过学号查询学生姓名及各科成绩。 4 统计功能:统计班级学生及格率,优秀率,各个学生成绩方差等。 5 修改功能:通过输入学号修改指定学生的错误信息。 6添加功能:添加学生信息。 7删除功能:通过输入学号输入指定学生信息。 8保存功能:将学生信息保存。 9 退出系统。 3:主要函数之间的调用关系及各自功能: 主要函数的函数原型 void inputscore(void); void savescore(void); void avergescore(void); void modifyscore(void); void lookscore(void); void searchscore(void); void statistic(void); void add(void); void modify(void);

void delscore(void); void menu(void); i.在菜单界面输入1,调用函数inputscore( )实现输入学生成绩信息功能。ii.在菜单界面2,调用函数lookscore( )实现学生成绩按平均分高低排序输。 出,同时lookscore()函数调用avergescore()函数实现各个学生平均分的计 算。 iii.在菜单界面输入3,调用searchscore()函数实现通过学号查找学生成绩信息功能。 iv.在菜单界面输入4,调用statistic()函数输出班级及格率,优秀率,学生成绩方差,不及格学生名单。 v.在菜单界面输入5,调用modify()函数实现通过学号修改学生成绩的功能vi.在菜单界面输入6,调用add()函数实现添加学生成绩。 vii.在菜单界面输入7,调用delscore()函数实现删除指定学生成绩。 viii.在菜单界面输入8,调用savescore()函数将学生成绩信息保存。 ix.在菜单界面输入9,退出成绩管理系统。

简单计算器c++课程设计

简单计算器 1 基本功能描述 简单计算器包括双目运算符和单目运算符。双目运算符包含基本的四则运算及乘幂功能,单目运算符包含正余弦、阶乘、对数、开方、倒数等运算。可对输入任意操作数包含小数和整数及正数和负数进行以上的所有运算并能连续运算。出现错误会给出提示,同时包含清除、退格、退出功能以及有与所有按钮相对应的菜单项。 2 设计思路 如图1,是输入数据子函数的流程图。打开计算器程序,输入数据,判断此次输入之前是否有数字输入,如果有,则在之前输入的数字字符后加上现有的数字字符;如果没有,则直接使编辑框显示所输入的数字字符。判断是否继续键入数字,如果是,则继续进行前面的判断,如果否,则用UpdateData(FALSE)刷新显示。 如图2,是整个计算器的流程图。对于输入的算式,判断运算符是双目运算符还是单目运算符。如果是双目运算符,则把操作数存入数组a[z+2]中,把运算符存入b[z+1]中;如果是单目运算符,则把字符串转化为可计算的数字,再进行计算。下面判断运算符是否合法,如果合法,则将结果存入a[0],不合法,则弹出对话框,提示错误。结束程序。

输入一个数字 在之前输入的数字字符后面加上现在的数字字符。 Eg :m_str+=”9”。 直接使编辑框显示所输入的数字字符。 Eg :m_str=”9”。 pass3=1表示已有数字输入 开始 之前是否有数字输入? pass3==1? 继续键入数字? 用UpdateData(FALSE)刷新显示 图1 输入数据子函数流程图 Y N Y N

输入开始 双目运算符 是否每一个操作数都存入a[]数组? 把操作数存入a[z+2],把运算符存入b[z+1]。 单目运算符 将字符串转换 为可计算的数进行运算 运算是否合法? 将结果存入a[0] 弹出对话框提示错误 结束Y Y N N 图2 简单计算器总流程图

计算器java课程设计(完整版)

《面向对象程序设计》课程设计报告 课程设计题目:计算器 学生姓名:李婉如 专业:信息管理与信息系统 班级:1424603 指导教师:司红伟 2016年 5 月 25 日

一、课设任务及要求 1)课设任务: ⑴设计的计算器应用程序可以完成加法、减法、乘法、除法以及取余运 算(可以进行浮点数和负数的运算)。 ⑵有求倒数、退格和清零功能。 2)创新要求: 能进行正切、余弦,以及求平方根、指数(包括对e)、自然对数运算。 3)设计要求 ①设计的计算器应用程序可以完成加法、减法、乘法、除法和取余运算。且有小数点、正负号、求倒数、退格和清零功能。 ②课程设计可选用Eclipse、JBuilder、NetBeans等作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。 ③认真按时完成课程设计报告,课程设计报告内容包括:设计任务与要求、需求分析、设计思路、详细设计、运行调试与分析讨论和设计体会与小结六个部分。

二、设计思路 ⑴本应用程序继承自框架类(JFrame),容器Container c采用BorderLayout 边缘布局,将单行文本框加入到“North”区域,包含各种按钮的面板JPanel p加入到”Center”区域。包含各种按钮的面板JPanel p 采用3行6列的网格布局,然后将数字按钮和运算符按钮以及控制按钮用一个for循环添加到面板中同时注册按钮事件监听器。如: Button b=new Button(); b.addActionListener(事件监听器); ⑵事件监听器中的事件处理方法void actionPerformed(ActionEvent evt)完成主要的按钮事件的处理。事件处理分以下几种情况:数字按钮事件(”0”,”1”,”2”…”8”,”9”)、运算符按钮事件(”+”,”-“,”*”,”/”,”%”)、正负号按钮事件(”+/-“)、小数点按钮事件(”.”)、等号按钮事件(”=”)、求倒按钮事件(”求倒”)、退格按钮事件(”退格”)、清除按钮事件(“C”) 、正切(tan)、余弦(cos),以及求平方根(sqrt)、指数(pow)、对e的指数(exp)、对数运算(log)。 ⑶在事件处理,触发按钮事件时,先判断是或是数字是或是“-/+”是或是“.”,是的话就将负号“-”、数字、小数点“.”分别写入文本框并存放在sum中,然后判断是或是“退格”、“求倒”等,是的话进行相应的处理,都不是的话则跳到doOperation()执行运算同时将运算符存放在preOperater中。触发按钮事件时,要进一步分析,是重新开始计算时触发的按钮事件还是计算中间触发的按钮事件。 ⑷计算器完成的是一个数学表达式,如:3+2,所以可以采用一个数组来存储数字或字符,如3,+,2分别存储在数组中,最后运算时,可以一一取出来进行运算。 ⑸利用按钮设计计算器的各个运算符和操作符,通过按钮的事件处理实现按钮计算功能。 ⑹利用文本框显示操作数和运算结果。

课程设计任务书

《钢结构》(钢屋架)课程设计任务书 一、设计资料 如图1所示某厂房,长度60m,柱距6m,跨度为L=18m,采用梯形钢屋架,1.5×6.0m预应力混凝土大型屋面板,屋架铰支于钢筋混凝土柱上,上柱截面400×400,混凝土强度等级为C20,屋面坡度为10 i。地区计算温度高于-200C,无侵蚀性介质,地震设防烈度为 :1 7度,屋架下弦标高为18m;厂房内桥式吊车为2台150/30t(中级工作制),锻锤为2台5t。钢材选用Q235钢,E43型焊条。 图1 柱网布置图 如图2所示。 三、荷载标准值(水平投影面计) ①永久荷载: 三毡四油(上铺绿豆砂)防水层 0.4 kN/m2 水泥砂浆找平层 0.4 kN/m2

保温层 kN/m2(按附表取) 一毡二油隔气层 0.05 kN/m2 水泥砂浆找平层 0.3 kN/m2 预应力混凝土大型屋面板 1.4 kN/m2 屋架及支撑自重:L = .0+ q011 12 .0 悬挂管道: 0.15 kN/m2 ②可变荷载: 屋面活荷载标准值: 0.7kN/m2 雪荷载标准值: 0.35 kN/m2 积灰荷载标准值: kN/m2 (按附表取) 四、课程设计要求 1.掌握钢屋架荷载的计算; 2.掌握杆件内力的计算和组合,杆件的计算长度、截面形式,截面选择及构造要求,填板的设置及节点板的厚度; 3.掌握普通钢屋架节点设计的原则和要求,主要节点的设计及计算和构造;掌握钢屋架施工图的内容和绘制。 五、课程设计(论文)进程安排

附件: 1. 附表 屋面保温层及积灰荷载的取值 (kN/m 2) 2. 附图 单位荷载作用下杆件内力系数图 02 .279 附图1 全跨单位荷载作用下各杆件的内力值 A a c e g e'c' a ' +2.5370.000-4.3 71 -5.636 -4.551 -3.357 -1.8500.0 -4.754 -1.86 2 +0.615 +1.17 +1.344 +1.581 +3 .158 +0 .540 -1 .632 -1 .305 -1 .520 -1 .748 -1.0-1.0+0.406 0.000.00-0.5+5.325 +5.312 +3.967+2.637+0.933 B C D E F G F ' E 'D 'C 'B 'A '0.51.0 1.0 1.0 1.0 1.01.0附图2 半跨单位荷载作用下各杆件的内力值

单片机课程设计计算器

课程设计说明书 课程设计名称:单片机课程设计 课程设计题目:四位数加法计算器的设计学院名称:电气信息学院 专业班级: 学生学号:

学生姓名: 学生成绩: 指导教师: 课程设计时间:至

格式说明(打印版格式,手写版不做要求) (1)任务书三项的内容用小四号宋体,倍行距。 (2)目录(黑体,四号,居中,中间空四格),内容自动生成,宋体小四号。 (3)章的标题用四号黑体加粗(居中排)。 (4)章以下的标题用小四号宋体加粗(顶格排)。 (5)正文用小四号宋体,倍行距;段落两端对齐,每个段落首行缩进两个字。 (6)图和表中文字用五号宋体,图名和表名分别置于图的下方和表的上方,用五号宋体(居中排)。(7)页眉中的文字采用五号宋体,居中排。页眉统一为:武汉工程大学本科课程设计。 (8)页码:封面、扉页不占页码;目录采用希腊字母Ⅰ、Ⅱ、Ⅲ…排列,正文采用阿拉伯数字1、2、3…排列;页码位于页脚,居中位置。 (9)标题编号应统一,如:第一章,1,,……;论文中的表、图和公式按章编号,如:表、表……;图、图……;公式()、公式()。

课程设计任务书 一、课程设计的任务和基本要求 (一)设计任务(从“单片机课程设计题目”汇总文档中任选1题,根 据所选课题的具体设计要求来填写此栏) 1. 系统通过4x4的矩阵键盘输入数字及运算符。 2. 可以进行4位十进制数以内的加法运算,如果计算结果超过4位十进制数,则屏幕显示E。 3. 可以进行加法以外的计算(乘、除、减)。 4. 创新部分:使用LCD1602液晶显示屏进行显示,有开机欢迎界面,计算数据与结果分两行显示,支持小数运算。 (二)基本要求 1.有硬件结构图、电路图及文字说明; 2.有程序设计的分析、思路说明; 3.有程序流程框图、程序代码及注释说明; 4.完成系统调试(硬件系统可以借助实验装置实现,也可在Proteus 软件中仿真模拟); 5.有程序运行结果的截屏图片。

学生成绩管理系统源代码

学生成绩管理系统源代码-标准化文件发布号:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

#include #include #include #include #include #include #include #include #define PRINT1 textcolor(12); cprintf("\r 请按任意键返回主菜单 \n\r");textcolor(10); getch();clrscr(); break; int shoudsave=0; struct student /* 学生信息结构体定义*/ { char num[10],name[20],cla[4]; int score1,score2,score3,total,ave; }; typedef struct node { struct student data; struct node *next; }Node,*L; void print1() { cprintf("\r============================================================= ==================="); } void print2() { cprintf("\n\r 1.输入学生成绩信息在这里你可以按照提示输入学生的班级,学号,姓名及各科成绩.\n"); cprintf("\n\r 2.注销学生成绩信息在这里你可以按照学号或姓名将某名学生的信息从本系统中删除.\n"); cprintf("\n\r 3.查询学生成绩信息在这里你可以按照学号或姓名查询某一名学生的信息.\n"); cprintf("\n\r 4.修改学生成绩信息在这里你可以按照提示修改某一名学生的学号,姓名及各科成绩."); cprintf("\n\r 5.学生成绩信息排序在这里你可以看到所有学生的各科成绩.\n"); cprintf("\n\r 6.学生成绩信息统计在这里本系统将为你显示所有科目的最高分及最低分所得学生.\n"); cprintf("\n\r 7.显示学生成绩信息在这里你可以看到系统中所有学生的信 息.\n"); cprintf("\n\r 8.保存学生成绩信息在这里你可以将学生你信息保存到内存 中.\n");

android简单计算器课程设计.

摘要 Android是当今最重要的手机开发平台之一,它是建立在Java基础之上的,能够迅速建立手机软件的解决方案。Android的功能十分强大,成为当今软件行业的一股新兴力量。Android基于Linux平台,由操作系统、中间件、用户界面和应用软件组成,具有以下5个特点:开放性、应用程序无界限、应用程序是在平等条件下创建的,应用程序可以轻松的嵌入网络、应用程序可以并行运行。而简单计算器又是手机上必备的小程序,所以此次创新实践很有意义。并且具有很强的使用性。 关键字:Android Java基础计算器

目录 第1章开发工具与环境 (1) 1.1 Android平台 (1) 1.2 Java开发环境 (1) 1.3 Eclipse (1) 1.4 Android程序基础—Android应用程序的构成 (2) 第2章系统分析与设计 (4) 2.1系统的可行性分析 (4) 2.2 系统的需求分析 (4) 2.3 系统的优势 (4) 2.4 系统的流程图 (5) 第3章系统详细设计 (6) 3.1 动作Activity (6) 3.2 布局文件XML (6) 3.3 Activity的详细设计 (7) 3.2 布局文件XML的详细设计 (21) 3.2 系统的运行结果 (24) 结论 (25) 参考文献 (26)

第1章开发工具与环境 1.1 Android平台 1.谷歌与开放手机联盟合作开发了Android, 这个联盟由包括中国移动、摩托罗拉、高通、宏达和T-Mobile在内的30多家技术和无线应用的领军企业组成。 2.Android是一个真正意义上的开放性移动设备综合平台。通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,来建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统,这样应用之间的通用性和互联性将在最大程度上得到保持。 3.所有的Android应用之间是完全平等的。 4.所有的应用都运行在一个核心的引擎上面,这个核心引擎其实就是一个虚拟机,它提供了一系列用于应用和硬件资源间进行通讯的API。撇开这个核心引擎,Android的所有其他的东西都是“应用”。 5.Android打破了应用之间的界限,比如开发人员可以把Web上的数据与本地的联系人,日历,位置信息结合起来,为用户创造全新的用户体验。 1.2 Java开发环境 Java技术包含了一个编程语言及一个平台。Java编程语言具有很多特性,如面向对象、跨平台、分布式、多线程、解释性等等。Java编程语言起源于Sun公司的一个叫“Green”的项目,目的是开发嵌入式家用电器的分布式系统,使电气更加智能化。1996年1月发布了JDK1.1版本,一门新语言自此走向世界。之后,1998年12月发布了1.2版本,2002年2月发布1.4版本,2004年10月发布1.5版本(5.0),2006年12月发布1.6(6.0)版本,这是目前的最新版本。Java1.2版本是一个重要的版本,基于该版本,Sun将Java技术分为J2SE、J2ME、J2EE,其中J2SE为创建和运行Java程序提供了最基本的环境,J2ME与J2EE 建立在J2SE的基础上,J2ME为嵌入式应用(如运行在手机里的Java程序)提供开发与运行环境,J2EE为分布式的企业应用提供开发与运行环境。 1.3 Eclipse

路基路面课程设计任务书

《路基路面工程》课程设计 任 务 书 题目: A 重力式挡土墙设计 B 沥青路面设计 C 水泥混凝土路面设计 1. 课程设计教学条件要求 制图教室 2. 课程设计任务 (1)了解设计任务,拟定工作计划,查阅资料。 (2)按《公路路基设计规范》(JTG D30-2004)“5.4 挡土墙”一节,采用极限状态设计法进行重力式挡土墙设计; (3)按《公路沥青路面设计规范 JIG D50-2006》的内容及要求进行沥青路面结构设计; (4)按《公路水泥混凝土路面设计规范 JTG D40-2002》的内容及要求进行水泥混凝土路面结构设计; (5)根据指导教师的要求,采用指定的初始条件进行设计: 重力式挡土墙、水泥混凝土路面和沥青路面的设计计算按所选方案手算; 在设计说明书(设计报告书)中应画计算图,采用A4纸打印设计报告书。(6)出图:重力式挡土墙、沥青路面设计不出图(留待毕业设计时训练出图);水泥混凝土路面设计,绘制面板接缝构造及钢筋布置图,A3图纸1页。 3. 课程设计报告书主要内容 A 重力式挡土墙设计 (一)初始条件: (1)浆砌片石重力式仰斜路堤墙,墙顶填土边坡1:1.5,墙身纵向分段长度为10m ;路基宽度26m ,路肩宽度3.0m ; (2)基底倾斜角0α:tan 0α=0.190,取汽车荷载边缘距路肩边缘d =0.5m ; (3)设计车辆荷载标准值按公路-I 级汽车荷载采用,即相当于汽车?超20级、挂车?120(验算荷载); (4)墙后填料砂性土容重γ=183 /m kN ,填料与墙背的外摩擦角τ=0.5φ;粘性土地基

与浆砌片石基底的摩擦系数μ=0.30,地基容许承载力[0σ]=250a kP ; (5)墙身采用 2.5号砂浆砌25号片石,圬工容重k γ=223 /m kN ,容许压应力 a a kP 600][=σ,容许剪应力a j kP 100][][==στ,容许拉应力a L kP 60][=σ; (6) 以下设计参数区别为每人一题,具体见下表: (二)要求完成的主要任务: 按《公路路基设计规范》(JTG D30-2004)“5.4 挡土墙”一节,采用极限状态设计法进行设计: (1)车辆荷载换算; (2)计算墙后主动土压力a E 及其作用点位置; (3)设计挡土墙截面,墙顶宽度和基础埋置深度应符合规范要求。进行抗滑动稳定性验算及抗倾覆稳定性验算; (4)基础稳定性验算与地基承载力验算; (5)挡土墙正截面强度及抗剪强度验算。 B 沥青路面设计 (一)初始条件: 广东某地区地区(IV 7区)某新建双向4车道一级公路,拟采用沥青混凝土路面,路基土为高液限粘土,地下水位为-1m ,路基填土高度1.2m ,预计通车初每日双向混合交通量组成及交通量如下表:

简易计算器课程设计

评阅教师评语:课程设计成绩 考勤成绩 实做成绩 报告成绩 总评成绩指导教师签名: 课程设计报告 论文题目基于ARM的简易计算器设计 学院(系):电子信息与自动化学院 班级:测控技术与仪器 学生姓名:同组同学: 学号:学号: 指导教师:杨泽林王先全杨继森鲁进时间:从2013年 6 月10 日到2013年 6 月28 日 1

目录 1、封面—————————————————————P1 2、目录—————————————————————P2 3、前言—————————————————————P3 4、关键字————————————————————P3 5、原理与总体方案————————————————P3 6、硬件设计———————————————————P6 7、调试—————————————————————P10 8、测试与分析——————————————————P11 9、总结—————————————————————P13

10、附件—————————————————————P14 前言 近几年,随着大规模集成电路的发展,各种便携式嵌入式设备,具有十分广阔的市场前景。嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是是由单个程序实现整个控制逻辑。在嵌入式系统中,数据和命令通过网络接口或串行口经过ARM程序处理后,或显示在LCD上,或传输到远端PC上。 本文通过周立功的LPC2106芯片完成的简易计算器,正是对嵌入式应用的学习和探索。 一、摘要: 计算器一般是指“电子计算器”,是能进行数学运算的手持机器,拥有集成电路芯片。对于嵌入式系统,以其占用资源少、专用性强,在汽车电子、航空和工控领域得到了广泛地应用。本设计就是先通过C语言进行相应程序的编写然后在ADS中进行运行最后导入PROTUES进行仿真。最后利用ARM中的LPC2106芯片来控制液晶显示器和4X4矩阵式键盘,从而实现简单的加、减、乘、除等四则运算功能。 关键字:中断,扫描,仿真,计算 二、原理与总体方案: 主程序在初始化后调用键盘程序,再判断返回的值。若为数字0—9,则根据按键的次数进行保存和显示处理。若为功能键,则先判断上次的功能键,根据代号执行不同功能,并将按键次数清零。程序中键盘部分使用行列式扫描原理,若无键按下则调用动态显示程序,并继续检测键盘;若有键按下则得其键值,并通过查表转换为数字0—9和功能键与清零键的代号。最后将计算结果拆分成个、十、百位,再返回主程序继续检测键盘并显示;若为清零键,则返回主程序的最开始。 电路设计与原理:通过LPC2106芯片进行相应的设置来控制LCD显示器。 而通过对键盘上的值进行扫描,把相应的键值通过MM74C922芯片进行运算从而

课程设计任务书

广东工业大学课程设计任务书 题目名称 带式运输机传动装置 学生学院 材料与能源学院 专业班级 10金材(2)班 姓 名 张泽添 学 号 3110006711 一、课程设计的内容 设计一带式运输机传动装置(见 图1)。设计内容应包括:两级传动装置的总体设计;传动零件、轴、轴承、联轴器等的设计计算和选择;减速器装配图和零件工作图设计;设计计算说明书的编写。 图2为参考传动方案。 二、课程设计的要求与数据 已知条件: (1)运输带工作拉力:F =2.7 kN ; (2)运输带工作速度:v = 2 m/s ; (3)卷筒直径: D = 320 mm ; (4)使用寿命: 8年; (5)工作情况:两班制,连续单向运转,载荷较平稳; 动力及传动装置 D v F 图1 带式运输机传动装置 图2 参考传动方案

(6)制造条件及生产批量:一般机械厂制造,小批量; (7)工作环境:室内,轻度污染环境; (8)边界连接条件:原动机采用一般工业用电动机,传动装置与工作机分别在不同底座上,用弹性联轴器连接。 三、课程设计应完成的工作 (1)减速器装配图1张; (2)零件工作图1张; (3)设计说明书1份。 四、课程设计进程安排

五、应收集的资料及主要参考文献 (1)杨可桢、程光蕴主编. 机械设计基础[M]. 北京:高等教育出版社,1999年6月第4版 (2)林怡青、谢宋良、王文涛编著. 机械设计基础课程设计指导书[M]. 北京:清华大学出版社,2008年11月第1版 (3)机械制图、机械设计手册等。 发出任务书日期:2012年 04月16 日指导教师签名: 计划完成日期: 2012年 04月27 日基层教学单位责任人签章: 主管院长签章:

数据结构课程设计计算器

数据结构课程设计报告 实验一:计算器 设计要求 1、问题描述:设计一个计算器,可以实现计算器的简单运算,输出并检验结果的正确性,以及检验运算表达式的正确性。 2、输入:不含变量的数学表达式的中缀形式,可以接受的操作符包括+、-、*、/、%、(、)。 具体事例如下: 3、输出:如果表达式正确,则输出表达式的正确结果;如果表达式非法,则输出错误信息。 具体事例如下: 知识点:堆栈、队列 实际输入输出情况: 正确的表达式

对负数的处理 表达式括号不匹配 表达式出现非法字符 表达式中操作符位置错误 求余操作符左右出现非整数 其他输入错误 数据结构与算法描述 解决问题的整体思路: 将用户输入的中缀表达式转换成后缀表达式,再利用转换后的后缀表达式进行计算得出结果。 解决本问题所需要的数据结构与算法: 用到的数据结构是堆栈。主要算法描述如下: A.将中缀表达式转换为后缀表达式: 1. 将中缀表达式从头逐个字符扫描,在此过程中,遇到的字符有以下几种情况: 1)数字 2)小数点 3)合法操作符+ - * / %

4)左括号 5)右括号 6)非法字符 2. 首先为操作符初始化一个map priority,用于保存各个操作符的优先级,其中+ -为0,* / %为1 3. 对于输入的字符串from和输出的字符串to,采用以下过程: 初始化遍历器std::string::iterator it=infix.begin() 在当it!=from.end(),执行如下操作 4. 遇到数字或小数点时将其加入到后缀表达式: case'1':case'2':case'3':case'4':case'5':case'6':case'7':case '8':case'9':case'0':case'.': { to=to+*it; break; } 5. 遇到操作符(+,-,*,/,%)时,如果此时栈顶操作符的优先级比此时的操作符优先级低,则将其入栈,否则将栈中的操作符从栈顶逐个加入到后缀表达式,直到栈空或者遇到左括号,并将此时的操作符加入到栈中,在此过程中需判断表达式中是否出现输入错误: case'+':case'-':case'*':case'/':case'%': { if((it+1)==from.end()) { cout<<"输入错误:运算符号右边缺少运算数"<

用java编写的学生成绩管理系统代码

; public class Student { private String id; private String name; private int math; private int english; private int java; private int computer; public String getId() { return id; } public void setId(String id) { = id; } public String getName() { return name; } public void setName(String name) {

= name; } public int getMath() { return math; } public void setMath(int math) { = math; } public int getEnglish() { return english; } public void setEnglish(int english) { = english; } public int getJava() { return java; } public void setJava(int java)

{ = java; } public int getComputer() { return computer; } public void setComputer(int computer) { = computer; } public static void main(String[] args) throws Exception { String id; String cid; String name; int math; int english; int java; int computer; String DBDriver = ""; String conStr = "jdbc:odbc:student"; Connection con = null; Statement stmt = null; ResultSet rs = null;

最新单片机简易计算器课程设计

单片机简易计算器课 程设计

引言 说起计算器,值得我们骄傲的是,最早的计算工具诞生在中国。中国古代最早采用的一种计算工具叫筹策,又被叫做算筹。这种算筹多用竹子制成,也有用木头,兽骨充当材料的。约二百七十枚一束,放在布袋里可随身携带。直到今天仍在使用的珠算盘,是中国古代计算工具领域中的另一项发明,明代时的珠算盘已经与现代的珠算盘几乎相同。17世纪初,西方国家的计算工具有了较大的发展,英国数学家纳皮尔发明的"纳皮尔算筹",英国牧师奥却德发明了圆柱型对数计算尺,这种计算尺不仅能做加减乘除、乘方、开方运算,甚至可以计算三角函数,指数函数和对数函数,这些计算工具不仅带动了计算器的发展,也为现代计算器发展奠定了良好的基础,成为现代社会应用广泛的计算工具。 近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。 本任务是个简易的两位数的四则运算,程序都是根据教材内和网络中的程序参考编写而成,在功能上还并不完善,限制也较多。本任务重在设计构思与团队合作,使得我们用专业知识、专业技能分析和解决问题全面系统的锻炼。 随着半导体集成工艺的不断发展,单片机的集成度将更高、体积将更小、功能将更强。在单片机家族中,80C51系列是其中的佼佼者,加之Intel公司将其MCS –51系列中的80C51内核使用权以专利互换或出售形式转让给全世界许多著名IC制造厂商,如Philips、 NEC、Atmel、AMD、华邦等,这些公司都在保持与80C51单片机兼容的基础上改善了80C51的许多特性。这样,80C51就变成有众多制造厂商支持的、发展出上百品种的大家族,现统称为80C51系列。80C51单片机已成为单片机发展的主流。专家认为,虽然世界上的MCU品种繁多,功能各异,开发装置也互不兼容,但是客观发展表明,80C51可能最终形成事实上的标准MCU芯片。 事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台

软件综合课程设计任务书

软件综合课程设计任务书

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

软件综合课程设计任务书 一、课程设计的目的、要求 目的:软件综合课程设计是一个综合性的设计型实验教学环节,旨在使学生通过软件开发的实践训练,进一步掌握设计开发软件的方法与技术,学会数据的组织方法,提高软件开发的实际能力,培养创造性的工程设计能力和分析、解决问题的能力。 实现以下目标: 1.深化已学的理论知识,完成理论到实践的转化 通过软件开发的实践,进一步加深对软件工程方法和技术的了解,将所学的理论知识运用于开发实践中,并在实践中逐步掌握软件工具的使用。 2. 提高分析和解决实际问题的能力 课程设计不仅是一次软件工程实践的模拟训练,同时通过软件开发的实践,积累经验,提高分析问题和解决问题的能力; 3. 培养“开拓创新”能力 大力提倡和鼓励在开发过程中使用新方法、新技术,激励学生实践的积极性和创造性,开拓思路,设计新算法、新创意,培养创造性的工程设计能力; 要求:学生组成开发小组(2~4人),以小组为单位选择并完成一个规模适度的软件项目,在教师的指导下以软件设计为中心,独立完成从需求分析到软件测试的开发过程。 二、设计步骤安排 1.确定课题 由教师命题并给出各课题的具体需求,学生根据课题涉及的知识领域及自己对该领域的熟悉程度和对该课题的兴趣,选择课题,经教师调整审定后确定; 2. 需求分析 建立系统的分析模型,这是系统开发的重要阶段。主要工作是: 分析确定系统应具备的功能、性能,并从经济上、技术上进行可行性分析,建立“需求分析模型”确定开发计划。 3. 软件设计 具体工作是:对系统的分析模型进行修改、细化,进行系统的结构设计,用户界面设计,数据管理部件设计(若系统涉及到数据库,要对数据库结构进行设计) 4. 编码与测试 根据项目的应用领域及语言的特点,选择编程语言进行编码,要求给出程序的详细注释(包括模块名、模块功能、中间过程的功能及变量说明); 由开发小组进行除验收测试以外的测试工作(包括单元测试、组装测试与系统(确认)测试)。所有测试过程都要求采用综合测试策略,先进行静态分析,再进行动态测试。要求制定测试计划、记录测试过程与结果、保留测试用例、写出测试报告。 5. 验收测试 由教师组织验收测试的实施,内容包括:系统能否正确运行,实际系统与设计方案是否一致,是否实现了需求所确定的功能与性能,系统设计有无特色,算法有无创新,系统结构是否合理、新颖,系统界面是否友好、美观,操作是否简单,使用是否方便。6.总结和整理课程设计报告

学生成绩管理系统(数据结构C语言版源代码)54843943

天天都是一个出发点,每天都有一点提高,每天都有一点收成! #include #include #include struct students{ char Sex[3]; /*字符型学生性别*/ double English; /*双精度实型英语成绩*/ double Java; /*双精度实型Java成绩*/ double Sjjg; /*双精度实数据结构*/ double Szdl; /*双精度实型数字电路*/ double Jsj; /*计算机组成原理*/ struct students *next; /*用与构建连表指向下一结点*/ }; FILE *fp; /*定义全局变量fp*/ void Revisemenu();/*修改菜单*/ void Sortmenu();/*排序菜单*/ void menu();/*主菜单*/ void secret();/*安全验证*/ struct students * Input();/*新建学生信息*/ void fprint(struct students *head);/*将信息导入文件可追加*/ void fprint_(struct students *head);/*将信息导入文件并覆盖*/ void Browse(struct students *head);/*浏览全部学生信息*/ struct students * create(struct students *head int *n);/*从tushu_list中读取数据构建链表*/ void SortEnglish(struct students * head);/*按英语成绩排序*/ void SortJava(struct students * head);/*按Java成绩排序*/ void SortSjjg(struct students * head);/*按数据结构成绩排序*/ void SortSzdl(struct students * head);/*按数字逻辑电路成绩排序*/ void SortJsj(struct students * head);/*按计算机组成原理成绩排序*/ struct students * Delete(struct students * head struct students * Revise();/*修改学生信息(按编号修改)*/ /*主菜单*/ void menu() { printf("\n\n"); printf("***************************************************\n"); printf(" 学生成绩管理系统 \n"); printf(" 1-添加新同学 2-浏览学生信息 \n"); printf(" 5-按成绩排序 6-修改学生信息 \n"); printf(" 7-删除学生信息 0-退出系统 \n"); printf("___________________________________________________\n");

C++课程设计——计算器.

面向对象程序设计语言 --课程设计题目计算器设计 院系航空宇航学院 专业飞行器设计与工程 学生姓名张权 学号011110320 指导教师张德平 二零一二年六月九日

计算器设计 (一)、目的与要求: 1、目的: 通过开发计算器程序,进一步熟悉C++中类和对象的定义与使用,掌握程序控制的方法,掌握C++程序设计的基本知识。 2、基本要求: (1)设计计算器程序,可对实数操作; (2)可对多个基数操作的四则运算; (3)增加函数如:正弦、余弦、正切、对数、平方和平方根、完成四则混合运算,注意考虑优先级,对应增加主菜单选项; (4)根据程序的提示,可以进行正弦运算进行余弦运算、正切运算、对数运算、求平方运算、混合运算、华氏温度转化为摄氏温度的运算、摄氏温度转化为华氏温度的运算、求平方根运算。使四则运算能够具有测试功能,即计算机能够自动出题,并要求用户计算,同时计算机判断用户的对错并打分,要求十题为一个单元,加减运算时最高为两位数的运算,乘法为两位数乘以一位数,除法是两位数或者三位数除以一位数,要求没有余数。 (二)、设计方法和基本原理: 1、问题描述(功能要求): 实数间的计算很复杂,它包括:相加、相减、相乘、相除、求三角函数、求对数、四则混合运算等。试设计计算器,使之能提供以下功能: 1).可以连续输入运算,对于输入的表达式能够按算符优先级进行处理。 如: 输入4+5*3时,应该输出60,而不是27。 2).可以处理包含括号的表达式。 如: 输入2*(3+2)时,应该输出10,而不是8。 3).可以计算三角函数、对数函数、平方根以及平方。 4).能够实现华氏温度与摄氏温度之间的转换。 5).四则运算能够具有测试功能,即计算机能够自动出题,并要求用户计算,

简易计算器课程设计

科研训练论文 题目:基于单片机的计算器的设计 目录 一、概述 (3) 1.1设计要求及任务: (3) 1.2设计原理: (3) 二、系统总体方案及硬件设计 (3) 2.1计算器总体思想 (3) 2.2硬件的选择与连接 (4) 2.2.1硬件选择 (4) 2.2.2接口设计 (5) 三、软件设计 (7)

3.2系统流程总图 (8) 3.3显示程序设计 (8) 3.4键盘识别程序设计 (9) 3.4.1原理与分析 (9) 3.4.2流程图 (10) 四、设计体会与总结 (11) 五、参考文献 (11) 附录 基于单片机的计算器的设计 摘要:本设计是一个实现加减乘除的计算器,它的硬件主要由四部分构成,一个8051单片机芯片,两个八段共阴极数码管,一个4*4键盘,它可以实现一位数的加减乘除运算。 显示部分:采用LED动态显示。 按键部分:采用4*4键盘。采用软件识别键值,并执行相应的操作。 关键词:LED接口;键盘接口;8255A;汇编语言

一、概述 1.1设计要求及任务: (1)设计4*4的键盘,其中10个数字键0~9,其余六个键“+”、“—”、“*”、“/”、“=”、和“C”键; (2)设计两位LED接口电路; (3)实现1位数的简单运算 1.2设计原理: (1)LED显示器接口技术 LED动态显示接口技术 (2)键盘显示技术 逐行(逐列扫描法) 二、系统总体方案及硬件设计 2.1计算器总体思想 显示部分:采用LED动态显示。 按键部分:采用4*4键盘。采用软件识别键值,并执行相应的操作。 执行过程:开机显示零,等待键入数值,当键入数字,经通过数码管显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在数码管上输出运算结果。

《Android应用开发》课程设计教学任务书

《Android应用开发》课程设计任务书 一、教学目的及基本任务 《Android应用开发》课程设计是计算机科学与技术专业及信息工程专业集中实践性环节之一,是学习完《Android应用开发》课程后进行的一次全面的综合练习。 通过本课程设计,使学生巩固软件工程的基本概念、原理,熟悉安卓应用开发环境和技术,学会完成一个移动终端应用软件的分析、设计、编码测试和安装,将理论与实际相结合,强化学生的项目开发和团队意识,提高学生分析能力和创新能力。 本课程的基本任务是: 要求学生掌握Windows环境下Android系统开发的一般方法,AndroidSdk 集成开发环境的构建及JavaEE应用程序的开发。整个设计过程必须由学生自己独立完成,课程设计按1~2人一组,分组进行全过程的设计。 二、教学基本内容和要求 (一)教学基本内容 ⒈问题分析 根据实验内容,充分地分析和理解问题本身,弄清要求做什么,包括功能要求、性能要求、设计要求和约束以及基本数据特性,数据间的联系等。 2.模块、类和算法的设计 按问题提炼和设计并画出程序运行的流程图,设计相关类,包括对类的定义,字段、函数的设计和实现。设计分概要设计和详细设计,概要设计着重解决程序的类设计问题,这包括考虑如何把被开发的问题程序自顶向下分解成若干顺序模块,并决定类的外部接口,即类间的相互关系以及类之间的信息交换问题.详细设计则要决定每个类内部函数的具体算法,包括输入、处理和输出。 3.上机调试 将代码用Java语言描述出来,对程序进行编译,纠正程序中可能出现的语法错误,先运行一遍程序看看究竟将会发生什么,如果错误较多,则进行错误跟踪,包括打印执行路径或输出中间变量值等手段。 (二)能力培养基本要求 要求学生将《Android开发》课程中关于Android几个重要组件如Acitivity、Intent、Service、BroadCast等;UI设计、常用控件;数据存储;等基本知识要求掌握。对于给定的设计目标,学生要具备分析问题、设计框架和数据模型,并选择合适的技术手段解决问题。在细节方面,采用面向

相关文档
最新文档