文档库 最新最全的文档下载
当前位置:文档库 › C语言课程设计仪器仪表管理系统报告

C语言课程设计仪器仪表管理系统报告

C语言课程设计仪器仪表管理系统报告
C语言课程设计仪器仪表管理系统报告

C

学院: 自动化学院 专业: 自动化 班级: 231XXX 姓名: XXX 学号: 231XXX-XX

语言课程设计

报告

C语言程序设计

目录

1.题目概述,总体设计--------------------------------第 1页

2.详细设计,菜单函数--------------------------------第 2页

3.功能模块:录入模块--------------------------------第 3页

4.状态改变模块--------------------------------------第 4页

5.状态改变,借出归还--------------------------------第 6页

6.状态改变,维修------------------------------------第 7页

7.状态改变,删除------------------------------------第 8页

8.状态查询模块--------------------------------------第 9页

9.按名称查询----------------------------------------第11页

10.按时间点/段查询----------------------------------第12页

11.公共函数-----------------------------------------第13页

12.上机实践-----------------------------------------第14页

13.程序的亮点与不足---------------------------------第17页

14.总结---------------------------------------------第18页

C语言程序设计

题目:仪器仪表管理系统

[要求]

系统功能的基本要求:

(1)新的仪器仪表信息录入。

(2)在借出、归还、维修时对仪器仪表信息的修改。

(3)对报废仪器仪表信息的删除。

(4)按照一定的条件查询、统计符合条件的仪器仪表信息;查询功能至少应

包括仪器仪表基本信息的查询、按时间段(如在2004年1月1日到2004年10月10日购买、借出、维修的仪器仪表等)查询、按时间点(借入时间、借出时间、归还时间)查询等,统计功能至少包括按时间段统计、按仪器仪表的基本信息统计等。

(5)对查询、统计的结果打印输出。

[提示]

数据结构采用结构体。仪器仪表信息包括仪器仪表名、仪器仪表编号、购买时间、借入时间、借出时间、归还时间、维修时间、状态信息(0 代表可借出,1代表可借入,2 代表正在维修) 等。

需求分析:

根据题目要求,由于仪器仪表信息是存放在文件,所以应提供文件的输入、输出等操作; 在程序中要浏览仪器仪表的信息。应提供录入、显示、查找,修改等操作; 另外还应提供键盘式选择菜单实现功能选择。

总体设计:

根据上面的需求分析,可以将这个系统的设计分为三个大的模块: 仪表

仪器录入、仪表仪器修改(删除)、仪表仪器查询

详细设计

(一)主函数

主函数一般设计得比较简洁,只提供输入、处理和输出部分的函数调用。其中各功能模块用菜单方式选择。其中流程图如下:

[程序]

其中为主函数设定了一个菜单函数,方便用于选择其他模块函数。用getch0;获得所按下的键值,用函数内的局部静态变量储存键值对应的其他功能函数。

void menu(char c) /*菜单函数*/

