设程设计C语言课程设计报告.docx

上传人:b****0 文档编号:9222790 上传时间:2023-05-17 格式:DOCX 页数:29 大小:89.03KB
下载 相关 举报
设程设计C语言课程设计报告.docx_第1页
第1页 / 共29页
设程设计C语言课程设计报告.docx_第2页
第2页 / 共29页
设程设计C语言课程设计报告.docx_第3页
第3页 / 共29页
设程设计C语言课程设计报告.docx_第4页
第4页 / 共29页
设程设计C语言课程设计报告.docx_第5页
第5页 / 共29页
设程设计C语言课程设计报告.docx_第6页
第6页 / 共29页
设程设计C语言课程设计报告.docx_第7页
第7页 / 共29页
设程设计C语言课程设计报告.docx_第8页
第8页 / 共29页
设程设计C语言课程设计报告.docx_第9页
第9页 / 共29页
设程设计C语言课程设计报告.docx_第10页
第10页 / 共29页
设程设计C语言课程设计报告.docx_第11页
第11页 / 共29页
设程设计C语言课程设计报告.docx_第12页
第12页 / 共29页
设程设计C语言课程设计报告.docx_第13页
第13页 / 共29页
设程设计C语言课程设计报告.docx_第14页
第14页 / 共29页
设程设计C语言课程设计报告.docx_第15页
第15页 / 共29页
设程设计C语言课程设计报告.docx_第16页
第16页 / 共29页
设程设计C语言课程设计报告.docx_第17页
第17页 / 共29页
设程设计C语言课程设计报告.docx_第18页
第18页 / 共29页
设程设计C语言课程设计报告.docx_第19页
第19页 / 共29页
设程设计C语言课程设计报告.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

设程设计C语言课程设计报告.docx

《设程设计C语言课程设计报告.docx》由会员分享,可在线阅读,更多相关《设程设计C语言课程设计报告.docx(29页珍藏版)》请在冰点文库上搜索。

设程设计C语言课程设计报告.docx

设程设计C语言课程设计报告

C语言课程设计报告

课程C语言程序设计

题目班级成绩管理系统

学院自动化与电气工程学院

班级

专业电气工程及其自动化

指导教师闵永智

设计时间

成员姓名

学号

成绩

评语

 

 

 

 

 

刘赓然

1、一司机出车祸后驾车逃离现场,第一位目击者记得车牌号前两位数字相同,且后两位数字也相同;第二位目击者是一位数学家,他看出车牌号是四位完全平方数。

试编程推算肇事车的车牌号。

#include

#include

usingnamespacestd;

voidmain()

{

cout<<"推算中......"<

inti,j,k;

floatb,a;

cout<<"有可能是:

"<<"0000"<

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

{

for(j=1;j<=9;j++)

{

a=i*1000+i*100+j*10+j;

b=sqrt(a);

k=b;

if(b==k)

{

cout<<"有可能是:

"<

}

else

{

continue;

}

}

}

}

王兴佳

2,有17个人围成一圈,从0号的人开始报数,凡报到3的倍数的人离开圈子,然后再数下去。

直到最后只剩下一个人为止。

问此人原来的位置是多少号。

#include

#include

usingnamespacestd;

voidmain()

