【毕业设计】C++课程设计报告-精品

【毕业设计】C++课程设计报告-精品
【毕业设计】C++课程设计报告-精品

课程设计报告

一、课程设计目的及要求.......................................................................................................... - 2 -

1.1设计目的........................................................................................................................ - 2 -

1.2.设计要求..................................................................................................................... - 2 -

1.2.1.封装一个字符串................................................................................................. - 2 -

1.2.2利用C++中的类实现线性链表的常见操作..................................................... - 2 -

1.2.3分别采用C++过程化程序设计方法和C++面向对象程序设计方法,设计编写

一个银行ATM自动取款机模拟程序 ....................................................................... - 3 - 二.课程设计具体实现.............................................................................................................. - 3 -

2.1封装字符串.................................................................................................................... - 3 -

1.2.1.总体设计: 流程图.............................................................................................. - 3 -

2.1.3调试及问题解决:............................................................................................. - 6 -

2.2链表:............................................................................................................................ - 6 -

2.2.1总体设计:流程图............................................................................................. - 6 -

2.2.2详细设计............................................................................................................. - 7 -

在链表中查找数值为x的结点:find(int x) ............................................................ - 11 -

2.3,ATM自动取款机模拟程序 ..................................................................................... - 12 -

2.3.1总体设计:流程图........................................................................................... - 12 -

.................................................................................................................................... - 12 -

2.3.2详细设计:....................................................................................................... - 12 -

.................................................................................................................................... - 13 -

2.3.3调试及问题解决............................................................................................... - 16 -

三.结束语: ................................................................................................................................. - 16 -

四.源代码................................................................................................................................... - 17 -

4.1封装字符串.................................................................................................................. - 17 -

4.2利用C++中的类实现线性链表的常用操作.............................................................. - 21 -

4.3 ATM自动取款机模拟程序(面向对象)................................................................. - 29 -

4.4 ATM自动取款机模拟程序(面向过程)................................................................. - 34 -

一、课程设计目的及要求

1.1设计目的

●提高和加强自己的计算机应用与软件开发能力,使自己由初学者向专业的程序员过渡。

●培养自己独立分析问题、解决问题、查阅资料以及自学能力,以适应计算机产业日新月

异发展的形势。

●学习和掌握C++程序设计方法以及上机调试技巧,为今后学习其它专业课程打好坚实的

基础。

●检测自己在这一学期对C++的学习及掌握情况。知道自己的不足,及时的弥补。为以

后的学习打下一定的基础,也为自己以后如何制定学习计划做一铺垫。

1.2.设计要求

1.2.1.封装一个字符串

要求如下:

●定义一个串类CMyString,建立适当的构造函数

●字符串使用指针保存字符串

必须实现如下操作,字符串比较、求串的长度、判断串是否为空、将串置空、字符串赋值(包括两个字符串类复制,一个字符串赋值到CmyString对象)、求字符串中的一个字符或改变字符串中的一个字符(采用重载[]),完成串的赋值与合并(重载+),得到表示字符串的指针地址

1.2.2利用C++中的类实现线性链表的常见操作

●带表头结点(存放的是该线性链表的长度),结点存放的是整型数值;

●实现以下操作:

?置空MakeEmpty()

?求长度Length()

?插入Insert(int x,int i):将x插入到第i个结点(不含头结点)的之

后;

?删除Delete(int x):删除链表中值为x的结点,成功返回1,否则返回0;

?删除 ReMove(int i):删除链表中第i个结点,成功返回1,否则返回0;

?搜索 Find(int x):在链表中查找数值为x的结点,成功返回1,否则返回

0;

?显示 Display():显示整个链表各结点的数值。

●写出类的构造函数、复制构造函数及析构函数

●编写一个函数,使用户通过选择进行相关链表操作。

1.2.3分别采用C++过程化程序设计方法和C++面向对象程序设计方法,设计编写一个银行ATM自动取款机模拟程序

●实现ATM取款机的基本功能,如给用户提供查询余额、取款、修改密码、吃卡、

退出系统等服务,可根据实际情况添加(如缴费、转账等服务)。

●对于用户要求输入相应的帐号和密码,如果三次出错则将卡吃掉并打印出相应凭

条。

●若输入的取款金额超出账户余额,则提示用户输入有误并提供更正功能二.课程设计具体实现

2.1.2详细设计:

缺省构造函数,初始化为空串:

CString::CString()

{

s=NULL;

}

CString::CString(CString &stringser)

{

s=new char[strlen(stringser.s)+1];

if(s!=0)

strcpy(s,stringser.s);

}

用一个字符重复n次,初始化字符串CString::CString(char ch,int nRepeat)