{ static int n=0; //内部变量

if(c=='s'||c=='S') n++;

if(c=='w'||c=='W') n--;

if(n==5) n=1;

if(n==0) n=4;

if(c==13)

{ switch(n)

{case 1:if(insert ()==0) insert (); break; //录入 case 2:change();break; //修改 case 3:serch(); break; //查询

case 4:exit(0); //退出程序 }; }

system("cls");

printf("\n\n");

printf(" 仪器仪表管理系统

printf("\n");

printf(" 姓名:xxx");

printf("班级231xxx");

printf("\n\n");

if(n=1)

printf(" -->仪器仪表录入<-- \n");

else

printf(" 仪器仪表录入 \n");

printf("\n");

if(n=2)

printf(" -->仪器仪表借还/删除<-- \n");

else

printf(" 仪器仪表借还/删除 \n");

printf("\n");

if(n=3)

printf(" -->仪器仪表查询 <-- \n");

else

printf(" 仪器仪表查询 \n");

printf("\n");

if(n=4)

printf(" -->退出程序<-- \n");

else

printf(" 退出程序 \n");

printf("\n");

//主函数

void main()

{ system("cls");

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

printf(" -->仪器仪表管理系统<-- \n");

printf("\n");

printf(" -->按W向上选择<-- \n");

printf(" -->按S向下选择<-- \n");

printf(" -->按回车确定选择<-- \n");

printf("\n");

printf("\n");

printf(" -->按任意键进入系统<-- \n");

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

getch();

menu('s');

while(1) menu(getch());}

(二)各功能模块设计

[数据结构]

数据结构选用结构体数组。这里只简单的给仪器仪表两个部分,一个为仪器仪表的名称、字符串函数,一个为仪器仪表的各个时间点的状态(定义一个time的三维数组,数组下标表示年月日,数组的值表示仪器的状态)。

#define buy 1 //购买

#define lean 2 //借出

#define repair 3 //维修

#define inlib 4 //空闲

#define year_max 3000

#define month_max 12

#define day_max 31

#define N 100 //预设仪器最大数

int n; //仪器数

struct equment

{char name[100];int time [year_max+1][month_max+1][day_max+1]; }equ[N];

(1)录入模块

通过strcpy函数实现仪器名称的录入,state函数实现仪器状态的更改。【程序】

void insert()

{ int i,j_year,j_month,j_day,year,month,day;

char equ_input[100];

system("cls");

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

printf(" -->仪器仪表管理系统

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

printf(" 请输入仪器的名称:");

scanf("%s",&equ_input);

if(presence(equ_input)!=0)

{

printf("\n");

printf("\n");

printf(" 对不起!此仪器已购买\n ");

printf("\n");

printf(" 录入失败,请按任意键返回主菜单\n" );

printf("\n");

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

getch();

}

else

{ int state (int year,int month,int day,int n,int s);

n++;

strcpy(equ[n].name,equ_input); //将equ_input复制给equ[equ_num].name

printf("\n");

printf(" 请输入购买时间(年/月/日)(例如1998/2/15):");

scanf("%d/%d/%d",&year,&month,&day);

state(year,month,day,n,inlib); // equ[n] 将当天状态改为空闲

equ[n].time[year][month][day]=buy; //equ[n] 将该天以后状态改为购入

//printf("%d",equ[n].time[year][month][day]);

printf("\n");

printf("\n");

printf(" 录入成功,请按任意键返回主菜单\n");

printf("\n");

printf("\n");

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

getch();}}

(二)状态改变模块

该模块包括对仪器仪表的借出、归还、维修、报废等小模块的操作,仍然用getch();函数获取键值来做上下选择。本函数只考虑对一种仪器仪表的修改,故先要输入该仪器仪表的名称并查找是否已经购买。

int change()

{ char equ_input[100],c='s';

int j,x=0;

system("cls");

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

printf("<----仪器仪表管理系统--->\n");

printf("\n\n");

printf(" 请输入仪器名称: ");

scanf("%s",&equ_input);

j=presence(equ_input);

// printf("\n%d",j); system("pause");

if(j!=0)

{ while(1)

{ if(c=='s'||c=='S') x++;

if(c=='w'||c=='W') x--;

if(x==6) x=1;

if(x==0) x=5;

if(c==13)

{switch(x)

{ case 1:mylean(j);break;

case 2:myback(j);break;

case 3:myrepair(j);break;

case 4:mydel(j);break;

case 5:return(1);

}

}

system("cls");

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

printf("<----仪器仪表管理系统--->\n");

printf("\n\n");

/* printf(" 请输入仪器名称: ");scanf("%s",equ_input); printf("\n\n");*/ if(x==1)

printf(" --->仪器仪表借出<------\n");

else

printf(" 仪器仪表借出 \n");

printf("\n\n");

if(x==2)

printf(" --->仪器仪表归还<------\n");

else

printf(" 仪器仪表归还 \n");

printf("\n\n");

if(x==3)

printf(" --->仪器仪表维修<------\n");

else

printf(" 仪器仪表维修 \n");

printf("\n\n");

if(x==4)

printf(" --->仪器仪表报废<------\n");

else

printf(" 仪器仪表报废 \n");

printf("\n\n");

if(x==5)

printf(" --->返回主菜单<------\n");

else

printf(" 返回主菜单 \n");

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

c=getch();

}

}

else

{

/*system("cls");

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

printf("<----仪器仪表管理系统--->\n");

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

printf("\n\n");

printf(" 对不起!找不到该仪器\n");

printf(" 可能是由于您输入仪器的名称错误,\n");

printf(" 也可能是由于无此仪器,还没购买。\n");

printf("\n\n");

printf(" 修改失败,请按任意键返回主菜单

getch();

//return; } }

(1)借出模块

其他状态则可以借出,否则不可借出。

【程序】

int mylean(int j)

{ int year,month,day;

system("cls");

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

printf("<----仪器仪表借出系统--->\n");

printf("\n\n");

printf(" 请输入借出时间(年/月/日): ");

scanf("%d/%d/%d",&year,&month,&day);

//system("pause");

// printf("%d",equ[j].time[year][month][day]);

if (equ[j].time[year][month][day]==inlib) //判断仪器是否空闲

{ printf("\n\n");

printf(" 借出成功,请按任意键返回上一级菜单 \n");

printf("\n");

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

state(year,month,day,j,lean); //状态改为借出

getch(); return(1);

}

else

{ printf("\n\n");

printf(" 对不起!\n");

printf(" 此仪器还没有购买或没有归还或正在维修中,\n");

printf(" 故无法借出。\n");

printf(" 借出失败,请按任意键返回上一级菜单 \n");

printf("\n\n");

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

getch(); return(0); } }

(2)归还模块

首先输入借出的时间,然后在仪器仪表的结构体数组中查找该仪器仪表在这个输入的时间点上有无其他状态。若无其他状态则可以借出,否则不可借出。

【程序】

int myback(int j)

{ int year,month,day; system("cls"); printf("\n\n\n\n");

printf("<----仪器仪表归还系统--->\n"); printf("\n\n");

printf(" 请输入归还时间(年/月/日): "); scanf("%d/%d/%d",&year,&month,&day);

if (equ[j].time[year][month][day]==lean) //判断状态是否为借出 {

printf(" 归还成功,请按任意键返回上一级菜单 \n"); printf("\n\n");

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

state(year,month,day,j,inlib); //改状态为空闲 getch(); return(1);

} else { printf("\n\n");

printf(" 对不起!\n");

printf(" 此仪器还没有购买或还没有借出\n"); printf(" 或正在维修中,故无法归还。\n");

printf(" 归还失败,请按任意键返回上一级菜单

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

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

getch(); return(0); } }

(3)维修模块

同样是首先输入维修开始的时间和维修结束的时间,然后在仪器仪表的结构体数组中查找该仪器仪表在这个归还的时间点上有其他状态。若有为空闲状态则可以维修,否则不可维修。 【程序】

int myrepair(int j) { int year,month,day;

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

printf("<----仪器仪表管理系统--->\n"); printf("\n\n");

printf(" 请输入开始维修时间(年/月/日):"); scanf("%d/%d/%d",&year,&month,&day); if (equ[j].time[year][month][day]==inlib) { state(year,month,day,j,repair); //改状态为维修 printf("\n\n");

printf(" 请输入维修结束时间(年/月/日):"); scanf("%d/%d/%d",&year,&month,&day); state(year,month,day,j,inlib); printf("\n\n");

printf(" 维修成功,请按任意键返回上一级菜单 \n");

printf("\n");

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

getch(); return(1);

}

else

{ printf("\n\n");

printf(" 对不起!\n");

printf(" 此仪器还没有购买或借出,\n");

printf(" 故无法维修。\n");

printf("\n\n");

printf(" 维修失败,请按任意键返回上一级菜单 \n");

printf("\n\n");

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

getch(); return(0); } }

(4)删除模块

删除模块将删除本仪器仪表,具体删除过程为将需要删除的后一项覆盖至删除的这一项,即需删除以后的每一个结构体元素都向前移一个单位。

【程序】

int mydel(int j) Array

{ char c='s';

while(1)

{ system("cls");

if(c=='s'||c=='S') x++;

if(c=='w'||c=='W') x--;

if(x==3) x=1;

if(x==0) x=2;

if(c==13)

{if(x==1)

{ int i;

for(i=n;i

equ[i]=equ[i-1]; n--;

system("cls");

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

printf("<----仪器仪表管理系统--->\n");

printf("\n\n");

printf(" 报废仪表已删除!\n ");

printf("\n\n");

printf(" 请按任意键返回上一级菜单 \n");

printf("\n");

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

getch(); return;

}

else

return;

}

printf("<----仪器仪表管理系统--->\n");

printf("\n\n");

printf(" 请问确定要报废仪器%s吗?\n ",equ[j].name);

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

if (x==1)

printf(" --->确定要报废仪器<--- \n");

else

printf(" 确定要报废仪器 \n");

printf("\n\n");

if(x==2)

printf(" --->我要考虑考虑<--- \n");

else

printf(" 我要考虑考虑 \n");

printf("\n\n");

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

c=getch(); } }

(三)仪器仪表查找模块

仪器仪表查找分为按名称查找、按时间点查找、按时间段查找三个模块,通过键盘w s进行选择,分别用三个小模块来表示,通过状态函数condition_p输出仪器仪表状态。

【程序】

void search()

{ char c='s';

int x=0;

while(1)

{ if(c=='s'||c=='S') x++;

if(c=='w'||c=='W') x--;

if(x==6) x=1;

if(x==0) x=5;

if(c==13)

{switch(x)

{ case 1:name();break;

case 2:time_d();break;

case 3:time_p();break;

case 4:return; };

};

system("cls");

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

printf("<----仪器仪表管理系统--->\n");

printf("\n\n");

if(x==1)

printf(" --->按名称查询<------\n");

else

printf(" 按名称查询 \n");

printf("\n\n");

if(x==2)

printf(" --->按时间段查询<------\n");

else

printf(" 按时间段查询 \n");

printf("\n\n");

if(x==3)

printf(" --->按时间点查询<------\n");

else

printf(" 按时间点查询 \n");

printf("\n\n");

if(x==4)

printf(" --->返回主菜单<------\n");

else

printf(" 返回主菜单 \n");

printf("\n\n");

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

c=getch(); } }

因为不管查找条件是什么,最终都会对应到需查找的仪器仪表上,故补充一

个公共函数condition_p();,输出查找一个仪器仪表的结果。

【程序】

void condition_p(int year,int month,int day,int n,int *bool_repair,int *bool_lean) { //printf("%d",equ[n].time[year][month][day]); // system("pause");

if (equ[n].time[year][month][day]==buy)

printf(" %4d年%2d月%2d日购买%s仪器仪表\n",year,month,day,equ[n].name);

//借出/归还

if ((equ[n].time[year][month][day]==lean)&&((*bool_lean)==0))

{printf(" %4d年%2d月%2d日借出%s仪器仪表\n",year,month,day,equ[n].name);

(*bool_lean)=1; }

//printf("%d\n",equ[n].time[year][month][day]==lean); //printf("%d\n");

if (equ[n].time[year][month][day]==inlib&&(*bool_lean)==1)

{printf(" %4d年%2d月%2d日归还%s仪器仪表\n",year,month,day,equ[n].name);

(*bool_lean)=0; //printf("%d",equ[n].time[year][month][day]); }

//维修/修完

if (equ[n].time[year][month][day]==repair&&(*bool_repair)==0)

{printf(" %4d年%2d月%2d日开始维修%s仪器仪表\n",year,month,day,equ[n].name);

(*bool_repair)=1; }

if (equ[n].time[year][month][day]==inlib&&(*bool_repair)==1)

{printf(" %4d年%2d月%2d日结束维修%s仪器仪表\n",year,month,day,equ[n].name);

(*bool_repair)=0; } }

(1)按名称查找

首先输入仪器仪表的名称,然后在结构体数组中查找是否存在,这个仪器仪若是则循环该仪器仪表的所有时间点来判断改时间点处于什么状态,并用公共函数condition_p来输出。

【程序】

int name() { char equ_input[100];

int i; system("cls"); printf("\n\n\n\n");

printf("<----仪器仪表管理系统--->\n"); printf("\n\n");

printf(" 请输入仪器名字: "); scanf("%s",equ_input); i=presence(equ_input); if (i!=0) { int j_y,j_d,j_m,bool_lean=0,bool_repair=0; for(j_y=0;j_y<=year_max;j_y++) for(j_m=0;j_m<=month_max;j_m++) for(j_d=0;j_d<=day_max;j_d++) { //P(j_y,j_m,j_d,m);systen("pause")

condition_p(j_y,j_m,j_d,i,&bool_lean,&bool_repair);

}

printf("\n\n");

printf(" 查询完成,请按任意键返回上一级菜单 \n"); printf("\n\n"); printf("<----------------------------------->\n");

getch(); return(1);

} else { printf("\n\n");

printf(" 对不起!\n");

printf(" 可能是由于您输入错误,\n");

printf(" 也有可能是由于无此仪器,还未购买。\n"); printf("\n\n");

printf(" 查询失败,请按任意键返回主菜单 \n"); printf("\n\n");

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

getch(); return(0); } }

(2)按时间点查询 【程序】

int time_p() { int i,year,month,day,equ_tmp, bool_lean[101],bool_repair[101];

for(i=0;i<10;i++) { bool_lean[i]=0;bool_repair[i]=0; } system("cls");

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

printf("<----仪器仪表管理系统--->\n");

printf("\n\n");

printf(" 请输入时间点(年/月/日): ");

scanf("%d/%d/%d",&year,&month,&day);

printf("\n\n");

for(equ_tmp=1;equ_tmp<=n;equ_tmp++)

condition_p(year,month,day,equ_tmp,&bool_lean[equ_tmp],&bool_repair[equ_tmp]);

//每个仪器

printf("\n\n");

printf(" 查询完成,请按任意键返回上一级菜单 \n");

printf("\n");

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

getch(); return(0);

}

(3)按时间段查询

首先输入起始时间点和结束时间点,应为每个月的天数不完全一样,用三重循环来做比较麻

烦,故采用模拟法,设三个变量i、j、k,分别对应年,月,日,然后赋予初值为起始时间

点,设置一无限循环,循环内设有判断是否i、j、k的值为结束时间点的语句。若是则跳出

循环,否则继续循环。同时,在循环内k总是自加,当k 自加至当月最大天数时,j就自

加,当j自加至当年最大月数时,i自加。

【程序】

int time_d()

{ int year1,month1,day1,year2,month2,day2,i,j,k, Array equ_tmp,bool_lean[101],bool_repair[101];

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

{ bool_lean[i]=0;bool_repair[i]=0; }

system("cls");

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

printf("<----仪器仪表管理系统--->\n");

printf("\n");

printf(" 请输入起始时间(年/月/日):");

scanf("%d/%d/%d",&year1,&month1,&day1);

printf("\n");

printf(" 请输入结束时间(年/月/日):");

scanf("%d/%d/%d",&year2,&month2,&day2);

printf("\n");

i=year1; j=month1; k=day1;

while(1)

{ if(j>12){i++;j=1;}

if(k>31){j++;k=1;}

for(equ_tmp=1;equ_tmp<=n;equ_tmp++)

condition_p(i,j,k,equ_tmp,&bool_lean[equ_tmp],&bool_repair[equ_tmp]) ;

//每个仪器

if((i==year2)&&(j==month2)&&(k==day2)) break; //到结束时间时终止输出

k++; }

printf("\n\n");

printf(" 查询完成,请按任意键返回上一级菜单 \n");

printf("\n");

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

getch(); return(0);

}

(四)公共函数

(1)状态改变函数

因为在修改仪器仪表状态时有大量的修改代码,故专门补充一个状态改变函数来改变状态。函数的参数为年、月、日和需改成的状态。

【程序】

int state(int year,int month,int day,int n,int s)

{ //printf("%d",n); //system("pause");

//通过for循环实现time数组的赋值

int i,j,k;

for(k=day;k<=day_max;k++)

equ[n].time[year][month][k]=s; //当月改状态

for(j=month;j<=month_max;j++)

for(i=1;i<=day_max;i++)

equ[n].time[year][j][k]=s; //当年改状态

for(i=year;i<=year_max;i++)

for(j=i;j<=month_max;j++)

for(k=1;k<=day_max;k++)

equ[n].time[i][j][k]=s; //更改以后所有状态

//以下为调试代码

/*for(i=year;i<=year_max;j++)

for(j=month;j<=month_max;j++)

for(k=day;k<=day_max;k++)

{ printf("%d %d %d %d\n",i,j,k,n);

printf("\n %d",equ[n].time[year][month][k]);

system("pause");

}*/

}

(2)查找仪器仪表函数

函数参数为仪器仪表的名称,并返回是否查找到该仪器仪表,若找到则返回该仪器仪表所在的结构体数组下标,否则返回0。附: strcmp:比较字符串大小,相同时返回0

【程序】

int presence(char*equ_input)

{ int i;

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

if(strcmp(equ_input,equ[i].name)==0) return(i); return(0);

} //非0为存在,0为不存在

上机实践

编译运行

数据输入

运行结果

主菜单主界面

录入成功

录入失败状态改变模块

借出成功时间输错时借出失败

归还失败归还成功

仪器维修仪器报废

查询模块按名称查询

按时间段查询按时间点查询

程序的亮点和不足

亮点:

1.定义一个time的三维数组,数组的下标表示年月日,数组的值来表示仪器仪表的状态,减少了变量的定义,同时为状态的保存提供了方便。

2.利用if语句实现菜单选择,而采用菜单选择的方式,使系统界面更加清晰美观。

3.定义状态改变函数和状态输出函数(利用指针),使程序得到简化。不足:

没有采用文件的输入、输出,导致每一次运行程序都要重新输入数据,而且数据只在程序运行时得到保存,造成极大的不便,需要改进。

总结

通过这次课程设计的学习,我充分认识到了C语言的学习光靠书本上的知识是不够的,更重要的是要有足够的实践所以后在学习过程中,我会更加注视实践操作,使自己便好地学习。在参考了C语言课程设计上的程序以后,我开始着手自己编写程序,在码完将近六百行代码,一编译,就出现了很多问题,有许多是粗心大意造成的。在程序成功运行之后,程序的某些模块又出现问题,通过不断的输出,暂停程序,分析代码,所有问题都解决,内心无比高兴。此外我还认识到编程是一项高精度的工作所以我们要有规范化,标准化的代码编写习惯,通过这次编程我们深深的感受到对代码的变量命名,代码内注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同人员之间的协作。同时我明白了,善于总结也是学习能力的一种体现,每次完成一个编程任务,完成一段代码,都应当有目的的跟踪该程序的应用状况,随时总结,找到自己的不足,这样所编写的程序才能逐步提高。

这次课程设计不仅提高了我对C语言的学习热情与兴趣,更加使我对C语言某些难懂的知识(例如指针、数据结构等)有了更深的认识,同时我的上机实践编写代码的能力得到了巨大的提高。在课程设计过程中,收获知识,提高能力的同时,我也学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。因此在以后的生活和学习的过程中,我一定会把课程设计的精神带到生活中,不畏艰难,勇往直前!

控制装置与仪表课程设计

控制装置与仪表课程设计 课程设计报告 ( 2012-- 2013年度第二学期) 名称:控制装置与仪表课程设计 题目:炉膛压力系统死区控制系统设计院系: 班级: 学号: 学生姓名: 指导教师: 设计周数:一周 成绩: 日期:2013年7 月5日

一、课程设计(综合实验)的目的与要求 1.1 目的与要求 (1)认知控制系统的设计和控制仪表的应用过程。 (2)了解过程控制方案的原理图表示方法(SAMA图)。 (3)掌握数字调节器KMM的组态方法,熟悉KMM的面板操作、数据设定器和KMM数据写入器的使用方法。 (4)初步了解控制系统参数整定、系统调试的过程。 1.2设计实验设备 KMM数字调节器、KMM程序写入器、PROM擦除器、控制系统模拟试验台1 1.3 主要内容 1. 按选题的控制要求,进行控制策略的原理设计、仪表选型并将控制方案以SAMA 图表示出来。 2 . 组态设计 2.1 KMM组态设计 以KMM单回路调节器为实现仪表并画出KMM仪表的组态图,由组态图填写 KMM的各组态数据表。 2.2 组态实现 在程序写入器输入数据,将输入程序写入EPROM芯片中。 3. 控制对象模拟及过程信号的采集 根据控制对象特性,以线性集成运算放大器为主构成反馈运算回路,模拟控制对 象的特性。将定值和过程变量送入工业信号转换装置中,以便进行观察和记录。 4. 系统调试 设计要求进行动态调试。动态调试是指系统与生产现场相连时的调试。由于生产 过程已经处于运行或试运行阶段,此时应以观察为主,当涉及到必需的系统修改 时,应做好充分的准备及安全措施,以免影响正常生产,更不允许造成系统或设 备故障。动态调试一般包括以下内容: 1)观察过程参数显示是否正常、执行机构操作是否正常; 2)检查控制系统逻辑是否正确,并在适当时候投入自动运行; 3)对控制回路进行在线整定; 4)当系统存在较大问题时,如需进行控制结构修改、增加测点等,要重新组态下装。 二、设计(实验)正文 1设计题目:炉膛压力系统死区控制系统设计(如附图1) 附图1: 引风机 炉膛压力系统死区单回路控制系统

c语言课程设计报告·图书管理系统

第一章 §题目描述 图书管理系统设计: 【要求】图书管理信息包括:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等。试设计一图书管理系统,使之能提供以下功能: (1)新图书基本信息的输入; (2)图书基本信息的查询; (3)对撤销图书信息的删除; (4)办理借书手续; (5)办理还书手续; 【提示】建立图书馆里信息结构体,结构体成员包括图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号。存在状态设为整型,可用不同数字代表借还状态。借书和还书手续要注意修改结构体的成员变量存在状态的值。 §算法设计 1.设计思想: 在整个系统编写的过程中,涉及了较多C语言知识点,对于不同的数据类型、程序控制结构、数据结构作以分析和总结,并结合这个课题进行综合的应用,在一定程度上做到了对所学知识融会贯通。由此进一步加深、巩固了所学的课程的基本理论知识,培养了综合分析问题、解决问题的能力。在设计程序时,参考了学校图书馆的图书管理系统,实现了程序的模块化、结构化。在主函数中调用各种函数,操作界面简单,易操作,人机互动性较强。 2.实现注释: 这个实用的小型图书管理系统程序以结构体数组指针操作完成,并实现文件信息的录入、修改和保存等功能,所有信息以磁盘文件方式保存,方便用户使用。本图书管理系统分为管理员和学生两个部分,其基本功能包括了对图书信息的存储、查询、添加、删除和借书、还书手续办理等。查询时可按书名、编号等方式查询,找到后输出这本书的所有信息。可查询图书的在库状态,方便用户进行借书、还书操作。在借书还书成功后图书的在库状态自动改变,并更新信息到数据库。系统中主要的数据结构就是图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等。在处理过程中各项可以作为一本图书的不同属性来进行处理。 3.结构体系设计 图:主函数结构;图:新书信息录入流程;图:图书信息查询(管理员)流程;图:图书信息查询(学生)流程;图:图书信息删除流程;图:办理借书手续流程;图:办理还书手续流程; §程序设计及代码分析 1.程序设计: 下面,我大致介绍一下我的系统的主要功能和注意事项: 当运行此程序时,首先进入系统主界面,然后可以选择[1].管理员登陆(密码:123),[2].学生登陆,[0].退出系统; 选择[1]后进入管理员系统,验证密码成功后显示管理员功能菜单,按数字键选择所需服务。管理员功能菜单中,[1].新书信息录入,[2].图书信息查询,[3].图书信息删除,[4].返回主菜单,[0].退出系统;当出现“请选择”时,输入选项前的数字,输完之后按回车(下同)。首次运行系统需要先选择[1]录入库存书籍信息,图书各信息项须用空格键隔开,输入完毕后信息自动储存并更新至数据库,然后再选择其他操作。当选择[3]时会进入图书信息删除,在这里可以选择删除图书信息等操

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); //调用函数为新局初始化,第二个

管理信息系统课程设计报告

管理信息系统课程 设计报告 设计题目:库存管理管理信息系统专业:工商管理 年级班级: 姓名: 指导教师: 小组成员: 指导教师评阅: 指导教师(签字)成绩: 二O一一年月日

摘要: 本系统是以计算机软件技术为基础,利用VisualFoxpro编程技术进行编程设计的软件系统。采用系统结构化开发方法,设计过程主要部分:企业背景调查、需求分析与可行性研究、企业业务流程图绘制、数据结构与数据库设计、数据字典编制、数据流程图绘制,系统总体结构设计。完成信息的显示代码设计输入/输出设计、模块功能与处理过程设计、系统维护、信息系统安全设计、系统实施、系统运行管理制度、网络系统方案设计。包括输入、输出、查找、配送等功能。此系统具有检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长的优点是一个成本低的现代管理信息系统。最后通仿真验证企业物资管理信息系统对输入信号进行完整解调。 关键词:结构化开发方法;物资管理 Abstract: This paper, based on Computer software technology,and used VisualFoxpro programming technology survey ,Design a software system,which by Structured Approach and design process. Consists of several parts---the company background requirement analysis, and Feasibility study, Enterprise Business flowcharting, and system architecture Design. Complete information is displayed code design,Input / Output Design Module function and Process design,System Maintenance,Design of Information Systems Security,System implementation,System operation management system,Network System Design。 Features: Input、The output、find、distribution. Advantages: quick search, Search for convenient, And high reliability, Large storage capacity, Security and good, Long service life,low cost Management Information System. Finally, the simulation results from verify that Letter Material Management Information systems can make a complete demodulation of the input signals. Key Words:Structured Approach;Materials Management

控制装置与仪表课程设计

控制装置与仪表课程设计 课程设计报告( 2012-- 2013年度第二学期) 名称:控制装置与仪表课程设计 题目:炉膛压力系统死区控制系统设计 院系: 班级: 学号: 学生姓名: 指导教师: 设计周数:一周 成绩: 日期:2013年7 月5日

一、课程设计(综合实验)的目的与要求 1.1 目的与要求 (1)认知控制系统的设计和控制仪表的应用过程。 (2)了解过程控制方案的原理图表示方法(SAMA图)。 (3)掌握数字调节器KMM的组态方法,熟悉KMM的面板操作、数据设定器和KMM数据写入器的使用方法。 (4)初步了解控制系统参数整定、系统调试的过程。 1.2设计实验设备 KMM数字调节器、KMM程序写入器、PROM擦除器、控制系统模拟试验台1 1.3主要内容 1. 按选题的控制要求,进行控制策略的原理设计、仪表选型并将控制方案以SAMA 图表示出来。 2 . 组态设计 2.1 KMM组态设计 以KMM单回路调节器为实现仪表并画出KMM仪表的组态图,由组态图填写 KMM的各组态数据表。 2.2 组态实现 在程序写入器输入数据,将输入程序写入EPROM芯片中。 3. 控制对象模拟及过程信号的采集 根据控制对象特性,以线性集成运算放大器为主构成反馈运算回路,模拟控制对 象的特性。将定值和过程变量送入工业信号转换装置中,以便进行观察和记录。 4. 系统调试 设计要求进行动态调试。动态调试是指系统与生产现场相连时的调试。由于生产 过程已经处于运行或试运行阶段,此时应以观察为主,当涉及到必需的系统修改 时,应做好充分的准备及安全措施,以免影响正常生产,更不允许造成系统或设 备故障。动态调试一般包括以下内容: 1)观察过程参数显示是否正常、执行机构操作是否正常; 2)检查控制系统逻辑是否正确,并在适当时候投入自动运行; 3)对控制回路进行在线整定; 4)当系统存在较大问题时,如需进行控制结构修改、增加测点等,要重新组态下装。 二、设计(实验)正文 1设计题目:炉膛压力系统死区控制系统设计(如附图1) 附图1: 引风机 炉膛压力系统死区单回路控制系统