{

inta[17],i,p,j,n=0,m=0;

printf("输入数字圈中数字的个数\n");

scanf("%d",&p);

for(i=0;i

a[i]=i;

for(j=0;m

{

for(i=0;i

if(a[i]!

=-1)

{

n++;

if(n%3==0)

{

m++;

a[i]=-1;

}

}

}

for(i=0;i

if(a[i]!

=-1)

printf("a[%d]=%d\n",i,a[i]);

}

周蔚

3、编写一个程序,求3X4数组的转置矩阵。

要求在main函数里读数,在change函数里把矩阵转置。

#include

usingnamespacestd;

voidmain()

{

cout<<"请输入3行4列矩阵:

"<

inta[3][4];inti,j;

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

{

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

{

cin>>a[i][j];

}

}

cout<<"转置后:

"<

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

{

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

{

cout<

}

cout<

}

}

改错

(二)程序改错题

刘赓然程序1:

main()

{

intab;

a=2;

b=3;

c=a*b

printf("c=%c,c);

}

正确

#include

voidmain()

{

inta,b;

charc;

a=2;

b=3;

c=a*b;

printf("c=%c",c);

}

王兴佳程序2:

main()

{

intx=1;y;

y=x++;

printf("y=%d",y);

intz;

z=++x;

print("z=%d\n",z);

 

正确

#include

voidmain()

{

intx=1,y;

y=x++;

printf("y=%d\n",y);

intz;

z=++x;

printf("z=%d\n",z);

}

周蔚程序3:

#include

main()

{

inta;

charch;

ch="A";

scanf("%d",a);

printf("%c+%d=%c\n",ch,ch+a);

}

正确

#include

voidmain()

{

inta;

charch;

ch='A';

scanf("%d",&a);

printf("%c+%c=%d\n",ch,ch,a);

}

 

设计课题一:

班级成绩管理系统

一、问题描述:

对一个有N个学生的班级,每个学生有M门课程。

该系统实现对班级成绩的录入、显示、修改、排序、保存等操作的管理。

二、功能要求:

1.本系统采用一个结构体数组,每个数据的结构应当包括:

学号、姓名、M门课程名称。

2.本系统显示这样的菜单:

请选择系统功能项:

a、成绩录入

b、成绩显示

c、成绩保存

d、成绩排序

e、成绩修改(要求先输入密码)

f、成绩统计

(1)显示每门课程成绩最高的学生的基本信息

(2)显示每门课程的平均成绩

(3)显示超过某门课程平均成绩的学生人数

g、退出系统

3.执行一个具体的功能之后,程序将重新显示菜单。

4.将学生成绩保存到文件中。

三、算法提示:

1.数据结构:

结构体类型数组。

2.数据库结构:

下表构成该系统的基本数据库。

姓名

学号

课程名称1

课程名称2

●●●●●●

char

Char

float

float

四、测试数据:

学生人数N=10课程门数M=4

课程名:

数学、语文、英语、政治

班级成绩管理系统

需求分析

编写目的:

通过用户需求分析调查,写出需求分析文档作为项目设计的基本均则要求,以及作用系统分析员进行系统分析和测试人员进行测试的手册。

需求概述:

设计一个班级成绩管理系统,使之提供以下功能:

1)成绩录入2)成绩显示3)成绩保存4)成绩排序5)成绩修改6)成绩统计7)退出系统

需求说明:

1成绩录入包括每个学生的学号和数学,英语,语文,政治成绩,学号不能重复。

2成绩显示要求一定的规范格式。

3录入成绩要求一文件形式保存,并可以对其进行浏览,查询,修改,删除等工作。

4按照每名学生的某门成绩进行排序。

5对同学成绩修改逐个进行,一个同学称及修改不影响其他同学的记录。

6成绩统计包括每门成绩的最高成绩的基本信息,每门课程的平均成绩,超出每门课程平均成绩的人数。

所设计的系统应以菜单的方式工作,应为用户提供清晰的使用提示,依据用户的选择进行各种处理,并要求再此过程中尽可能地兼用用户使用过程中的异常情况。

总体设计

编写目的:

根据需求分析文档,初步提出问题的解决方案,以及软件系统的体系结构和数据结构的设计方案,并写出书面文档总体设计说明书,为下一步详细设计做准备。

每门平均成绩

超出

每门平均成绩

人数

每门最高成绩

信息录入

信息保存

信息选择

信息统计

信息修改

信息排序

信息浏览

班级成绩管理系统

1该系统按功能进行模块划分,其模块图如下:

 

其中:

信息录入板块完成学生成绩的录入,包括学号,英语,数学,政治,语文成绩等

信息浏览板块完成对学生录入成绩信息的显示。

信息保存完成对录入学生信息的保存。

信息排序完成对学生信息的排序功能。

信息修改完成对学生信息的修改功能。

信息统计完成对学生信息的统计功能。

菜单选择模块完成用户命令的接受,此模块也是学生信息管理系统的入口,用户所要进行的所有操作均需在此模块中进行选择进而进行调用其他模块相应的功能

2数据结构:

本系统主要的数据结构就是学生信息,包括学号,姓名四门课程名和成绩,在处理过程中各项可以作为一个学生的不同属性来进行处理。

3程序流程:

系统的执行应从功能菜单的选择开始,依据用户的选择进行后续的处理,直到用户退出系统为止,其间应对用户的选择做出判断及异常处理。

 

流程图:

开始

采单选择

录入

no

浏览

no

yes

保存

yesno

信息录入

信息浏览

排序

yesno

信息保存

修改

信息排序

yesno

统计

yes

信息修改

no

yes

超出

每门平均成绩

人数

每门平均成绩

每门最高成绩

 

结束

详细设计流程图:

开始

主函数:

真?

no

输出“1录入学员信息,2.显示学员信息

3.成绩排序信息t4.添加学员信息\

5.删除学员信息

6.退出\n");

选择功能选项:

”提示信息

yes

输入as

 

as=1as=2as=3as=4as=5as=6其它

调用函数input();

gotostart;

exit(0);

调用函数del();

