C课程设计报告学生成绩管理系统文档格式.docx
《C课程设计报告学生成绩管理系统文档格式.docx》由会员分享,可在线阅读,更多相关《C课程设计报告学生成绩管理系统文档格式.docx(18页珍藏版)》请在冰点文库上搜索。
,65,68,94,83},
{6,"
hua"
64,84,82,86},
{7,"
zhuang"
71,78,68,74},
{8,"
ye"
82,83.76,65},
{9,"
zeng"
91,83,86,78},
{10,"
wang"
68,88,76,95},
三,详细设计
1.建立主函数与界面
#include<
stdio.h>
string.h>
stdlib.h>
voidinterface();
voidsearch();
voidinsert();
voiddayin();
voiddele();
voidpaixu();
voidxuehao();
voidzimu();
voidexit();
structstudent
{
intnum;
charname[20];
intcomputer;
intmath;
intenglish;
intphysics;
}stu[10]={{1,"
{2,"
};
voidmain()
{
intj,i;
interface();
for(i=0;
i<
5;
i++)
{
printf("
请输入你要进行操作的编号,以回车键结束\n"
);
scanf("
%d"
&
j);
switch(j)
case1:
search();
break;
case2:
insert();
case3:
dele();
case4:
paixu();
case5:
exit(0);
default:
printf("
error\n"
}
}
voidinterface()
{
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n"
\n"
学生成绩管理系统\n"
设计者:
陈宗华\n"
&
&
1,查询学生成绩;
2,插入学生成绩;
3,删除学生成绩;
4,排序学生成绩;
5,退出.&
2,查找学生成绩资料
voidsearch()
inti;
charstu_name[20];
请输入所要查询的学生的姓名\n"
%s"
stu_name);
for(i=0;
10;
if(strcmp(stu_name,stu[i].name)==0)
学号:
%d,姓名:
%s,计算机:
%d,数学:
%d,英语:
%d,物理:
%d\n"
stu[i].num,stu[i].name,stu[i].computer,stu[i].math,stu[i].english,stu[i].physics);
3,插入新学生成绩
voidinsert()
intk;
要进行插入操作请按1,要查看插入结果请按2\n"
k);
switch(k)
{case1:
tianjia();
break;
case2:
dayin();
}
tianjia()
intn,z;
for(n=0;
n<
30;
n++)
if(stu[n].num=='
\0'
)
{printf("
请输入新学生的学号:
\n"
stu[n].num);
请输入新学生的姓名:
{scanf("
stu[n].name);
请输入新学生计算机的成绩:
stu[n].computer);
请输入新学生数学的成绩:
stu[n].math);
请输入新学生英语的成绩:
stu[n].english);
请输入新学生物理的成绩:
stu[n].physics);
恭喜插入成绩成功\n"
}
voiddayin()
intz,i;
for(z=0;
z<
z++)
if(stu[z].num=='
z;
{printf("
4,删除学生成绩
voiddele()
inti,j,k,n;
n++)
if(stu[n].num=='
{n--;
break;
请输入要删除的学号\n"
if(k>
n)
输入错误\n"
else
for(j=0;
j<
9;
j++)
if(stu[j].num==k)
for(i=j;
n;
{if(i>
k)
{stu[i].num=stu[i+1].num-1;
strcpy(stu[i].name,stu[i+1].name);
stu[i].computer=stu[i+1].computer;
stu[i].math=stu[i+1].math;
stu[i].english=stu[i+1].english;
stu[i].physics=stu[i+1].physics;
删除成功,请看删除结果\n"
n-1;
%d,%s,%d,%d,%d,%d\n"
5,排序学生成绩
voidpaixu()
inti,m;
2;
printf("
按学号排序请按1,按字母排序请按2\n"
m);
switch(m)
case1:
xuehao();
zimu();
voidxuehao()
inti,j,t;
charm[20];
for(j=0;
=10;
if(stu[i].num>
stu[i+1].num)
t=stu[i].num;
stu[i].num=stu[i+1].num;
stu[i+1].num=t;
strcpy(m,stu[i].name);
strcpy(stu[i+1].name,m);
t=stu[i].computer;
stu[i+1].computer=t;
t=stu[i].math;
stu[i+1].math=t;
t=stu[i].english;
stu[i+1].english=t;
t=stu[i].physics;
stu[i+1].physics=t;
}
voidzimu()
inti,j,t;
if(strcmp(stu[i].name,stu[i+1].name)>
0)
stu[i].num=stu[i+1].num;
stu[i+1].num=t;
strcpy(stu[i].name,stu[i+1].name);
strcpy(stu[i+1].name,m);
t=stu[i].computer;
stu[i].computer=stu[i+1].computer;
stu[i+1].computer=t;
t=stu[i].math;
stu[i].math=stu[i+1].math;
stu[i+1].math=t;
stu[i].english=stu[i+1].english;
stu[i+1].english=t;
t=stu[i].physics;
stu[i].physics=stu[i+1].physics;
stu[i+1].physics=t;
}
%s,%d,%d,%d,%d,%d\n"
stu[i].name,stu[i].num,stu[i].computer,stu[i].math,stu[i].english,stu[i].physics);
四,调试分析
1,当系统无误,顺利进入学生成绩管理系统时,会看到一个菜单界
菜单界面的最下方有提示操作(请输入你要进行操作的编号,以回车键结束),告诉你如何使用该系统!
该系统操作非常简单,你所要进行的每一步操作它都会提示你该如何做,就算你是第一次接触该系统,你也可以很顺利地利用它完成你所要做的事!
例如你按1,过程及结果如下:
根据提示按你所要进行操作的编号(按1),然后它会继续提示你(输入所要查询的学生的姓名),当你输入(wang)完毕后,系统会自动把你要查询的那个学生(wang)的资料打印出来,你可以很清楚的看到该学生(wang)的相关资料.
2,当你觉得当前学生资料不够完善时,可以按2为它添加新的资料;
过程如下:
当你插入新生成绩成功时,系统会有提示(恭喜插入成绩成功);
这时,如果你想查看插入结果,可以按2;
结果如下:
这时,系统会将资料库里面的所有资料跟你刚才插入进去的新资料一起打印出来;
但此时会发现系统有一个缺点,就是我刚才插入进去的新学生成绩信息没有继续保存下来,此时要是我按1执行查看的时候,输入刚才所输入的新学生名字luo,系统不输出luo的信息,这是它的一个不足之处,以后有时间我会将其完善的.
该系统不但可以添加新资料,也可以删除你觉得没用的资料,其操作是按功能选择键3,然后按提示一步一步操作,过程如下:
删除之前
可以看到,删除之后原来学号5之后的学生成绩资料已经向前移动一个位置,自动把原来学号5的位置填补上.
当你想为了工作方便一点,要把学生的资料按一定的要求排序的话,可以按4,过程及结果如下:
上面左边的是按学号排序的,右边是按字母排序的,用户可以按照自己的要求选择不同的功能来实现自己的目的.
五,课程设计总结
紧张而又充实的一个星期即将过去,在这一个星期里,通过做课程设计,自己的感触甚多,收获也很多.发现自己对课本知识的认知提升到了一个新的层次,就好像站在一个山峰上俯瞰,可以比较系统地,全面的理解课本上的内容.过去觉得理解得模模糊糊的知识点,现在基本上都可以掌握了.这又一次验证了实践能够反作用于认识,只有自己真真正正地动手去做了,将自己学到的,或者是只学到一半半的课本知识应用到实际中去,当遇到问题时,再细心地,耐心地慢慢去推敲,去查找错误,看看是哪一步错了,错在哪里.找出问题后再翻翻课本,看课本还解决不了问题就问同学问老师,直到解决问题为止.这时,当你回头看时,你会突然发现自己已经学到了很多东西,有课本上之前不明白的知识点,也有在程序设计过程中遇到问题时该如何去面对,如何去解决的方法.其实,我发现导致程序出现问题错误或运行不了,很大部分原因归结于对课本知识点的不熟悉或理解错误.这些要是不亲自动手去做,光看课本是没有多大作用的.当我通过自己的努力或老师跟同学的帮助下,解决了一个问题,才发现原来这个知识点应该这样用.
通过这次课程设计,我体会最深的就是,不能只看课本,要经常动手去练习一下,看课本加上做练习,效果非常好,可以做到事半功倍.这样知识点记得会比较牢固一些.通过练习还可以培养自己的设计思维,让自己以后设计程序时思维会活跃一些,转得快一些.
在这课程设计接近尾声时,我总结了一下自己在设计时经常犯的一些错误,诸如for循环语句,括号里面的条件之间应该是用分号分开的,而我经常会忘记,都是用逗号来分开的,这导致程序运行不了,自己检查了一遍又一遍还是发现不了问题的所在,后来叫同学帮忙看了一下,才发现问题出现在哪里.就这么简单的,基本的一个错误,常常会令自己花上半个小时或者更长的时间,都无法找出来.类似的错误还有,就是经常会在语句后面忘了加上分号.但现在这些问题不会再出现了,经过这次的实践,我懂得了很多,很多语句用起来都比较熟悉了,更重要的是积累了一些经验,将来可以少走些弯路,不再像刚开始的时候,像一个迷路羔羊一样到处乱窜.
虽然这次的课程设计即将结束,设计的系统也可以运行了,但我知道它现在还只是个雏形,还不够完善,还存在不足之处,还需要我的进一步改善.今后我会更加努力,学习更多的知识来完善它,把它的功能做大,做强!