c语言课程设计报告书--学生成绩管理

C 语言程序设计报告 课题:学生成绩管理 时间:

一、需求分析 任务要求: 自学C语言中有关链表及外部文件的内容,设计出学生成绩管理。具体要求如下: 1.主要功能: (1)能按学期、按班级完成对学生成绩的录入、修改 (2)能按班级统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序 (3)能查询学生成绩,不及格科目及学生名单 (4)能按班级输出学生的成绩单 系统功能需求分析: 1、定义一个结构体类型,成员包括学期、班级、各科成绩、建立链表,定义该结构体类型的指针,用于指向各结点; 2、分别建立具有添输入、修改、查询、总分及平均分、排序等功能的子函数,完成相应功能,对程序实现模块化。 二、概要设计 系统总体设计框架: 对程序进行模块化,建立输入、修改、查询、查找和显示功能的子函数,各子函数中运用链表存储数据。 系统功能模块图:

三、详细设计 主要功能模块的算法设计思路如下: 1、输入信息函数 (1)定义指向结构体变量的指针; (2)移动指针,找到插入结点; (3)在要插入的结点输入信息; (4)返回头指针。 2、修改信息 (1)定义指向结构体变量的指针; (2)用指针检验链表中是否有记录,若没记录,出现报错,然后要求重新输入; (3)根据要修改的编号查找对应结点; (4)修改信息;

