昆明理工大学
《程序设计基础》课程
综合设计实践教学课题报告
课程名称: C程序设计基础
课题名称:C语言练习函数调用演示。
学号: 201110501133
姓名: 李得菘
学院: 电力工程
班级: 电自111
教师: 付湘琼
昆明理工大学计算中心
2012 年 5月 31 日
《程序设计基础》课程综合设计实践教学课题报告要求
1、 系统概述
主要思路:各练习函数单独编写成函数,在主函数中通过选项菜单调用各函数。可以返复运行,当输入0时退出。
在这次的作业中主要解决设计能调用各子函数的程序设计和各个子函数的设计,解决这些就大部分解决了,子函数可以通过void function_()一个一个的拼接而被调用,菜单函数就通过{ switch(menu_select())
{ case 1:function_1();break;
case 2:function_2();break;
case 3:function_3();break;
case 4:function_4();break;
case 5:function_5();break;
case 6:printf("END,GOOD BAYE!\n"); exit(0);}}}
来实现
2、数据结构设计
(1) 本程序包含的整型,字符型,浮点型;
(2) 输入主要是以数字形式输入;
(3) 输出数据有符号,数据,文字,
3、模块设计
功能有:主函数有菜单选择功能;温度转换函数;打印菱形;乘法表;水仙花数;求最大数
4.调试运行及操作说明
正常运行程序,进入程序的菜单选项栏,选择各程序前的数字运行你需要的程序。在程序的设计中第一总是只运行第一个程序,经过检查发现错误在
{ case 1:function_1();break;
case 2:function_1();break;
case 3:function_1();break;
case 4:function_1();break;
case 5:function_1();break;
经过修改后正确,运行正常。
5、程序代码
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
#include<math.h>
#include<string.h>
#include<conio.h>
#include<windows.h>
void function_1();
void function_2();
void function_3();
void function_4();
void function_5();
int menu_select();
void main()
{ for( ; ;)
{ switch(menu_select())
{ case 1:function_1();break;
case 2:function_2();break;
case 3:function_3();break;
case 4:function_4();break;
case 5:function_5();break;
case 6:printf("END,GOOD BAYE!\n"); exit(0);}}}
int menu_select()
{
char s;
int n;
printf("\n\n\n\n");
printf("--------------------------\n\n\n");
printf(" 1:运行'温度转化程'序\n");
printf(" 2 :运行'打印菱形'程序\n");
printf(" 3:运行'乘法表'程序\n");
printf(" 4:运行'水仙花数'程序\n");
printf(" 5:运行'求最大数'程序\n");
printf(" 6:程序结束,再见!\n\n");
printf("--------------------------------\n\n\n");
printf("请输入数字1—6,选择你要运行的程序\n");
do{
s=getchar();
n=(int)s-48;
}while(n<1||n>6);
return n;
}
//输出乘法表程序
void function_1()
{
float F,c;
printf("输入一个华氏温度");
scanf("%f",&F);
c=5*(F-32)/9;
printf("摄氏温度=%.2f\n",c);
getch();
}
void function_2()
{ int i,j,k;
for(i=0;i<=3;i++)
{ for(j=0;j<=2-i;j++)
printf(" ");
for(k=0;k<=2*i;k++)
printf("*");printf("\n"); }
for(i=0;i<=2;i++)
{
for(j=0;j<=i;j++)
printf(" ");
for(k=0;k<=4-2*i;k++)
printf("*");
printf("\n");}
getch();
}
void function_3()
{ long int f1, f2;
int i, j;
for(i=1;i<=9;i++)
for(j=1;j<=i;j++){
printf("%d*%d=%d ",i,j, i*j);
if(i==j)printf("\n");
}
printf("\n");
getch();
}
void function_4()
{int i,j,k,n;
printf("THE narcissus number are:");
for(n=100;n<=1000;n++){
i=n/100;
j=n/10-i*10;
k=n%10;
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
{printf("%d ", n);}
}
printf("\n");
getch();
}
void function_5()
{
int a[6],i,max;
printf("input 6 numbers:\n");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
max=a[0];
for(i=0;i<5;i++)
{if(a[i]>max)max=a[i];}
printf("max=%d\n",max);
getch();
}
6、总结和体会
这学期,我学习了C语言收获了很多,这是一门很有用的学科。通过学习,我知道了C语言是最基本的计算机语言,也是现在还很广泛使用的,我通过自己学习,在录入,注释,修改了一些简单的程序,到现在的综合设计我进步了很多,在老师提供的模板的情况下自己通过问同学和自己设计,完成了作业。在学习过程中,老师耐心教导我们对我们有很大的帮助,在此感谢!
7、自评分:80
8、教师评阅
教师签名:付湘琼 2012 年 月 日
《程序设计基础》课程
综合设计实践教学课题要求与考核
1、学生独立完成综合设计实践教学课题,选择完成1个课题,也可完成多个课题。
2、至少完成一个程序模块的编程和调试,对源程序语句加注释。独立完成所选模块的设计文档(流程图、源代码及注释)。
3、写出个人收获和体会或对本课程的评价。要根据自己参与设计和独立完成模块设计的情况来表述个人收获体会,或者是对本课程教学方法、综合设计等方面的评价。
4、每个人完成并提交一份完整的电子文档形式的“《程序设计基础》课程综合设计实践教学课题报告”(综合设计报告.DOC)和源程序(源程序.C),按每个人一个文件夹,文件夹名字以学号+姓名完成。
昆明理工大学
《程序设计基础》课程 综合设计实践教学课题报告
课程名称: C语言程序设计
组长: 学号 20121 姓名
组员: 学号 20121 姓名
学号 201217 姓名
学院: 信自 专业班级: 测 指导教师: 耿植林
昆明理工大学计算中心 课题名称:综合设计实践教学课题报告
20xx年 6 月 4 日
1
填写格式及说明
1、 系统概述
随着社会的发展,人们生活需求也随之扩大,商场的商品也越来越多。为了方便更好、更便捷的管理商场商品,本程序就是依据商品管理来编写。
2、数据结构设计
struct goods
{ char name[5]; int bianhao; int kc; int jg[3]; }per[N];
用一个结构体保存商品的信息
3、模块设计
程序中定义了6个函数。分别为退出程序,菜单函数,排序函数,文件保存函数,文件输入函数,求平均数函数,查找商品的函数。
组长负责菜单函数、排序函数、主函数的编写和查找商品函数
组员负责退出程序,文件保存函数,文件输出函数。
4.调试运行及操作说明
1.进入程序
2
2.输入数据
3.排序
3
4.平均价格
5.保存文件,之后读取。
4
6.查找商品
7.退出程序
5
5、总结和体会
组长:
从拿到题目到完成整个编程,从理论到实践,在整整两个多礼拜的日子里,学到了很多很多的东西,同时不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到了很多的问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计之后,对以前所学过的知识熟悉很多,本次课程设计结束了,我们通过这次实践学到了许多知识。学到了设计一个简单的系统,要注意哪些方面,也使我们知道自己哪些方面做得还不够。这不仅是程序设计,更是锻炼我们处理问题的能力,同时也使我们了解到团队合作的可贵,编写程序是件细心活,稍不留神就会出错,这就必须要求我们对待事情要认真!在编写程序的过程中,错误不断出现,不同的类型(如少写了一个符号,写错了字母,用错了函数等等)层出不穷,这考验我们待事细心、耐心、坚持到底,不能半途而废。
我们总结出了一点点的经验如下:
1. 要对系统的功能和要求做出详细的分析,并合理分解任务。
2. 把分解出来的子任务,做给一个相对独立的模块。
3. 在设计一个模块之前,要简单构想一下总界面的显视情况。
4. 针对构想出来的界面进行程序的编写。
组员:
这个学期开始接触C语言,从中学到了很多。C语言是很要实践的课程,仅仅
上课听是不够的,课后自己看和编程是必须的。这次综合大作业,需要用到这学期所学的很多知识,为了编写程序,相当于复习了一遍,从中也发现了自己之前没注意到的知识点,使我收获更多。函数、结构体、指针、文件等的应用,虽然开始时使用真的很头疼,完全不会应用,但是当一个程序编写完时会很有成就感。这次的组队大作业,要和不同的人一起编写程序,使我得到了锻炼,也感受到了合作带来的便捷好处。虽然中间有些波折,但仍在规定的时间内把作业给完成了。当程序成功编写出来的时候真的非常高兴。
6
7
【附代码】 /*综合:商场商品货物管理导购程序
1.选项菜单集成各功能函数模块。
2.录入若干个商品名、类别、编号、各不同时间段的不同单价、库存量。
3.按商品库存量从高到低排序。 4.按商品名称查找商品。 5.汇总显示商品的在一段时间内的平均单价。 6.打印商品单。 7.保存文件
0.退出程序*/
#include <stdio.h>
#include"stdlib.h"
#define N 3 /*规定商品种类*/
struct goods { char name[5]; int bianhao; int kc; int jg[3]; }per[N];/*设置商品信息的结构体*/ void good_bye()
{printf("\n 程序结束 ,再见!\n");}/*退出程序*/ int menu()/*菜单函数*/
{
}
char c; int n; do { printf("1.录入若干个商品名、编号、各不同时间段的不同单价(3个)、库存量。\n"); printf("2.按商品库存量从高到低排序\n"); printf("3.按商品编号查找商品。\n"); printf("4.汇总显示商品的在一段时间内的平均单价\n"); printf("5.打印商品单。\n"); printf("6.保存文件\n"); printf("0.退出\n"); printf("请选择对应的\n"); c=getchar(); }while((n<0)||(n>6)); return (n); n=c-48; 8
int cs(int q,struct goods *pa)/*功能3函数*/ {
int i,j; for(i=0;i<N;i++,pa++) {if(q==pa->bianhao) else j=-1;} return j; j=i;
}
int pj(int a, int b ,int c)/*求平均价格函数*/ {
int d; d=(a+b+c)/3;
return d;
}
void save (char filename[],int n)/*保存文件函数*/ {
FILE *fp; if((fp=fopen(filename,"wb"))==NULL) printf("Can't open this file"); for(i=0;i<n;i++) if(fwrite(&per[i],sizeof(struct goods),1,fp)!=1) printf("file write error\n"); int i; fclose(fp);
}
void read(char filename[],int n)/*读取文件函数*/ {
FILE *fp; if((fp=fopen(filename,"rb"))==NULL) printf("Can't open this file"); if(fread(per,sizeof(struct goods),n,fp)==1) printf("file had read"); fclose(fp);
}
main()
{ int k,pass,i,j,h,q,m=0;
char filename[30];
9
struct goods mem;
struct goods *p=per;
do{
k=menu();
switch(k)
{ case 1:printf("1.键盘输入"); printf("2.从文件上读取\n"); scanf("%d",&m); switch(m) {case 2:printf("请输入读取文件名称(文件名qwe)"); scanf("%s",filename); read(filename,N);break; case 1: for(i=0;i<N;i++) {printf("%d种商品信息:\n",i+1); printf("请输入商品名称");
scanf("%s",&per[i].name);
getchar();
printf("请输入商品编号");
scanf("%d",&per[i].bianhao); getchar();
printf("请输入商品库存");
scanf("%d",&per[i].kc);
printf("请输入第一个时间的商品价格"); scanf("%d",&per[i].jg[1]);
printf("请输入第二个时间的商品价格"); scanf("%d",&per[i].jg[2]);
printf("请输入第三个时间的商品价格");
scanf("%d",&per[i].jg[3]);}break;} break;/*输入商品信息*/ for(i=0;i<N-pass;i++) if(per[i].kc<per[i+1].kc) { mem=per[i];per[i]=per[i+1];per[i+1]=mem;}/*冒泡法*/ printf("排序已完成,请打印商品单\n"); break;} case 2:{for(pass=1;pass<N;pass++) case 3: printf("请输入要寻找的商品编号"); scanf("%d",&q); j=cs(q, p); 10
if(j!=-1)
{printf("商品名称 商品编号 商品库存 商品价格1 商品价格2 商品价格3\n");
printf("%7s%7d%7d%7d%7d%7d\n",per[j].name,per[j].bianhao,
per[j].kc,per[j].jg[1],per[j].jg[2],per[j].jg[3]);}
else
printf("没有找到商品");
break;
case 4:printf("商品名称 商品平均价格\n");
for(i=0;i<N;i++)
{h=pj(per[i].jg[1],per[i].jg[2],per[i].jg[3]);
printf("%7s%7d\n",per[i].name,h);}
break;
case 5:{printf("商品名称 商品编号 商品库存 商品价格1 品价格2 商品价格3\n");
for(i=0;i<N;i++)
printf("%7s%7d%7d%7d%7d%7d\n",per[i].name,per[i].bianhao, per[i].kc,per[i].jg[1],per[i].jg[2],per[i].jg[3]);break;}/*打印商品列表*/
case 6:
printf("请输入保存文件名称;");
scanf("%s",filename);
save(filename,N);break;
case 0:good_bye();exit(0);break;/*退出程序*/}
getchar();getchar();
}while(k!=0);
}
11 商
昆明理工大学程序设计基础课程综合设计实践教学课题报告课程名称C语言程序设计学号姓名学院专业班级指导教师昆明理工大学计算中心课题名称…
昆明理工大学程序设计基础课程综合设计实践教学课题报告课程名称课题名称C语言练习函数调用演示学号20xx10501133姓名李得菘学…
C语言课程设计报告设计题目专业班级学号姓名任课老师时间目录一课程设计题目及所涉及知识点二课程设计思路及设计流程图三课程设计中遇到的…
3130111103福建工程学院C语言课程设计报告班级机械1301学号姓名指导教师日期20xx123020xx1331301111…
东华理工大学报告学院国际教育学院学院专业电子信息工程班级学号20xx20xx0638姓名钟天运一课程设计题目游戏20xx二课程设计…
XX大学课程设计报告课程设计名称C语言课程设计课程设计题目排班系统院系XX学院专业XX班级XX学号XXXXXXXXXXXXX姓名X…
C语言课程设计报告姓名张林班级计算111班学号11060101241A类基本题1围绕着山顶有10个圆形排列的洞狐狸要吃兔子兔子说可…
C语言程序设计课程设计学生姓名学号系院专业设计论文题目学生选课系统管理完成日期20xx年6月指导教师目录一实验目的二实验内容三总体…
C语言课程设计报告题目院系组别成员指导老师20xx年月日114目录一课程设计题目3二课程设计要求3三数据结构设计描述31问题描述3…
西安郵電大學C语言课程设计报告书学院名称:计算机学院学生姓名:专业名称:班级:学号:指导教师:时间:20XX年06月03日至20X…
C语言学习心得报告看了一段时间的《C和指针》,这样看的效果不是很好,看着书本当时是懂了,有点恍然大悟的感觉,但是发现并不能真正的把…