文档库 最新最全的文档下载
当前位置:文档库 › C语言课程设计之校运动会管理系统的设计与实现

C语言课程设计之校运动会管理系统的设计与实现

C语言课程设计之校运动会管理系统的设计与实现
C语言课程设计之校运动会管理系统的设计与实现

一题目要求

课题:校运动会管理系统的设计与实现

具体要求:

(1)信息初始化,依次输入:

N—参赛学校总数M—男子竞赛项目数W—女子竞赛项目总数

各项目名次取法有以下几种:

①取前五名:第一名得分7分,第二名得分5分,第三名得分3分,第四名2分,第五名得分1分。

②取前三名:第一名得分5分,第二名得分3分,第三名得分2分。

③用户自定义:各名次权值由用户定义。

(2)提醒用户填写比赛结果,输入各项目获奖运动员的信息。

(3)所有信息记录完毕后,用户可以查询各个学校的比赛成绩,生成团体总分报表,查看参赛学校信息和比赛项目信息等。

二需求分析

根据题目要求,将学校的信息和比赛项目等信息存放到指定的文件中,并能实现相关信息的浏览功能,故在程序中应提供输入,输出,显示,查找,排序等操作。

三总体设计

由需求分析可讲系统分为信息输入模块,比赛录入模块和查询模块三个模块,并追加一些辅助模块以增加程序的功能,方便使用。

四详细设计

1 主函数

主要通过main()函数及choose()函数实现.

void main() /***************主函数**************/

{

int choos

printf("\n\n * * * 运动会分数统计 * * *\n\n\n");

printf("共有多少个学校参赛:");

scanf("%d",&a);

while(a<=0||a>20)

{

if(a<=0)

{

printf("\n 参赛学校个数不能是负数或零\n\n");

printf("共有多少个学校参赛:");

scanf("%d",&a);

}

{

printf("\n 参赛学校个数不能大于20\n\n");

printf("共有多少个学校参赛:");

scanf("%d",&a);

}

}

printf("有几个男子组:");

scanf("%d",&c);

printf("有几个女子组:");

scanf("%d",&d);

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

{

f[i]=(struct node *)malloc(sizeof(struct node)*(c+d+3)); for(j=0;j<=c+d+2;j++)

f[i][j].num=0;

}

choos=choose();

while(1)

{

while(choos<0||choos>8)

choos=choose();

(*g[choos])();

printf("\n");

choos=choose();

}

}

int choose()

