当前位置:文档之家› c++课程设计四则运算.doc

c++课程设计四则运算.doc

c++课程设计四则运算.doc
c++课程设计四则运算.doc

Vc++课程设计报告

题目名称:四则运算

班级:测控技术与仪器

姓名:周赛

学号:914101170150

一、程序功能简介

该程序用字符串形式接受一个带括号的四则运算表达式,然后按照四则运算优先级的算法先括号,后乘方、乘除、加减这样的顺序将这个算式解出。

该程序的设计比较巧妙,是在主程序中反复查找最后一对括号,将其中的结果计算出来,去掉括号,这样的过程持续下去,最后导致所有的括号都去除,解出算式。

二、课程设计要求

(1)用类的要求改写程序,将数据和函数封装到类中。

(2)修改主程序,使程序可以反复运算,直到选择退出为止。

(3)扩充程序功能,使程序适合浮点数运算。

(4)增加程序的判断功能,当有非法的输入时(如字母等),给出提示信息并退出运算,当输入带有空格时,能将空格滤除。

三、程序设计思想

(1)类的封装

实际上该字符串类基本类似于c++中的string类,比string类多定义了浮点数与字符串的相互转换的函数,输入输出友元函数,可以从string类派生出CStr类,这样,类的定义就更加简单,且可以利用很多现成的成员函数。

(2)主程序结构算法的设置

定义char类型的变量用来存储字符串,定义CStr类用于对字符串操作函数的引用。

先对输入字符串用Judge函数进行输入正确性的判断及取出空格内容;

然后用charinstr函数在字符串中反复查找最后一对括号;

用midstr函数提取出来,用calculate函数进行计算;

并用left函数与right函数及addstrings函数将所找到这对括号的左边、右边及运算结果以字符串的形式合并成一个新的字符串;

重复上述操作直至字符串中不再有括号;

最后用calculate函数进行最后的计算返回计算结果。

紧接着进行是否退出计算的输入判断,完成程序反复运算的功能。

四、详细设计

①判断功能:用类中定义的judge函数实现,返回值为1即合法,为0即不合法。

去除空格:定义p、s两个指针指向字符串,r指针指向p指针实现p、s指针在字符串中的遍历,用p指针找到第一处空格处,再用s指针找到p指向位置以后最近一个不是空格处,赋值语句*p=*s,继续向下遍历字符串直至结束。

非法输入:定义destination指向字符串,列举算式中出现的合法的字符,通过遍历字符串找到非法输入字符,返回0;

非法算式逻辑:包括运算符号相连,以及违背运算法则等现象,通过对运算符号的遍历比较实现;还有包括左括号前或右括号后紧挨数字,通过定义一个新字符串数组指向字符串来寻找括号并判断括号前后是否合法;非法,返回0;

全都合法返回1.

②数字字符串转换成数字:用类中定义的val函数实现,扩充到浮点数的运算范围。

定义char类型的source指针指向字符串,用charinstr函数寻找字符串中小数点位置,以此判断整数还是浮点数,如果整数即用10的相应位数的乘方来乘以相应字符位置字符的数字,并进行累加,最后返回result;如果是浮点数,则分为整数与小数部分依次进行计算,整数同上,小数部分则用相应字符位置字符所代表的数字除以10的相应位数的乘方,并进行累加,最后将整数小数部分的和返回result。

③字符串的连接,通过类中定义的left、right、midstr、addstrings函数配合实现。

通过left、right、midstr三个函数进行字符串的提取,addstrtings函数进行三个指针的遍历实现两个字符串的合并。

④数字的字符串化,通过类中定义的str函数实现。

类比val函数一样区分整数与浮点数,将数字的每一个数字单个提取出来通过与字符‘0’的比较转化为相应字符复制给递增的指针。

⑤算式的计算,通过类中定义的calculate函数实现。

依次按照^*/+-的顺序用charinstr函数寻找运算符号,并用相应函数进行字符串与数字之间的转换,以及新的字符串的合并,返回计算结果。

⑥友元函数的定义,定义输入输出友元函数,重载赋值运算符等,实现字符串之间的加法。

五、程序调试的过程

出现问题:

①开始编写完整个程序,出现许多编写错误,一个个改正;

②在实现浮点数的扩充过程中的小数部分,以及输入合法性的判断过程漏掉情

况,指针的误用等;

③有时单独的一个函数不能搞懂或错误不能改正,就单独在编写一个类似程序,

多次调试运行,来弄懂并加以改正;

解决办法:查阅书籍,上网搜索,独立思考,询问同学老师,多次上机调试等;六、输入输出数据

开始界面:

非法输入判断:

①非法字母:②运算符紧挨:

③左括号前或右括号后为数字:

④括号为中文符号:

清理空格:

运算第一个输入字符串算式结果:

退出判断:继续运算:

退出运算:

浮点数的加入:

七、课程设计总结

经过这次庞大复杂的课程设计过程,是我对c++知识有了更加深刻的理解,引起了我对c++语言世界的无限好奇心和探索欲,感慨到了世界的神奇与微妙,程序控制的无限用途以及自身的渺小;

在其中编写判断括号前后是否合法语句时,指针遍历不易实现,于是经过多次调试后重新定义了一个字符串数组来实现,这给了我很大的启示,只要努力并不断尝试新的东西

一定会成功;

还有程序中友元函数与运算符重载部分,由于知识掌握不够牢固,反复调试查阅书籍,最终得到了解决,也使得我对这方面的知识获得了更为深刻的理解与认知;

浮点数的加入要进行小数点数位的取舍,函数中设定为小数点儿后六位,因此浮点

数运算过程中每次都会出现六位小数的现象,使得结果有0.000001的误差,通过单独编写

类似函数多次调试,使得我对c++语言中对double型向int型变量转化的规律的理解获得

了更深层次的理解;

通过编写过程,体会到了细节的厉害,有时一个微小的错误就能使整个程序而不能

正确运行;

八、源程序注解

#include

#include

#include

char pause;

int len(char*source) //算出字符串的长素

{ int retval=0;

while(*(source+retval++)!=0){}

return --retval;

}

class CStr //定义字符串类

{

private:

int nlen; //字符串长度

char *pstr; //字符串首地址

public:

CStr(){};

CStr(char *str) {nlen=len(str);pstr=str;}

int Getlen(){return nlen;} //返回字符串长度

char*Getstr(){return pstr;} //返回字符串首地址

CStr(CStr&str){nlen=str.Getlen();pstr=str.Getstr();} //拷贝构造函数

char*Getpstr(){return pstr;}

void midstr(CStr & str1,int start,int length); /*返回指定字符串类中从nStart序号开

始nLength长度的字符*/

void left(CStr & str1,int length); /*返回指定字符串中从左边开始nLength个字符*/ void right(CStr & str1,int length); /*返回指定字符串中从右边开始nLength个字符*/ calculate(); //计算该字符串所代表的四则运算的值(内无括号)

friend int charinstr(char); //友元函数,判断字符是否在字符串中

double val(); //求字符串代表的数字字符的数值

str(double val); //将数值表示成字符串的形式

friend istream &operator>>(istream &,CStr &); //重载输入运算符

int Judge(); //判断输入是否合法,滤除空格

};