调用函数insert();

调用函数display();

调用函数sort();

 

结束

开始

voidinput()//原始数据录入模块:

 

初始化迭代变量i=0;

 

ch!

=

’n’?

no

 

yes

输出“录入学员信息\n输入第i个学员的信息”

 

输入学生学号:

 

输入学员姓名

 

输入学员性别:

 

输入学员数学成绩:

 

输入学员英语成绩:

 

输入学员语文成绩

 

输入学员政治成绩

 

3.接下

2.接下

1.接下

3.接上

2.接上

1.接上

 

输出换行,

 

i++,now-no=i;

 

输出now-no

 

输出“是否继续输入?

(Y/N)”,

 

输入ch,

 

结束

 

开始

voidsort()//排序数据函数:

 

初始化迭代变量i=1;

 

i

no

 

yes

初始化迭代变量j=1;

 

j<=now_

no-i?

noi++

 

yes

stu[j-1].ave

no

 

yes

两者交换

 

j++

 

结束

 

voiddisplay()//显示数据函数:

开始

 

输出“班级学员信息列表;

编号,姓名,性别,成绩,成绩,

成绩,成绩,平均值\”

 

初始化迭代变量i=0;

 

i

 

求出学员平均成绩ave

 

输出学员信息

 

输出“按任意键返回主菜单”

 

输入as

 

as!

='n'?

no

yes

 

结束

开始

voidinsert()//插入数据函数:

 

输出“输入新插入学生信息”

 

输出“输入学生学号”

 

输入stu[now_no].no

 

输出“输入学员姓名”

 

输入stu[now_no].name

 

输出“输入学员性别:

 

输入stu[now_no].sex

 

输出“输入学员数学成绩”

 

输入stu[now_no].score1

 

输出“输入学员英语成绩:

 

4.接下

5接下

 

4.接上

5接上

 

输入stu[now_no].score2

 

输出“输入学员语文成绩:

 

输入stu[now_no].score3

 

输出“输入学员政治成绩:

 

输入stu[now_no].score4

 

now_no=now_no+1;

 

输出“是否继续输入?

(Y/N):

 

ch=getch();

 

ch!

='n'?

 

Yes

结束

 

开始

voiddel()//删除数据函数:

 

输出“输入要删除学员的编号:

 

输入inum

 

初始化迭代变量i=0

 

i

No

 

Yesi++

stu[i].no==inum?

No

 

Yes

初始化迭代变量j=i

 

j

No

 

Yes

now_no=now_no-1;

stu[i]=stu[i+1];

 

j++

结束

 

#include

#include

#include

#include

#defineMAX50

voidinput();

voidsort();

voiddisplay();

voidinsert();

voiddel();

voidaverage();

intnow_no=0;

structstudent

{

intno;

charname[20];

charsex[4];

floatscore1;

floatscore2;

floatscore3;

floatscore4;

floatsort;

floatave;

floatsum;

};

structstudentstu[MAX],*p;

main()//主函数