(5)修改成功。 3、排序函数 (1)定义所要排序的班级和链表的头指针为形参; (2)调用排序函数,把班级和链表的头指针赋给形参; (3)在子函数中进行排序; (4)输出排序结果。 4、显示学生成绩信息(void Disp(Link l)) (1)选择想要查询的项目(学生各科成绩、不及格科目、班级成员);(2)用指针检验是否有记录; (3)若无记录,输出提示信息,返回主函数; 若有记录,移动指针,依次输出记录; 5、查询班级成绩信息(void Find(Link l)) (1)选择所要查询的班级; (2)输入班级: (3)在链表中寻找相应结点; (4)输出结点信息。 以上各个函数的流程图如下:

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() 菜单函数

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

教务管理系统课程设计 报告 文件排版存档编号:[UYTR-OUPT28-KBNTL98-UYNN208]

教务综合管理系统设计报告 专业:软件工程 成员:车振军陆建伟 徐蕾杨思倩 指导老师:徐明 日期:2016-6-15 一、引言 目的 为了保证项目小组能够按时完成小组任务及目标,便于项目小组成员更好地了解项目情况,使项目小组开展的各个过程合理有序,因此确定各个项目模块的开发情况和主要的负责人,供各项目模块的负责人阅读,做到及时协调,按步有序进行项目的开发,减少开发中的不必要损失。 预期的读者是设计人员、开发人员、项目管理人员、测试人员和用户。 背景 高校教务管理工作是高等教育中的一个极为重要的环节,是整个院校管理的核心和基础。面对种类繁多的数据和报表,手工处理方式已经很难跟上现代化管理的步伐,随着计算机及通讯技术的飞速发展,高等教育对教务管理工作提出了更高的要求。尽快改变传统的管理模式,运用现代化手段进行科学管理,已经成为整个教育系统亟待解决的课题之一。 教务管理系统是一个大型复杂的计算机网络信息系统,满足各类高校现在和将来对信息资源采集、存储、处理、组织、管理和利用的需求,实现信息资源的

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