{

int choo;

printf("\n\n 1*输入成绩\n");

printf(" 2*统计各学校的总分\n");

printf(" 3*按学校编号排序输出\n");

printf(" 4*按学校总分排序输出\n");

printf(" 5*按男团体总分排序输出\n");

printf(" 6*按女团体总分排序输出\n");

printf(" 7*按学校编号查询学校某个项目的成绩\n");

printf(" 8*按项目编号查询取得前三或前五名的学校\n");

printf(" 9*退出\n\n");

printf("请选择:");

scanf("%d",&choo);

2 成绩输入

当选择1 时进行成绩的输入.实现的功能函数为input(),相关实现如下: { void input()

int ab,ac,ae,af,g=1,get[5]={0,0,0,0,0};

printf("\n请输入项目代号:");

ale:scanf("%d",&ab);

if(ab>c+d||ab<1)

{

printf("\n此项目代号不存在,重新输入\n");

goto ale;

}

ae=0;

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

{

if(f[i][ab].num!=0)

{

ae=1;

break;

}

}

if(ae==1)

{

al2: printf("\n此项目成绩曾经已被录入过,是否要重新录入(您输入的项目代号可能有误,强烈建议您查证后再录入):\n");

printf(" 1++++重新录入(若重新录入,以前的该项目成绩将被删除)\n");

printf(" 2++++不要,待查证后再录入\n\n");

scanf("%d",&af);

if(af==2)

{

printf("您已取消录入!!!!!\n");

return;

}

else if(af==1)

{

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

{

if(f[i][ab].num!=0)

{

f[i][0].num=f[i][0].num-f[i][ab].num;

if(ab<=c)

f[i][c+d+1].num=f[i][c+d+1].num-f[i][ab].num;

else

f[i][c+d+2].num=f[i][c+d+2].num-f[i][ab].num;

}

f[i][ab].num=0;

}

}

else

goto al2;

}

al: printf("\n此项目是以前几名为胜出者:\n\n");

printf(" 3-------以前三名\n");

printf(" 5-------以前五名\n\n");

scanf("%d",&ac);

if(ac==3)

{

printf("\n请依次输入获胜学校代号:");

af=5;

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

{

alq: scanf("%d",&ae);

if(ae>a||ae<1)

{

printf("%d学校代号不存在,重新输入第%d名的学校代号\n",ae,g);

goto alq;

}

for(b=0;b<5;b++)

{

if(ae==get[b])

{

printf("同一个学校不能在同一项目中有两个名次,请重新输入第%d名的学校代号!!!\n",g);

goto alq;

}

else

get[b]=ae;

}

f[ae][0].num=f[ae][0].num+af;

f[ae][ab].num=af;

if(ab<=c)

f[ae][c+d+1].num=f[ae][c+d+1].num+af;

else

f[ae][c+d+2].num=f[ae][c+d+2].num+af;

if(af>3)

af=af-2;

else

af--;

g++;

}

}

else if(ac==5)

{

printf("请依次输入获胜学校代号:");

af=7;

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

{

alw: scanf("%d",&ae);

if(ae>a||ae<1)

{

printf("%d学校代号不存在,重新输入第%d名的学校代号\n",ae,g);

goto alw;

}

for(b=0;b<5;b++)

{

if(ae==get[b])

{

printf("同一个学校不能在同一项目中有两个名次,请重新输入第%d 名的学校代号!!!\n",g);

goto alw;

}

else

get[b]=ae;

}

f[ae][0].num=f[ae][0].num+af;

f[ae][ab].num=af;

if(ab<=c)

f[ae][c+d+1].num=f[ae][c+d+1].num+af;

else

f[ae][c+d+2].num=f[ae][c+d+2].num+af;

if(af>3)

af=af-2;

else

af--;

g++;

}

}

else

goto al;

printf("\n\n 输入完成 ! ! ! ! \n");

}

3 成绩统计

当选择2 时进行成绩的输入.实现的功能函数为each (),相关实现如下:

void each()

{

printf("\n 对应的格式为:\n 学校代号:团体总成绩\n\n ");

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

{

printf("%2d:%3d ",i,f[i][0].num);

if(i%3==0)

printf("\n ");

}

4 按照各种方式输出

主要有按学校编号输出,按学校总分输出,按男团输出,按女团输出.相关实现分别如下: void biaohao()

{

printf("\n项目代号");

for(i=1;i<=c+d;i++)

{

if(i>9)

printf("%4d ",i);

else

printf("%5d ",i);

}

printf("\n");

printf("学校代号\n");

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

{

printf(" %d ",i);

for(b=1;b<=c+d;b++)

{

if(f[i][b].num>9)

printf("%4d",f[i][b].num);

else

printf("%5d",f[i][b].num);

}

printf("\n");

}

}

void zongfen()

{

struct nod

{

int ke;

int num;

};

int ha;

struct nod *de;

de=(struct nod *)malloc(sizeof(struct nod)*a+1); printf("\n 按学校编号排序输出\n\n");

printf(" 学校代号总分\n\n");

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

{

de[i].ke=i;

de[i].num=f[i][0].num;

}

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

{

for(b=i;b<=a;b++)

{

if(de[b].num>de[i].num)

{

ha=de[b].ke;

de[b].ke=de[i].ke;

de[i].ke=ha;

ha=de[b].num;

de[b].num=de[i].num;

de[i].num=ha;

}

}

}

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

{

printf("%13d%8d\n",de[i].ke,de[i].num);

}

}

void nanzong()

{

struct nod

{

int ke;

int num;

};

int ha;

struct nod *de;

de=(struct nod *)malloc(sizeof(struct nod)*a+1); printf("\n 按男子团体总分排序输出\n\n"); printf(" 学校代号男子团体总分\n\n");

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

{

de[i].ke=i;

de[i].num=f[i][c+d+1].num;

}

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

{

for(b=i;b<=a;b++)

{

if(de[b].num>de[i].num)

{

ha=de[b].ke;

de[b].ke=de[i].ke;

de[i].ke=ha;

ha=de[b].num;

de[b].num=de[i].num;

de[i].num=ha;

}

}

}

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

{

printf("%13d%12d\n",de[i].ke,de[i].num);

}

}

void nvzong()

{

struct nod

{

int ke;

int num;

};

int ha;

struct nod *de;

de=(struct nod *)malloc(sizeof(struct nod)*a+1); printf(" 按女子团体总分排序输出\n\n"); printf(" 学校代号女子团体总分\n\n");

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

{

de[i].ke=i;

de[i].num=f[i][c+d+2].num;

}

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

{

for(b=i;b<=a;b++)

{

if(de[b].num>de[i].num)

{

ha=de[b].ke;

de[b].ke=de[i].ke;

de[i].ke=ha;

ha=de[b].num;

de[b].num=de[i].num;

de[i].num=ha;

}

}

}

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

{

printf("%15d%13d\n",de[i].ke,de[i].num);

}

}

void xuexiao()

{

int dr,dt;

printf("\n请输入您要查询的学校代号:");

aly:scanf("%d",&dr);

if(dr>a||dr<1)

{

printf("学校代号不存在,重新输入\n");

goto aly;

}

printf("请输入您要查询的项目代号:");

alo:scanf("%d",&dt);

if(dt>c+d||dt<1)

{

printf("项目代号不存在,重新输入\n");

goto alo;

}

printf("\n\n %3d 学校的%3d 项目成绩为%3d\n",dr,dt,f[dr][dt].num);

}

5查询功能

按学校编号查询学校某个项目的成绩以xuexiao()及按项目编号查询取得前三或前五名的学校

void xuexiao()

{

int dr,dt;

printf("\n请输入您要查询的学校代号:");

aly:scanf("%d",&dr);

if(dr>a||dr<1)

{

printf("学校代号不存在,重新输入\n");

goto aly;

}

printf("请输入您要查询的项目代号:");

alo:scanf("%d",&dt);

if(dt>c+d||dt<1)

{

printf("项目代号不存在,重新输入\n");

goto alo;

}

printf("\n\n %3d 学校的%3d 项目成绩为%3d\n",dr,dt,f[dr][dt].num); }

void xiangmu()

{

int ge,sedy=0;

printf("\n 请输入您要查询的项目代号:");

all:scanf("%d",&ge);

printf("\n");

if(ge>c+d||ge<1)

{

printf("没有此项目代号,重新输入\n");

goto all;

}

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

{

if(f[b][ge].num==2)

sedy=1;

}

if(sedy==0)

{

printf("此项目没有录入成绩\n");

return;

}

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

{

if(f[i][ge].num==7)

{

printf(" 此项目取前5名获奖者\n");

break;

}

}

if(i==a+1)

printf(" 此项目取前3名获奖者\n");

printf("\n 获胜名单由成绩高到低依次为:\n\n ");

for(i=7;i>0;i--)

{

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

{

if(f[b][ge].num==i)

printf("%5d",b);

}

}

6 保存退出

void exit0()

{

FILE *fp;

int k;

alp:if((fp=fopen("sore.txt","w"))==NULL)

{

printf("创建文件失败\n");

printf(" 1*****重试\n");

printf(" 2*****强制退出(数据将不会保存到文件)\n"); printf(" 3*****回到主菜单\n");

alj: scanf("%d",&k);

if(k==1)

goto alp;

else if(k==2)

exit(0);

else if(k==3)

return;

else

{

printf("输入错误,请重新输入:");

goto alj;

}

}

fprintf(fp,"\n\n");

fprintf(fp,"运动会分数统计表\n\n\n");

fprintf(fp,"项目代号");

for(i=1;i<=c+d;i++)

fprintf(fp,"%5d",i);

fprintf(fp," ");

fprintf(fp,"\n 学校代号\n");

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

{

fprintf(fp,"%10d",i);

for(b=1;b<=c+d;b++)

{

fprintf(fp,"%5d",f[i][b].num);

}

fprintf(fp,"\n");

}

fprintf(fp,"\n\n");

fprintf(fp," 注:本次运动会有%d个学校参赛\n\n",a);

fprintf(fp," 其中1 ~ %d组是男子组,%d ~ %d组是女子组\n",c,c+1,c+d); printf("\n比赛成绩已保存到当前路径下的sore.txt文件中\n\n");

fclose(fp);

exit(1);

}

五原程序代码

#include

#include

#include

#include

int a,b,c,d,i,j;

struct node

{

int num;

};

struct node *f[22];

void exit0() /*******************保存退出*******************/

{

FILE *fp;

int k;

alp:if((fp=fopen("sore.txt","w"))==NULL)

{

printf("创建文件失败\n");

printf(" 1*****重试\n");

printf(" 2*****强制退出(数据将不会保存到文件)\n");

printf(" 3*****回到主菜单\n");

alj: scanf("%d",&k);

if(k==1)

goto alp;

else if(k==2)

exit(0);

else if(k==3)

return;

else

{

printf("输入错误,请重新输入:");

goto alj;

}

}

fprintf(fp,"\n\n");

fprintf(fp,"*************运动会分数统计表************\n\n");

fprintf(fp,"*************************统计者:可输入个人姓名"); fprintf(fp,"项目代号");

for(i=1;i<=c+d;i++)

fprintf(fp,"%d",i);

fprintf(fp," ");

fprintf(fp,"\n学校代号\n");

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

{

fprintf(fp,"%10d",i);

for(b=1;b<=c+d;b++)

{

fprintf(fp,"%5d",f[i][b].num);

}

fprintf(fp,"\n");

}

fprintf(fp,"\n\n");

fprintf(fp,"注:本次运动会有%d个学校参赛\n\n",a);

fprintf(fp,"其中1 ~ %d组是男子组,%d ~ %d组是女子组\n",c,c+1,c+d); printf("\n比赛成绩已保存到当前路径下的sore.txt文件中\n\n");

fclose(fp);

exit(1);

}

int choose() /**************进行项目选择***************/

{

int choo;

printf("\n\n 1*输入成绩\n");

printf(" 2*统计各学校的总分\n");

printf(" 3*按学校编号排序输出\n");

printf(" 4*按学校总分排序输出\n");

printf(" 5*按男团体总分排序输出\n");

printf(" 6*按女团体总分排序输出\n");

printf(" 7*按学校编号查询学校某个项目的成绩\n");

printf(" 8*按项目编号查询取得前三或前五名的学校\n");

printf(" 9*退出\n\n");

printf("请选择:");

scanf("%d",&choo);

return(choo-1);

}

void input() /****************输入成绩****************/

{

int ab,ac,ae,af,g=1,get[5]={0,0,0,0,0};

printf("\n请输入项目代号:");

ale:scanf("%d",&ab);

if(ab>c+d||ab<1)

{

printf("\n此项目代号不存在,重新输入\n");

goto ale;

}

ae=0;

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

{

if(f[i][ab].num!=0)

{

ae=1;

break;

}

}

if(ae==1)

{

al2: printf("\n此项目成绩曾经已被录入过,是否要重新录入(您输入的项目代号可能有误,强烈建议您查证后再录入):\n");

printf(" 1++++重新录入(若重新录入,以前的该项目成绩将被删除)\n");

printf(" 2++++不要,待查证后再录入\n\n");

scanf("%d",&af);

if(af==2)

{

printf("您已取消录入!!!!!\n");

return;

}

else if(af==1)

{

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

{

if(f[i][ab].num!=0)

{

f[i][0].num=f[i][0].num-f[i][ab].num;

if(ab<=c)

f[i][c+d+1].num=f[i][c+d+1].num-f[i][ab].num;

else

f[i][c+d+2].num=f[i][c+d+2].num-f[i][ab].num;

}

f[i][ab].num=0;

}

}

else

goto al2;

}

al: printf("\n此项目是以前几名为胜出者:\n\n");

printf(" 3-------以前三名\n");

printf(" 5-------以前五名\n\n");

scanf("%d",&ac);

if(ac==3)

{

printf("\n请依次输入获胜学校代号:");

af=5;

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

{

alq: scanf("%d",&ae);

if(ae>a||ae<1)

{

printf("%d学校代号不存在,重新输入第%d名的学校代号\n",ae,g);

goto alq;

}

for(b=0;b<5;b++)

{

if(ae==get[b])

{

printf("同一个学校不能在同一项目中有两个名次,请重新输入第%d名的学校代号!!!\n",g);

goto alq;

}

else

get[b]=ae;

}

f[ae][0].num=f[ae][0].num+af;

f[ae][ab].num=af;

if(ab<=c)

f[ae][c+d+1].num=f[ae][c+d+1].num+af;

else

f[ae][c+d+2].num=f[ae][c+d+2].num+af;

if(af>3)

af=af-2;

else

af--;

g++;

}

}

else if(ac==5)

{

printf("请依次输入获胜学校代号:");

af=7;

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

{

alw: scanf("%d",&ae);

if(ae>a||ae<1)

{

printf("%d学校代号不存在,重新输入第%d名的学校代号\n",ae,g);

goto alw;

}

for(b=0;b<5;b++)

{

if(ae==get[b])

{

printf("同一个学校不能在同一项目中有两个名次,请重新输入第%d 名的学校代号!!!\n",g);

goto alw;

}

else

get[b]=ae;

}

f[ae][0].num=f[ae][0].num+af;

f[ae][ab].num=af;

if(ab<=c)

f[ae][c+d+1].num=f[ae][c+d+1].num+af;

else

f[ae][c+d+2].num=f[ae][c+d+2].num+af;

if(af>3)

af=af-2;

else

af--;

g++;

}

}

else

goto al;

printf("\n\n 输入完成! ! ! ! \n");

}

void each() /***************输出各个学校的成绩*****************/

{

printf("\n 对应的格式为:\n 学校代号:团体总成绩\n\n ");

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

{

printf("%2d:%3d ",i,f[i][0].num);

if(i%3==0)

printf("\n ");

}

}

void biaohao()

{

printf("\n项目代号");

for(i=1;i<=c+d;i++)

{

if(i>9)

printf("%4d ",i);

else

printf("%5d ",i);

}

printf("\n");

printf("学校代号\n");

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

{

printf(" %d ",i);

for(b=1;b<=c+d;b++)

{

if(f[i][b].num>9)

printf("%4d",f[i][b].num);

else

printf("%5d",f[i][b].num);

}

printf("\n");

}

}

void zongfen() /*******************按学校编号顺序输出成绩******************/ {

struct nod

{

int ke;

《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];

c语言实验心得体会

c语言实验心得体会 篇一:C语言上机实验心得 C语言上机实验心得 在科技高度发展的今天,计算机在人们之中的作用越来越突出。而C语言作为一种计算机的语言,学习它将有助于我们更好的了解计算机,与计算机进行交流,因此,我们一定要学好C语言,这对我们以后的发展是十分重要的。 说到这,上机实验当然就是一个必不可少的环节了,C 语言灵活、简洁的特点,只有通过编程实践才能真正了解,真正说懂。为了更好地学习语法规定、掌握程序设计方法、提高程序开发能力,我们必须实际上机、编写程序。 通过实验我也发现了自己不少的问题,这都是只看书上的程序而没有自己亲身上机编写程序而无法得知的,假如我们只因看熟书上的程序就以为自己已经掌握了C语言那就大错特错了。 我主要存在以下的这些缺点: 1、学习耐心与细心不足,如scanf(“%d”,n);中的“”有时候会忘了。而在最后 输出时又错写成printf(“%d”,n);从而错误得输出了地址而不是我原来想要的答案。 2、编程思想不够发散,看着题目有时想不出解答的方法,更不用说编写程序来解

题了。 3、 4、基本功不够,有些函数的表达不太精通,需要看书来核实,以致耗时较多。知识不够广,有些内容没有学好,不能要用到时及时反映出来,认识程度不够 深刻。 5、 6、有时候不够精简,有一点用处不大或者说没有也可以的文字存在。英语水平较差,对错误的地方虽然电脑有说,但由于是英文,理解上还是存在 一点问题。 为了能更好地学好C语言,在今后学习中我要更多的动脑,综合运用所学,多看相关东西,多上机练习,提高电脑水平,增强自学能力,把已会的东西掌握好。 实验中我深刻意识到完成程序的编写,决不意味着万事大吉。认为万无一失的程序,实际上机运行时可能会出现很多意想不到的问题。有时编译程序检测出一大堆错误,有时程序能够顺利运行,但是运行结果并不是你预期中想要的。因为开发环境所提供的编译系统无法发现程序逻辑错误,或者是你原来所设计时的理论错误,这就只能靠自己的上机经验来分析判断错误的所在了。所以程序的调试是一个技巧性很强的工作,它可能比编一个程序耗时更

华中科技大学计算机学院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;

《C语言程序设计》课程设计报告

《C语言程序设计》课程设计报告 (2013— 2014学年第 3 学期) 题目:C语言课程设计 专业:软件工程 班级:软件工程技术2班 姓名学号: 1 林燕萍 指导教师:吴芸 成绩: 计算机科学与技术系 2014 年6月23日

目录 一、课程设计的目的与要求 (1) 二、方案实现与调试 (3) 2.1 掷骰子游戏 (5) 2.2 射击游戏 (7) 2.3 计算存款本息之和 (8) 2.4肇事逃逸 (10) 2.5 礼炮 (12) 2.6 汽车加油 (14) 2.7 大优惠 (16) 2.8 金币 (19) 三、课程设计分析与总结 (23) 附录程序清单 (25) 一、课程设计的目的与要求(含设计指标) C语言是一种编程灵活,特色鲜明的程序设计语言。C语言除了基知识,如概念,方法和语法规则之外更重要的是进行实训,以提高学习者的动手和编程能力,从应试课程转变为实践工具。 这是学习语言的最终目的。结合多年来的教学经验,根据学生的学习情况,为配合教学过程,使“项目教学法”能在本质上促使学生有更大进步,特编写了该《C语言程序设计任务书》,以在实训过程中给学生提供帮助。达到如下目的: 1.在课程结束之前,让学生进一步了解C程序设计语言的编程功能; 2.让学生扎实掌握C程序设计语言的相关知识; 3.通过一些有实际意义的程序设计,使学生体会到学以致用,并能将程序设计的知识与专业知识有效地结合,更全面系统地了解行业知识。 编写程序要求遵循如下基本要求: ①模块化程序设计 ②锯齿型书写格式

③必须上机调试通过 二、方案实现与调试 2.1掷骰子游戏 2.1.1 题目内容的描述 1) 两人轮流掷骰子,每次掷两个,每人最多掷10次。 2) 将每人每次的分值累加计分 3) 当两个骰子点数都为6时,计8分;当两个点数相等且不为两个6时,计7分;当两个点数不一样时,计其中点数较小的骰子的点数。 4) 结束条件:当双方都掷10次或经过5次后一方累计分数多出另一方的30%及以上。最后显示双方分数并判定优胜者。 2.1.2输入数据类型、格式和内容限制和输出数据的说明 数据类型:整型;内容限制:随机数的产生;输入数据结果:胜利的一方 2.1.3主要模块的算法描述 本算法的思路过程:首先要随机产生随机数,然后进行算法输出数值,执行条件判断输入结果,最后比较结果,判断胜利的一方。 程序流程图 图1 掷骰子游戏 2.1.4调试过程及实验结果