void CStr::left(CStr & str1,int length) //从参数指向的地址左边取Length个字符赋给目的

字符串

{ char*destination=pstr;

char *source=str1.Getstr();

*(destination+--length+1)=0; //目的字符串以0 结尾

while(length>=0) //赋值Length个字符

{ *(destination+length)=*(source+length--); }

}

void CStr::midstr(CStr & str1,int start,int length) //从参数指向的地址处从start位置开始取length个字符赋给目的字符串

{ char *source=str1.Getstr();

source+=start-1; //开始赋值处的地址

char*destination=pstr;

*(destination+--length+1)=0; //目的字符串以0 结尾

while(length>=0) //赋值Length个字符

{ *(destination+length)=*(source+length--); }

}

void CStr::right(CStr & str1,int length) //从参数指向的地址右边取Length个字符赋给目的字符串

{ char *source=str1.Getstr();

while(*source!=0){ source++; } //移至字符串尾部

char*destination=pstr;

source-=length; //跳至欲赋值的首地址

*(destination+--length+1)=0; //目的字符串以0 结尾

while(length>=0) //赋值Length个字符

{ *(destination+length)=*(source+length--); }

}

int charinstr( char *destination,char char_to_find) //判断字符串char_to_find是否在目的字符串中,若在,返回其所在位置,若不再返回0

{ int pos=0;

while(*(destination+pos)!=0) //循环查找

{ if(char_to_find==*(destination+pos++))

{ return pos; } //找到,返回其位置

}

return 0;

}

CStr::str(double value) //将value的值转换为字符串的形式返回,加入浮点数

{ char*tempdest=pstr;

int a=0; int b=(int)value;

double c=value-b;

int multiplier=1000000000;

for(multiplier=1000000000;multiplier!=0;multiplier/=10)

{ *tempdest='0'+(char)(b/multiplier);

b-=(b/multiplier)*multiplier;

if((*tempdest!='0')||(a))

{ a++;tempdest++; }

}

if(c==0) //如果value为整数

{*tempdest=0;}

else //如果value为浮点数

{ *tempdest++='.';

for(a=1;a<=6;a++)

{ c*=10;int d=(int)c;

if(d!=0&&a<=6)

{*tempdest++='0'+d;}

c-=d;

}

*tempdest=0; //赋值字符串最后一位为0

}

}

char*addstrings(char*destination,char*source1,char*source2) //两个字符串合并,结果在第一个参数中

{ char*tempdest=destination;

while(*source1!=0){*(tempdest++)=*(source1++);}

while(*source2!=0){*(tempdest++)=*(source2++);}

*tempdest=0; //NULL

return destination;

}

double pwr(double a,double b) //计算a的b次方

{ double result=1;

for(int c=1;c<=b;c++){result*=a;}

return result;

}

double CStr::val() //将数字字符串转换成数值(包括浮点数)

{ char*source=pstr;

double result=0;

CStr nstr(source);

int z=charinstr(source,'.'); //从source字符串中找到小数点

if(z==0) //如果为整数

{ int multiplier=(int)pwr(10,len(source)-1);

while(*source!=0) //依次遍历每一个字符

{ result+=(*(source++)-'0')*multiplier;multiplier/=10;} //将相应字符转化为对应位数的整数,并依次累加获得所需整数数

return result;

}

else //如果为小数,此时指针指向小数点的位置

{ char a1[50];

CStr A1(a1);

A1.left(nstr,z-1); //返回此时nstr指向的地址左边的z-1个字符,即所需浮点数的整数部分

char*nint=A1.Getstr(); //将A1的内容赋值给nint指针

int multiplier=(int)pwr(10,len(nint)-1); //定义multiplier等于10的整数位数的乘方

while(*nint!=0)

{ result+=(double)(*(nint++)-'0')*multiplier;multiplier/=10; } //将浮点数整数部分字符串转换为数值

char a3[50];

CStr A3(a3);

A3.midstr(nstr,z+1,len(source)-z); //返回从nstr指向地址的z+1位置开始的(len(source)-z)个字符,即所需浮点数的小数部分

char *ndouble=A3.Getstr(); //将A3的内容赋值给ndouble指针

for(multiplier=10;*ndouble!=0;ndouble++) //依次遍历ndouble指向的每一个字符

{ result+=((double)(*(ndouble)-'0'))/(double)multiplier; multiplier*=10; }

//将相应字符除以对应数位的10的乘方获得该位的小数并依次相加

}

return result;

}

char*assignstr(char*source,char*destination)//字符串赋值

{ char*tempdest=destination;

while (source!=0){*(tempdest++)=*(source++);}

*tempdest=0;

return destination;

}

CStr::calculate()

//计算数字算式形式的字符串,将其转换为数字形式并计算出来,然后再将结果转换为字符串的形式,此算式没有括号,遵循的原则是先乘除后加减