控制装置与仪表课程设计之欧阳家百创编

控制装置与仪表课程设计 欧阳家百(2021.03.07) 课程设计报告 ( 2012-- 2013年度第二学期) 名称:控制装置与仪表课程设计 题目:炉膛压力系统死区控制系统设计 院系: 班级: 学号: 学生姓名: 指导教师: 设计周数:一周 成绩: 日期:2013年7 月5日

一、课程设计(综合实验)的目的与要求 1.1 目的与要求 (1)认知控制系统的设计和控制仪表的应用过程。 (2)了解过程控制方案的原理图表示方法(SAMA图)。 (3)掌握数字调节器KMM的组态方法,熟悉KMM的面板操作、数据设定器和KMM数据写入器的使用方法。 (4)初步了解控制系统参数整定、系统调试的过程。 1.2设计实验设备 KMM数字调节器、KMM程序写入器、PROM擦除器、控制系统模拟试验台1 1.3主要内容 1. 按选题的控制要求,进行控制策略的原理设计、仪表选型并将控制方案以SAMA 图表示出来。 2 . 组态设计 2.1 KMM组态设计 以KMM单回路调节器为实现仪表并画出KMM仪表的组态图,由组态图填写 KMM的各组态数据表。 2.2 组态实现 在程序写入器输入数据,将输入程序写入EPROM芯片中。 3. 控制对象模拟及过程信号的采集 根据控制对象特性,以线性集成运算放大器为主构成反馈运算回路,模拟控制 对象的特性。将定值和过程变量送入工业信号转换装置中,以便进行观察和记 录。 4. 系统调试 设计要求进行动态调试。动态调试是指系统与生产现场相连时的调试。由于生 产过程已经处于运行或试运行阶段,此时应以观察为主,当涉及到必需的系统 修改时,应做好充分的准备及安全措施,以免影响正常生产,更不允许造成系 统或设备故障。动态调试一般包括以下内容: 1)观察过程参数显示是否正常、执行机构操作是否正常; 2)检查控制系统逻辑是否正确,并在适当时候投入自动运行; 3)对控制回路进行在线整定; 4)当系统存在较大问题时,如需进行控制结构修改、增加测点等,要重新组态下装。 二、设计(实验)正文 1设计题目:炉膛压力系统死区控制系统设计(如附图1) 附图1: 2.1.按控制方案设计流程图(附图2) 引风机 炉膛压力系统死区单回路控制系统

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语句,实现语句的循环,从而将一个字符串拷贝到一个空数组中。

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)随时可将全部数据存储到磁盘文件中,方便下次从磁盘读取数据。

