C语言课程设计实验报告.docx
《C语言课程设计实验报告.docx》由会员分享,可在线阅读,更多相关《C语言课程设计实验报告.docx(23页珍藏版)》请在冰豆网上搜索。
C语言课程设计实验报告
C语言课程设计实验报告
一、实验目的:
1.更深入的理解和掌握该课程中的基本概念,程序设计的思想、技术和方法。
2.训练学生综合运用所学知识独立完成课题以及撰写课程设计报告的能力。
3.提高查询资料文献,从中获得新知识的能力。
4.培养实践动手能力,利用理论去解决实际问题的能力。
二、功能需求:
(1).系统具有:
数据录入、添加、修改、删除、查询(可按学号、姓名、成绩进行查询)、排序等功能。
(2).有关信息可保存在文件中,且可从文件中读出,删改。
三、总体设计:
此程序根据不同的功能设计几个模块,写成相应的函数,然后利用函数的调用来实现。
模块
(1):
登记由老师从键盘输入成绩并存于文件中
模块
(2):
删除从文件中删除已存的学生信息
模块(3):
浏览查看已输入的学生的成绩
模块(4):
查找可通过三种不同的方式查询成绩
模块(5):
排序对已输入的成绩进行排序
模块(6):
导出从文件中导出已输入的数据
四、数据结构设计:
(1)结构体数组:
存储学生个人信息
structstudent
{intnumber;
charname[20];
intgrade;
intgaoshu;
intyingyu;
intjisuanji;
intsum;}
(2)intshuliang(统计录入的总人数)rs(统计录入的人数),i,k(循环变量)xx(学号)choice(需要删除的学生的学号)
(3)数组:
biaozhi[20](记录用的选择)yy[20](记录学生的姓名)shanchuinfo[10](判定是否删除学生的全部信息还是部分信息)
(4)文件FILE*rs
五、整体程序:
intnumber;
ch#includede
arname[20];
intgaoshu
intsum;;
intgrade;
voidmenu();
intyingyu;
intwuli;
#inclnclu#i#include
ude
#defineN1000
typedefstructstudent
{
}STUDENT;
STUDENTstudent[N];
intshuliang=0;
voidfhzjm()
{
charbiaozhi[20];
printf("\n");
printf("还需要操作么?
如果需要操作请输入:
yes,否则请输入:
no\n");
scanf("%s",biaozhi);
if(strcmp(biaozhi,"yes")==0)
{
menu();
}
elseif(strcmp(biaozhi,"no")==0)
exit(0);
else
{
printf("请输入正确的字符,谢谢!
\n");
fhzjm();
}
}
voidDengJi()
{
intrs;
inti,k=1;
system("CLS");
printf("请输入需要输入几个学生信息:
");
scanf("%d",&rs);
for(i=shuliang;i{
printf("请输入第%d个学生的学号:
",k);
scanf("%d",&student[i].number);
printf("请输入学生的姓名:
");
scanf("%s",student[i].name);
printf("请输入学生3门课的成绩:
");
printf("请输入第1门课的成绩:
");
scanf("%d",&student[i].gaoshu);
printf("请输入第2门课的成绩:
");
scanf("%d",&student[i].yingyu);
printf("请输入第3门课的成绩:
");
scanf("%d",&student[i].wuli);
}
shuliang=shuliang+rs;
fhzjm();
}
voidShanChu()
{
charshanchuinfo[10];
system("CLS");
printf("删除全部学生信息请输入\"all\",删除指定学号的学生信息请输入\"one\"\n");
scanf("%s",shanchuinfo);
if(strcmp(shanchuinfo,"all")==0)
{
intj;
printf("你删除的学生信息如下:
\n");
printf("-----------学号-------------姓名-------------高数--------------英语--------------物理\t\n");
for(j=0;jprintf("----%d-------%s-------%d-------%d-------%d-------%d\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[j].wuli);
shuliang=0;
printf("删除成功\n\n");
}
elseif(strcmp(shanchuinfo,"one")==0)
{
structstudent*p=NULL;
intchoice;
inti,j,k=0;
printf("请输入你要删除的人的学号:
");
scanf("%d",&choice);
for(i=0;i{
if(choice==student[i].number)
{
k=1;j=i;break;
}
}
if(k)
{
if(shuliang==1)
{
p=&student[0];
free(p);
shuliang=0;
}
else
{
for(i=j;i{
student[i]=student[i+1];
}
shuliang=shuliang-1;
}
printf("删除成功\n\n");
}
else
{
printf("输入数据错误!
\n");
}
}
fhzjm();
}
voidLiuLan()
{
inti;
system("CLS");
if(shuliang==0)
{
printf("系统里面没有任何学生的信息!
\n");
}
else
{
for(i=0;i{
printf("第%d个学生的学号为:
%d\n",i+1,student[i].number);
printf("第%d个学生的姓名为:
%s\n",i+1,student[i].name);
printf("第%d个学生的第一门课的成绩为:
%d\n",i+1,student[i].gaoshu);
printf("第%d个学生的第二门课的成绩为:
%d\n",i+1,student[i].yingyu);
printf("第%d个学生的第三门课的成绩为:
%d\n",i+1,student[i].wuli);
student[i].sum=student[i].gaoshu+student[i].yingyu+student[i].wuli;
printf("第%d个学生的总成绩为:
%d\n",i+1,student[i].sum);
}
}
fhzjm();
}
voidChaZhao()
{
intxx;
charchoice,yy[20];
inti,j,k=0;
system("CLS");
if(shuliang==0)
{
printf("系统里面没有任何学生的信息!
\n");
fhzjm();
}
printf("三种查找方式:
学号,姓名,成绩\n");
printf("如果按学号查找请输1,如果按姓名查找请输2,如果按成绩查找请输3\n");
printf("请输入您查找的方式:
");
scanf("%s",&choice);
if(choice=='1')
{
printf("请输入需要查找学生的学号:
");
scanf("%d",&xx);
printf("您所查找的学生的信息为:
\n");
printf("----学号----姓名----高数成绩----英语成绩----物理成绩----\t\n");
for(i=0;i{
if(xx==student[i].number)
{
j=i;k=1;
printf("----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[i].wuli);
}
}
if(k==0)
printf("输入信息有误:
\n");
}
elseif(choice=='2')
{
printf("请输入需要查找学生的姓名:
\n");
scanf("%s",yy);
printf("您所查找的学生的信息为:
\n");
printf("----学号----姓名----高数成绩----英语成绩----物理成绩----\t\n");
for(i=0;i{
if(strcmp(yy,student[i].name)==0)
{
j=i;k=1;
printf("----%d-------%s-------%d-------%d-------%d------\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[j].wuli,a);
}
}
if(k==0)
printf("输入信息有误:
\n");
}
elseif(choice=='3')
{
printf("请输入需要查找学生的成绩:
\n");
scanf("%d",&xx);
printf("您所查找的学生的信息为:
\n");
printf("----学号----姓名----高数----英语----物理----\t\n");
for(i=0;i{
if(xx==student[i].grade)
{
j=i;k=1;
printf("----%d-------%s-------%d-------%d-------%d-------\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[i].wuli,a);
}
}
if(k==0)
printf("输入信息有误:
\n");
}
fhzjm();
pingjunfen();
}
voidPaiXu()
{
structstudent*p1[N],**p2,*