课程设计报告学生用表.docx

上传人:b****5 文档编号:5974140 上传时间:2023-01-02 格式:DOCX 页数:14 大小:45.13KB
下载 相关 举报
课程设计报告学生用表.docx_第1页
第1页 / 共14页
课程设计报告学生用表.docx_第2页
第2页 / 共14页
课程设计报告学生用表.docx_第3页
第3页 / 共14页
课程设计报告学生用表.docx_第4页
第4页 / 共14页
课程设计报告学生用表.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

课程设计报告学生用表.docx

《课程设计报告学生用表.docx》由会员分享,可在线阅读,更多相关《课程设计报告学生用表.docx(14页珍藏版)》请在冰豆网上搜索。

课程设计报告学生用表.docx

课程设计报告学生用表

课程设计报告

(专科)

课程:

C语言程序设计

学号:

0810720070

姓名:

朱万里

班级:

08级计算机应用师范专科班

教师:

潘洁珠

时间:

2009.6.8~2009.6.19

计算机科学与技术系

设计名称:

学生C语言成绩管理系统设计

设计内容、目的与要求:

通过编写学生的C语言成绩管理系统,便于对学生的C语言成绩进行管理。

通过对学生C语言成绩管理系统设计,训练综合运用函数的自定义,数组,结构体等,并提高程序设计的能力;

主要功能:

(1)能按学期、按班级完成对学生成绩的录入、修改

(2)能按班级统计学生的C语言成绩,求学生的总分及平均分

(3)能查询学生成绩,不及格科目及学生名单

(4)能按班级输出学生的成绩单

 

计划与进度安排:

6月8日~6月13日:

完成设计思路并作出草稿;

完成程序的输入;

6月14日~6月17日:

完成对基本功能的修改并运行无误;

增加对开始的源程序的功能;

6月18日至6月19:

修改并完成,提交验收;

设计过程、步骤(可加页):

一、

功能结构

二、设计说明

1.这个程序要用到结构体嵌套,所以我用了一次嵌套

structstudent{…………};

structclass_list{……………

}cla[10];

2.函数的声明和调用:

voidadd(……);

voidtotal(……);

………….

3.选择功能,用到了do..while语句和switch,do..while是进行循环的,switch是用来选择的