超市管理系统课程设计报告

超市管理系统课程 设计报告 1 2020年4月19日

交通运输工程学院 Visual Foxpro 课程设计报告 设计名称:<超市进货供货管理系统> 系 (院): 交通运输工程学院 专业班级: 学号: 姓名: 指导老师: 设计时间: 6月

目录 课程设计任务书 (1) 一、前言 1、课程设计的目的和意义 2、系统功能设计 3、创立项目管理文件 二、 VFP课程设计说明书 1、系统概述 2、系统总体设计 3、数据库设计 4、系统的具体设计过程 5、调试运行退出 6、结束语 7、主程序代码 8、参考文献 3 2020年4月19日

一、前言 1、课程设计的目的和意义 当今,人类正在步入一个以智力资源的占有和配置,知识生 产、分配和使用为最重要因素的知识经济时代,为了适应知识经济时代发展的需要,大力推动信息产业的发展,我们经过对货物信息 管理系统的设计,来提高货物的操作能力,及对理论知识的实践能力,从而提高货物的基本素质,使其能更好的满足社会需求。 超市进货供货管理系统是一个简单实用的系统,它是超市进行货物管理的好帮手。此软件功能齐全,设计合理,使用方便,适合小型超市对繁杂的商品信息信息进行统筹管理,具有严格的系统使用权限管理,具有完善的管理功能,强大的查询功能。 我们进行本次课程设计的主要目的是经过上机实践操作,熟练掌握数据库的设计、表单的设计、表单与数据库的连接、SQL语 言的使用和了解它的功能:数据定义、数据操纵、数据控制,以及 简单VF程序的编写。基本实现货物信息的管理,包括系统的登 录、货物信息的录入、货物信息的浏览、货物信息的查询、货物 信息的修改和货物信息的删除,并对Visual FoxPro6.0的各种功 能有进一步的了解,为我们更进一步深入的学习奠定基础,并在实 践中提高我们的实际应用能力,为我们以后的学习和工作提供方便,使我们更容易融入当今社会,顺应知识经济发展的趋势。 4 2020年4月19日

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