{

s=new char[nRepeat+1];

for(int i=0;i

s[i]=ch;

s[nRepeat]='\0';

}

拷贝构造函数:

CString::CString(const char*psz)

{

s=new char[strlen(psz)+1];

if(s!=0)

strcpy(s,psz);

}

得到字符串长度:用于求字符长度

int CString::GetLength() const

{ int i=0;

while (s[i]!='\0')

i++;

return i;

}

判断字符串是否清空

void CString::Vacate()

{

s[0]='\0';

cout<<"Now have vacated string."<

char CString::GetAt(int nindex) const

{

if(nindex>1&&nindex<=GetLength()+1) return s[ nindex-1];

else

return '0';

}

void CString::Setat(int nindex,char ch)

{

if(nindex>1&&nindex<=GetLength()+1)

s[ nindex-1]=ch;

}

字符串的赋值:

void CString::Print()

{

cout<

}

字符的比较:

int CString::compare(CString& string)

{

if(strcmp(s,string.s)>0)

return 1;

else if(strcmp(s,string.s)<0)

return -1;

else

return 0;

}

int CString::compare(const char* psz)const

{

if(strcmp(s,psz)>0)

return 1;

else if(strcmp(s,psz)<0)

return -1;

else return 0;

}

CString operator +(const CString &string1,const CString &string2) {

char *newstring;

newstring=new char[strlen(string1.s)+strlen(string2.s)+1];

strcpy(newstring,string1.s);

strcpy(newstring,string2.s);

CString result(newstring);

return result;

}

串的析构:

CString::~CString()

{

//cout<

if(s!=NULL)

delete[]s;

}

赋值运算符的重载:

const CString & CString::operator =(const CString & stringscr)

{

if(s!=NULL)delete[]s;

s=new char[strlen(stringscr.s)+1];

strcpy(s,stringscr.s);

cout<<"赋值运算符重载被执行"<

return *this;

}

2.1.3调试及问题解决:

对于字符串这个程序,最让我头疼的是指针指向的地址重复释放,但却自己怎么又找不到在哪儿错。最后,经过老师的指导,也恍然大悟过来。这个错误也给我留下了无比深刻的印象,想必以后定能引以为戒…..

2.2链表:

2.2.1总体设计:流程图

2.2.2详细设计

登录界面:

主要代码:

cout<<’\t'<<'\t'<<'\t'<<"请选择所需操作"<

cout<

cout<<"\t\t1.创建链表\n"<<"\t\t2,置空链表\n"<<"\t\t3,求链表长度\n"<<"\t\t4,在指定位置插入结点\n"<<"\t\t5,删除指定数据的结点\n"

<<"\t\t6,删除指定位置的结点\n"<<"\t\t7,查找\n"<<"\t\t8,显示各结点数\n"<<"\t\t9,结束"<

对应各选项的相应函数:

cin>>n;

if(n==1)

l.createlist();

else if(n==2)

{

l.Makeempty();

}

else if(n==3)

{

cout<<"链表长度为:"<

}

else if(n==4)

{

for(;;)

{

int x,i,p;

cout<<"\t\t请输入要插入的数据:"<

cin>>x;

cout<<"\t\t请输入要插入的位置:"<

cin>>i;

p=l.insert(x,i);

if(p==1)

cout<<"\t\t已插入"<

else

cout<<"\t\t插入失败"<

int m;

cout<<"\t\t是否继续插入:1,是 2,否"<

cin>>m;

if(m==1)

continue;

if(m==2)

break;

else

{

cout<<"\t\t错误!"<

break;

}

}

}

else if(n==5)

{

int x;

cout<<"\t\t请输入要删除的数据:"<

cin>>x;

int p=l.Delete(x);

if(p==1)

cout<<"\t\t删除成功1|"<

if(p==0)

cout<<"\t\t链表为空或数据不存在,删除失败"<

}

else if(n==6)

{

int i;

cout<<"\t\t请输入要删除的位置:"<

cin>>i;

int p=l.remove(i);

if(p==1)

cout<<"\t\t删除成功|"<

if(p==0)

cout<<"\t\t链表为空或位置不存在,删除失败"<

}

else if(n==7)

{

int x;

cout<<"\t\t请输入要查找的数据"<

cin>>x;

int p=l.find(x);

if(p==1)

cout<<"\t\t查找成功"<

if(p==0)

cout<<"\t\t链表为空或数据不存在"<

}

else if(n==8)

{

cout<<"\t\t各结点数据为"<

l.display();

}

else if(n==9)

break;

else

{

cout<<"\t\t输入错误,请重新选择"<

}

}

创建链表:

操作方法提示,在输入数据后,若欲停止数据的输入,输入“0”以回到主界面。Node *createlist()

{

Node*tail,*p;

int n=1,info;

head=new Node;

head->data=0;//头结点保存链表长度

tail=head;

cout<<"请输入数据:"<

cin>>info;

while(info!=0)

{

n++;

p=new Node;

p->data=info;

tail->next=p;

tail=p; cout<<"请输入数据:"<>info; }

tail->next=NULL;

head->data=getlength(); return head;

}

链表的置空:void Makeempty()

if(head==NULL) { cout<<"链表为空"<

}

判断头结点是否为空:

if(head!=NULL)

{

Node *p=NULL;

while(head->next!=NULL) { p=head->next;

head->next=p->next;

delete p;

} head=NULL;

cout<<"链表已置空"<

}

求链表长度:getlength()

if(head==NULL)

{ return 0; head->data=0; // 查结点个数 else { for(n=1,p=head;p->next!=NULL;p=p->next) { n++; }

head->data=n; return n;

在链表中查找数值为x的结点:find(int x)

int find(int x)

{

Node *p;

int i=1,m=0;

p=head;

if(head==NULL)

return 0;

else

查找所有符合的结点:

{

while(p!=NULL)// {

if(p->data==x)

{

m++;

cout<<"位置为第"<

}

i++;

p=p->next;

}

if(m>0)

return 1;

else

return 0;

}

显示各个结点数据:display()

void display()

{

Node *p=head;

while(p!=NULL)

{

cout<data<<'\t';

p=p->next ;

}

cout<

}

2.2.3调试及问题解决:

链表编写过程中出现众多的错误,尤其是循环的问题,在程序的运行中因为自己的编写的错误出现多次无限的死循环。还有结点的插入和删除上开始时也出现无法准确定位的问题,也都一一解决。

2.3,ATM自动取款机模拟程序2.

3.1总体设计:流程图

2.3.2详细设计:

登陆系统主界面

开户业务模板:void openAccount()。

主要功能在于新开账户(也可为下面转账系统服务等做铺。)且储存信息。经提升,密码已可以包含字符。用户可根据提示,一步步完成操作。

主要代码:

void openAccount()//开户函数

{

system("cls");

cout<<"\t************************************\n"<

cout<<"\t* 开户业务*\n"<

cout<<"\t************************************\n"<

cout<<"\t欢迎使用开户业务,请按照提示操作!\n"<

cout<<"\n"<

cout<<"\t\t请输入你的用户名:";

cin>>user[st].n;

cout<<"\t\t请输入你的卡号:";

int k1;//k1表示新用户输入的卡号

cin>>k1;

int a=-1;//用来做标示

for(int i=0;i

{

if(user[i].k==k1)

{

a++;

}

}

if(a==-1)

{

user[st].k=k1;//将k1的数值赋值给user[st].k保存起来

cout<<"\t\t请输入你的性别:";

char xb[5];

cin>>xb;

strcpy(user[st].sex,xb);

cout<<"\t\t请输入密码:";

char m2[20];

cin>>m2;

strcpy(user[st].mm,m2);//保存用户输入可以包含字符的密码

cout<<"\t\t请输入你的开户金额:";

float km;

cin>>km;//km表示用户的开户金额

user[st].je=km;//je将开户时的金额赋值给user[st].je保存

if(km<10)

{

cout<<"\t\t你输入的金额小于10元或输入有误!\n";

}

else

{

cout<<"\t\t恭喜你,开户成功!\n"<

cout<<"\t\t你的用户名为:"<

cout<<"\t\t你的卡号为:"<

cout<<"\t\t你的当前余额为:"<

cout<<"\n"<

st++;//用于统计新开用户后现有的用户数

}

}

else

{

cout<<"\t\t你输入的卡号已存在!请核实!\n"<

}

}

缴费业务模板:

主要提供给用户缴费服务

关键代码:

cout<<"\t\t请输入你要缴费的金额:";

float j1;//j1表示用户存款时存取的金额

cin>>j1;

user[a].je=user[a].je+j1;

cout<<"\t\t恭喜你,缴费成功!当前余额为:"<

主要功能用于用户的提款

cout<<"\t\t请输入你要取出的金额:";

float j1;//j1表示用户粗款时存取的金额

cin>>j1;

if(j1>user[a].je)

{

cout<<"\t\t\a\a\a你输入账户余额仅为:"<

}

else

{

user[a].je=user[a].je-j1;

cout<<"\t\t取款成功!当前余额为:"<

查询余额业务模板:

主要提供用户余额的查询服务

cout<<"\t\t当前余额为:"<

查询个人信息业务模板:

主要提供用户个人信息的模板

cout<<"\t\t\t用户名:"<

cout<<"\t\t\t性别:"<

cout<<"\t\t\t卡号:"<

cout<<"\t\t\t当前余额:"<

转账业务模板:

提供用户转取个人金额服务的模板

关键代码:

cout<<"\t\t请输入你要转入的用户的账号:";

int m2,b=-1;//b用来标示

cin>>m2;

for(int i=0;i

{

if(user[i].k==m2)

{

b=i;

}

} Array if(b!=-1)

{

cout<<"\t\t你要转入用户的信息:\n"<

cout<<"\t\t姓名:"<

cout<<"\t\t性别:"<

cout<<"\t\t\a是否继续??继续请按任意键"<

char n;

n=getch();

cout<<"\n\t\t请输入你要转取的金额:";

float j1;//j1表示用户存款时存取的金额

cin>>j1;

if(j1>user[a].je)

{

cout<<"\t\t你的账户余额不足,不能进行转账!"<

}

else

{

user[a].je=user[a].je-j1;

cout<<"\t\t\a转账成功!当前你账户余额为:"<

}

对卡服务模板:

主要提供用户操作完毕后退卡的服务

主要代码:

cout<<"\t\t按Enter键返回主菜单!\n"<

getchar();

system("cls");

2.3.3调试及问题解决

起初,要解决的第一个问题是开户业务新用户信息的保存,之后想到将新用户的信息赋值于user[st]的办法。详情见代码步骤中注释。在程序的运行过程中也出现过大量的错误,不过大多都是一些小行的操作失误引起的,一个半引号导致一边又一边的更改搜索错误。在代码中已注释了详细的解释引导语。

三.结束语:

在这三个星期的充实的编程生活中,我对C++的认识也有了一个新的提升。明白了,想学好C++的秘诀其实就是多上机。对于以前很少上机操作的我,真正体会到上机的重要。时间虽然是不长的三周,但我却深刻感觉到自己得到的C++知识远比以前死看书巩固的多。另外,在编程过程中,往往因为自己的一个大意的标点,一个潜意识的括号,导致了大片大片的错误。返工搜索、更正错误。明白了,原来认真细致慢慢来,是在给自己省时。在最后看到自己一个个程序运行的那一刻,感觉到自己有种无比自豪的快乐,是程序给予的快乐。

时光荏苒,在您三个星期的陪护,三个星期的指导,三个星期的相处中。慢慢深深爱上编程这门儿学科。虽然有几分枯燥与烦心。但是在最后的快乐笑脸出现的那一刻,我们会明白什么是幸福。总之,衷心的感谢老师对于我们的指导与关怀。

四.源代码

4.1封装字符串

#include

using namespace std;

class CString

{

public :

CString(); //缺省构造函数,初始化为空串

CString(char ch,int nRepeat);//用一个字符重复n次,初始化字符串CString(const char*psz); //用一个字符串初始化

CString(CString &stringser); //拷贝构造函数

~CString();

int GetLength() const;

bool IsEmpty() const;

char GetAt(int nindex) const;

void Setat(int nindex,char ch);

void Print();

int compare(CString& string);

int compare(const char* psz)const;

friend CString operator +(const CString &string1,const CString &string2);

const CString & operator =(const CString & stringscr);

void Vacate();

private :

char *s;

};

CString::CString()

{

s=NULL;

}

CString::CString(CString& stringser)

{

s=new char[strlen(stringser.s)+1];

if(s!=0)

strcpy(s,stringser.s);

}

CString::CString(char ch,int nRepeat)

{

s=new char[nRepeat+1];

for(int i=0;i

s[i]=ch;

s[nRepeat]='\0';

}

CString::CString(const char*psz)

{

s=new char[strlen(psz)+1];

if(s!=0)

strcpy(s,psz);

}

int CString::GetLength() const

{ int i=0;

while (s[i]!='\0')

i++;

return i;

}

bool CString::IsEmpty() const

{

if(s==NULL)

return 1;

else

return 0;

}

void CString::Vacate()

{

s[0]='\0';

cout<<"Now have vacated string."<

char CString::GetAt(int nindex) const

{

if(nindex>1&&nindex<=GetLength()+1) return s[ nindex-1];

else

return '0';

}

void CString::Setat(int nindex,char ch)

{

if(nindex>1&&nindex<=GetLength()+1)

s[ nindex-1]=ch;

}

void CString::Print()

{

cout<

}

int CString::compare(CString& string)

{

if(strcmp(s,string.s)>0)

return 1;

else if(strcmp(s,string.s)<0)

return -1;

else

return 0;

}

int CString::compare(const char* psz)const

{

if(strcmp(s,psz)>0)

return 1;

else if(strcmp(s,psz)<0)

return -1;

else return 0;

}

CString operator +(const CString &string1,const CString &string2) {

char *newstring;

newstring=new char[strlen(string1.s)+strlen(string2.s)+1];

strcpy(newstring,string1.s);

strcpy(newstring,string2.s);

CSstring result(newsyting);

return result;

}

const CString & CString::operator +(const CString & stringscr) {

if(s!=NULL)delete[]s;

s=new char[strlen(stringscr.s)+1];

strcpy(s,stringscr.s);

cout<<"赋值运算符重载被执行"<

return *this;

}

CString::~CString()

{

//cout<

if(s!=NULL)

delete[]s;

}

void main()

{

char a[4]="y";char b[4];

CString c1("Hellow"),c2(c1);

cout<<"Stringc1 is:"<<" "; c1.Print();

cout<

cout<<"Stringc2 is:"<<" "; c2.Print();

cout<

CString c3('b',3);

cout<<"Stringc3 is:"<<" "; c3.Print();

cout<

cout<<"*******************以下是对串的基本操作****************"<

int num=c1.GetLength();

char ch;

cout<<"c1的长度是:"<<" "<

ch=c1.GetAt(5);

cout<<"获得字符串c1中第"<<5<<"个字符是:"<

cout<<"下面是插入字符串c1中一个特殊字符'd'"<

c1.Setat(5,'d');

cout<<"插入后字符串c1变为:"<<" ";

c1.Print();

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

cout<

if(c1.IsEmpty()==1)

cout<<"String is empty."<

else

cout<<"String isn't empty."<

cout<<"下面是判断字符串c1清空"<

c1.Vacate();

cout<<"清空后输出字符串c1:"<<" \n";

c1.Print();

cout<<"字符串已被清空"<

cout<<"请按任意键继续"<

cin>>b;

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

cout<<"****************以下是对串的赋值******************"<

CString c5=c2;

cout<<"String c5=c2 is:"<<" ";c5.Print();

cout<

课程设计报告模板)

课程设计报告模板()

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

课程设计(论文)任务书 软件学院软件+电商专业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)代码实现:优()、良()、中()、一般()、差();

C语言课程设计报告-游戏2048

东华理工大学C语言课程设计报告 学院:国际教育学院学院专业:电子信息工程 班级:1420606 学号:201420060638 姓名:钟天运

一、课程设计题目:游戏2048 二、课程设计要求: a)使用C语言编写2048这款游戏 b)能够正常运行,拥有游戏界面。 c)能正常进行游戏从开始到结束。 d)用户操作方便 三、设计思路: a)游戏介绍: i.2048是一款简单的数字类游戏,界面是一个 4*4的方形格子。每个格子里可以为空或者有 一个2^n的数值。 ii.用户可以输入4种指令,分别是:上下左右,游戏会根据用户的指定的方向,将格子中 的数值向对应方向进行移动,直至移动到最边 上的格子或者有其他数值占用,如果碰到等大 数值,将会进行合并。此外,成功移动后,会 在一个空格子随机生成一个2或者4 iii.游戏目标是合成2048这个数值或者更大的数值。 b)实现思路: i.可以使用二维数组来保存4*4格子中的数值 ii.指令,可以通过输入字符函数,读取用户

在键盘上的方向键,进行判断执行对应的代 码。 iii.游戏界面,可以使用简单的特殊制表符,来实现,并通过清屏函数来进行反复同位置打 印界面。 iv.需要判断游戏结束的函数,以及记录游戏分数和步骤的变量 v.当游戏结束时,能够询问用户是否重新开始。 vi.随机生成一个新数,可以调用随机函数,使用时间做种子。 c)实现难点: i.打印游戏界面,要实现灵活能根据棋盘数组里 面的数据灵活打印。 ii.执行操作时,数值的移动和合并。