{ char*string=pstr;

CStr nstr(string);

char buf1[50],buf2[50],buf3[50],buf4[50],buf5[50];

CStr cuf1(buf1),cuf2(buf2),cuf3(buf3),cuf4(buf4),cuf5(buf5);

char opstr[6]="^/*+-";

double leftnr;

double rightnr;

int oppos;

int z;

double result;

for(int pos_in_opstr=0;pos_in_opstr<=4;pos_in_opstr++) //先找优先级高的运算符,直至将算式中所有的运算符都找出来

{ while(charinstr(string,opstr[pos_in_opstr]))

{ oppos=charinstr(string,opstr[pos_in_opstr]); //找到后,将运算符左边的数字字符取出转换为数字

for (z=oppos-2;z>=0;z--)

{ if

((*(string+z)=='+')||(*(string+z)=='/')||(*(string+z)=='-')||(*(string+z)=='*')||(*(string+ z)=='^'))

{ cuf1.midstr(nstr,z+2,oppos-z-2); leftnr=cuf1.val(); z=-1; }

else if(z==0)

{ cuf1.left(nstr,oppos-1); leftnr=cuf1.val(); }

}

for(z=oppos;z

{

if((*(string+z)=='+')||(*(string+z)=='/')||(*(string+z)=='-')||(*(string+z)=='*')||(*(

string+z)=='^'))

{ cuf2.midstr(nstr,oppos+1,z-oppos);

rightnr=cuf2.val();z=len(string);}

else if(z==len(string)-1)

{ cuf2.right(nstr,len(string)-oppos); rightnr=cuf2.val(); }

}

//对这两个数字进行计算,结果在result中

if(opstr[pos_in_opstr]=='+')

{result=leftnr+rightnr;}

else if (opstr[pos_in_opstr]=='-')

{result=leftnr-rightnr;}

else if (opstr[pos_in_opstr]=='/')

{result=leftnr/rightnr;}

else if (opstr[pos_in_opstr]=='*')

{result=leftnr*rightnr;}

else if (opstr[pos_in_opstr]=='^')

{result=pwr(leftnr,rightnr);}

//计算后,将结果转换为字符串,然后将左右未运算过的字符串与其连接起来

cuf4.left(nstr,oppos-len(&buf1[0])-1);

cuf5.str(result);

addstrings(&buf3[0],cuf4.pstr,cuf5.pstr);

cuf5.right(nstr,len(string)-oppos-len(&buf2[0]));

addstrings(string,cuf3.pstr,cuf5.pstr);

}

}

cout<<"运行的结果是"<

}

istream & operator>>(istream&is,CStr&ss)

{ char a[50];

char *x=a;

char *y=ss.pstr;

cin.getline(x,50);

while(*x!=0) {*(y++)=*(x++);}

*y=0;

return is;

}

int CStr::Judge() //新增程序判断功能

{//三个指针依次遍历字符串,去除空格

char *p,*s,*r,*source=pstr;

p=source;s=p+1;

while(*p!=0)

{ r=p;

if(*p==' ')

{ while(*s!=0) {*p=*s;p++;s++;}

*p=0;p=r;s=p+1;

continue;

}

p=r+1;s=p+1;

}

//找到除基本运算符和数字外的非法输入

char *destination=source;

while(*destination!=0)

{

if('('<=*destination&&*destination<='+'||'-'<=*destination&&*destination<='/'||'0'<=*d estination&&*destination<='9'||*destination=='^'||*destination==' ')

{destination++;}

else{return 0;} //找到非法输入,返回0

}

//找到非法逻辑

destination=pstr;

if(*destination=='^'||*destination=='*'||*destination=='/'||*destination=='+')//一开始为运算符

{ return 0;}

int pos_in_opstr;

int pos;int z;

char opstr[6]="^/*+-";

for(pos_in_opstr=0;pos_in_opstr<=4;pos_in_opstr++)

{ while(charinstr(source,opstr[pos_in_opstr]))

{ pos=charinstr(source,opstr[pos_in_opstr]);

z=pos;

if(*(source+z)=='^'||*(source+z)=='*'||*(source+z)=='/'||*(source+z)=='+'||*(source+z) =='-'||*(source+z)==0)

{return 0;} //运算符后紧接着又是运算符,返回0

z-=2;

if(*(source+z)=='^'||*(source+z)=='*'||*(source+z)=='/'||*(source+z)=='+'||*(source+z) =='-'||*(source+z)==0)

{return 0;} //两个运算符相距非法,返回0

else{source+=pos;} //继续遍历字符串

}

}

char m[50];int n=0;

strcpy(m,pstr);

while(m[n])

{ if(m[n]=='(')

{ if(n==0) {n++;continue;} //左括号位于开头,继续向下遍历

else if('0'<=m[n-1]&&m[n-1]<='9')

{return 0;break;} //如果左括号左边是数字,没有运算符号,非法,返回0 }

if(m[n]==')')

{ if(m[n+1]==0) {n++;continue;} //右括号位于结尾,继续

else if('0'<=m[n+1]&&m[n+1]<='9')

{return 0;break;} //如果右括号右边是数字,没有运算符号,非法,返回0 }

n++;

}

return 1;

cout<<"去除空格后的算式:"<

}

void main()

{ CStr myrecord;

cout<<"\2 欢迎使用四则运算程序 \2 \n";

cout<<"\2 \2 \n";

cout<<"\2 \2 \n";

cout<<"\2 \2 \n"; cout<<"\2 \2 \n";

cout<<"\2 \2 \n"; cout<<"\2 请按回车键继续 \2 \n";

cin.get(pause);

system("cls");

int choice=1;

while(choice) //进行退出判断,使程序可以反复运算

{ char strn[50],duf1[50],duf2[50],duf3[50],duf4[50],duf5[50];

CStr buf1(duf1),buf2(duf2),buf3(duf3),buf4(duf4),buf5(duf5),origin(strn),oristr(strn);

int z,lastopen;

cout<<"请输入一个算式\n";

operator >>(cin,oristr);

if(oristr.Judge()==0) //判断输入是否合法

{; cout<<"输入有误,请重新输入\n"; continue; }

else

{ cout<<"输入的算式是:"<

{ for(z=0;z<=len(&strn[0]);z++)

{ if(strn[z]=='(') {lastopen=z;} //找到最后一个左括号的位置

if(strn[z]==')') //找到第一个右括号,将左右括号中的字符串取出计算

{ buf1.midstr(oristr,lastopen+2,z-lastopen-1);

cout<<"在"<

buf3.left(oristr,lastopen);

buf2.right(oristr,len(&strn[0])-z-1);

buf1.calculate();

//然后将计算后的结果与原先左右括号两边的字符串合并,相当于去掉一对括号

addstrings(&strn[0],addstrings(&duf4[0],buf3.Getstr(),buf1.Getstr()),buf2.Getstr());

cout<<"新的式子是:"<

z=len(&strn[0])+1;

}

}

}

}

oristr.calculate(); //去掉括号后,计算最后剩余的算式

cout<<"计算结果为:"<

cout<<"退出吗?\n"<<"继续计算请输入1,退出程序请输入0"<

cin>>choice;

cin.get();

}

cout<<"现在退出运算!\n";

}

九、程序不足:浮点数的误差问题,上文中提及过;以及不能进行负数运算,曾试图对课本源程序进行此类改进,但最终无果。

文件管理系统课程设计

课程名称:操作系统 实验题目:文件管理系统 1、课程设计选题 (3) 1.1主要设计内容 3 1.2主要设计思路 3 2、课程设计需求分析 3 3、概要设计 (4) 3.1整体设计框架 4 3.2各模块的基本功能 4 4、系统实现 5 4.1原理 6 4.2各模块算法思想 6 4.3流程图描述 9 4.4代码描述 10 5、系统测试 11

5.1系统主界面 11 5.2子系统功能测试 11 6、总结 19 7、参考文献样式 19 1、课程设计选题 1.1主要设计内容 本课程设计主要是用C语言编写,设计的是一个模拟的多用户多级目录的文 件管理系统。通过具体的文件存储空间的管理、文件的物理结构、目录结构和文 件操作的实现,加深对文件系统内部功能和实现过程的理解。 1.2主要设计思路 首先系统要完成初始化的任务,建立起整个系统,等待用户注册,注册成功后,用户登录模块,对用户的用户名进行验证,如果用户登录成功,则系统进入 等待用户输入的状态,用户选择相应指令后,系统按照即定方式处理用户请求, 用户退出后,系统转入登录模块,等待下一位用户的登录。 2、课程设计需求分析 本系统为多用户多级目录的文件管理系统,用户可以根据所注册的用户名登 陆来对文件或是文件进行操作。多用户功能可以满足不同用户不同的需求,同时 也起到了很好的保密作用。 文件系统为用户提供了按名存取的功能,以使得用户能透明地存储访问文

件。为了实现按名存取,文件需要对文件存储设备进行合理的组织,分配;对存储在文件存储设备上的文件进行保护,保密和提供共享的手段。另外,文件系统还要提供检索文件或文件中记录的手段,文件系统就是完成上述功能的一组软件和数据结构的集合。 模拟一个文件管理系统,要完成对文件的基本操作,文件的基本操作有文件、文件夹的打开、新建、删除和读取写入文件,创建更改目录,列出目录内容等信息。系统建立了文件目录树,存储文件系统中的所有文件。对于用户名下的文件,用文件目录树的分枝来存贮。 采用命令行操作界面很直观,也方便用户进行操作,用户只要按照操作界面所显示的命令来操作就行了。 因为存在着同一个目录下不能有同名文件的问题。所以在进行文件的基本操作时要考虑到在已经有的文件中是否有同名文件,有的话则输出提示信息。 3、概要设计 3.1整体设计框架 系统初始化界面是由用户注册,用户登录,退出系统三个模块组成。用户登录模块再由创建用户,进入目录,删除用户,显示所有用户,显示位示图,修改用户资料几大模块组成。然后各个模块再由一些小模块组成。其中创建文件,打开关闭文件,读写文件等文件操作模块包括在进入目录模块里面。 3.2各模块的基本功能 3.21系统初始化 系统的初始化包括初始化了磁盘的空间即位示图、一个管理员用户 3.22用户注册模块 用户可以在这里注册,用户名和密码的最大长度都为10个字节,如果用户名不重复的话,则注册成功,用户的权限默认为一般用户。

课程设计评语模板

抄写注意:[]内的句子是其前面一句话的替换句,同学们抄写时可选择[] 内外的句子自由组合,形成不完全一样的评语体系,同时请注意保持语句通顺。课程设计评语模板一一优秀 全程主持(积极参与)课程设计[主持(积极参与)全部课程设计任务,如策划、设计方案、人员分工等];在课设团队中起重要组织、协调作用[负责组织、协调团队成员的分工];独立工作能力强,工作态度认真,作风严谨;为团队课程设计任务的完成做出重大贡献[为完成课程设计任务付出很多精力及时间]。 能很好的完成课程设计任务,达到课程设计大纲中规定的全部要求;课程设计报告结构合理,层次清晰,文字表达能力强、计算正确、图纸符合要求;能对课程设计内容进行全面、系统的总结,并能用理论知识对课程设计所涉及的问题加以深入分析[收集并综合利用资料的能力强,独立运用所学知识的能力强,独立分析问题和解决问题的能力强,有自己的创新之处]; 答辩时对该设计项目过程的把握程度好[答辩时对设计进度及任务分工情况了如指掌],回答问题思路清晰[回答教师问题圆满,并有某些独到的见解],陈述 相关知识点时语言流利、概念清楚[从答辩情况来看,基础理论知识扎实]。 经答辩小组讨论,一致认定其课程设计最终成绩为优秀。

抄写注意:[]内的句子是其前面一句话的替换句,同学们抄写时可选择[] 内外的句子自由组合,形成不完全一样的评语体系,同时请注意保持语句通顺。课程设计评语模板——良好 全程参与课程设计[参与全部课程设计任务,参与设计方案、分工等前期工作];能较好地协调自己与团队其他成员间的工作[与团队其他成员之间配合、协调较好];独立工作能力较好[工作态度认真、细致、严谨],为完成课程设计任务做出了较大贡献。 能较好的完成课程设计任务,达到课程设计大纲中规定的全部要求;课程设计报告结构合理,层次清晰,文字表达能力强,计算正确、图纸符合要求;能对课程设计内容进行全面、系统的总结,并能用理论知识对某些问题加以深入分析[收集并综合利用资料的能力较强,独立运用所学知识的能力较强,独立分析问题和解决问题的能力较强]; 答辩时对该设计项目过程的较为了解[答辩时对设计进度及任务分工情况了解清楚],回答问题思路较清晰[回答教师问题较圆满],陈述相关知识点时语言流利、概念较清楚[从答辩情况来看,基础理论知识较丰富]。

C语言课程设计报告(银行存取款管理设计)

错误!未找到目录项。 C程序课程设计报告 二○一五年六月

预习报告 一:设计题目 银行存取款管理设计 二:功能要求 ①能够添加和修改以及删除客户文件。(在客户文件中,每个客户是一条记 录,包括编号、客户姓名、支取密码、客户地址、客户电话、账户总金额)。 ②能够输入和查询客户存款取款记录。(在存取款文件中,每次存取款是一 条记录,包括编号、日期、类别、存取数目、经办人。类别分为取款和存款两种)。 ③能够给程序提供运行提示。 三:设计要求 ①、用C语言实现系统; ②、函数功能要划分好(结构化程序设计); ③、界面友好(良好的人机交互),加必要的注释; ④、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能 运行起来,不能运行的程序是没有价值的。 四:设计目的 ①、通过这次课程设计,使我们更加深入地理解和掌握C语言基本概念,切身体会用结构化程序设计的工程思想,感受C语言的魅力。 ②、通过这次课程设计,培养我们独立思考、勇于探索、积极创新、严谨求实、有过必改的工作态度以及较熟的上级操作能力,同时加强我们团结友爱,协作攻关的团队合作意识。 五:设计框架图

void main():在里面写了“功能选择”的SWITCH函数; void kehu();客户资料添加与操作主菜单;void kehu1(struct cou p[],char *re,long *h); 客户资料查询函数; void kehu2(struct cou *p,char *re,long h);客户资料添加函数; void kehu3(struct cou *p,char *re,long h); 客户资料修改函数; void kehu4(struct cou *p,char *re,long h); 客户资料清楚函数; void kehup(struct cou *p,char *re,long *h); 客户资料打印函数; void cunq1(); 存取款办理选择主菜单; void cunq11(struct cou *p,char *re,long h);客户存款资料的键入; void cunq12(struct cou *p,char *re,long h); 客户取款资料的键入; void cunq2();存取款选择查询主菜单; void cunq211(struct cou p[],char *re,long *h);把顾客存款资料从文件读到缓冲 区; void cunq212(struct cou *p,char *re,long *h);打印存款资料; void cunq221(struct cou p[],char *re,long *h);把顾客取款资料从文件读到缓冲 区; void cunq222(struct cou *p,char *re,long *h);打印取款资料; void help(); 使用说明模块。 ㈡变量 ①全局的结构体型数组w(用来存放200多个结构体变量): extern struct cou { long b; char x[20]; long m;

教务管理系统课程设计报告

教务管理系统课程 设计报告

教务综合管理系统设计报告 专业:软件工程 成员:车振军陆建伟 徐蕾杨思倩指导老师:徐明 日期: -6-15

一、引言 1.1 目的 为了保证项目小组能够按时完成小组任务及目标,便于项目小组成员更好地了解项目情况,使项目小组开展的各个过程合理有序,因此确定各个项目模块的开发情况和主要的负责人,供各项目模块的负责人阅读,做到及时协调,按步有序进行项目的开发,减少开发中的不必要损失。 预期的读者是设计人员、开发人员、项目管理人员、测试人员和用户。 1.2 背景 高校教务管理工作是高等教育中的一个极为重要的环节,是整个院校管理的核心和基础。面对种类繁多的数据和报表,手工处理方式已经很难跟上现代化管理的步伐,随着计算机及通讯技术的飞速发展,高等教育对教务管理工作提出了更高的要求。尽快改变传统的管理模式,运用现代化手段进行科学管理,已经成为整个教育系统亟待解决的课题之一。 教务管理系统是一个大型复杂的计算机网络信息系统,满足各类高校现在和将来对信息资源采集、存储、处理、组织、管理和利用的需求,实现信息资源的高度集成与共享,实现信息资源的集中管理和统一调度。为各级决策管理部门提出准确、及时的相关信息和快捷、方便、科学的决策分析处理系统;为信息交流、教务管理提供一个高效快捷的电子化手段;最终达到进一步

提高各级领导科学决策水平,提高各院系、各部门管理人员管理水平与办公效率,减轻工作负担的目的。 教务管理系统面向管理员、教师和全校学生,实现学生管理、教师管理、课程管理、成绩处理。 1.3 定义 1.3.1 MySQL MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,当前属于 Oracle 旗下公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。 MySQL所使用的 SQL 语言是用于访问数据库的最常见标准化语言。MySQL 软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,特别是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。1.3.2 MyEclipse MyEclipse,是在eclipse 基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,主要用于Java、Java EE以及移动应用的开发。MyEclipse的功能非常强大,支持也十分广泛,特别是对各种开源产品的支持相当不错。 二、需求分析 2.1 功能需求 2.1.1 系统目标

课程设计模板新

安徽省巢湖学院计算机与信息工程学院 课程设计报告 课程名称: 课题名称: 专业班级:10网络工程 同组姓名:李靖波、杨柳、朱艳萍、何学露、刘钊同组学号:09012021、、、09012011、09012034 联系方式: 指导教师:

目录 一、课程设计目的 ................................................................................................................................................. 1 二、课程设计内容 ................................................................................................................................................. 1 2.1、需求分析 ................................................................................................................................................ 1 2.2、同组人员的任务分配 ............................................................................................................................ 2 三、设计思路与步骤 ............................................................................................................................................. 2 四、程序设计 ......................................................................................................................................................... 2 五、设计结果 ......................................................................................................................................................... 5 六、设计分析与总结 ......................................................................................................................................... 11附录:参考文献 ................................................................................................................................................. 13

JAVA课程设计银行管理系统

大连科技学院java程序设计课程设计(B) 题目银行取款管理系统 学生姓名姚伟奇专业班级计算机(Z)13-1 指导教师李红职称讲师 所在单位信息科学系软件工程教研室 教学部主任王立娟 完成日期 2016年9月30日

课程设计报告单 综合评定:(优、良、中、及格、不及格)指导教师签字:2016年9月30日

《java程序设计课程设计(B)》任务书 一、课程设计任务及要求: 任务:针对小型信息管理系统或若干综合性设计题目,选择一种软件开发模型,完成从需求分析、系统设计、系统实现,软件测试的全过程。 要求: (1) 根据软件系统开发的一般原则,完成相应系统的功能设计,完成主要功能模块的程序实现并进行测试训练,给出代码运行结果和相应的设计文档。可以分组进行,但所有学生必须经历整个系统的开发全过程,以便加深对系统开发全过程的认识。 (2)提交课程设计报告。 (3)指标: 要求完成课程设计报告3000字以上(约二十页);完成所设计的题目,设计题目的语句行数的和在200行语句以上。 二、工作量 2周(10个工作日)时间 三、计划安排 第1个工作日:查找相关资料、书籍,阅读示例文档,选择题目。 第2个工作日-第4个工作日:设计程序结构、模块图。 第5个工作日-第9个工作日:完成程序的编码,并且自己调试、测试。穿插进行课程设计报告的撰写。 第10个工作日:上交课程设计报告,由教师检查软件测试效果、检查课程设计报告,给出学生成绩。 指导教师签字: 2016年9月19日

目录 题目: (1) 1.需求分析 (1) 2.概要设计 (1) 3.详细设计 (2) 4.编码 (3) 5.调试分析 (11) 6.测试结果及运行效果 (11) 7.系统开发所用到的技术 (13) 8.课程设计总结 (14) 参考文献 (145) 附录全部代码 (16)

简单的四则运算计算器程序

简单的四则运算计算器程序

注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。 2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内。

附件:程序源代码 // sizheyunsuan.cpp : Defines the entry point for the console application. #include #include const int MAX=100; class Operand{ private: double operS; public: Operand(){} Operand(double opers){ operS=opers; } void set(double opers){ operS=opers; } double get() { return operS;} }; class Operator{ private: char operF; int priority; public: Operator(){} Operator(char operf) { operF=operf; switch(operf) { case'(':priority=-1;break; case'+':priority=0;break; case'-':priority=0;break; case'*':priority=1;break; case'/':priority=1;break; case')':priority=2;break; } } void set(char operf){ operF=operf; } char get(){ return operF;} int getpriority(){ return priority; } };

学生管理系统课程设计

《程序设计基础课程设计》 (j1620201) 课程设计报告 设计题目学生通讯录管理系统 学生姓名 学生班级 学生学号 指导教师 成绩评定 完成时间 参考目录:

目录 课程设计的目的---------------------1 设计内容---------------------------1 系统需求分析-----------------------1 系统设计---------------------------1 编码和测试-------------------------1 心得体会---------------------------1 附录--------------------------------1

课程设计的目的 为了进一步巩固程序设计基础课程所学到的知识,理解C++语言的重要概念及基本语法,锻炼学生熟练的运用C++语言设计程序解决实际问题的能力,开设了一周的课程设计。通过此次课程设计,巩固所学面向过程程序设计的知识,熟练掌握Visual Studio C++开发工具的运用,把所学课程相关知识加以融会贯通,全面掌握面向过程的编程思想,为后续课程的学习打下坚实的基础。 设计的内容 这是一个学生通讯录系统,内容主要是记录学生的基本信息。 系统需求分析 学生通讯录管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生通讯录管理系统应该能够为用户提供充足的信息和快捷的查询手段。学生通讯录管理系统能让老师、学校更好地记录学生的信息,例如学生的学号、性别、专业、手机号码,能让老师较方便的查询到学生的信息,给工作带来很多便利。 系统设计 本系统用menu函数显示主界面,用create函数创建通讯录信息子,用print 显示通讯录信息,用del函数删除通讯录,用insert函数添加通讯录信息,用modify函数修改通讯录信息 编码和测试 编码:附录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 设计原理

银行管理系统软件工程课设报告

学习报告 学生姓名学号课程成绩: 二零一六 年 六 月

目录 4 4 4 4 4

4 4 5 5 6 7 7 7 8 9 9 9 9 9

1 前言 系统的背景及开发意义 (1)系统背景介绍 随着计算机的飞速发展及应用领域的扩大,特别是计算机网络和电子商务的发展,极大的改变了商业银行传统的经营模式。能够为客户提供方便、快捷、安全的服务,也能够有效的降低银行的营运成本,这是银行存储系统追求的目标。目前,对于现代化银行运营的要求是客户可以实现方便安全的业务交易,银行职员可以进行高效合理的工作管理,实现银行业务电子化。 (2)系统开发的意义 方便用户快速的进行存款、取款、修改密码以及完成一些转账的交易,大大提高办公效率,能够及时、准确、有效的帮用户办理各种繁琐的手续,也减缓了银行工作人员的压力。 系统的开发环境及工具 (1)系统开发的环境 硬件:Windows2000服务器、希捷 ST9500420AS ( 500 GB / 7200 转/分 )硬盘、2GB ( DDR3 1333MHz )内存 软件:Windows 10 旗舰版 64位 SP1 ( DirectX 11 ) (2)系统开发的工具 系统采用Microsoft Visual Studio 2010、SQL Server 2008数据库开发工具、C/S结构。下面对开发中采用的工具进行说明: ①Microsoft Visual Studio 2010简介 是目前最流行的平台应用程序的,Visual Studio 2010版本()的界面被重新设计和组织,变得更加简单明了。并且支持开发面向的。除了,它还支持??和数据库。 ②SQL Server 2008数据库简介

web管理系统课程设计

湖北第二师范学院 《Web程序设计》 课程设计报告书 班级:12级计算机应用技术(1)班学号: 姓名: 指导老师:王海军 成绩: 设计时间:2014 年 6 月12 日

简单的Web应用系统设计、开发一.登录页面: 登录页面的设计与代码: 主要以不同的角色进去就会跳进不同的页面就会有不同的权限 源代码: 后台代码: using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Data.SqlClient; public partial class login1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Label7.Text = "当前时间是:" + DateTime.Now.ToString() ;

} protected void Button1_Click(object sender, EventArgs e) { if (rbtstudent.Checked == false && rbtteacher.Checked == false) { Response.Write(""); } else { if ( rbtstudent.Checked == true) { SqlConnection con = new SqlConnection("server=.;database=school;integrated security=SSPI"); con.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection = con; https://www.doczj.com/doc/9b6102458.html,mandText = "select * from student where stdid='" + username.Text + "'and stdmm='" + userpwd.Text + "'"; //https://www.doczj.com/doc/9b6102458.html,mandText = "select * from achievement where stdid='" + username.Text + "'"; SqlDataReader dr = cmd.ExecuteReader(); if (dr.Read()) { Session["stdid"] = dr[0]; Session["stdmm"] = dr["stdmm"]; Session["stdxb"]=dr["stdxb"]; Session["stdsfz"] = dr["stdsfz"]; Session["stdrxsj"] = dr["stdrxsj"]; Session["stdbj"] = dr["stdbj"]; Session["stddz"] = dr["stddz"]; Session["stddh"] = dr["stddh"]; Session["stdxm"] = dr["stdxm"]; username.Text= Session["stdid"].ToString(); userpwd.Text= Session["stdmm"].ToString(); Label4.Text = "登陆成功"; username.Text = "";//userID为textbox1 username.Enabled = false; userpwd.Text = "";//userPWD为textbox2

课程设计模板

附件2:课程设计模板参考 《******》 (课程名称) 整体教学设计 (XXXX~XXXX学年第X学期) (第X学年第X学期) 课程名称: 所属系部: 制定人: 合作人: 制定时间:

××职业技术学院

课程整体教学设计 一、课程基本信息 一、课程定位 (尽可能用图形、表格表述) 1. 岗位分析: 本专业毕业生的(技术、管理)岗位分析:初次就业、二次晋升、未来发展。 指出本课程面向的主要岗位。画出其典型工作流程图。 写出该岗位的主要能力需求、知识需求和素质需求。 2. 课程分析:

标出本课程在课程体系中的位置(前导课、后续课)。 说明本课程与普通高校、中职(高职)、培训班相关课程的异同。 二、课程目标设计 总体目标: (这是课程的第一层目标,须与课程标准中相关表述一致,对于尚未制定课程标准的课程,由指定教师写出初稿,课程组教师集体研讨商定本课程的总体目标。) 能力目标:((学生)能根据××(标准、规范),运用××(知识),做××(事情)) 知识目标:(知道...;了解…;理解…;掌握…。) 素质目标:(职业道德、职业素质、职业规范在本课中的具体表现) 其它目标:(有则写,无则不写) 三、课程内容设计:

四、能力训练项目设计 五、项目情境设计 每个项目的多个情境。即该项目的由来、约束条件和工作环境。 用情境引出项目任务。情境类型尽可能齐全,情境展示尽可能生动。 六、课程进程表

注1:“第×次”指的是该次课在整个课程中的排序,也就是在“单元设计”中的标号,不是在本周内的次序。 注2.:“师生活动”指的是师生“做什么(项目、任务中的)事情;学什么内容”。此项内容在这里只是个标题,具体化为“单元设计”后,就要详细展开为“怎样做?怎样学?”。 六、第一次课设计(面向全课,力争体验)。 最后一次课设计(面向全课,高水平总结)。 七、考核方案(考核方案先由指定教师写出,然后由课程组成员集体研讨商定) 八、教学材料(指教材或讲义、参考资料、所需仪器、设备、教学软件等) 九、需要说明的其他问题 十、本课程常用术语中英文对照 附:课程整体设计体会

管理信息系统课程设计范例

管理信息系统课程学习报告 专业:计算机信息管理 班级:信息1101 :刚 学号:1125486514 成绩:优 评语:该课程设计详述了“酒店管理信息系统”开发过程,结构清楚,格式能够按照要求完成;重点容叙述较好,容较全面;整体设计能够理论联系实际运用所学知识分析问题,但解决问题能力有待提高。 年月日

一、课程学习目的 管理信息系统(MIS)是管理科学、系统科学、计算机科学和通讯技术等多学科综合发展起来的边缘性、综合性、系统性的学科,它运用经济管理理论、信息理论、系统理论、计算机科学等学科的概念和方法,融合提炼组成一套新的体系,它既具有较深和较宽的理论基础,又是一门实践性很强的学科。 作为一门课程,管理信息系统是经济管理类专业的必修课。本课程的任务和学习目的是使学生掌握管理信息系统的概念、结构和建立管理信息系统的基础、管理信息系统开发方法、管理信息系统开发过程各阶段的任务与技术、管理信息系统的开发环境与工具以及其它类型的信息系统等;使学生通过本课的学习,了解管理信息系统在企业管理中的作用。并通过实践培养学生综合运用知识和分析开发应用系统的初步能力。 二、课程学习容 管理信息系统的学习和设计主要是掌握“管理信息系统开发的五个阶段”: 第一阶段:系统规划 第二阶段:系统分析 第三阶段:系统设计 第四阶段:系统实施 第五阶段:系统运行与维护 1、系统规划阶段 该阶段是将组织目标、支持组织目标所必需的信息、提供这些必须信息的信息系统,以及这些信息系统的实施等诸要素集成的信息系统方案,是面向组织息系统发展远景的系统开发计划。鉴于在实践中选题“酒店管理信息系统”,其系统规划阶段是针对酒店所提供的信息资源,为提高酒店信息管理水平,制定一个较为科学的信息系统开发规划。 其主要任务是在开发环境的调研基础之上,确定酒店管理信息管理系统的开发方向、系统需要达到的目的,制定酒店管理信息系统的总体政策和策略,做出人力、财力和物资的总体安排,制定来发活动的进度安排,制定MIS系统的总体结构,以确保酒店管理信息系统开发的下调行,避免开发的孤立性和重复性,同时预测酒店管理信息系统未来的发展,明确系统今后的发展、研究方向和准则。从战略角度为系统开发

课程设计评语模板精简版

课程设计评语模板——优秀 1.全程主持课程设计;在团队中起重要组织、协调作用,工作认真负责;为课程设计的完成做出重大贡献。 设计报告结构合理,层次清晰,文字表达流畅、计算正确;能对课程设计内容进行全面、系统的总结。 答辩时对该设计项目过程的把握程度好,回答问题思路清晰,语言流利、概念清楚。 经答辩小组讨论,成绩为优秀。 2.积极参与课程设计;独立工作能力强,工作态度认真;为课程设计的完成做出重大贡献。 能很好的完成课程设计任务,达到大纲中规定的全部要求;设计报告结构合理,层次清晰,文字表达流畅、计算正确;能对课程设计内容进行全面、系统的总结,独立运用知识的能力强,独立分析问题和解决问题的能力强,有自己的创新之处; 答辩时对该设计过程的把握程度好,回答问题思路清晰、概念清楚。 经答辩小组讨论,成绩为优秀。 3.积极参与全部课程设计任务;态度认真,积极配合团队工作;为课程设计的完成做出重大贡献。 设计报告结构合理,层次清晰,文字表达流畅、计算正确;能对设计内容进行全面、系统的总结,并能用所学知识对课程设计所涉及的问题加以深入分析,有自己的创新之处; 答辩时对该设计项目过程的把握程度好,回答问题圆满。 经答辩小组讨论,成绩为优秀。 课程设计评语模板——良好 1.全程参与课程设计;能很好地配合团队工作;工作态度认真、细致,为完成课程设计任务做出了较大贡献。 能较好的完成课程设计任务,达到大纲中规定的全部要求;设计报告结构合理,层次清晰,文字表达较流畅、计算正确;能对课程设计内容进行全面、系统的总结,分析问题和解决问题的能力较强; 答辩时对该设计项目过程了解,回答教师问题较圆满。 经答辩小组讨论,成绩为良好。 2.积极参与全部课程设计,与其他成员之间配合、协调较好;态度认真、严谨,为完成课程设计任务做出了较大贡献。 能较好的完成课程设计任务,达到设计大纲中规定的全部要求;设计报告结构合理,层次清晰,文字表达较流畅、计算正确;收集并综合利用资料的能力较强,分析问题和

大整数的四则运算高质量C语言程序

设计题目: 大整数的四则运算 1. 功能简介:编写出实现大整数之间相加,相减,相乘,相除的程序,并输出计算结构。 课程设计要求:采用模块化程序设计 源程序中应有足够的注释 必须上机调试通过 注重算法运用,优化存储效率与运算效率 需提交源程序(含有注释)及相关文件(数据或数据库文件); 提交设计报告书。 2. 总体结构:

加法 数据初 判断运算符 减法乘法除法退出 正整数非正整转变为转变为 转变为 流程图:

3 ?概要设计:

1) 加法运算 利用两个整形数组分别存放两个数a 和b 的每一位的数值,最低位存放符号。如果a 和b 同号,从最低为开始计算,如果有进位则保存在高一位,本为则减10 ,然后反序将计 算后的各个位的数值保存在一个数组C并输出,如果a和b都是负数则在前面要输出负号, 函数的返回值为C的位数。如果a和b异号,也即两个正整数相减,从最低位开始相减,如果要借位则本位加10 再相减,高一位要减1,然后反序将计算后的各个位的数值保存在一个数组C 并输出,在前面要输出相应的符号位。 2) 减法运算 可将减法运算转化为加法运算,只要将被减数的符号改变即可。 3) 乘法运算 符号存放在最低位,将其中一个数a 的每一位分别乘以另一个数b 的每一位,并将结果保存在数组C 中,然后重复计算a的下一位跟b的每一位的乘积,把上一次计算保存在C 的值加上本次计算后的值,并保存在C自身中,直到a的最高位,最后输出符号和相应的计 算结果。 4) 除法运算 利用乘法和减法,将除数分别乘以1到9,直到其值大于等于被除数的对应的数,然后被除数对应的数减去其乘积,保存在一个数组中,下一次循环把它归到被除数中继续做除法运算,最后得到余数并输出。 4. 函数功能: 1. void init(int a[],int b[],int *p1,int *p2) 2. 功能说明:读入所要计算的数值,数据初始化 3. int plus(int a[],int b[],int C[],int m,int n) 4. 功能说明:两个正整数相加 3. void Change(int a[],int b[],int m,int n) 功能说明:当两异号数相加时,改变其符号以符合加法运算 5. int minus(int a[],int b[],int d[],int m,int n) 6. 功能说明:两个正整数相减 5. void minusfun(int a[],int b[],int d[],int m,int n) 功能说明:判断两个异号数的相加方式 7. int multi(int a[],int b[],int C[],int m,int n) 8. 功能说明:两个正整数相乘 7. void print(long C[],int flag) 功能说明:打印带符号flag ( 1为负)的Iong c[]数组 8. int write(long a[],int flag) 功能说明:将键盘敲入的数字按4位一组放入Iong a[],且将符号放入flag 9. void mul(long a[],int first,int last,long b[],long C[]) 功能说明:乘法,a的第last到first位乘以b,答案放到C

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

《管理信息系统实习》报告 专业班级 学生姓名 指导教师王桃群 时间 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.doczj.com/doc/9b6102458.html,或其他语言进行数据库编程。 3.系统分析 图书信息包括:每种图书都有书名、ISBN、一名或多名作者(译者)、出版社、定价和内容简介等; 读者信息包括:借书证记录有借阅者的姓名、密码、所在单位和类别等; 读者凭借书证借书,教师最多借书15本书,借书期限最长为90天,学生最多借书8本书,借书期限最长为30天。对于超期未还的读者不能继续借书,每本书每超期一天罚款0.05元。 三、系统设计 1.体系结构 本系统使用c/s模式的两层结构,表示层(USL)和数据访问层(DAL)。 表示层(USL):为客户提供对应用程序的访问,以Windows应用程序或Web 应用程序的形式提供实现的功能。 业务逻辑层(BLL):实现应用程序的业务功能,以类库的形式为表示层提供服务。 数据访问层(DAL):实现整个系统所有的数据库连接、数据存取操作,以组

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

课程设计模板

山西大学商务学院 《软件工程课程设计》报告 题目:基于手机的智能家居控制系统的设计与实现班级:??嵌入式?班 组长: 组员姓名:

说明 一、设计题目:基于手机的智能家居控制系统的设计与实现 二、小组成员及任务分配情况 姓名学号任务分配 软件工程课程总体设计报告、???? 系统可行性分析文档、???? 系统需求分析文档、???? 系统详细设计文档、???? 系统测试文档、????

目录 1. 开发目的和意义 (3) 1.1 开发背景和意义 (3) 1.2 完成情况 (3) 2. 开发相关技术及方法 (2) 2.1 开发环境 (2) 2.2 相关技术及方法 (2) 3. 系统分析 (3) 3.1 可行性分析 (3) 3.2 需求分析 (3) 3.2.1 性能需求 (3) 3.2.2 功能分析 (3) 3.2.3 行为模型 (4) 4. 系统设计 (6) 4.1 总体设计 (6) 4.2 详细设计 (6) 4.2.1 用户登录控制模块的设计 (6) 4.2.2 网络管理模块的设计 (7) 4.2.3 温度控制模块的设计 (7) 4.3 数据库设计 (8) 4.3.1 概念结构设计 (8) 4.3.2 逻辑结构设计 (8) 4.3.3 数据表设计 (8) 5. 系统实现 (10) 5.1 用户注册界面 (10) 5.2 用户登录界面 (10) 5.3 手机端远程桌面控制实现界面 (10) 6. 系统测试 (11) 6.1 测试方法 (11) 6.2 测试用例及结果 (11) 6.3 测试记录和结果反馈 (11) 7.实践总结 (13) 7.1 小结 (13) 7.2 实践感想 (13) 附录1 系统可行性分析文档 (15) 附录2 系统需求分析文档 (20) 附录3 系统详细设计文档 (24)

数据库课程设计报告银行管理系统

目录 1绪论 1.1 选题目的及意义 (2) 1.2 设计内容 (2) 2需求分析 2.1 功能需求 (2) 2.2 数据需求 (2) 3数据库设计 3.1概念结构设计 (7) 3.2逻辑结构设计 (9) 3.3物理结构设计 (11) 4.设计结果及分析 4.1查询与结果分析 (24) 5.设计体会 (29) 参考文献

参与设计人员: 姓名学号班级负责项目 陈盛业20114419 信管(2)需求分析 李宁20114432 信管(2)数据库设计、分析 向绍鹏20114462 信管(2)绪论、设计体会 阳治安20114466 信管(2)数据库设计、分析 1.1选题的目的及意义 银行管理系统:该系统要求建立的用户表并不是很多,完成的功能也相对有限,但其中各个表之间的联系很紧密,该系统对数据库表的设计要求会很高,所以完成这个题目,能更好的训练数据库设计和VC的编程能力,选择该题目就是充分训练数据库表设计的能力和运用VC的能力。 1.2 设计内容 用户管理模块:建立新用户、删除老用户、更改用户操作; 账户操作模块:账户信息、活期存取款操作、查询活期操作记录、定期存款、定期取款、查询定期操作记录; 数据库模块:数据库备份、数据库恢复; 2需求分析 2.1功能需求 对于用户部分,能够新建和删除用户,在操作过程中可以更改用户;对于账户部分,可以查询用户的信息,包括各种基本信息、活期余额、定期账单等;对于账户操作部分,有活期存取款、定期存取款操作,另外操作完成之后存储相应的操作记录并能够查询操作记录等功能。 2.2数据需求

2.21数据字典 银行管理系统数据流图中,数据信息和处理过程需要通过数据字典才能描述清楚。在定义的银行数据库管理系统数据字典中,主要对数据流图中的账户信息 定期历史操作记录定期存款定期取款活期操作进行说明。【1】数据需求的描述 (1)数据项名称:帐号 含义说明:惟一标识一个用户 类型:数字型 长度:20 逻辑关系:不允许为空 (2)数据项名称:开户人姓名 类型:字符型 长度:20 逻辑关系:不允许为空 (3)数据项名称:账户密码 类型:数字型 长度:6 逻辑关系:不允许为空 (4)数据项名称:身分证号 类型:数字型 长度:20 逻辑关系:不允许为空 (5)数据项名称:账户余额

相关主题
文本预览
相关文档 最新文档