{

charas;

start:

printf("\t\t\t欢迎使用学员成绩管理系统\n\n");//一下为功能选择模块

do

{

printf("\n\t\t\t\t1.录入学员信息\n\t\t\t\t2.显示学员信息\n\t\t\t\t3.成绩排序信息\n\t\t\t\t4.添加学员信息\n\t\t\t\t5.删除学员信息\n\t\t\t\t6.退出\n");

printf("\t\t\t\t选择功能选项:

");

as=getch();

switch(as)

{

case'1':

system("cls");input();break;

case'2':

system("cls");display();break;

case'3':

system("cls");sort();break;

case'4':

system("cls");insert();break;

case'5':

system("cls");del();break;

case'6':

system("exit");exit(0);

default:

system("cls");gotostart;

}

}

while

(1);//至此功能选择结束

}

voidinput()//原始数据录入模块

{

inti=0;

charch;

do

{

printf("\t\t\t\t1.录入学员信息\n输入第%d个学员的信息\n",i+1);

printf("\n输入学员学号:

");

scanf("%d",&stu[i].no);

fflush(stdin);

printf("\n输入学员姓名:

");

fflush(stdin);

gets(stu[i].name);

printf("\n输入学员性别:

");

fflush(stdin);

gets(stu[i].sex);

printf("\n输入学员数学成绩:

");

fflush(stdin);

scanf("%f",&stu[i].score1);

printf("\n输入学员英语成绩:

");

fflush(stdin);

scanf("%f",&stu[i].score2);

printf("\n输入学员语文成绩:

");

fflush(stdin);

scanf("%f",&stu[i].score3);

printf("\n输入学员政治成绩:

");

fflush(stdin);

scanf("%f",&stu[i].score4);

printf("\n\n");

i++;

now_no=i;

printf("%d",now_no);

printf("是否继续输入?

(Y/N)");

ch=getch();

system("cls");

}

while(ch!

='n');

system("cls");

}

voidsort()//排序数据函数

{

structstudenttemp;

inti,j;

for(i=1;i

{

for(j=1;j<=now_no-i;j++)

{

if(stu[j-1].ave

{

temp=stu[j];

stu[j]=stu[j-1];

stu[j-1]=temp;

}

}

}

}

voiddisplay()//显示数据函数

{

inti;

charas;

floatave;

do

{

printf("\t\t班级学员信息列表\n");

printf("\t编号\t姓名\t性别\t成绩\t成绩\t成绩\t成绩\t平均值\n");

for(i=0;i

{

stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3+stu[i].score4;

stu[i].ave=stu[i].sum/4;

printf("\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].score4,stu[i].ave);

}

printf("\t\t按任意键返回主菜单.");

as=getch();

gotoexit;

}

while(as!

='n');

exit:

system("cls");

}

voidinsert()//插入数据函数

{

charch;

do

{

printf("\n\t\t输入新插入学员队信息\n");

printf("\n输入学生学号:

");

scanf("%d",&stu[now_no].no);

fflush(stdin);

printf("\n输入学员姓名:

");

fflush(stdin);

gets(stu[now_no].name);

printf("\n输入学员性别:

");

fflush(stdin);

gets(stu[now_no].sex);

printf("\n输入学员数学成绩:

");

fflush(stdin);

scanf("%f",&stu[now_no].score1);

printf("\n输入学员英语成绩:

");

fflush(stdin);

scanf("%f",&stu[now_no].score2);

printf("\n输入学员语文成绩:

");

fflush(stdin);

scanf("%f",&stu[now_no].score3);

printf("\n输入学员政治成绩:

");

fflush(stdin);

scanf("%f",&stu[now_no].score4);

printf("\n\n");

now_no=now_no+1;

sort();

printf("是否继续输入?

(Y/N)");

ch=getch();

system("cls");

}

while(ch!

='n');

}

voiddel()//删除数据函数

{

intinum,i,j;

printf("输入要删除学员的编号:

");

fflush(stdin);

scanf("%d",&inum);

for(i=0;i

{

if(stu[i].no==inum)

{

for(j=i;j

{

stu[i]=stu[i+1];

}

now_no=now_no-1;

}

break;

}

system("cls");

}

程序调试:

小组成员:

程序设计总结

二十一世纪的人才需要多方面的技能,无论是专业知识,还是其它知识,都需要很大的广度和深度,这样才能在工作和发展中游刃有余,才能不被淘汰。

勿容置疑,二十一世纪是计算机的时代,在这个社会快速发展的今天,计算机起着举足轻重的作用,一个人要想在今天立于不败之地,就必须对计算机知识有所了解,在有些领域甚至要深层次的研究,才能有所建树。

短学期,学校结合各种因素,开了程序设计这门实践课。

经过一个多月的练习实践,我在一些方面有了明显的进步,同时还认识到我对这门基础知识还有许多不解之处。

在程序编写及运行过程中出现过多种问题和错误,总结如下:

1.由于设计的程序主体很大,多次出现各种符号的缺失或多用现象,经过仔细排查最后才发现。

归根到底这是基础知识的缺乏和对概念细节理解上的混乱造成的。

例如在小程序中,我原本计划把开根号后的数求余,然后通过判断其是否为零来判断它是否为完全平方数。

后来经过运行才发现这是不行的,因为求余的数必须是int型的,这就是对以细节的不清楚造成的。

2.编写过程中多次出现变量没有定义或重复定义的现象,我想这主要有两方面的原因:

一是不会运用简便的方法解决一些复杂的问题,确切地说,不懂得灵活运用所学知识;二是粗心大意造成了许多不必要的麻烦,这也是在以后学习中必须客服的。

3.函数调用时对于形参和实参之间的传递概念不清。

这是对具体知识点的问题,初学的时候,就在这点上很模糊,但终究没有弄明白,现在就不会做,类似这样的问题还有几个,在以后的学习中,应当做到遇到一个问题就解决一个问题,不能拖欠,否则造成的恶性循环,其后果是严重的。

以上三个问题极其明显的出现在这次编程实践中,我想,活动的目的不仅仅是做几道题,更重要的是,让我们在不断的实践中,找到自己在学习及其它方面的缺点,这才是这次活动的根本目的。

我认识到,学习也要像编程一样,必须大处着眼,小处着手,关心细节,却要不失全局,这样才能取得更大的发展与进步。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2