C语言课设学生成绩管理Word文档格式.docx

上传人:b****6 文档编号:20914886 上传时间:2023-01-26 格式:DOCX 页数:19 大小:151.80KB
下载 相关 举报
C语言课设学生成绩管理Word文档格式.docx_第1页
第1页 / 共19页
C语言课设学生成绩管理Word文档格式.docx_第2页
第2页 / 共19页
C语言课设学生成绩管理Word文档格式.docx_第3页
第3页 / 共19页
C语言课设学生成绩管理Word文档格式.docx_第4页
第4页 / 共19页
C语言课设学生成绩管理Word文档格式.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

C语言课设学生成绩管理Word文档格式.docx

《C语言课设学生成绩管理Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言课设学生成绩管理Word文档格式.docx(19页珍藏版)》请在冰豆网上搜索。

C语言课设学生成绩管理Word文档格式.docx

对各科成绩统计分析(总分、平均分、最高分、最低分、及格率等)。

2.2源程序

#include<

stdio.h>

/*引用库函数*/

stdlib.h>

ctype.h>

string.h>

typedefstruct/*定义结构体数组*/

{

沈阳大学

课程设计说明书NO.2

charnum[10];

/*学号*/

charname[20];

/*姓名*/

intscore;

/*成绩*/

}Student;

Studentstu[80];

/*结构体数组变量*/

intmenu_select()/*菜单函数*/

{

charc;

do{

system("

cls"

);

/*运行前清屏*/

printf("

\t\t****Students'

GradeManagementSystem****\n"

/*菜单选择*/

\t\t|1.InputRecords|\n"

\t\t|2.DisplayAllRecords|\n"

\t\t|3.Sort|\n"

\t\t|4.InsertaRecord|\n"

\t\t|5.DeleteaRecord|\n"

\t\t|6.Query|\n"

\t\t|7.Statistic|\n"

\t\t|8.AddRecordsfromaTextFile|\n"

\t\t|9.WritetoaTextfile|\n"

\t\t|0.Quit|\n"

\t\t*****************************************\n"

\t\t\tGiveyourChoice(0-9):

"

c=getchar();

/*读入选择*/

}while(c<

'

0'

||c>

9'

return(c-'

/*返回选择*/

}

课程设计说明书NO.3

intInput(Studentstud[],intn)/*输入若干条记录*/

{inti=0;

charsign,x[10];

/*x[10]为清除多余的数据所用*/

while(sign!

='

n'

&

sign!

N'

)/*判断*/

{printf("

\t\t\tstudent'

snum:

/*交互输入*/

scanf("

\t\t\t%s"

stud[n+i].num);

sname:

stud[n+i].name);

sscore:

\t\t\t%d"

&

stud[n+i].score);

gets(x);

/*清除多余的输入*/

\t\t\tanymorerecords?

(Y/N)"

\t\t\t%c"

sign);

/*输入判断*/

i++;

}

return(n+i);

voidDisplay(Studentstud[],intn)/*显示所有记录*/

{inti;

\t\t\t-----------------------------------\n"

/*格式头*/

\t\t\tnumbernamescore\n"

for(i=1;

i<

n+1;

i++)/*循环输入*/

\t\t\t%-16s%-15s%d\n"

stud[i-1].num,stud[i-1].name,stud[i-1].score);

if(i>

1&

i%10==0)/*每十个暂停*/

课程设计说明书NO.4

{printf("

/*格式*/

\t\t\t"

pause"

voidSort_by_num(Studentstud[],intn)/*按学号排序*/

{inti,j,*p,*q,s;

chart[10];

for(i=0;

n-1;

i++)/*冒泡法排序*/

for(j=0;

j<

n-1-i;

j++)

if(strcmp(stud[j].num,stud[j+1].num)>

0)

{strcpy(t,stud[j+1].num);

strcpy(stud[j+1].num,stud[j].num);

strcpy(stud[j].num,t);

strcpy(t,stud[j+1].name);

strcpy(stud[j+1].name,stud[j].name);

strcpy(stud[j].name,t);

p=&

stud[j+1].score;

q=&

stud[j].score;

s=*p;

*p=*q;

*q=s;

课程设计说明书NO.5

intInsert_a_record(Studentstud[],intn)/*插入一条记录*/

{charx[10];

/*清除多余输入所用*/

/*交互式输入*/

stud[n].num);

stud[n].name);

stud[n].score);

n++;

Sort_by_num(stud,n);

/*调用排序函数*/

\t\t\tInsertSuccessed!

\n"

/*返回成功信息*/

return(n);

intDelete_a_record(Studentstud[],intn)/*按姓名查找,删除一条记录*/

{chars[20];

inti=0,j;

\t\t\ttellmehis(her)name:

/*交互式问寻*/

%s"

s);

while(strcmp(stud[i].name,s)!

=0&

n)i++;

/*查找判断*/

if(i==n)

\t\t\tnotfind!

/*返回失败信息*/

for(j=i;

j++)/*删除操作*/

课程设计说明书NO.6

strcpy(stud[j].num,stud[j+1].num);

strcpy(stud[j].name,stud[j+1].name);

stud[j].score=stud[j+1].score;

\t\t\tDeleteSuccessed!

return(n-1);

voidQuery_a_record(Studentstud[],intn)/*查找并显示一个记录*/

inti=0;

\t\t\tinputhis(her)name:

/*输入失败信息*/

return;

\t\t\this(her)number:

%s\n"

stud[i].num);

/*输出该学生信息*/

\t\t\this(her)score:

%d\n"

stud[i].score);

voidStatistic(Studentstud[],intn)/*新增功能,输出统计信息*/

{inti,j=0,k=0,sum=0;

floataver;

/*成绩平均值*/

n;

i++)/*循环输入判断*/

课程设计说明书NO.7

sum+=stud[i].score;

if(stud[j].score>

stud[i].score)j=i;

if(stud[k].score<

stud[i].score)k=i;

aver=1.0*sum/n;

\t\t\tthereare%drecords.\n"

n);

/*总共记录数*/

\t\t\tthehignestscore:

/*最高分*/

\t\t\tnumber:

%sname:

%sscore:

stud[j].num,stud[j].name,stud[j].score);