C语言课程设计 图书管理系统 Books Management System 学生姓名张朝柱 学院名称徐州工程学院学号140 班级13计转本 专业名称计算机科学与技术 指导教师李子龙 2016年5月10日

一、需求分析 为了满足图书管理的要求,通过计算机技术给图书管理人员和读者借、还书带来便利。使用c语言编写了图书管理系统。本系统主要实现图书信息管理的功能,通过此系统可对图书馆库存图书信息进行管理和维护操作。实现了图书馆内管理的一般功能,包括查询、借书、还书、添加、删除、修改图书信息等。所设计的系统以菜单方式工作,为用户提供清晰的使用提示,依据用户的选择来进行各种处理,并且在此过程中能够尽可能的兼容用户使用过程中可能出现的异常情况。图书信息包括编号、书名、作者、数量、在库状态等。图书信息的录入和显示要求有一定的规范格式,录入的图书信息用文件形式保存,并可以对其进行浏览、查询、借阅、还书等基本操作。整个程序实现顺序表操作,对图书信息的操作逐个地进行,一个图书信息的更改不应影响其他的图书记录。 二、算法设计: 1.设计思想: 整个系统制造的而过程中,涉及了较多C语言知识点,对于不同的数据类型、程序控制结构、数据结构作以分析和总结,并结合这个课题进行综合的应用,在一定程度上做到了对所学知识融会贯通。进一步加深、巩固了所学的专业的基本理论知识,培养了综合分析问题、解决问题的能力。在设计程序时,实现了程序的模块化、结构化。在主函数中调用各种子函数,操作界面简单,易操作。 2,设计表示: (1)、整个系统除了主函数外,另外还有各种功能子函数,利用无限次循环语句while()和选择语句swithch()实现各个子函数的调用,系统根据输入的数字选项来调用相应的函数,以实现相应的功能。主要实现了图书的录入、存储、查询、借书、还书、显示库存等功能。 (2)、void Book_Entering(struct SqList &SL);这是一个录入图书信息的函数,它主要实现了顺序表的创建,并且在创建过程中从文件读取信息到顺序表中,以用于后面其他函数的操作。它引用了一个顺序表SL。其他函数调用时只需传入顺序表头即可。 (3)、int main(void);这五个函数时整个图书管理系统的全部菜单函数,Book_Entering();为系统主界面,进入时可选择进入程序和退出程序。menu1();为进入程序时显示的功能菜单,在此菜单可以选择录入、保存图书信息,也可选择进入其他子系统。Book_Inquire();此菜单为进入图书管理系统的菜单,在此可以选择添加、删除、修改图书等操作。cxmenu();为查询系统的菜单,在此可以选择按书名、编号、作者等方式进行查询图书。jhmenu();为借书还书的子菜单,在此可以选择借书还书操作。操作完成后按提示信息进行文件的保存操作。 (4)、void Book_Inquire(struct SqList &SL);这个函数为顺序表的输出函数,把顺序表的头传给函数后,可输出整个顺序表的所有信息。、

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");

个人信息管理系统-课程设计报告

《数据库系统概论》 课程设计报告 题目:个人信息管理系统 专业:网络工程 班级: 姓名: 指导教师: 成绩: 计算机学院 2017年12月8日

目录 一课程设计的目的与意义 (2) 1.1课程设计的目的 (2) 1.2 课程设计的意义 (3) 二需求分析 (4) 2.1 用户需求 (4) 2.2 系统需要实现的功能和操作如下 (5) 2.3 功能需求分析: (5) 三数据库概念模型设计 (7) 四数据库逻辑模型设计 (12) 4.1 一般逻辑模型设计: (12) 4.2 具体逻辑模型设计: (13) 五数据库物理设计与数据库保护设计 (17) 5.1 设计表间关系 (17) 5.2 物理设计 (18) 5.3 保护设计 (19) 六数据库建立 (20) 七课程设计心得与体会 (25) 八参考资料 (26)

一课程设计的目的与意义 1.1课程设计的目的 数据库课程设计是数据库系统原理实践环节的极为重要的部分,其目的是: (1)培养学生能够应用数据库系统原理在需求分析的基础上对系统进行概念设计,学会设计局部ER图,全局ER图; (2)培养学生能够应用数据库系统在概念设计的基础上应用关系规范化理论对系统进行逻辑设计,学会在ER图基础上设 计出易于查询和操作的合理的规范化关系模型; (3)培养学生能够应用SQL语言对所设计的规范化关系模型进行物理设计,并且能够应用事务处理,存储过程,触发器以 保证数据库系统的数据完整性,安全性,一致性,保证数据 共享和防止数据冲突; (4)培养学生理论与实际相结合的能力,使之能够熟练掌握一种数据库系统(如SQL SERVER)的使用,培养学生开发创新 能力; (5)通过设计实际的数据库系统应用课题,使学生进一步熟悉数据库管理系统的操作技术,提高学生独立分析问题,解决问 题,查阅资料以及自学的能力,以适应计算机产业日新月异

过程控制仪表课程设计论文报告

中南大学 《过程控制仪表》 课程设计报告 设计题目液位控制系统 指导老师 设计者 专业班级 设计日期 2011年6月 目录 第一章过程控制课程设计的目的和意义 (2) 1.1课程设计的目的 (2) 1.2课程设计的意义 (3) 1.3课程设计在教学计划中的地位和作用 (3) 第二章液位控制系统的设计任务 (3)

2.1设计内容及要求 (3) 2.2课程设计的要求 (4) 第三章实验内容及调试中遇到的具体问题和解决的办法 (4) 3.1实验目的 (4) 3.2实验内容 (5) 3.2.1流量单闭环控制系统 (5) 3.2.2流量比值控制系统 (6) 3.3实验调试中遇到的具体问题和解决办法 (7) 第四章液位控制系统总体设计方案 (9) 4.1液位控制系统在工业上的应用 (9) 4.2液位控制系统变送器以及开关阀的选择 (10) 4.3控制算法 (11) 4.4系统控制主机的选择 (11) 4.5系统的硬件设计(单纯的逻辑控制) (13) 4.5.1 水塔液位控制系统的主电路图 (13) 4.5.2 I/O接口的分配 (13) 4.5.3 水塔液位控制系统的I/O设备 (14) 4.5.2 控制系统硬件介绍 (14) 第五章系统软件设计 (16) 5.1系统软件设计1(单纯的逻辑控制) (16) 5.1.1水塔液位控制系统的程序流程图 (16) 5.1.2 水塔液位控制系统的工作过程 (17) 5.1.3 水塔液位控制系统的梯形图 (19) 5.2系统控制的程序 (20) 5.3 加入PID控制的指令的软件程序 (20) 5.3.1PID控制系统梯形图 (21) 5.3.2PID控制系统的指令: (24) 第六章收获、体会和建议 (25) 参考文献 (26) 第一章过程控制课程设计的目的和意义 1.1课程设计的目的 本课程设计是为《过程控制仪表》课程而开设的综合实践教学环节,是对《现代检测技术》、《自动控制理论》、《过程控制仪表》、《计算机控制技术》等前期课堂学习内容的综合应用。其目的在于培养学生综合运用理论知识来分析和解决实