四、流程图

五、C语言源代码 // 游戏2048.c #include "windows.h" #include "time.h" #include "stdio.h" #include "conio.h" #include "string.h" //宏定义常量方向键值 //const int LEFT = 75, UP = 72, RIGHT = 77, DOWN = 80; #define LEFT 75 #define UP 72 #define RIGHT 77 #define DOWN 80 const char error_str[] = "您上次输入的指令无法识别,请重新输入。"; struct board { int place[4][4]; long int stepn; long int num; //存储游戏分数 long int time; int dtk; //direction key 记录方向键,及操作方向 int over; int zeronum; }; //该函数为游戏运行函数,当只是玩游戏的时候。进入该函数,游戏控制函数。int main() { //place数组为棋盘,其中为零代表空,-1代表不能合并的牌,其他2的倍数值为本身含义,初始化为全0。 struct board board1, board_backup; int newgame(struct board *, int), show(struct board *), operate(struct board *); char str[100] = "首次运行游戏"; //用于记录系统返回给用户的信息,例如:上一步执行向左合并,按键有误等 newgame(&board1, 0); //调用函数为新局初始化,第二个

《C语言课程设计》实验报告

《C语言课程设计》报告 学院:信息工程学院 专业:信息管理与信息系统设计题目:通讯录程序设计班级:2016级一班 学号:201601510138 姓名:张进步 指导教师:杨菲菲 时间:12.24

