最新C语学生成绩管理系统程序Word文档格式.docx
- 文档编号:22608787
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:18
- 大小:18.92KB
最新C语学生成绩管理系统程序Word文档格式.docx
《最新C语学生成绩管理系统程序Word文档格式.docx》由会员分享,可在线阅读,更多相关《最新C语学生成绩管理系统程序Word文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
//运行前清屏
printf("
\t\t★★★★★★学生成绩管理系统★★★★★★\n"
//菜单选择
\t\t§
1.输入学生信息及数据§
\n"
2.输出学生信息及数据§
3.按姓名、学号及学期查找学生信息§
4.按姓名、学号及学期修改学生信息§
5.插入学生信息§
6.按学号及学期删除信息§
7.按单科降序(选择)排序§
8.按总分降序(选择)排序§
9.统计各科总分和平均分信息§
10.内存数据写入磁盘中§
11.磁盘中数据读入内存§
0.结束程序§
\t\t★★★★★★★★★★★★★★★★★★★★\n"
\t\t请选择您要运行的选项按(0-11):
"
scanf("
%d"
&
c);
//读入选择
}while(c<
0||c>
11);
return(c);
//返回选择
}
intInput(Studentgrade[],intn)/*输入学生信息及数据*/
inti=0;
charsign;
do
{
\t\t学期:
/*交互输入*/
\t\t%d"
grade[n+i].term);
\t\t学号:
\t\t%s"
grade[n+i].num);
\t\t姓名:
grade[n+i].name);
\t\tC语言成绩:
grade[n+i].cgrade);
\t\t数学成绩:
grade[n+i].mgrade);
\t\t英语成绩:
grade[n+i].egrade);
\t\t是否继续输入?
(Y/N)"
sign);
/*输入判断*/
i++;
if(sign=='
N'
||sign=='
n'
)break;
}while(sign=='
Y'
y'
/*判断*/
return(n+i);
voidDisp(Studentgrade[],intn)/*输出学生信息及数据*/
printf("
\t\t--------------------------------------------------\n"
\t\t学期学号姓名c语言成绩数学成绩英语成绩\n"
for(i=0;
i<
n;
++i)/*循环输入*/
%20d%s%s%d%d%d\n"
grade[i].term,grade[i].num,grade[i].name,
grade[i].cgrade,grade[i].mgrade,grade[i].egrade);
if(i>
1&
&
i%10==0)/*每十个暂停*/
{
printf("
\t\t"
system("
pause"
}
}
system("
voidQur_info(Studentgrade[],intn)//按姓名、学号及学期查找学生信息
charnum[20];
\t\t输入他(她)的姓名:
scanf("
name);
\t\t输入他(她)的学号:
num);
\t\t输入他(她)的学期:
term);
i++)
if(strcmp(grade[i].name,name)==0
&
strcmp(grade[i].num,num)==0
grade[i].term==term)
\t\t他(她)的C语言成绩:
%d\n"
grade[i].cgrade);
\t\t他(她)的数学语言成绩:
grade[i].mgrade);
\t\t他(她)的英语语言成绩:
grade[i].egrade);
return;
elseif(i==n-1)
\t\t对不起没找到该学生!
voidModify_info(Studentgrade[],intn)//按姓名、学号及学期修改学生信息
\t\t请输入修改的C语言成绩:
scanf("
grade[i].cgrade);
\t\t请输入修改的数学成绩:
grade[i].mgrade);
\t\t请输入修改的英语成绩:
grade[i].egrade);
intInsert(Studentgrade[],intn)//插入学生信息
grade[n].term);
grade[n].num);
grade[n].name);
\t\tC语成绩:
grade[n].cgrade);
\t\t数学语成绩:
grade[n].mgrade);
grade[n].egrade);
n++;
\t\t插入记录成功!
returnn;
intDel_info(Studentgrade[],intn)//按学号及学期删除信息
if(strcmp(grade[i].num,num)==0&
grade[i].term=grade[i+1].term;
strcpy(grade[i].num,grade[i+1].num);
strcpy(grade[i].name,grade[i+1].name);
grade[i].cgrade=grade[i+1].cgrade;
grade[i].mgrade=grade[i+1].mgrade;
grade[i].egrade=grade[i+1].egrade;
printf("
\t\t删除记录成功!
return(n-1);
return(n);
intcompareCgrade(constvoid*a,constvoid*b)//C语降序排序
Student*s1=(Student*)a;
Student*s2=(Student*)b;
if(s1->
cgrade>
s2->
cgrade)
return1;
else
return0;
intcompareMgrade(constvoid*a,constvoid*b)//数学降序排序
mgrade>
mgrade)
intcompareEgrade(constvoid*a,constvoid*b)//英语降序排序
egrade>
egrade)
intcompareTotal(constvoid*a,constvoid*b)//总分降序排序
inttotal1=s1->
cgrade+s1->
egrade+s1->
mgrade;
inttotal2=s2->
cgrade+s2->
egrade+s2->
if(total1>
total2)
voidSort(Studentgrade[],intn,intchoice)//选择排序的科目
if(choice==1)
qsort(grade,n,sizeof(grade[0]),compareCgrade);
elseif(choice==2)
qsort(grade,n,sizeof(grade[0]),compareMgrade);
elseif(choice==3)
qsort(grade,n,sizeof(grade[0]),compareEgrade);
选择无效\n"
voidSort_sub(Studentgrade[],intn)//按单科降序(选择)排序
intchoice=0;
选择排序科目\n"
1-C语言,2-数学,3-英语\n"
&
choice);
Sort(grade,n,choice);
voidSort_sum(Studentgrade[],intn)//按总分降序排序
qsort(grade,n,sizeof(grade[0]),compareTotal);
voidAverage(Studentgrade[],intn)//统计各科总分和平均分信息
intcsum=0;
intmsum=0;
intesum=0;
intsum=0;
inti;
floataver=0;
csum=csum+grade[i].cgrade;
msum=msum+grade[i].mgrade;
esum=esum+grade[i].egrade;
sum=csum+msum+esum;
aver=(float)sum/3;
\t\tC语言总分是:
csum);
\t\t数学总分是:
msum);
\t\t英语总分是:
esum);
\t\t平均分是:
%3.1f\n"
aver);
voidSave(Studentgrade[],intn)//内存数据写入磁盘中
FILE*fp;
/*定义文件指针*/
if((fp=fopen("
mydata.txt"
"
w"
))==NULL)/*打开文件*/
\t\t无法打开该文件\n"
return;
fprintf(fp,"
n);
/*循环写入数据*/
while(i<
n)
fprintf(fp,"
%-10d%-20s%-10s%-10d%-10d%-10d\n"
grade[i].term,grade[i].num,grade[i].name,grade[i].cgrade,grade[i].mgrade,grade[i].egrade);
fclose(fp);
/*关闭文件*/
写入成功!
/*返回成功信息*/
intRead(Studentgrade[],intn)//磁盘中数据读入内存
inti=0,num;
rb"
/*打开失败信息*/
return(n);
fscanf(fp,"
/*读入总记录量*/
num)/*循环读入数据*/
fscanf(fp,"
%d%s%s%d%d%d"
grade[n+i].term,grade[n+i].num,grade[n+i].name,&
grade[n+i].cgrade,
grade[n+i].mgrade,&
n+=num;
\t\t读入成功!
return(n);
intmain()/*主函数*/
intn=0;
while
(1)
switch(menu_select())/*选择判断*/
case1:
\t\t输入记录\n"
/*输入若干条记录*/
n=Input(score,n);
break;
case2:
\t\t显示记录\n"
/*显示所有记录*/
Disp(score,n);
case3:
\t\t查找并显示一个记录\n"
/*查找学生信息*/
Qur_info(score,n);
case4:
\t\t查找并修改一个记录\n"
/*修改学生信息*/
Modify_info(score,n);
case5:
\t\t插入一条记录\n"
/*插入一条记录*/
n=Insert(score,n);
case6:
\t\t按学号及姓名找,删除一条记录\n"
/*按学号及学期删除信息*/
n=Del_info(score,n);
case7:
\t\t按单科排序并显示\n"
/*按单科降序(选择)排序*/
Sort_sub(score,n);
\t\t\t排序成功!
case8:
\t\t按总分排序并显示\n"
/*按总分降序排序*/
Sort_sum(score,n);
case9:
\t\t各科总分和平均分信息"
/*统计各科总分和平均分信息*/
Average(score,n);
(2)缺乏经营经验case10:
\t\t循环写入数据\n"
(三)DIY手工艺品的“自助化”Save(score,n);
喜欢□一般□不喜欢□printf("
300元以下□300~400元□400~500□500元以上□system("
(二)DIY手工艺品的“热卖化”break;
case11:
\t\t从文件中读入数据\n"
/*从文件中读入数据*/
据上述部分的分析可见,我校学生就达4000多人。
附近还有两所学校,和一些居民楼。
随着生活水平的逐渐提高,家长给孩子的零用钱也越来越多,人们对美的要求也越来越高,特别是大学生。
他们总希望自己的无论是衣服还是首饰都希望与众不同,能穿出自己的个性。
但在我们美丽的校园里缺少自己的个性和琳琅满目的饰品,所以我们的小饰品店存在的竞争力主要是南桥或是市区的。
这给我们小组的创业项目提供了一个很好的市场机会。
n=Read(score,n);
在现代文化影响下,当今大学生对新鲜事物是最为敏感的群体,他们最渴望为社会主流承认又最喜欢标新立异,他们追随时尚,同时也在制造时尚。
“DIY自制饰品”已成为一种时尚的生活方式和态度。
在“DIY自制饰品”过程中实现自己的个性化追求,这在年轻的学生一代中尤为突出。
“DIY自制饰品”的形式多种多样,对于动手能力强的学生来说更受欢迎。
case0:
(3)个性体现printf("
\t\t谢谢使用,祝您好运,再见!
/*结束程序*/
exit(0);
手工艺品,它运用不同的材料,通过不同的方式,经过自己亲手动手制作。
看着自己亲自完成的作品时,感觉很不同哦。
不论是01年的丝带编织风铃,02年的管织幸运星,03年的十字绣,0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 学生 成绩管理系统 程序