c语言语言课程设计报告

上海应用技术学院 课程设计 2011~ 2012学年第二学期 设计题目成绩记录簿 院(系)计算机科学与信息工程学院 专业计算机应用技术 班级 11104114 学号 1110411414 学生姓名蒋佳琴 设计时间 2012.06.25 -2012.07.06 指导教师马智娴 提交日期 2012.07.06

上海应用技术学院课程设计任务书 指导教师(签名):马智娴教研室主任(签名):马智娴2012年6 月25日2012年6月25日

目录 1 设计目的 (5) 2 功能描述 (5) 2.1模块功能 (5) 2.2流程图 (6) 3 总体设计 (13) 3.1 功能模块设计 (13) 3.2 数据结构设计 (13) 3.3 函数功能描述 (13) 4 程序实现 (14) 4.2 运行结果 (25) 5课程设计总结 (28)

成绩记录簿 1. 设计要求: 基本功能 a) 添加成绩 b) 删除成绩 c) 查询学生成绩 d) 查询班级成绩 e) 退出 拓展功能 a) 写入文件 b) 读取文件 创新(自拟)功能: 程序实现的其它功能由个人自拟。 2. 设计要求具体说明 基本功能: 成绩记录簿中记录以下数据: 学号、姓名、课程编号、课程名称、成绩、学分,所有成绩都以百分制计分; 输入信息时要检查数据项学号、课程编号、成绩、学分的合法性,学号:8位数字;课程编号:5位数字;成绩:0 ~ 100 之间的整数,学分: 1~ 5之间的实型数。 添加成绩:需要输入学生的学号或姓名、课程编号及成绩,如已有该门课程成绩给出提示; 查询(班级或个人)成绩: a) 查询个人成绩:以学号或姓名作为关键字,可查询一个学生的所有成绩,和已完成 的总学分。 b) 查询班级成绩:以课程编号为关键字,成绩表后面要统计平均分、及格率及全班同 学不同课程在不同分数段分布的人数及百分比。 拓展功能: a) 程序启动时先从文件读入数据,如果文件中没有数据则给出提示; b) 每次修改的数据写入文件。 3. 提示 定义合适的结构体类型,使用链表或数组的方式组织数据。

C语言课程设计报告烟花绽放

课程设计报告书设计题目烟花绽放 系别计算机工程系 专业计算机科学与技术 班级 姓名 指导教师 设计任务下达日期2011年 12 月 24 日 设计时间2011年12月26日至 2010年12月30日 课程设计任务书

一、目的和意义 本课程设计是《C语言程序设计》课程的后继教学环节, 通过研究C语言中图形编程技术或者声音控制等其它方面的多媒体编程技术,一方面拓展学生在这些领域的C语言知识,另一方面使学生在运用所学理论知识进行实践开发,更好的培养学生综合学习能力和实践能力。本次课程设计学生可以根据喜好,可以利用复杂的数据类型实现成绩管理系统等小型的综合应用程序。 二、题目(可从下面题目中任选一个) 1、C语言的图形编程应用 设计实现如菜单、图形的显示,再如动画和小游戏。 2、简易电子琴模拟程序的实现 为实现在键盘模拟电子琴设计的程序。由学生自行设计并且实现。 3、成绩管理程序 学生本人设计具体方案,然后改进和编码实现。 三、课程设计报告书应包括的主要内容 1、介绍概要的思路和设计方案,程序的总体功能和模块划分。 2、主要算法的介绍及流程图,主要功能的实现手段的说明文档。 3、对于有设想但最终未实现的功能的大致编程思路的阐述和设计过程中的启发。 四、进度要求 1、设计时间:2011年12月19日至2011年12月25日 2、编写课程设计报告书:2011年12月26日至2011年12月29日 3、提交报告及答辩时间:2011年12月30日 专科 四、进度要求 1、设计时间:2011年12月26日至2011年12月28日 2、编写课程设计报告书:2011年12月29日 3、提交报告及答辩时间:2011年12月30日 目录

管理信息系统课程设计报告

兰州商学院陇桥学院 工学系课程设计报告 设计题目:户籍管理信息系统 系别:工学系 专业(方向):信息管理与信息系统 年级、班:2011级信息管理与信息系统班学生姓名:方延斌 学生学号:20110651107 指导教师:韩如冰 2014年6月20日

目录 一、前言 (3) (一)选题说明 (3) (二)课程设计进度安排 (3) (三)工作业绩 (3) 二、系统可行性分析 (3) (一)需求分析 (3) (二)开发的可行性 (4) 三、系统分析 (5) (一)业务流程图(如图1) (5) (二)数据流程图(如图2) (5) 四、系统设计(如图3) (6) (一)系统功能结构图 (6) (二)数据库设计 (7) 五、系统实现 (10) 六、系统测试 (11) 七、总结 (13) 八、附件(代码、部分图表) (14)

户籍管理信息系统 一、前言 (一)选题说明 为了能更加快速的完成户籍的管理,提高管理人员的工作效率,特开发此系统。此系统基本符合用户需求,能够完成资料修改、数据录入、用户管理等功能。以及各类相关的打印。并提供部分系统维护功能。同时也考虑了减少数据冗余问题,对于数据的一致性的问题也通过程序进行了有效的解决。 (二)课程设计进度安排 星期进度安排 第十六周可行性分析,系统需求分析(系统描述、业务流程图设计及分析) 第十七周系统需求分析(系统数据流程图、必要的数据字典设计) 第十八周系统设计(系统代码设计、数据库设计),系统设计(输出设计、输入设计及其他内容) (三)工作业绩 小组分工: 序号负责人任务 1方延斌查询相关资料,建立数据库,课程相应模块设计 2唐璠系统整体设计 二、系统可行性分析 (一)需求分析 户籍管理改革是一个关系千家万户的大事情。过去户口曾经是等级、地位的象征,一个户口迁移曾经难倒多少人。这些年,我国户籍

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