C语言课程设计_运动会管理系统

物联网工程课程设计报告 课题:学校运动会管理系统 专业班级:物联网工程131班 报告人:陆俊贤 139074382 庞彦辉 139074383 指导老师:张学锋 评定成绩: 指导老师签名:

前言 随着科技的发展,计算机以其强大的性能价格优势给人们的工作、学习和生活带来极大的方便.计算机代替人工处理一些事务已成为必然。整个人类社会已进入高度信息化,人们对信息和数据的利用和处理已经进入自动化、网络化和社会化的阶段。如在查找资料、处理日常办公事务、科研生产等方面,无不需要利用大量的信息资源。因此,如何有效地进行数据信息的管理和利用,已经成为人们普遍关注的课题。信息在不同的领域里有着不同的概念,在管理科学领域中,通常认为信息是经过加工处理后的一种数据形式,是一种有次序的符号排列,它是系统传输和处理的对象。处在信息时代的今天,信息的作用越来越为人们所重视。制定成绩计划,研究投资策略,都离不开对信息的充分利用。 在当今社会上,体育运动越来越普及,参与运动会的人越来越多,素质越来越高。传统的运动会,一般是以人手组织为主,运动员的报名、赛事的安排、比赛场地的安排和成绩的记录等操作全都由人手操作,参加人数越多,运动会的规模就越大,管理工作就更加费时费力,而且容易出错。学校田径运动会管理系统则为组织者提供一个简捷方便的方式来组织管理运动会,学校田径运动会管理系统是一种“人机交互系统”,通过简单的键盘输入与鼠标点击来完成烦琐的记录与安排工作,保证运动会的正常流畅的进行。学校田径运动会管理系统是典型的数据库应用系统,可完成田径运动会管理中的运动员基本信息录入,竞赛成绩处理及公告,成绩统计.信息查询等事务处理功能。根据学校田径运动会的一般进程,本系统分为数据修改、查询、删除、统计等四个工具模块来完成所期望的功能。依据关系型数据库理论设计数据库的结构。使用该系统可以极大地减小工作人员的劳动量,同时还可大大提高工作效率、可靠性和正确性。