\t\t\tthelowestscore:

/*最低分*/

stud[k].num,stud[k].name,stud[k].score);

\t\t\ttheaveragescoreis%5.2f\n"

aver);

/*平均分*/

intAddfromText(Studentstud[],intn)/*从文件中读入数据*/

{inti=0,num;

FILE*fp;

/*定义文件指针*/

charfilename[20];

/*定义文件名*/

\t\t\tInputthefilename:

filename);

/*输入文件名*/

if((fp=fopen(filename,"

rb"

))==NULL)/*打开文件*/

\t\t\tcann'

topenthefile\n"

/*打开失败信息*/

fscanf(fp,"

%d"

num);

/*读入总记录量*/

while(i<

num)/*循环读入数据*/

课程设计说明书NO.8

%s%s%d"

stud[n+i].num,stud[n+i].name,&

n+=num;

fclose(fp);

/*关闭文件*/

\t\t\tSuccessed!

voidWritetoText(Studentstud[],intn)/*将所有记录写入文件*/

\t\t\tWriteRecordstoaTextFile\n"

w"

fprintf(fp,"

/*循环写入数据*/

n)

课程设计说明书NO.9

%-16s%-15s%d\n"

stud[i].num,stud[i].name,stud[i].score);

Successed!

voidmain()/*主函数*/

intn=0;

for(;

;

switch(menu_select())/*选择判断*/

case1:

\t\t\tInputRecords\n"

/*输入若干条记录*/

n=Input(stu,n);

break;

case2:

\t\t\tDisplayAllRecords\n"

/*显示所有记录*/

Display(stu,n);

case3:

\t\t\tSort\n"

Sort_by_num(stu,n);

/*按学号排序*/

\t\t\tSortSuceessed!

课程设计说明书NO.10

case4:

\t\t\tInsertaRecord\n"

n=Insert_a_record(stu,n);

/*插入一条记录*/

case5:

\t\t\tDeleteaRecord\n"

n=Delete_a_record(stu,n);

/*按姓名查找,删除一条记录*/

case6:

\t\t\tQuery\n"

Query_a_record(stu,n);

/*查找并显示一个记录*/

case7:

\t\t\tStatistic\n"

Statistic(stu,n);

/*新增功能,输出统计信息*/

case8:

课程设计说明书NO.11

\t\t\tAddRecordsfromaTextFile\n"

n=AddfromText(stu,n);

case9:

\t\t\tWritetoaTextfile\n"

WritetoText(stu,n);

case0:

\t\t\tHaveaGoodLuck,Bye-bye!

/*结束程序*/

exit(0);

课程设计说明书NO.12

3.课程设计结果与分析

将程序进行编译链接后生成“学生成绩管理系统.exe”,运行,并输入学生信息如图

选择菜单中的第二项,运行情况如图所示。

 

课程设计说明书NO.13

选择菜单中的第三项,运行情况如图所示。

选择菜单中的第四项,运行情况如图所示。

课程设计说明书NO.14

选择菜单中的第五项,运行情况如图所示。

选择菜单中的第六项,运行情况如图所示。

课程设计说明书NO.15

选择菜单中的第七项,运行情况如图所示。

选择菜单中的第八项,运行情况如图所示。

课程设计说明书NO.16

选择菜单中的第九项,运行情况如图所示。

选择菜单中的第零项,运行情况如图所示。

程序运行过程结束。

课程设计说明书NO.17

4.设计体会

该系统实现了输入、显示、查找、修改等功能。

通过这次对学生信息管理系统的程序设计,我意识到了很多以前在课堂上没有注意到的一些细小问题。

比如在利用for循环时,我错把i.j的输入范围扩大或缩小,进而影响程序的正常运行。

也有时我因为粗心大意,把关键字的几个特定字母漏写,这些都导致设计的程序在TurboC2.0中无法运行。

5.参考文献

[1]徐士良,C语言程序设计题解与实验指导,[M],人民邮电出版社,2001.1:

42-46

[2]孙家启等,C语言程序设计题解与实验,[M],安徽大学出版社,2002.6:

52-62

[3]祝胜林,张明武,C语言程序设计实验教程,[M],华南理工大学出版社,2005.3.1:

87-90

[4]黄维通,乔林,孟威,C语言程序设计习题解析与应用案例分析,[M],清华大学出版社,2003.5.4:

34-57

[5]李岚,李莉,金一宁.C语言程序设计与上机指导[M].北京:

清华电子工业出版社,2005.5:

198—202

课程设计说明书NO.18

5.参考文献

[1]谢宋和,甘勇.单片机模糊控制系统设计与应用实例[M].北京:

电子工业出版社,1999.5:

20-25

[2]范立南,韩晓微,王忠石等.基于多结构元的噪声污染灰度图像边缘检测研究[J].武汉大学学报(工学版),2003,49(3):

45-49

[3]卜小明,龙全求.一种薄板弯曲问题的四边形位移单元[J].力学学报,1991,23

(1):

53-60

[4]范立南,谢子殿.单片机原理及应用教程[M].北京:

北京大学出版社,2006.1:

123-130

[5]潘新民,王燕芳.微型计算机控制技术[M],第2版.北京:

电子工业出版社,2003.4:

305-350

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

当前位置:首页 > 人文社科 > 军事政治

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

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