学生通讯管理系统 1.1 设计目的 学习如何实现一个复杂的信息管理系统——学生通讯管理系统,能够实现老师对学生基本信息的记录、查询、修改。 通过本次学习,读者能够掌握: (1)如何设计主菜单和子菜单,以及各级菜单的响应与返回操作; (2)如何合理设计不同的结构体对系统中多个实体进行封装; (3)如何合理设计多个结构体数组管理不同实体对应的数据; (4)如何对复杂的函数过程进行拆分,用多个子函数进行封装; (5)进一步熟悉文件读取的相关操作。 1.2需求分析 本章的学生信息管理系统的主要功能面向老师,能够实现对学生信息进行录入、修改、查询。 学生信息方面的功能需求如下。 (1)新增学生信息,包括姓名、籍贯、电话号码(2)、电子邮箱。 (2)修改学生信息,可以选择对某个学生的某个属性值进行修改。 (3)查找学生信息,即输入要查找的学生学号,实现学生信息查询。 (4)显示所有学生信息,并以列表的形式清晰呈现。 1.3总体设计 系统功能结构图如图所示;学生信息管理系统 学生信息管理模块:包括4个子模块,分别是学生信息的录入,学生信息的修改,学生信息的查询,学生信息的浏览。

1.4详细设计与实现 1.4.1 预处理及数据结构 1.头文件 本项目涉及4个头文件,其中#include使用字符串的函数的时候需要添加此头文件,#include #include /*system使用的函数*/ #include /*getchar、getch函数使用的头文件*/ #include /*strcmp比较2个字符串是否一样*/ 2.宏定义 LEN sizeof(struct student)表示struct student的长度。DATA是按格式输出结构体的各项数据,能够方便输出操作,减少代码量。 #define_CRT_SECURE_NO_W ARNINGS #include #include #include #include #define LEN sizeof(struct student) #define FORMAT "%-8d%-15s%-15s%-15d%-15d%-15s\n" #define DATA stu[i].numb,stu[i].name,stu[i].nat,stu[i].num1,stu[i].num2,stu[i].mail 3.结构体 利用一个结构体struct student struct student/*定义学生信息结构体*/ { int numb;/*学号*/ char name[15];/*姓名*/ char nat[16];/*籍贯*/ int num1;/*电话号码1*/ int num2;/*电话号码2*/ char mail[40];/*邮箱*/ }; 4.全局变量 分别利用全局变量结构体数组struct student stu[50];来记录所有学生的基本信息,避免程序运行过程中多次初始化,方便各个式子函数调用。 struct student stu[50];

电子电路课程设计密码锁(满分实验报告)

密码锁设计报告 摘要: 本系统是由键盘和报警系统所组成的密码锁。系统完成键盘输入、开锁、超时报警、输入位数显示、错误密码报警、复位等数字密码锁的基本功能。 关键字:数字密码锁GAL16V8 28C64 解锁与报警 1

目录: 一、系统结构与技术指标 1、系统功能要求 (4) 2、性能和电气指标 (5) 3、设计条件 (5) 二、整体方案设计 1、密码设定 (6) 2、密码判断 (6) 3、密码录入和判断结果显示 (6) 4、系统工作原理框面 (7) 三、单元电路设计 1、键盘录入和编码电路图 (8) 2、地址计数和存储电路 (12) 3、密码锁存与比较电路 (12) 2

4、判决与结果显示电路 (14) 5、延时电路 (15) 6、复位 (17) 7、整机电路图 (19) 8、元件清单……………………………………………19四、程序清单 1、第一片GAL (21) 2、第二片GAL (23) 五、测试与调整 1、单元电路测试 (25) 2、整体指标测试 (26) 3、测试结果 (26) 六、设计总结 1、设计任务完成情况 (27) 2、问题及改进 (27) 3、心得体会 (28) 3

一、系统结构与技术指标 1.系统功能要求 密码锁:用数字键方式输入开锁密码,输入密码时开锁;如 果输入密码有误或者输入时间过长,则发出警报。 密码锁的系统结构框图如下图所示,其中数字键盘用于输入 密码,密码锁用于判断密码的正误,也可用于修改密码。开锁LED1亮表示输入密码正确并开锁,报警LED2亮表示密码有误或者输入时间超时。 开锁green 键盘密码锁 错误red 4

网站课程设计报告

第1节课程设计题目及背景 (3) 1.1 设计题目 (3) 1.2 设计背景 (3) 第2节网站设计的开发工具 (3) 第3节网站建设过程 (4) 3.1 网站系统分析 (4) 3.2 数据库的设计 (5) 3.3 功能模块介绍 (8) 第4节网站工作流程 (11) 4.1 连接数据库 (11) 4.2 用户登录 (12) 4.3 歌曲显示,以最新歌曲为例 (12) 4.4 音乐搜索 (12) 第5节网站显示效果 (15) 5.1 网站主页 (15) 5.2 歌曲分类页面 (16) 5.3 音乐搜索页面 (17) 5.4 用户留言页面 (17) 5.5 音乐播放器页面 (18) 5.6 后台管理主页面 (19) 5.7 用户管理页面 (19) 第6节总结和设计体会 (21)

