通信工程专业C语言课程设计.docx
《通信工程专业C语言课程设计.docx》由会员分享,可在线阅读,更多相关《通信工程专业C语言课程设计.docx(21页珍藏版)》请在冰豆网上搜索。
![通信工程专业C语言课程设计.docx](https://file1.bdocx.com/fileroot1/2022-11/21/0cc22ba4-8a34-4939-82a3-9d86b0b71bcb/0cc22ba4-8a34-4939-82a3-9d86b0b71bcb1.gif)
通信工程专业C语言课程设计
《通信工程专业C语言课程设计》
报告
专业:
通信工程
班级:
0802
姓名:
彭孟秋
指导教师:
丁雄
00九年十二月二十五日
1课程设计题目及基本内容2
2课程设计思路及设计流程图3
3程序调试分析5
4总结5
参考书目6
附程序代码6
课程设计题目:
商品信息管理系统
基本内容:
设计商品信息管理系统,商品包括:
商品编号,名称,出产年月,价格等。
系统功能包括:
1、系统以菜单方式工作,密码登陆。
2、商品信息的录入功能(增加数据)。
用数组数据类型赋初值的方法把商品信息送到各个数组中(但注意要是合法数据),然后把它们输出显示。
3、商品信息的删除(删除数据)。
任意输入一个商品的编号,将它所有的信息从组数中删除。
4、商品信息的浏览功能(查找数据)。
任意输入一个商品的编号,打印出他的所有数据。
要求能多次查找。
5、商品信息的删除(修改数据)。
任意输入一个商品的编号,打印出所有相关信息后,可对某一项信息进行修改并保存。
6商品信息的计算并排序。
计算所有商品的总价格及平均价格(aver,单精度,
输出一位小数),将包括所有数据的数组元素按价格从高到低的顺序排序打印出
课程设计思路及设计流程图
主函数的流程图
mymodify模块的流程图(E)
程序调试分析:
(1)、在主菜单中选择1,程序能否进入录入信息管理模块,增加玩数据后系统中总的信息是否有相应的增加。
此后输入的字符能控制是继续录入还是返回主菜单,进行其他操作。
(2)、在主菜单中选择2,程序能否进入删除信息管理模块,删除完数据后系统中的信息量是否做相应的变化。
此后输入的字符能控制是继续录入还是返回主菜单,进行其他操作。
(3)、在主菜单中选择3,程序能否进入浏览信息管理模块,并输出要浏览的信息此后输入的字符能控制是继续录入还是返回主菜单,进行其他操作。
(4)、在主菜单中选择4、程序能否进入修改信息管理模块,当询问所要修改信息内容时,输入1、2、3、4和其他数字时有相应的操作,如当输入1时能进行书名的修改。
此后输入的字符能控制是继续录入还是返回主菜单,进行其他操作。
(5)、在主菜单中选择4、程序能否进入修改信息管理模块,当询问所要修改信息内容时,输入1、2、3、4和其他数字时有相应的操作,如当输入1时能进行书名的修改。
此后输入的字符能控制是继续录入还是返回主菜单,进行其他操作。
(6)、在主菜单中选择5,能输出总价和平均价格,并能输出按价格排序后的书本信息
总结
经过不到一个星期的C语言课程设计,我对C语言有了更进一步的认识和了解,从刚开始不知从何下笔到现在的漂亮运行,在我们五个人一起努力下,终于顺利完成任务了。
成功的那一刻,大家无比兴奋,四天的努力没有白费!
是我们五个人的劳动结晶。
从而也使我明白要学好C语言重在实践,要通过不断的上机操作,并且练习自主设计程序才能更好的掌握它。
以前上课感觉自己学会了很多,但到真正用的时候才发现没学的还有好多好多,虽然课堂上看似学会了,可到实际操作时问题多多。
通过这次课程设计把所学的东西用在了实践上,设计出来一些有用的东西,感觉很有成就感,虽然在设计的过程中遇到了很多困难,但最终都被我们解决了,从而也加强了解决问题的能力。
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,软件开发已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握程序开发开发技术是十分重要的。
回顾起此次C语言课程设计,至今我仍感慨颇多,的确,从模块单独设计到整体调用,从理论到实践,在整整一个星期的日子里,可以说是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正对所学知识得到应用,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,对以前所学过的知识做了重新温故。
参考书目:
[1]谭浩强,《C程序设计》,北京,清华大学出版社,2007年
[2]王为青张圣亮,《C语言实战105例》,北京,人民邮电出版社,2009年
附录:
程序代码
#include
#include
#include
#defineMAX_NUM100
structgoods
{charnum[10];
charname[10];
floatin_pri;
floatsell_pri;
intin_count;
ints_count;
floatincome;
intsurplus;
floatprofit;
}record[MAX_NUM];
voidprintPrMenu();
voidmycreate(structgoods*p,int*n);
charmyedit(structgoods*p,int*n);
voidprintMenuB();
voidmyadd(structgoods*p,int*n);
voidmydelete(structgoods*p,int*n);
voiddel_num(structgoods*p,int*n);
voiddel_name(structgoods*p,int*n);
voidmymodify(structgoods*p,intn);
voidmystatistics(structgoods*p,intn);
charmysearch(structgoods*p,intn);
voidprintMenuC();
voidsch_name(structgoods*p,intn);
voidsch_surplus(structgoods*p,intn);
voidprintMenuD();
voidmydisplay1(intn);
voidmydisplay2(intn);
voidmydisplay3(intn);
charLoop();
voidswap(structgoods*elm1,structgoods*elm2);
voidmain()
{
charchoose,yes_no;
intn=0;
while
(1)
{clrscr();
printPrMenu();
choose=getch();
switch(choose)
{case'1':
clrscr();
do
{mycreate(record,&n);
yes_no=Loop();
}
while(yes_no=='Y'||yes_no=='y');
break;
case'2':
clrscr();
if(n==0)
it!
\n");
{printf("\n\n\n\n\nDidn'thavetherecords!
pleasecreateprintf("pressanykeytocontinue...");
getch();
break;}
else
{do
{
charselect;
select=myedit(record,&n);
if(select=='0')
return;
elseif(select=='4')
break;
else
yes_no=Loop();
}
while(yes_no=='Y'||yes_no=='y');
}
break;
case'3':
clrscr();
if(n==0)
{printf("\n\n\n\n\nDidn'thavethe
records!
pleasecreateit!
\n");
printf("pressanykeytocontinue...");
getch();
break;}
else
mystatistics(record,n);
printf("\npressanykeytocontinue...");getch();
}
break;
case'4':
clrscr();
if(n==0)
{printf("\n\n\n\n\nDidn'thavethe
records!
pleasecreateit!
\n");
printf("pressanykeytocontinue...");
getch();
break;}
else
{
do
{
charselect;select=mysearch(record,n);if(select=='0')return;
elseif(select=='3')
break;
else
yes_no=Loop();
}while(yes_no=='Y'||yes_no=='y');
}
break;
case'5':
clrscr();
if(n==0)
{printf("\n\n\n\n\nDidn'thavethe
records!
pleasecreateit!
\n");
printf("pressanykeytocontinue...");
getch();
break;}
else
{charchoose1;
do
continue...");
continue...");
continue...");
illegalchoose!
\n",choose);
}
clrscr();printMenuD();choose1=getch();switch(choose1)
{
case'1':
clrscr();
mydisplay1(n);printf("\npress
any
case'2':
getch();break;clrscr();mydisplay2(n);printf("\npress
any
case'3':
getch();break;clrscr();mydisplay3(n);printf("\npress
any
case'4':
case'0':
default:
getch();break;
clrscr();
break;return;
clrscr();printf("\n\n\n\n\n
%cis
if(choose1!
='4')yes_no=Loop();
else
yes_no='n';
}
while(yes_no=='Y'||yes_no=='y');
break;
case'0':
break;
default:
clrscr();
printf("\n\n\n\n\nIllegal
Pleaseinputagain!
\n");
key
key
key
choice!
to
to
to
break;
}
if(choose=='0')break;
}
}
voidprintPrMenu()
{
printf("\n\n\n\n\n\n");
printf("
||\n");
printf("|chooseanumber(0-5):
|\n");
printf("
||\n");
printf("
|1pleasecreatetheinformationofgoods
|\n");
printf("
|2pleaseedittheinformationofgoods
|\n");
printf("
|3please
addupthe
sellinformation
of
goods|\n");
printf("
|4please
searchthe
information
of
goods
|\n");
printf("
|5please
displaythe
information
of
goods
|\n");
printf("
|0exit
|\n");
printf("
|
|\n");
printf("
|\n");
printf("Youchoiceis:
");
}
voidmycreate(structgoods*p,int*n)
{
printf("\nPleaseinputthe%drecord:
\n",(*n)+1);
printf("goodsnumber:
");
scanf("%s",p[*n].num);printf("goodsname:
");scanf("%s",p[*n].name);printf("enterprice:
");scanf("%f",&p[*n].in_pri);printf("sellprice:
");scanf("%f",&p[*n].sell_pri);printf("stockcount:
");scanf("%d",&p[*n].in_count);printf("sellcount:
");scanf("%d",&p[*n].s_count);p[*n].income=p[*n].sell_pri*p[*n].s_count;
p[*n].surplus=p[*n].in_count-p[*n].s_count;p[*n].profit=p[*n].income-p[*n].in_pri*p[*n].s_count;
(*n)++;
}
charmyedit(structgoods*p,int*n)
{
charchoose;
while
(1)
{
clrscr();
printMenuB();choose=getch();switch(choose){case'1':
clrscr();
myadd(p,n);
break;
case'2':
clrscr();
mydelete(p,n);
break;case'3':
clrscr();
mymodify(p,*n);
break;
case'4':
break;
case'0':
clrscr();
break;
default:
clrscr();
printf("\n\n\n\n\n
choose!
\n",choose);
}
returnchoose;
}
}
%cisillegal
voidprintMenuB()
{
printf("\n\n\n\n\n\n");
printf("
|***********************************************|\n");
printf("|pleaseinput|\n");
printf("
thenumberofthechooses
(0-4):
***********************************************
|\n");
printf("|1addthenewgoods
\n");
printf("
|2deletethegoods
\n");
printf("
|3modifythegoods
\n");
printf("
|4return
\n");
printf("
|0exit
\n");
printf("
***********************************************[\r»H
printf("Youchoiceis:
");}
voidmyadd(structgoods*p,int*n)
{
charc;
structgoods*q,temp;
do
{
printf("\npleaseinputdo
{
gets(temp.num);}while(strcmp(temp.num,"")==0);
printf("pleaseinputnewname:
");gets(temp.name);
printf("pleaseinputnewenterprice:
");scanf("%f",&temp.in_pri);
printf("pleaseinputnewsellprice:
");scanf("%f",&temp.sell_pri);
printf("pleaseinputnewstockcount:
");scanf("%d",&temp.in_count);
printf("pleaseinputnewsellcount:
");scanf("%d",&temp.s_count);temp.income=temp.sell_pri*temp.s_count;temp.surplus=temp.in_count-temp.s_count;temp.profit=temp.income-temp.in_pri*temp.s_count;
for(q=p;q
num)==0)
{printf("\nnumberisalreadyexist,Doyouwanttoinputanewnumber(Y/N)?
");
do
c=getche();
}while(c!
='Y'&&c!
='y'&&c!
='N'&&c!
='n');
putchar('\n');
break;
}
if(q==p+(*n))
{*q=temp;
(*n)++;
break;
}
}while(c=='y'||c=='Y');
}
voidmydelete(structgoods*p,int*n)
{charc;
printf("\nDoyouwantdeleteitbynumber(b)orname(m)?
");
c=getch();
if(c=='b'||c=='B')
del_num(p,n);
elseif(c=='m'||c=='M')
del_name(p,n);
elseprintf("\nthewordsisillegal!
\n");
}
voiddel_num(structgoods*p,int*n)
{
chartempnum[10];
structgoods*q,*k;
printf("\npleaseinputthenumberyouwanttodelete:
");
scanf("%s",tempnum);
for(k=p;k
if(strcmp(tempnum,k->num)==0)break;
if(k
{for(q=k;q*q=*(q+1);
(*n)--;
}
elseprintf("\nthereisn'tthegoods!
\n");
}
voiddel_name(structgoods*p,int*n)
{chartempname[10];
structgoods*q,*k;
printf("\npleaseinputthenameyouwanttodelete:
");scanf("%s",tempname);
for(k=p;k
name)==0)break;
if(k
{for(q=k;q*q=*(q+1);
(*n)--;
}
elseprintf("\nthereisn'tthegoods!
\n");
}
voidmymodify(structgoods*p,intn)
{
charc;
structgoods*q,*find,temp;
to
printf("\npleaseinputthegoods'numberwantmodify:
");
scanf("%s",temp.num);
for(q=p;q
if(strcmp(temp.num,q->num)==0)
{find=q;break;}
if(q==p+n)
printf("\ntherehaven'tthenumber!
\n");
else
{do
{printf("\npleaseinputrightnumber:
");
do
{
scanf("%s",temp.num);}while(strcmp(temp.num,"")==0);
printf("goodsname:
");
scanf("%s",temp.name);
printf("enterprice:
");
scanf("%f",&temp.in_pri);printf("sellprice:
");
scanf("%f",&temp.sell_pri);printf("stockcount:
");
scanf("%d",&temp.in_count);
printf("sellcount:
");
scanf("%d",&temp.s_count);
temp.income=temp.sell_pri*temp.s_count;temp.surplus=temp.in_count-temp.s_count;temp.profit=temp.income-temp.in_pri*temp.s_count;
for(q=p;q
num)==0)&&(q!
=find))
{
printf("\nnumberisalreadyexist,Doyou
wanttoinputanewnumber(yes/no)?
");
do
{
c=