该【大一数据结构c语言课程设计 】是由【jiqingyong345】上传分享,文档一共【10】页,该文档可以免费在线阅读,需要了解更多关于【大一数据结构c语言课程设计 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。欢迎阅读本文档,希望本文档能对您有所帮助!
欢迎阅读本文档,希望本文档能对您有所帮助!
感谢阅读本文档,希望本文档能对您有所帮助!
感谢阅读本文档,希望本文档能对您有所帮助!
欢迎阅读本文档,希望本文档能对您有所帮助!
感谢阅读本文档,希望本文档能对您有所帮助!
XI`ANTECHNOLOGICALUNIVERSITY
课程设计报告
课程名称:C语言程序设计
专业:
班级:
姓名:
学号:
指导教师:
成绩:
2017年1月5日
题目:学生成绩管理系统
思路:先建立一个链表然后以链表为基础进行各种操作,设计学生成绩管理系统,通过主页显示,根据自己需求按主页中所显示步骤输入,删除,查找,插入,修改,统计学生信息。
算法:核心算法为链表的生成,插入,查找,排序算法。
函数模块介绍:
voidxuanze();//选择功能
voidshuchu(structstudent*h);//输出
voidtianjia(structstudent*h);//添加
voidshanchu(structstudent*h);//删除
voidchaxun(structstudent*h);//查询
voidgenggai(structstudent*h);//更改主
voidgxuehao(structstudent*p);//改学号
voidgname(structstudent*p);//改姓名
voidggaoshu(structstudent*p);//改高数成绩
voidgyingyu(structstudent*p);//改英语成绩
voidgc(structstudent*p);//改c语言成绩
欢迎阅读本文档,希望本文档能对您有所帮助!
欢迎阅读本文档,希望本文档能对您有所帮助!
感谢阅读本文档,希望本文档能对您有所帮助!
感谢阅读本文档,希望本文档能对您有所帮助!
欢迎阅读本文档,希望本文档能对您有所帮助!
感谢阅读本文档,希望本文档能对您有所帮助!
voidtongji();//统计主
voidmax_average(structstudent*h);//统计平均分最高
voidmax_gaoshu(structstudent*h);//统计高数最高
voidmax_yingyu(structstudent*h);//统计英语最高
voidmax_c(structstudent*h);//统计c语言最高
voidbujige_average(structstudent*h);//统计平均分不及格学生信息
voidbujige_gaoshu(structstudent*h);//统计高数不及格学生信息
voidbujige_yingyu(structstudent*h);//统计英语不及格学生信息
voidbujige_c(structstudent*h);//同意c语言不及格学生信息
structstudent*creat(intn);//创建链表
voidorder_two(structstudent*p,structstudent*q);//调换位置
voidorder(structstudent*h);//排序
源程序
#include""
#include""
#include""
#include<>
#defineN30
#defineM3
typedefstructstudent
{
charnumber[10];
charname[20];
floatscore[M];
floataver;
floattotal;
}STU;
STUstu[N];
intn;
voidinputscore(void);
voidsavescore(void);
voidavergescore(void);
voidtotal(void);
voidlookscore(void);
voidsearchscore(void);
voidstatistic(void);
voidadd(void);
voidmodify(void);
voiddelscore(void);
voidsavescore(void);
voidmenu(void);
intmain()
{
欢迎阅读本文档,希望本文档能对您有所帮助!
欢迎阅读本文档,希望本文档能对您有所帮助!
感谢阅读本文档,希望本文档能对您有所帮助!
感谢阅读本文档,希望本文档能对您有所帮助!
欢迎阅读本文档,希望本文档能对您有所帮助!
感谢阅读本文档,希望本文档能对您有所帮助!
shortintflag=0;
menu();
do
{
flag=1;
switch(getch())
{
case'1':inputscore();break;/*输入成绩*/
case'2':lookscore();break;/*查看成绩*/
case'3':searchscore();break;/*查找成绩*/
case'4':statistic();break;/*成绩统计*/
case'5':modify();break;/*修改成绩*/
case'6':add();break;/*添加成绩*/
case'7':delscore();break;/*删除成绩*/
case'8':savescore();break;/*保存成绩*/
case'9':exit(0);/*退出成绩*/
default:printf("输入有误\n");
}
printf("按任意键继续\n");
getch();
menu();
}while(flag==1);
}
voidmenu(void)
{
system("cls");
printf("\t\t\n");
printf("\t\t学生信息管理系统\n");
printf("\t\t\n");
printf("\t\t\n");
printf("\t\\n");
printf("\t\t\n");
printf("\t\\n");
printf("\t\t\n");
printf("\t\\n");
printf("\t\t\n");
printf("\t\\n");
printf("\t\t\n");
printf("\t\\n");
printf("\t\t\n");
printf("\t\t请您选择(0-9)\n");
}
欢迎阅读本文档,希望本文档能对您有所帮助!
欢迎阅读本文档,希望本文档能对您有所帮助!
感谢阅读本文档,希望本文档能对您有所帮助!
感谢阅读本文档,希望本文档能对您有所帮助!
欢迎阅读本文档,希望本文档能对您有所帮助!
感谢阅读本文档,希望本文档能对您有所帮助!
/************输入各个同学的学生信息***********/
voidinputscore(void)
{
inti,j;
system("cls");
printf("请输入学生总数:\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("请输入第%d个学生的学号姓名:\n",i+1);
scanf("%s",stu[i].number);
scanf("%s",stu[i].name);
printf("请输入学生成绩:\n");
printf("高数\tC语言\t大英\n");
for(j=0;j<M;j++)
scanf("%f",&stu[i].score[j]);
}
printf("成功输入\n");
}
/***************计算各个同学的总分************/
voidtotal(void)
{
inti,j;
for(i=0;i<n;i++)
{
stu[i].total=0;
for(j=0;j<M;j++)
{
stu[i].total+=stu[i].score[j];
}
}
}
/********************计算各个同学的平均分*************/
voidavergescore(void)
{
inti,j;
for(i=0;i<n;i++)
{
stu[i].aver=0;
for(j=0;j<M;j++)
{
stu[i].aver+=stu[i].score[j];
}
stu[i].aver=stu[i].aver/M;
}
}
欢迎阅读本文档,希望本文档能对您有所帮助!
欢迎阅读本文档,希望本文档能对您有所帮助!
感谢阅读本文档,希望本文档能对您有所帮助!
感谢阅读本文档,希望本文档能对您有所帮助!
欢迎阅读本文档,希望本文档能对您有所帮助!
感谢阅读本文档,希望本文档能对您有所帮助!
/************查看学生成绩及根据平均分对学生排序************/
voidlookscore(void)
{
inti,j,k;
STUt;
total();
avergescore();
system("cls");
for(i=0;i<n-1;i++)
{
for(k=i,j=i+1;j<n;j++)
if(stu[j].aver>stu[k].aver)
k=j;
if(k!=j)
{
t=stu[k];
stu[k]=stu[i];
stu[i]=t;
}
}
printf("名次\t学号\t\t姓名\t高数\tC语言\t大英\t总分\t平均分\n");
for(i=0;i<n;i++)
{
printf("%d\t%s\t\t%s\t",i+1,stu[i].number,stu[i].name);
for(j=0;j<M;j++)
printf("%\t",stu[i].score[j]);//输出成绩
printf("%\t",stu[i].total);
printf("%\t",stu[i].aver);
printf("\n");
}
}
/**********************通过输入学号查找学生成绩**********************/
voidsearchscore(void)
{
chara[10];
inti,j;
system("cls");
printf("请输入需查询的学生学号\n");
scanf("%s",a);
for(i=0;i<n;i++)
{if(strcmp(a,stu[i].number)==0)//比较两个字符串
{printf("名次\t学号\t\t姓名\t高数\tC语言\t大英\t总分\t平均分\n");
printf("%d\t%s\t\t%s\t",i+1,stu[i].number,stu[i].name);
欢迎阅读本文档,希望本文档能对您有所帮助!
欢迎阅读本文档,希望本文档能对您有所帮助!
感谢阅读本文档,希望本文档能对您有所帮助!
感谢阅读本文档,希望本文档能对您有所帮助!
欢迎阅读本文档,希望本文档能对您有所帮助!
感谢阅读本文档,希望本文档能对您有所帮助!
for(j=0;j<M;j++)
printf("%\t",stu[i].score[j]);
printf("%\t",stu[i].total);
printf("%\t",stu[i].aver);
printf("\n");
break;/*找到该学生成绩信息后跳出for循环*/
}
else
printf("未找到该学生信息\n");
}
}
/************统计学生成绩信息,平均分及格率,优秀率*************/
voidstatistic(void)
{
STU*p=stu;
inti,j;
floatcount=,sum=;
system("cls");
for(i=0;i<n;i++)
{sum+=(p+i)->aver;}
printf("该班级平均分为%\n",sum/n);/*平均分计算*/
for(i=0;i<n;i++)
{if((p+i)->aver>=60)
count++;
}
printf("该班级及格率为%%%\n",count/n*100);/*及格率计算*/
count=;
for(i=0;i<n;i++)
{if((p+i)->aver>=90)
count++;
}
printf("该班级的优秀率为%%%\n",count/n*100);/*优秀率计算*/
printf("平均分低于60的学生名单\n");
for(i=0;i<n;i++)
{
if(stu[i].aver<60)
printf("%s\n",stu[i].name);
}/*统计不及格学生名单*/
}
/****************修改学生成绩*************/
voidmodify(void)
{chara[10];
inti,j;
system("cls");
欢迎阅读本文档,希望本文档能对您有所帮助!
欢迎阅读本文档,希望本文档能对您有所帮助!
感谢阅读本文档,希望本文档能对您有所帮助!
感谢阅读本文档,希望本文档能对您有所帮助!
欢迎阅读本文档,希望本文档能对您有所帮助!
感谢阅读本文档,希望本文档能对您有所帮助!
printf("请输入需要修改成绩的学生学号\n");
scanf("%s",a);
for(i=0;i<n;i++)
{if(strcmp(a,stu[i].number)==0)
{printf("名次\t学号\t\t姓名\t高数\tC语言\t大英\t总分\t平均分\n");
printf("%d\t%s\t%s\t",i+1,stu[i].number,stu[i].name);
for(j=0;j<M;j++)
printf("%\t",stu[i].score[j]);
printf("%\t",stu[i].total);
printf("%\t",stu[i].aver);
printf("\n");
printf("请重新输入该学生的学号姓名:\n");
scanf("%s",stu[i].number);
scanf("%s",stu[i].name);
printf("请重新输入学生成绩:\n");
printf("高数\tC语言\t大英\n");
for(j=0;j<M;j++)
scanf("%f",&stu[i].score[j]);/*找到该学生成绩后进行后进行修改,跳出for循环*/
printf("修改成功\n");
break;
}
else
printf("请确认该学生是否为本班学生!\n");
}
}
/**********************添加学生成绩*************************/
voidadd(void)
{
inta,i,j;
system("cls");
printf("请输入新增加的学生人数:\n");
scanf("%d",&a);
n=n+a;
for(i=n-a;i<n;i++)
{printf("请输入学生%d的学号姓名:\n",i+1);
scanf("%s",stu[i].number);
scanf("%s",stu[i].name);
printf("请输入学生成绩:\n");
printf("高数\tC语言\t大英\n");
for(j=0;j<M;j++)
scanf("%f",&stu[i].score[j]);
printf("添加成功\n");
}
}
欢迎阅读本文档,希望本文档能对您有所帮助!
欢迎阅读本文档,希望本文档能对您有所帮助!
感谢阅读本文档,希望本文档能对您有所帮助!
感谢阅读本文档,希望本文档能对您有所帮助!
欢迎阅读本文档,希望本文档能对您有所帮助!
感谢阅读本文档,希望本文档能对您有所帮助!
/*******************删除学生成绩********************/
voiddelscore(void)
{inti,j,c;
charm,a[10];
system("cls");
printf("请输入学生学号\n");
scanf("%s",a);
for(i=0;i<n;i++)
{if(strcmp(a,stu[i].number)==0)
{printf("名次\t学号\t\t姓名\t高数\tC语言\t大英\t总分\t平均分\n");
printf("%d\t%s\t%s\t",i+1,stu[i].number,stu[i].name);
for(j=0;j<M;j++)
printf("%\t",stu[i].score[j]);
printf("%\t",stu[i].total);
printf("%",stu[i].aver);
printf("\n");
c=i;
break;
}
else
printf("未找到该学生信息\n");
}
printf("是否删除该学生成绩(y/n)\n");
scanf("%s",&m);
if(m=='y')
{
for(i=c;i<n-1;i++)
stu[i]=stu[i+1];/*结构体整体赋值将最后一位学生成绩信息拷贝进入前一位学生信息的存储位置*/
n=n-1;/*删除该学生信息后学生总数减一*/
printf("删除成绩成功\n");
}
else
printf("删除成绩失败\n");
}
/***********************保存学生成绩*************************/
voidsavescore(void)
{
FILE*fp;
inti,flag=1;
charm;
system("cls");
puts("是否保存学生成绩(y/n)");
scanf("%s",&m);
if(m=='y')
欢迎阅读本文档,希望本文档能对您有所帮助!
欢迎阅读本文档,希望本文档能对您有所帮助!
感谢阅读本文档,希望本文档能对您有所帮助!
感谢阅读本文档,希望本文档能对您有所帮助!
欢迎阅读本文档,希望本文档能对您有所帮助!
感谢阅读本文档,希望本文档能对您有所帮助!
{if((fp=fopen("","wb"))==NULL)
{printf("文件打开失败\n");
return;
}
for(i=0;i<n;i++)
if(fwrite(&stu[i],sizeof(structstudent),1,fp)!=1)
{
printf("保存失败\n");
flag=0;
}
if(flag==1)
printf("保存成功!\n");
fclose(fp);
}
else
return;
欢迎阅读本文档,希望本文档能对您有所帮助!
欢迎阅读本文档,希望本文档能对您有所帮助!
感谢阅读本文档,希望本文档能对您有所帮助!
感谢阅读本文档,希望本文档能对您有所帮助!
欢迎阅读本文档,希望本文档能对您有所帮助!
感谢阅读本文档,希望本文档能对您有所帮助!
大一数据结构c语言课程设计 来自淘豆网m.daumloan.com转载请标明出处.