第1节课程设计题目及背景 1.1 设计题目 构架一个音乐网站,要求网站必须包含音乐网站的一些基本功能,即前台的用户申请登陆功能,听歌功能,音乐搜索,音乐收藏功能,提交留言和后台的用户管理,歌曲管理,留言管理,系统管理。 1.2 设计背景 在互联网发展迅猛的今天,我们无时无刻不与网络接触,可以从中查找我们需要的信息,可以发布想让别人知道的信息,可以找到你不认识但真心的朋友,也可以第一时间看到国内外的重大事件。当我们无事可做的时候,便开始了娱乐方式的搜索,由此,很多音乐网站和视频网站应运而生,服务大家,为我们的生活增添了色彩。随着我国网民的增加,也促进了音乐网站的开发。 第2节网站设计的开发工具 2.1 Dreamweaver 8.0 2.2 Flash 8.0 2.3 Firework 8.0 2.4 Access数据库 2.5 IIS服务器 说明:Dreamweaver用于网站的开发,Flash用于网站flash 效果的制作,firework对图片进行处理,IIS作为我们的asp 网站服务器,数据库则采用微软的Access数据库。 第3节网站建设过程

c语言课程设计报告学生成绩信息管理系统源代码

实验报告 一、问题陈述及其需求分析 (一)问题陈述 学生信息管理系统是对学生信息的基本管理,其中包括以下及模块: (1)增加一个学生的信息(需输入要增加学生的所有信息); (2)统计本班学生总人数及男女生人数。 (3)分别按照学号查找学生的信息;若找到则输出该学生全部信息,否则输出查找不到的提示信息。 (4)按学号对所有学生信息排序,并输出结果; (5)删除一个学生的信息(需指定要删除学生的学号);同时显示删除后的结果。( 二) 功能需求分析 学生信息管理系统设计 学生信息包括:学号,姓名,性别,出生年月,电话 使之提供以下功能: 1、系统以菜单方式工作 2、建立链表并显示 3、插入新的学生信息 4、删除某学号的学生信息 5、查找某学号的学生信息 6、对学生信息排序 7、统计学生人数 8、输出学生信息 二总体设计 (一)模块 依据程序的数据结构,描述该程序的层次结构,如下图:

1、建立链表并显示 void createlist(struct stucode **r); 2、插入新的学生信息 void insert(struct stucode **r); 3、删除某学号的学生信息 void del(struct stucode **r); 4、查找某学号的学生信息 void search1(struct stucode *r); 5、对学生信息排序 void sort(struct stucode **r); 6、统计学生人数 void search2(struct stucode *r); 7、输出学生信息 void out(struct stucode *r); 1 建立链表并显示 2 添加学生信息 3 删除学生信息 息 4 按学号查找学生信 5 对学生信息排序 6统计学生人数 7输出学员信息 8 学生信息写入文件 0退出 main() 菜单函数

华中科技大学计算机学院C语言课设实验报告

华中科技大学计算机科学与技术学院 《C语言程序设计》课程设计 实验报告 题目:科研项目信息管理系统 专业:计算机 班级: 学号: 姓名: 成绩: 指导教师:李开 完成日期:2009年10 月20 日

科研项目信息管理系统一、系统功能结构模块图 二、数据结构设计及其用法说明 typedef struct lakey{ char name[30];/*团队名称*/ int total;/*自然科学基金的科研项目数*/ float dudu;/*经费数*/ struct lakey *next; }*plakey;/*统计3中用到的数据结构*/ typedef struct emmey{ char name[30];/*团队名称*/ int teacher;/*老师人数*/ int harden;/*项目数*/ float bizhi;/*比值*/ struct emmey *next; }*pemmey;/*统计4中用到的数据结构*/ typedef struct kPro{ char code[15];/*项目编号*/ char sort;/*项目种类*/ int aking1; char time[8];/*项目时间*/ float dudu;/*项目经费*/ int aking2;

char beiler[15];/*负责人*/ int aking3; char keynoName[30];/*所在团队名称*/ struct kPro *next; }harden,*pHarden; typedef struct Komo{ int teacher;/*老师人数*/ char name[20];/*院系名称*/ int student;/*学生人数*/ float bizhi;/*二者比值*/ struct Komo *next; }*pKomo;/*统计1中用到的数据结构,统计结果放在这个数据结构中*/ typedef struct kTea{ char name[30];/*团队名称*/ char beiler[15];/*负责人*/ int stuNum;/*学生人数*/ int aking2; int coco;/*老师人数*/ char colName[20];/*所在院系的名称*/ int aking1; struct kTea *next; pHarden child; }keyno,*pKeyno; typedef struct edward{ char name[20];/*院系名称*/ int totalnum;/*项目总数*/ int num973;/*973项目数*/ int num863;/*863项目数*/ float amount;/*经费数*/ struct edward *next; }*pedward;/*统计2中用到的数据结构*/ typedef struct kCol{ char name[20];/*院系名称*/ int aking; char beiler[15];/*院系负责人*/ struct kCol *next; char call[15];/*负责人电话号码*/ pKeyno child; }kekey,*pKekey;

单片机电子时钟课程设计实验报告

单片机电子时钟课程设 计实验报告 Pleasure Group Office【T985AB-B866SYT-B182C-BS682T-STT18】

《单片机原理与应用》课程设计 总结报告 题目:单片机电子时钟(带秒表)的设计 设计人员:张保江江润洲 学号: 班级:自动化1211 指导老师:阮海容 目录 1.题目与主要功能要求 (2) 2.整体设计框图及整机概述 (3) 3.各硬件单元电路的设计、参数分析及原理说明 (3) 4.软件流程图和流程说明 (4) 5.总结设计及调试的体会 (10) 附录 1.图一:系统电路原理图 (11) 2.图二:系统电路 PCB (12) 3.表一:元器件清单 (13) 4.时钟程序源码 (14)

题目:单片机电子时钟的设计与实现 课程设计的目的和意义 课程设计的目的与意义在于让我们将理论与实践相结合。培养我们综合运用电子课程中的理论知识解决实际性问题的能力。让我们对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立完成某些单片机应用系统的开发和设计打下一个坚实的基础。 课程设计的基本任务 利用89C51单片机最小系统,综合应用单片机定时器、中断、数码显示、键盘输入等知识,设计一款单片机和简单外设控制的电子时钟。 主要功能要求 最基本要求 1)使用MCS-51单片机设计一个时钟。要求具有6位LED显示、3个按键输入。 2)完成硬件实物制作或使用Pruteus仿真(注意位驱动应能提供足够的电流)。 3)6位LED数码管从左到右分别显示时、分、秒(各占用2位),采用24小时标准计时制。开始计时时为000000,到235959后又变成000000。 4)使用3个键分别作为小时、分、秒的调校键。每按一次键,对应的显示值便加1。分、秒加到59后再按键即变为00;小时加到23后再按键即变为00。在调校时均不向上一单位进位 (例如分加到59后变为00,但小时不发生改变)。 5) 软件设计必须使用MCS-51片内定时器,采用定时中断结构,不得使用软件延时法,也不得使用其他时钟芯片。 6)设计八段数码管显示电路并编写驱动程序,输入并调试拆字程序和数码显示程序。7)掌握硬件和软件联合调试的方法。 8)完成系统硬件电路的设计和制作。 9)完成系统程序的设计。 10)完成整个系统的设计、调试和制作。