c语言课程设计心得体会文档2篇

c语言课程设计心得体会文档2篇C language course design experience document 编订:JinTai College

c语言课程设计心得体会文档2篇 小泰温馨提示:心得体会是指一种读书、实践后所写的感受性文字。语言类读书心得同数学札记相近;体会是指将学习的东西运用到实践中去,通过实践反思学习内容并记录下来的文字,近似于经验总结。本文档根据主题的心得体会内容要求展开说明,具有实践指导意义,便于学习和使用,本文下载后内容可随意修改调整及打印。 本文简要目录如下:【下载该文档后使用Word打开,按住键盘Ctrl键且鼠标单击目录内容即可跳转到对应篇章】 1、篇章1:c语言课程设计心得体会文档 2、篇章2:c语言课程设计的心得体会文档 篇章1:c语言课程设计心得体会文档 在这为期半个月的时间内,通过我们小组各成员之间的相互讨论和合作,我们完成了学生信息管理系统的程序设计,更值得高兴的是我们的程序得到了大家的喜爱,在每次的简报中都得到了较好的成绩。 虽然在上个学期中,我们已经学习了《c 语言程序设计》这门课,但是我所学的知识最多也就是在做作业的时候才会用到,平时没有什么练习的机会,这次的课程设计是我第一次通