do{

printf("\n功能选项:

1.录入学生成绩2.统计成绩3.成绩查询4.修改学生信息5.输出成绩单0.退出\n");

printf("请输入你的选择:

");……………

switch(choice){

case1:

...........

}while(choice!

=0);

4.定义的函数完成功能的实现:

录入学生成绩,统计成绩,成绩查询,修改学生信息,输出成绩单

5.执行程序

结果与分析(可以加页):

功能上有对学生信息的增加,删除,统计,查询,修改等简单的功能;

优点是:

增加学生信息可以将学生插入现有的班级中;删除我增加了一项确认的功能,可以防止误删;统计能够看出各班学生C语言成绩的优劣;修改包括修改学生姓名,学生学号,学生C语言成绩等功能,查询可以分为两项,一是按学号查询,二是按姓名查询。

可以看到C语言成绩不及格的学生信息;旗帜变量的使用也是优点之一;这个程序用到很多的结构体,使得程序变得简单,易懂;

缺点是:

每次运行时都要输入学生的信息,比较麻烦,为此,在程序中学生的人数可自己设定,但没有文件保存方便;另外一个就是数组如果没用完,就会浪费内存空间,所以没有动态分配空间好;

 

设计体会与建议:

通过这次的课程设计,我更加了解C语言,学会更好的使用C语言函数调用和结构体等,把学过的知识运用于实践中,而不仅仅停留于对课本的单纯理解;这次设计也让我知道我懂的太少,要学习的东西还有很多。

想完成一项功能就要用很复杂的语句去实现,所以整个程序变的很长,复杂,但是结构体,数组,指针等的灵活运用又可使程序变的易懂。

另外,团队的合作也是成功的一部分!

附录:

源程序代码

#include"stdio.h"

#include"string.h"

#include"conio.h"

voidinput(structclass_listcla[6]);

voidtotal(structclass_listcla[6]);

voidsearch(structclass_listcla[6]);

voidmodify(structclass_listcla[6]);

voiddisplay(structclass_listcla[6]);

inti,j,a=0,b[11];//定义为全局变量

structstudent{

charsex[5];

charname[20];

intnum;

doublescore;

};

structclass_list{

structstudentstu[50];

}cla[10];

intmain(){

intchoice;

printf("------------欢迎使用C语言成绩管理系统------------\n\n\n");

do{

printf("1.录入成绩2.统计成绩3.成绩查询4.修改学生信息5.显示成绩单0.退出\n");

printf("请输入你的选择:

");

scanf("%d",&choice);

if(choice<0||choice>5){

printf("无效选择,请重选:

");

scanf("%d",&choice);

}

printf("\n");

switch(choice){

case1:

printf("只能使用一次此功能,请不要重复使用!

!

\n");

input(cla);//成绩录入

break;

case2:

total(cla);//统计成绩

break;

case3:

search(cla);//成绩查询

break;

case4:

modify(cla);//修改学生信息

break;

case5:

display(cla);//显示成绩单

break;

case0:

break;

}

}while(choice!

=0);

printf("谢谢使用!

\n");

return0;

}

voidinput(structclass_listcla[])//成绩录入

{

intdate;//学期

printf("请输入学期:

");

scanf("%d",&date);

printf("请输入班级的个数:

");

scanf("%d",&a);

for(i=0;i

printf("class:

%d\n",i+1);//输出班级号

printf("请输入学生的个数:

");

scanf("%d",&b[i]);

printf("\n学号不能重复\n");

for(j=0;j

{

printf("学号:

");

scanf("%d",&cla[i].stu[j].num);

printf("姓名:

");

scanf("%s",cla[i].stu[j].name);

printf("性别:

");

scanf("%s",cla[i].stu[j].sex);

printf("C语言成绩:

");

scanf("%lf",&cla[i].stu[j].score);

}

if(j>=b[i])

printf("人数已满\n");

}

if(i>=a)

printf("班级已满\n\n");

}

voidtotal(structclass_listcla[]){

doublesum,average;

for(i=0;i

sum=0;

average=0;

for(j=0;j

sum=sum+cla[i].stu[j].score;

average=sum/b[i];

printf("班级:

%d总分:

%.2lf平均分:

%.2lf\n",i+1,sum,average);

}

}

voidsearch(structclass_listcla[]){

intchoice2,num2,flag;

charname2[20];

do{

printf("1.按姓名查找2.按学号查找3.查找学生不及格名单0.退出\n");

printf("请输入你的选择:

");

scanf("%d",&choice2);

switch(choice2){

case1:

flag=0;

printf("请输入你要查找的学生姓名:

");

scanf("%s",name2);

for(i=0;i

for(j=0;j

if(strcmp(name2,cla[i].stu[j].name)==0){

printf("班级:

%d学号:

%d姓名:

%s性别:

%sc语言成绩:

%.2f\n",i+1,cla[i].stu[j].num,cla[i].stu[j].name,cla[i].stu[j].sex,cla[i].stu[j].score);

flag=1;

}

if(flag==0)

printf("没有此学生信息!

\n");

break;

case2:

flag=0;

printf("请输入你要查找的学生学号:

");

scanf("%d",&num2);

for(i=0;i

for(j=0;j

if(num2==cla[i].stu[j].num){

printf("班级:

%d学号:

%d姓名:

%s性别:

%sC语言成绩:

%.2lf\n",i+1,cla[i].stu[j].num,cla[i].stu[j].name,cla[i].stu[j].sex,cla[i].stu[j].score);

flag=1;

}

if(flag==0)

printf("没有此学生信息!

\n");

break;

case3:

flag=0;

for(i=0;i

for(j=0;j

if(cla[i].stu[j].score<60)

printf("班级:

%d学号:

%d姓名:

%s性别:

%sc语言成绩:

%.2lf\n",i+1,cla[i].stu[j].num,cla[i].stu[j].name,cla[i].stu[j].sex,cla[i].stu[j].score);

flag=1;

}

if(flag==0)

printf("没有学生不及格!

\n");

break;

case0:

break;

}

}while(choice2!

=0);

}

voidmodify(structclass_listcla[])//修改学生信息

{

intchoice2,num2,num3;

intk,p,flag;

floatscore2;

charname2[20],name3[20],ch;

if(a==0)

{

printf("无班级,无人数,无法修改!

\n");

return;

}

do{

printf("1.增加学生信息2.删除学生信息3.修改姓名4.修改学号5.修改C语言成绩6.退出\n");

printf("请输入你的选择:

");

scanf("%d",&choice2);

if(choice2<1||choice2>9){

printf("无效选择,请重选:

");

scanf("%d",&choice2);

}

switch(choice2){

case1:

//插入学生

printf("请输入想插入的班级号1~10:

");

scanf("%d",&p);

if(p>a){

printf("无此班级,请重新输入:

");

printf("班级数为1~%d:

",a);

scanf("%d",&p);

}

b[p-1]++;//人数增加

printf("请输入学生信息:

\n");

printf("学号:

");

scanf("%d",&cla[p-1].stu[b[p]].num);

printf("姓名:

");

scanf("%s",cla[p-1].stu[b[p]].name);

printf("c语言:

");

scanf("%lf",&cla[p-1].stu[b[p]].score);

printf("性别:

");

scanf("%s",&cla[p-1].stu[b[p]].sex);

printf("班级:

%d学号:

%d姓名:

%s性别:

%sC语言成绩:

%.2lf\n\n",p,cla[p-1].stu[b[p]].num,cla[p-1].stu[b[p]].name,cla[p-1].stu[b[p]].sex,cla[p-1].stu[b[p]].score);

break;

case2:

//删除学生

printf("请输入要删除的学生姓名:

");

scanf("%s",name3);

for(i=0;i

for(j=0;j

if(strcmp(name3,cla[i].stu[j].name)==0){

flag=1;

printf("班级:

%d学号:

%d姓名:

%s性别:

%sc语言成绩:

%.2\nf",i+1,cla[i].stu[j].num,cla[i].stu[j].name,cla[i].stu[j].sex,cla[i].stu[j].score);

printf("你确认要删除此学生吗?

");

ch=getch();

if(ch=='y'){

for(k=j;k

strcpy(cla[i].stu[k].name,cla[i].stu[k+1].name);

strcpy(cla[i].stu[k].sex,cla[i].stu[k+1].sex);

cla[i].stu[k].score=cla[i].stu[k+1].score;

cla[i].stu[k].num=cla[i].stu[k+1].num;

b[i]--;

}

printf("你已成功删除!

\n");

}

else{

flag=1;

printf("删除未完成!

\n");

}

if(b[i]==0)

printf("班级%d为空!

\n\n",i+1);

}

if(flag==0)

printf("没有此学生!

\n");

}

break;

case3:

//修改的学生姓名

flag=0;

printf("请输入要修改的学生姓名:

");

scanf("%s",name2);

for(i=0;i

for(j=0;j

if(strcmp(cla[i].stu[j].name,name2)==0){

printf("请输入修改后的学生姓名:

");

scanf("%s",name3);

strcpy(cla[i].stu[j].name,name3);

flag=1;

}

}

}

if(flag==0)

printf("无此人信息\n");

break;

case4:

//修改的学生学号

flag=0;

printf("请输入要修改的学生学号:

");

scanf("%d",&num2);

for(i=0;i

for(j=0;j

if(cla[i].stu[j].num==num2){

printf("请输入修改后的学生学号:

");

scanf("%d",&num3);

cla[i].stu[j].num=num3;

flag=1;

}

}

}

if(flag==0)

printf("无此人信息\n");

break;

case5:

//修改学生的c语言成绩

flag=0;

printf("请输入要修改的C语言成绩的学生姓名:

");

scanf("%s",name2);

for(i=0;i

for(j=0;j

if(strcmp(cla[i].stu[j].name,name2)==0){

printf("请输入修改后的C语言成绩:

");

scanf("%f",&score2);

cla[i].stu[j].score=score2;

flag=1;

}

}

}

if(flag==0)

printf("无此人信息\n");

break;

case6:

printf("\n");

break;

}

}while(choice2!

=6);

}

voiddisplay(structclass_listcla[])//输出成绩单

{

if(a==0)

{

printf("无班级,无人数,无法输出\n");

return;

}

for(i=0;i

printf("班级:

%d\n",i+1);

for(j=0;j

printf("学号:

%d姓名:

%s性别:

%sc语言成绩:

%.2lf\n",cla[i].stu[j].num,cla[i].stu[j].name,cla[i].stu[j].sex,cla[i].stu[j].score);

}

printf("\n");

}

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1