网页设计课程设计报告

课程设计 课程名称:HTML5开发技术课程设计 专业班级:计科1201 学生姓名:伍志强 学号: 201216010506 指导教师:刘宏月 学期:2013-2014学年第一学期

HTML5开发技术专业课程设计任务书 说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页

1 需求分析 本课程设计为一个商业网站,大的框架为整个网站分为5个页面,分别为:主页面、公司的业务面,公司产品问题咨询面,公司产品的技术支持面,校园招聘界面。各个页面间都是相互连接的,方便读者更快捷地找到想了解的信息。在每个界面拥有的公司logo ,登陆界面,和一些视频的宣传和校园招聘网页的背景音乐,友情链接,插入的各种静动态图片,搜索栏。每个界面链接的公司的最新各种动态,和基本的各种文字说明,采用的是中英双板模式书写。 网站的目录结构如下: 伍志强------网站根目录 Css ------存放外置CSS文件 Images ------存放图片文件 Music ------存放背景音乐 JS------存放的javascript代码 .project------编译时建立的一个工程 Index系列------存放的网站的各个网页 2 概要设计

3 详细设计 页面的布局和风格 DIV+CSS的基本过程是先布局,对网页进行总体设计,再设计内容,对布局的每一部分进行设计。 DIV+CSS对内容的设计也体现内容和表现相分离的思想。对内容的表现的描述都在CSS中,内容可以应用CSS样式,不需要额外的HTML标签进行内容的修饰。 CSS网页布局的原理,就是按照HTML5代码中对象声明的 body { background:#131b20; font-family:Arial, Helvetica, sans-serif; font-size:100%;

c语言课程设计报告

C语言程序设计B 课程设计报告 设计题目:学生成绩管理系统年级班级: 学号: 姓名: 指导教师: 2020 年 6 月 18 日

目录 一、设计目的 (3) 二、课程设计内容和要求 (4) 三、总体设计 (5) 四、主要步骤 (12) 五、功能实现 (13) 六、功能测试 (64) 七、评价程序 (83) 八、课程设计体会 (84)

一、设计目的 程序设计能力是当代理工类大学生的必备能力,当学生学习了C语言之后,编程能力远远不能达到开发实际应用程序的要求,特备是对其中的指针、结构体、链表和文件部分的理解和应用都比较弱。 程序设计的目的是通过对面向过程的学习,将C语言的主要知识点进行综合,针对提高学生C语言程序设计能力,强化编写较大的应用软件能力,熟练运用已掌握的知识解决实际需要解决的问题,以达到更加熟知指针、链表、结构体、文件读取、标准库的使用。 主要目的为以下几点: 1、熟练掌握面向过程(结构化)程序设计基本知识; 2、综合运用所学知识解决实际问题; 3、受到面向过程(结构化)程序设计的基本训练; 4、体会面向过程(结构化)开发程序的过程。

二、课程设计内容和要求 1.课程设计内容: 学生通过使用C语言进行编写算法,开发学生成绩管理系统,以实现对学生成绩的管理。 2.课程设计要求 1)具有菜单,可以在菜单上进行选择; 2)能实现学生数据录入、修改、删除、查询; 3)能实现数据排序; 4)有数据输出功能; 5)有数据读取与存储功能; 6)一个学生的数据(称为:每条记录)包含姓名、学号、语文、数 学、英语、总分、名次等信息; 7)以结构方式存储每条记录; 8)多条记录以链表方式存储到内存; 9)随时可将全部数据存储到磁盘文件中,方便下次从磁盘读取数据。

电子商务系统分析与设计课程设计实验报告范本

电子商务系统分析与设计课程设计实 验报告

江苏科技大学 电子商务系统分析与设计课程设计 网上书城系统的开发 学生姓名张颖 学号 班级08404121 指导老师 成绩 经济管理学院信息管理系 1月8日 目录 一.系统规划 (4)

1.2初步调查 (5) 1.3确定电子商务模式和模型 (6) 1.4可行性分析和可行性分析报告 (6) 二.系统分析 (8) 2.1系统调查 (8) 2.2需求规格说明书 (9) 2.2.1 引言 (9) 2.2.2项目概述 (9) 2.2.3需求规定 (10) 2.2.4环境要求 (16) 2.3组织结构分析 (17) 2.4业务流程分析 (17) 2.5数据流程分析 (19) 三.系统设计 (21) 3.1系统总体结构 (21) 3.2网络基本结构 (22) 3.3系统平台选择 (22) 3.4应用系统方案 (23) 3.4.1各功能模块简要描述 (23) 3.4.4数据库设计 (24) 3.4.5用户界面设计 (31)

3.5.1客户端要求 (32) 3.5.2服务器端要求 (32) 3.5.3系统测试 (32) 四.支付系统设计 (39) 4.1支付协议选择 (39) 4.2支付系统数据流程分析 (39) 4.3支付系统安全需求分析 (41) 4.4支付系统总体设计 (42) 4.5支付系统功能 (44) 4.6交易流程设计 (46) 4.7支付系统安全设计 (47) 五.心得体会 (47) 一.系统规划 1.1明确用户需求 随着当今社会新系统大度的提高,网络的高速发展,计算机已被广泛应用于各个领域,因而网络成为人们生活中不可或缺的一部分。互联网用户应经接受了电子商务,网购成为一种时尚潮流。

C语言课程设计报告-模板

C语言课程设计报告 班级:16 物联网 一、题目说明 (1)读取输入信息,能正确进行数字运算

(2)拥有记忆功能,可查询最近几次计算结果并继续进行数字运算。 二、基本功能实现 (1)能实现两个数之间的加减,乘,除,乘方,开方等运算。 (2)实现记忆功能,可保留近十位结果,可用#键查看。(3)*键作为清0键,清除当前屏幕上的值为0表示重新开三、设计流程(可以画流程图,可以直接写说明)

四、代码 #include #include #include #include double yunsuan(double a, char operate, double b); //处理数值之间的运算void PutRes(double array[], double res, int *i); //保存该次运算结果 int main() { char str[40]; double a = 0; double b = 0; double res = 0; double history[10] = {0,0,0}; char opt; int i = 0; printf("欢迎进入计算功能(eg: 1 \n+ 1 ; '#':查询历史结果; 'q':退出程序)·\n"); while(1){