过自己构思,和同学讨论并且不断查阅资料来设计一项程序。这次设计,不仅巩固了我以前所学的知识,还让我对c语言有了更深一步的了解,掌握了更多的技巧和技能。 c语言是计算机程序设计的重要理论基础,在我们以后的学习和工作中都有着十分重要的地位。要学好这种语言,仅仅学习课本上的知识是不够的,还要经常自己动手,有较强的实践能力。只有多动手,经常编写程序,才能发现我们学习上的漏洞和自己的不足,并在实践中解决这些问题,不断提高自己转化知识的能力。 在我们小组有解决不了的问题时,我们会主动查阅相关的资料,或向其他同学询问,这不仅丰富了我们的知识,还增进了我们同学之间的友谊。为了增大信息的安全性,需要用文件来存储信息,由于我们在上课时不注重对文件的运用,所以在这方面有较大的困难。我先将书本认认真真地看了一遍,又做了一下课后习题来验证和增进自己的理解,终于,经过我们的不懈努力,我们小组的程序有了突破,成功地实现了用文件来保存并查看学生的信息。 这次设计中,我的收获还有就是学会了用流程图来表达自己的想法,并根据流程图来逐步实现程序的功能。开始的时候,我画流程图很是困难,需要一个多小时才能清楚的根据自

Java课程设计实验报告及全部源码流程图

课程设计 一、实验目的 1.加深对课堂讲授内容的理解,掌握解决实际应用问题时所应具有的查阅资料、技术标准和规范,以及软件编程、调试等能力,掌握面向对象的编程思想及Java语言程序设计的规律与技巧,为进一步学习web应用开发及今后从事专业工作打下基础。 2. 使用本学期学习的Java SE技术(也可以使用课堂教学中没有学习过的Java技术,但是应当以Java SE技术为主)完成多功能日历GUI程序的设计,使之具有如下基本功能:一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。 3.在完成基本功能的基础上发挥自己的想象力与创造力,使程序凸显出与众不同的特点与功能,形成本小组的特性色。 二、实验要求 1.问题描述准确、规范。 2.程序结构合理,调试数据准确、有代表性.。 3.界面布局整齐,人机交互方便。 4.输出结果正确。 5.正确撰写实验报告。 三、实验内容 编写一个GUI程序实现日历的功能。一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期以及当前农历,可以为每页日历选择背景图片。可以实现显示时钟,时钟能进行整点报

时。可以实现备忘记事功能,能在每天添加、修改、删除记事等操作。 四、实验步骤 1.在上机实验前,小组成员进行选题讨论,确定小组感兴趣而又伸缩性强的题目多功能日历。 2.在第一次上机实验时讨论分工,分工明确之后,分头合作进行。 3.各成员完成自己的任务后,最后进行统筹合并,以及程序最后的优化。 4. 根据实验结果,写出合肥工业大学实验报告。实验报告应当包括:实验内容,程序流程图,类结构,程序清单,运行结果,以及通过上机取得的经验。 5.详细的上机实验步骤见任务分工及程序设计进度表。 五、实验结果 经过小组成员的共同努力,最终我们小组设计的多功能日历程序能够实现实验的基本要求——一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。另外,在完成基本要求的基础上,我们增添了显示农历、显示时钟、添加备忘录、修改备忘录等功能。整体程序运行流畅、功能齐全、符合操作习惯。 下面是程序运行效果截图: 日历主界面(可以实现每个月的日历,可以按年或按月前后翻动,能够显示当前日期,并能够选择背景图片):

C语言课程设计报告_运动会分数统计系统

课程设计报告 课程名称《C语言程序设计》 课题名称运动员分数统计系统 专业电气工程及其自动化 班级电气1186 学号201113010628 姓名何长学 指导教师王颖 2012 年6月15日

湖南工程学院 课程设计任务书 课程名称《C语言程序设计》课题运动员分数统计系统 专业班级电气1186 学生姓名何长学 学号201113010628 指导老师王颖 审批 任务书下达日期2012年6月04日 任务完成日期2012年6月15 日

一、设计内容与设计要求 1.课程设计目的: 全面熟悉、掌握C语言基本知识,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为后继课程(数据结构、数据库和汇编语言等课程)的实验以及课程设计打下较扎实的基础。 2.课题题目 ⑴班级成绩管理系统 ⑵班级档案管理系统 ⑶飞机订票系统 ⑷猜数字游戏 ⑸电子英汉词典设计 ⑹心算抢答系统 ⑺运动会分数统计系统 ⑻小学生心算CAI系统 3.设计要求: 掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的中型问题,为将来开发软件积累一些典型的案例处理经验。 具体要求如下: ⑴设计课题题目:每位同学根据自己学号除以8所得的余数加一 选择相应题号的课题。换题者不记成绩。 ⑵根据自己对应的课题完成以下主要工作:①完成系统需求分析:包 括系统设计目的与意义;系统功能需求;输入输出的要求。②完成系统概要设计:程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系; 每个模块的功能;课题涉及的数据结构和数据库结构;即要存储什么数据,

C语言课程设计总结

C语言课程设计总结 一、设计题目: 猜数字和贪吃蛇小游戏。 专业:09电气工程及其自动化 组号:第十组 组员:马邢(组长)、王维、毛亮、汪小成、魏坤波、陈维康、高裴石、石峰、葛良志、冯鑫源 指导教师:黄莉莉 二、任务分配: 我们组分为两队,一对制作贪吃蛇游戏,另一对制作猜数字游戏。制作贪吃蛇的人员是马邢,葛良志,高裴石,石峰,陈维康。石峰和高裴石负责收集程序材料,马邢和葛良志负责整理和编写程序,陈维康辅助我们工作。制作猜数字的是魏坤波,王维,毛亮,汪小成,冯鑫源。魏坤波和王维负责编写程序,其他三人收集材料并帮助他们人编写和调试程序。 三、心得体会: 课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。 回顾起此次课程设计,至今让我我们仍感慨颇多,的确,从从拿到题目到完成整个编程,从理论到实践,几个星期的日子里,可以学

到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识,也懂得集体团队的重要性。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计之后,一定把以前所学过的知识重新温故。 这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在黄老师的辛勤指导下,终于游逆而解。同时,在黄老师的身上我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢

计算机程序设计(C语言)课程设计报告

计算机程序设计(C语言) 课程设计报告 题目:电子动画时钟 学院:机电工程学院 专业: 班级:090109班 学号: : 指导教师: 设计日期:

一、概述 选题背景:随着社会的进步和科技的发展,电子钟表逐渐成为了人们生活中不可缺少的一部分。设计思路:(一)功能模块设计,1.电子时钟执行主流程2.电子时钟界面显示3.电子时钟按键控制模块4.时钟动画处理模块(二)数据结构设计 1.time结构体 2.全局变量(三)函数功能描述1.keyhandle()2.timeupchange()3.timedownchange()4.digitclock()5.drawcursor()6. clearcursor()7.void clockhandle()8.main()(四)程序实现(五)运行结果。 二、概要设计 2.1、数据结构 此程序中,使用了C语言的time结构体和几个全局变量,1.time结构体struct time { unsigned char ti_min; /*分钟*/ unsigned char ti_hour; /*小时*/ unsigned char ti_hund; /*百分之一秒*/ unsigned char ti_sec; /*秒*/ }; time结构体定义在dos.h文件中,可用来保存系统的当前时间,其中各字段的值的含义如下。 1.unsigned char ti_min:保存分钟值。