fgets(str,40,stdin); //将从键盘的一整行标准输入保存在字符串str中 if(sscanf(str,"%lf", &a) == 1){ //将str以长浮点型的格式放入a中,如果返回值为1,说明输入的是数值, scanf("%c %lf", &opt, &b); //获取操作符的值和另外一个操作数的值 res = yunsuan(a,opt,b); //调用yunsuan()函数计算,并将结果给res printf("%lf %c %lf = %lf\n\n",a, opt, b, res); PutRes(history, res, &i); //调用函数PutRes()将本次结果保存到数组history中(i用引用传递) // printf("%d\n", i); }else if(sscanf(str,"%c",&opt) == 1){ //将str以字符型的格式放入opt中,如果返回值为1,说明输入的是字符 if(opt == '#'){ //如果opt为‘#’,则显示history 中的数值 int j = 0; for(j = 0; j < i; ++j){ //i为history中存放的数值个数 printf(" %lf ", history[j]); } printf("\n");

89C51单片机课程设计之秒表设计实验报告

单片机课程设计报告 单 片 机 秒 表 系 统 课 程 设 计 班级: 课程名称:秒表设计 成员: 实训地点:北校机房 实训时间:6月4日至6月15日

目录 1课程设计的目的和任务 1.1 单片机秒表课程设计的概述 1.2课程设计思路及描述 1.3 课程设计任务和要求 2硬件与软件的设计流程 2.1系统硬件方案设计 2.2所需元器件 3 程序编写流程及课程设计效果 3.1源程序及注释 3.2原理图分析 3.3课程设计效果 4 心得体会

1. 课程设计的目的和任务 1.1单片机秒表课程设计的概述 一、课程设计题目 秒表系统设计——用STC89C51设计一个4位LED数码显示“秒表”,显示时间为000.0~9分59.9秒,每10毫秒自动加一,每1000毫秒自动加一秒。 二、增加功能 增加一个“复位”按键(即清零),一个“暂停”和“开始”按键。 三、课程设计的难点 单片机电子秒表需要解决几个主要问题,一是有关单片机定时器的使用;二是如何实现LED的动态扫描显示;三是如何对键盘输入进行编程;四是如何进行安装调试。 四、课程设计内容提要 本课程利用单片机的定时器/计数器定时和记数的原理,结合集成电路芯片8051、LED数码管以及课程箱上的按键来设计计时器。将软、硬件有机地结合起来,使得系统能够正确地进行计时,数码管能够正确地显示时间。其中本课程设计有三个开关按键:其中key1按键按下去时开始计时,即秒表开始键,key2按键按下去时数码管清零,复位为“00.00”. key3按键按下去时数码管暂停。 五、课程设计的意义 1)通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的 应用进一步的了解。 2)掌握定时器、外部中断的设置和编程原理。 3)通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。 4)该课程通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统, 拥有正确的计时、暂停、清零,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义 1.2课程设计思路及描述

土木工程课程设计报告

页眉 土木工程课程设计 学院:建筑工程学院 1142 土木班级: 号:1141401227 学 秦齐姓名: 陈宝海指导老师:

页脚 页眉 目录 1. 工程概况 施工方案2. 3. 施工准备工作计划 4. 资源需要量计划 施工准备工作计划5. 6. 施工现场平面布置主体分部分项工程 7. 附图: 施工平面布置图一、 施工进度计划图二、

页脚 页眉 1.工程概况 本工程为某高级中学综合楼,位于解放路。采用现浇柱,预制梁,整体装配式钢筋混凝土框架结构。 1.1 层高及建筑面积:总共六层,顶高23.1m,1-2层层高4.8m,3、4、5层层高为3.3m,6层层高为3.6m。总建筑面积7834m。21.2 绝对标高:±0.00相当于绝对标高425.044。 1.3 结构方案:本工程为装配整体式框架结构,横向框架梁为预制迭合梁,纵向框架梁,次梁,柱,楼梯等均为现浇。楼盖除厕所、盥洗、水箱间及二层售饭处为现浇外,其余均为预制空心板,上有4cm整浇层。墙体为非承重墙,外墙为240m厚普通粘土砖墙,内墙为大孔空心砖墙。施工时横向预制梁吊装后再现浇纵向框架梁和次梁。 1.4 楼地面:水泥砂浆地面用于厨房和库房,教室宿舍等。水磨石地面用于上述以外的其它部位,底层地面垫层为60厚100素混凝土。#1.5 顶棚及墙面:楼梯间为石膏板隔墙,贴白色塑料壁纸。其它顶棚及墙面均为石灰砂浆打底,纸筋灰罩面,喷白灰浆二道。 1.6 外墙面:为绿色水刷石,局部构件(檐口、阳台、雨蓬)及凸出墙面壁柱等贴马赛克。1.7屋面防水层:沥青胶隔汽层,水泥蛭石保温层,二毡三油防水层上铺绿豆砂。 二、施工方案

c语言课程设计报告书

课程设计报告书 所属课程:c语言 项目:库函数模拟系统 指导老师:邹姝稚 班级:软件1401 姓名:江闯 学号:141403107 分数:

1.任务描述: 本系统开发的代码模拟了下列库函数的功能: (1).模拟gets和puts的功能:能接收一个字符串,将其写入ASCII文件,并且可以读出显示。 (2).在不使用字符串库函数的条件下,编程实现字符串的拷贝,连接,求长,倒置功能。 (3).字符串加密功能:将一段明文建立到一个ASCII文件中,按加密的算法加密后写入密文文件,最终实现将明文和密文文件都显示出来。 (4).编程实现字符串与对应数字的相互转换功能。 2.总体设计: 模块调用图: 图1

函数调用图: 图2 函数功能: (1)函数gp( ):模拟gets和puts的功能 (2)函数kaobei( ):实现字符串的拷贝 (3)函数lianjie( ):实现字符串的连接 (4)函数qiuchang( ):实现字符串的求长 (5)函数daozhi( ):实现字符串的倒置 (6)函数jiami( ):实现字符串的加密功能,最后将明文和密文文件都显示出来 (7)函数zhuanhuan1( ):将数字字符串转换为对应的数字 (8)函数zhuanhuan2( ):将数字转换为对应的数字字符串 3.详细设计: (1).模仿gets和puts功能: gets和puts功能与scanf和printf函数的功能相似,但是也不是完全相同,本系统模拟功能的程序总共运用了两次函数调用技术,模拟gets运用了一次,模拟puts运用了一次。 (2)..字符串的拷贝功能: 字符串的拷贝功能程序设计源于strcpy的功能,其中运用了字符串数组和指针的相关技术,还运用了一组while语句,实现语句的循环,从而将一个字符串拷贝到一个空数组中。

中南大学电工电子课程设计实验报告

中南大学 电工电子技术课程设计报告 题目:可编程乐曲演奏器的设计 学院:信息科学与工程学院 指导老师:陈明义 专业班级: 姓名: 学号:

前言 随着科学技术发展的日新日异,电工电子技术在现代社会生产中占据着非常重要的地位,因此作为二十一世纪的自动化专业的学生而言,掌握电力电子应用技术十分重要。 电工电子课程设计的目的在于进一步巩固和加深所学电工电子基本理论知识。使学生能综合运用相关关课程的基本知识,通过本课程设计,培养我们独立思考的能力,学会和认识查阅学习我们未学会的知识,了解专业工程设计的特点、思路、以及具体的方法和步骤,掌握专业课程设计中的设计计算、软件编制,硬件设计及整体调试。设计过程中还能树立正确的设计思想和严谨的工作作风,达到提高我们的设计能力的目标。 从理论到实践,往往看似简单,实则是有很大的差距的,通过课程设计,可以培养我们学到很多东西,不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正的学到知识,从而提高自己的实际动手能力和独立思考的能力。 在次,特别感谢老师给我们以实践动手的机会,让我们对以前的知识以复习,整合,并从理论走向实践,相信我们都会在这次课程设计中学到很多!!!