2.unsigned char ti_hour:保存小时。 3.unsigned char ti_hund:保存百分之一秒,例如,ti_hund=500,表示1/500秒。 4.unsigned char ti_sec:保存秒数。 2.2、全局变量 下面对程序用到的全局变量及数组进行说明. 1. double h,m,s: 此3个全局变量分别用来保存小时,分钟,秒数。 2. double x,x1,x2,y,y1,y2:保存数字时钟中小时,分,秒在屏幕中显示的坐标值。 3.struct time t[1]:定义一个time结构类型的数组,此数组只有t[0]一个元素。 2.3 模块列表 1.时钟动画处理模块 时钟动画处理模块主要由clockhandle()函数来实现,程序中旧时钟指针的擦除是借助setwritemode(mode)函数设置画线的方式来实现。如果mode=1,则表示画线时用现在特性的线所画之处原有的线性异或(XOR)操作,实际上画出的线是原有线与现在规定的线进行异或后的结果。因此,当线的特性不变时,进行两次画线操作相当于没有画线,即在当前位置处清除了原来的画线。 2.时钟按键控制模块 在电子时钟中,按键控制模块最主要的工作就是必须能读取用户按键,对按键值进行判断,并调用相应函数来执行相关操作。 3.

C语言课程设计校际运动会管理系统

中国地质大学本科生课程论文封面 课程名称C语言课程设计 教师姓名邵老师 本科生姓名赵鸿 本科生学号20091000477 本科生专业应用化学 所在院系材化学院 类别: C.本科生 日期: 2010 年7 月5 日

课程设计评语 注:1、无评阅人签名成绩无效; 2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效; 3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。

目录 课程设计评语 (2) 目录 (3) 1.课程论文题目 (4) 2.程序设计思路 (4) 3.功能模块图 (4) 4.数据结构设计 (5) 5.算法设计 (7) 6.程序代码 (11) 7.程序运行结果 (20) 8.编程中遇到的困难及解决方法 (23) 9.总结心得及良好建议 (23) 10.致谢 (24)

课程论文题目 1.校际运动会管理系统 一、题目要求 (1)信息初始化 输入:N─参赛学校总数,M─男子竞赛项目数,W─女子竞赛项目数; 各项目名次取法有如下几种: 取前5名:第一名得分7,第二名得分5,第三名得分3,第四名得分2,第五名得分1; 取前3名:第一名得分5,第二名得分3,第三名得分2; 用户自定义:各名次权值由用户指定。 (2)提醒用户填写比赛结果,输入各项目获奖运动员信息。 (3)所有信息记录完毕后,用户可以查询各个学校的比赛成绩,生成团体总分报表,察看参赛学校信息和比赛项目信息等。 2.程序设计思路 根据题目要求应提供键盘式菜单实现功能选择,还应提供信息的输入操作,由于在程序中提供查询功能所以应有显示、查找等操作。根据上面的需求分析,可以将这个系统的设计分为1、信息输入模块2、比赛结果录入模块3、查询模块。具体校际运动会管理系统分为信息的输入、结果的输入、学校各个项目的得分的查寻、总体报表的生成。 3.功能模块图 (每个功能模块都标注函数名称,如右图)

c语言课程设计总结报告

附表2 C++(或C)语言课程设计总结报告

源代码: /* 学生通讯录管理系统,能够实现对通讯录的内容进行创建、显示、查询、删除以及修改等功能*/ # include # include # include

# include # define N 100 void myprint(); void mycreate(char num[N][12],char name[N][12],char tel[N][15],int *n); void mydisplay(char num[N][12],char name[N][12],char tel[N][15],int n); void mysearch(char num[N][12],char name[N][12],char tel[N][15],int n); void mydelete(char num[N][12],char name[N][12],char tel[N][15],int *n); void mymodify(char num[N][12],char name[N][12],char tel[N][15],int n); /* 主函数*/ void main() { char choose,yes_no,num[N][12],name[N][12],tel[N][15]; int n=0; do{ myprint(); choose=getch(); switch(choose) { case '1':mycreate(num,name,tel,&n); break; case '2':if(n==0) { printf("\n 无记录,请创建通讯录!\n"); break; } mydisplay(num,name,tel,n); break; case '3':if(n==0) { printf("\n 无记录,请创建通讯录!\n"); break; } mysearch(num,name,tel,n); break; case '4':if(n==0) { printf("\n 无记录,请创建通讯录!\n"); break; } mydelete(num,name,tel,&n);

VB程序设计课程设计报告完整版

V B程序设计课程设计 报告 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

《VB程序设计》 课程设计报告(2016 — 2017 学年第 1 学期) 题目:排序演示 学院:经济与管理学院 班级:物流管理1502 学号: 姓名: 指导教师:阮冰 时间:起 2017年1月3日止 1月6日

一、课程设计基本信息 课程代码:05190124 课程名称:计算机基础课程设计 课程英文名称: Computer-based Course Design 课程所属单位(院(系)、教研室):数学与计算机学院计算机基础课程群 课程面向专业:生物科学类、制药工程、制药工程(生物制药)、药物制 剂、物流管理 课程类型:必修课 先修课程:大学计算机基础通识选修课程、Visual Basic程序设计课程学分:1 总学时:16 二、课程设计目标 掌握所学语言程序设计的方法,熟悉所学语言的开发环境及调试过程,熟悉所学语言中的数据类型,数据结构、语句结构、运算方法,巩固和加深对理论课中知识的理解,提高学生对所学知识的综合运用能力。通过综合设计要求达到下列基本技能: 1.培养查阅参考资料、手册的自学能力,通过独立思考深入钻研问题,学会自己分析、解决问题。 2.通过对所选题目方案分析比较,确立方案,编制与调试程序,初步掌握程序设计的方法,能熟练调试程序。 3.系统设计编程简练,可用,功能全面,并有一定的容错能力。用户界面良好,有较好的输出功能。在完成课题基本要求后,具有创新型设计,具有一定的实用价值。 4.根据个人的设计调试过程,撰写设计报告。 三、课程设计内容 利用已掌握的VB程序设计语言基础,以及面向对象的程序设计方法、事件驱动的编程方式,进行应用程序和系统的开发设计。在强化巩固已有编程知识基础之上,训练新的设计与编程思路,通过综合应用所学知识设计、编制、调试实用的Visual Basic程序。 四、课程设计要求 1.要求每个同学都要认真对待,积极参与。 2.课程设计结束时,提交完成的所有源程序、相关文件和可执行文件。同 时填写并完成《课程设计报告册》。 3.不符合要求的程序、设计报告、抄袭的设计报告或源程序代码、在设计 中完全未参与的将作不及格处理。 五、考核方式

c语言课程设计--运动会分数统计系统讲课教案

课程设计报告 课程名称C语言课程设计 课题名称运动会分数统计系统 专业电气工程及其自动化 班级 学号 姓名 指导教师王颖 2012年 6 月25 日

湖南工程学院 课程设计任务书 课程名称C语言课程设计 课题运动会分数统计系统 专业班级电气工程及其自动化 学生姓名 学号 指导老师王颖 审批 任务书下达日期2012年6月16日 任务完成日期2012年6月25日

运动会分数统计系统 一、问题描述: 参加运动会的n 个学校编号为l ~n 。比赛分成m 个男子项目和w 个女子项目,项目编号分别为l ~m 和m +1~m +w 。由于各项目参加人数差别较大,有些项目取前五名,得分顺序为7,5,3,2,1;还有些项目只取前三名,得分顺序为5,3,2。设计一个统计程序按名次产生各种成绩单、得分报表。 二、基本要求: 1.产生各学校的成绩单,内容包括各校所取得的每项成绩的项目号、名次、成绩、姓名和得分;产生团体总分报表,内容包括校号、男子团体总分、女子团体总分和团体总分;均按名次排序。 2.比赛项目既要有径赛,又要有田赛。 三、测试数据: 对于n=4,m=3,w=2,编号为奇数的项目取前五名,编号为偶数的项目取前三名,设计一组实例数据。 四、实现提示: 1.数据结构:线性表 2.数据库结构:下面四张表构成该系统的基本数据库,全部输出报表由系统根据基本表自动生成。 3. 可以假设n ≤20,m ≤30,w ≤20,姓名长度不超过20个字符。每个项目结束时,将其编号、类型符(区分取前五名还是前三名)输入,并输入运动员编号、学校编号和成绩等。 五、选作内容: 允许用户指定某项目采取其他名次取法。 姓名 运动员编号 校名 学校编号 项目名 项目编号 初始化时完成录入 float char char char char char 成绩 类型 性别 项目编号 学校编号 运动员编号

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

(完整版)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(); 保存数据函数

程序设计语言 课程设计题目(补充)

课程设计题目 题目七:销售管理系统 问题描述:设计一个日用商品销售管理系统,以小型超市商品销售为管理对象来设计系统。实现功能:根据销售信息(包含如下内容:商品编号、销售数量、销售单价、销售日期、销售人员;保存为磁盘文件),实现对商品日常信息的管理。 1、日用商品销售信息输入 运用人机对话方式实现商品的商品编号、销售数量、销售单价、销售日期、销售人员的信息录入,以文件的形式保存其信息 2、商品销售信息查询: a) 根据商品编号查询所售商品明细(数量,单价,金额) b) 根据销售日期查询当天所售商品明细(数量,单价,金额) c) 根据销售人员查询某营业员所售商品明细(数量,单价,金额) 3、商品销售信息统计 a) 日销售额统计(按商品编号,销售人员,全部商品)及总销售额统计 b) 月销售额(按商品编号,销售人员,全部商品)及总销售额统计 c) 月度销售排名(按商品编号,销售人员) 知识点:结构体类型变量的应用,文件操作,数据的查询,函数的应用 说明:以十组商品三个营业员构成二十组商品数据 题目八:职工工作量统计系统 问题描述:设计一个以班组职工日常工作量统计为对象的管理系统。 实现功能:根据组内职工日常工作信息(包含如下内容:职工编号,职工姓名,工作内容,完成数量,完成质量,完成日期;保存为磁盘文件),实现对职工日常工作量信息的管理。 1、职工日常工作量信息输入 运用对话方式分别输入职工编号,职工姓名,完成数量,完成质量(优、良、中),完成日期,对就多个完成质量的信息录入,以文件的形式保存其信息 2、职工日常工作量信息统计与输出 a) 以完成工作数量及完成质量进行工作量当日统计排序。名次相同,以完成数量多者优先,再次相同,以职工编号小者优先。 b) 以一个星期为一时间段按上述规则进行排序。 知识点:结构体类型变量的应用,文件操作,数据的查询与排序。 说明:以十人构成一个班组,每天大家都做同一工作来构成数据 题目九:通讯录管理系统 建立一通讯录,输入姓名、电话号码、住址等信息,然后对通信簿进行显示、查找、添加、修改及删除。 功能要求 (1) 通讯录的每一条信息包括姓名、单位、固定电话、移动手机、分类(如同事、朋友、同学、家人等)、EMAIL、QQ等。 (2) 输入功能:可以一次完成若干条信息的输入。 (3) 显示功能:完成全部通讯录信息的显示(一屏最多显示10条,超过十条应能够自动分

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

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