目录 前言 (2) 正文 第一章系统概述 (4) 系统功能 (4) 系统结构 (4) 实验原理 (4) 整体方案 (5) 第二章单元电路的设计与分析 (5) 音频发生器的设计 (5) 节拍发生器的设计 (6) 读取存储器数据 (7) 选择存储器地址 (8) 控制音频电路设计 (8) 第三章电路的安装与调试 (9) 第四章结束语 (9) 元器件明细表 (10) 参考文献 (10) 附录 (11)

课程设计报告与开发

任务导向式课程设计与开发方法培训 解决任何问题的核心是:学习成长改变 学习:要有终身学习的能力,也就是学力 成长:当你的成长速度跟不上爱人时,婚姻就出现问题 当你的成长速度跟不上学生时,教育就出现问题 当你的成长速度跟不上老板时,工作就出现问题 当你的成长速度跟不上下级时,管理就出现问题 当你的成长速度跟不上市场时,公司就出现问题 改变:改变才是最伟大的历练。 情商和平台:一根绳子可以卖五块,但绑在螃蟹上就值五十块,这就是平台。想成功先发疯,头脑简单往前冲。 进入课程: 小组讨论: 问题:任务完成过程中的知识点如何体现? 开发目标 信息化 标准定位 到底对学生有没有帮助? 一、课程开发是什么? 开发一门课,包含什么 为什么有这么多问题出现?

1.没有统一的方法论。 2.每一个任课教师永远站在局部,不知专业标准是什么。 3.其实课程开发的能力是教育部对每一个教师的要求。 二、为什么是企业的人来分享职业教育课程设计与开发? 1.我国职业教育面临的挑战 一是高校专业设置,人才培养方向与市场需求变化不同步二是毕业生毕业找不工作,企业找不到人 2.中国经济发展的机遇与挑战 无法支撑整个经济的转型, 3.面对新机遇,我们能做些什么 三个对接:专业设置与产业需求、课程内容与职业 行为的改变是达成业务结果的fcwt 三、基于行为改变的课程设计开发模型--MADDIE Management课程开发项目管理 Analyses需求分析 design课程架构设计 deveiopment课程内容开发 Evaluation课程评估

提问:MADDIE 课程设计开发方法论的好处是什么? 一是提高课程质量;二是减轻开发难度;三是缩短开发周期;四是降低教学难度。 小结:概念;意义和好处。 四、课程开发项目管理 提问:在课程开发项目启动阶段,你曾经遇到哪些问题? 做好统筹规划, 做好三件核心事:A 需求分析、D 课程架构设计、D 课程内容开发。 课程开发项目管理 团队、时间和预算是三个要素 (一)课程开发计划 团队、时间和预算 团队: 1.需要什么角色的人(项目经理、教学设计者、业务内容专家、图形美化师、文档开发者、种子讲师);

(完整版)C语言课程设计实验报告

目录 目录 (1) 第1章问题描述 (2) 1.1 题目 (2) 1.2基本要求 (2) 第2章需求分析 (2) 1.1软件的基本功能 (2) 1.2输入/输出形式 (2) 1.3测试数据要求 (3) 第3章概要设计 (3) 1.1主程序 (3) 第4章详细设计 (4) 1.1数据类型 (4) 1.2伪码算法 (4) 1.3 程序流程图 (7) 第5章操作 (8) 1.1 进入足球比赛积分排行榜界面 (8) 1.2进入目录 (8) 1.3输入球队比赛信息 (10) 1.4 显示九轮比赛排行榜 (12) 1.5 保存数据 (15) 1.6 由D 盘查看数据 (16) 第6章参考文献 (16)

第1章问题描述 1.1 题目 足球比赛积分排行榜程序 1.2基本要求 (1)10个足球队进行9轮循环赛,胜一场积3分,平一场积1分,输一场积0分。 (2)如果两个队积分相同,进行净胜球的比较,如果净胜球再相同进行总进球的比较。 (3)编写一程序输入每轮比赛的比分,并可以存储。 (4)最后统计出每轮比赛的积分榜。 第2章需求分析 1.1软件的基本功能 (1)输入10个足球队的9轮比赛进球数。 (2)计算10个球队的积分,净胜球,总进球。 (3)对9轮比赛进行排序。 1.2输入/输出形式 由键盘输入,屏幕输出,并且以TXT形式保存。

1.3测试数据要求 输入九轮比赛10个足球队的进球数,由系统统计积分、净胜球、总进球数,并输出。 第3章概要设计 1.1主程序 头文件: #include 说明:main函数的头文件,控制整个程序。 #include 说明:清屏的头文件。 #include 说明:包括了大量的函数原型,调用现成的库函数。 #include 说明:基于char*的字符串处理函数。 全局变量: void input(); 输入数据函数 void sort(); 排序数据函数 void display(); 显示数据函数 void save(); 保存数据函数

电子CAD课程设计实验报告

一.课程设计的目的 课程设计以电子线路CAD软件设计原理为基础,重点在硬件设计领域中实用的电子线路设计软件的应用。掌握电子线路设计中使用CAD的方法。为后继课程和设计打下基础。 通过电路设计,掌握硬件设计中原理图设计、功能仿真、器件布局、在线仿真、PCB设计等硬件设计的重要环节。 二.课程设计题目描述和要求 2.1振荡电路的模拟和仿真。 由555定时器构成多谐波振荡电路,用模拟的示波器观察输出的信号,熟悉555定时器构成多谐波振荡电路的基本原理,熟悉proteus的基本操作,和各元器件的查找。 2.2 8051单片机 用80c51单片机完成以下功能:(1)构成流水灯的控制电路,使八个流水灯轮流点亮。(2)构成音乐播放的简单电路。(3)构成串口通信电路,完成信息在单片机和串口之间的传播。(4)构成8255键盘显示模块。(5)构成A/D和D/A 转换模块。 首先用模拟器件构成基本电路,然后在单片机中加入驱动程序,运行仿真,最后对电路进行调整校正,完成相关功能。 熟悉单片机实现相关功能的基本原理,对单片机有个框架的了解。学习用proteus仿真单片机电路中不同模块间的组合,扩展单片机电路的功能。 三.课程设计报告内容。 3.1设计原理 3.1.1振荡电路仿真的原理 振荡电路原理: 555管脚功能介绍: 1脚为地。2脚为触发输入端;3脚为输出端,输出的电平状态受触发器控制,而触发器受上比较器6脚和下比较器2脚的控制。 当触发器接受上比较器A1从R脚输入的高电平时,触发器被置于复位状态,3脚输出低电平; 2脚和6脚是互补的,2脚只对低电平起作用,高电平对它不起作用,即电压小于1Ucc/3,此时3脚输出高电平。6脚为阈值端,只对高电平起作用,低电

相关文档
最新文档