学生成绩管理系统Word下载.docx
《学生成绩管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统Word下载.docx(16页珍藏版)》请在冰豆网上搜索。
main()
{intn,w1;
Do
{
Puts(“\t\t**menu**\n\n”);
Puts(“\t\t\t\t1.Enternewdata”);
Puts(“\t\t\t\t2.Insertdata”);
Puts(“\t\t\t\t3.Modifydata”);
Puts(“\t\t\t\t4.Deldata”);
Puts(“\t\t\t\t5.Browseall”);
Puts(“\t\t\t\t6.Orderbynumber”);
Puts(“\t\t\t\t7.Exit”);
Puts(“\n\n\t\t****\n”);
Printf(“Choiceyournumber(1-30):
[]\b\b”);
scanf(“%d”,&
n);
if(n<
1||n>
30)
{w1=1;
getchar();
}
Elsew1=0;
}while(w1==1);
Switch(n)
Case1:
enter();
break;
Case2:
insert();
Case3:
modify();
Case4:
del();
Case5:
browse();
Case6:
order();
Case7:
exit(0);
Main()
{menu();
二.各功能模块设计
1)输入模块
学生信息采用结构体的形式
#defineN30
{charnum[6];
Charname[8];
Charage[12];
Intscore[3];
Sum;
Stu[N];
[流程图]
输入用户要输入学生记录的个数n
i从0到n-1调用输入函数input(i)
i!
=0
保存调用函数save(n)
输入模块
Voidenter()
{inti,n;
Printf(“Howmanystudents(o-%d)?
:
”,N-1;
Scanf(“%d”,&
Printf(“\nEnterdatanow\n\n”);
For(i=0;
i<
n;
i++)
{printf(“\nInput%dthstudentrecord.\n”,i+1);
Input(i);
If(i!
=0)save(n);
Printf_back();
2)插入模块
调用输入法单个记录的函数input(n)
显示刚才输入的记录
让用户选择1用起泡法排序并保存2返回调用函数3不保存
返回主菜单
[程序]
插入模块
Voidinsert()
{inti,j,n,c;
Structstudents;
N=load();
Puts(“\nInputonedata.\n”);
{input(n);
Printf_face();
Printf_one(n);
Printf(“\n\nAreyousure?
\n\n\t1).Sure\t2).cancelandagain\t3).Backwithoutsave[]\b\b”);
c);
If(c==1)
Save(n+1);
Elseif(c!
=2)menu();
}while(c==2);
3)修改模块
显示所有记录,让用户看哪个要修改
输入要修改的学号
是否找到此学生记录
显示找到的记录调用修改函数
提示没有找到
询问用户是否继续修改Y继续N返回主菜单
修改模块
Voidmodify()
{structstudents;
Inti,n,k,w0=1,w1,w2=0;
K=-1;
{if((i!
=0&
&
(i%10==0))
{printf(“\n\nRemberNO.whichneededmodify.passanykeytocontinue…”);
Getch();
Puts(“\n\n”);
Printf_one(i);
{printf(“\n\nEnterNO.thatyouwanttomodify!
NO.:
”);
Scanf(“%s”,s.num);
If(strcmp(s.num,stu[i].num==0)
{k=i;
S=stu[i];
If(k==-1)printf(“\n\nNO.exist!
peleseagain”);
While(k==-1);
Printf_one(k);
W1=modify_data(k,n);
If(w1==1)
{printf(“\nSuccessful^_^.\n\nAreyoumodufyanother?
\n\n\t1).Yes2}.Backwithsave\t[]\b\b”);
w0);
w2=1;
Else
{w0=0;
If(w2==1)stu[k]=s;
If(w0!
=1&
w2==1)
Save(n);
}while(w0==1);
Menu();
4)删除模块
显示所有记录,让用户看哪个要删除
输入要删除的学号
显示找到的记录调用删除函数
询问用户是否继续删除Y继续N返回主菜单
删除模块
Voiddel()
n=load();
do
k=-1;
for(i=0;
=0)&
{printf(“\n\nRememberNO.whichneededdel.passanykeytocontinue…”);
{printf(“\n\nEnterNO>
thatyouwanttodel!
If(strcmp(s.num,stu[i].num)==0)
s=stu[i];
If(k==-1)printf(“\n\nNOexist!
pleaseagain”);
w1=del_data(k,n);
if(w1==1)
{printf(“\nSuccessful^_^.\n\nAreyoudelanother?
If(w2==1)
stu[k]=s;
save(n-1);
While(w0==1);
menu();
5)浏览模块
显示学生记录(10个一屏)
按任意键显示下一屏
按任意键返回主菜单
浏览模块
Voidbrowse()
{intI,j,n;
printf_face();
Printf(“\n\nPassanykeytocontinue…”);
getch();
puts(“\n\n”);
Ptintf(“\tThereare%drecor.\n”,n);
Printf(“\nPassanykeytoback…”);
6)排序模块
用交换法排序
保存
排序模块
voidorder()
{inti,j,k,n;
score*p*max;
structstudents;
for(j=i+1;
j<
j++)
max=p;
p=p->
next;
if(max->
number>
p->
number)
{k=max->
number;
max->
number=p->
number=k;
2.公共函数
1)输入一个记录函数input(inti)
Voidinput(inti)
no_input(i,i);
printf(“name:
scanf(“%s”,stu[i].name);
printf(“age:
scanf(“%s”,stu[i].age);
score_input(i);
sum(i);
2)输入三科科目分数函数score_input(inti)
voidscore_input(inti)
{intj;
for(j=0;
3;
{printf(“score%d:
”,j+1);
stu[i].score[j]);
3)学号输入函数no_input(inti,intn)
voidno_input(inti,intn)
{intj,k,w1;
{w1=0;
Printf(“NO.:
Scanf(“%s”,st[i].num);
For(j=0;
stu[i].num[j]!
=’\0’;
If(stu[i].num[j]<
’0’||stu[i].num[j]>
’29’)
{puts(“Inputerror!
Onlybemadeupof(0-29).Pleasereinput!
\n”);
W1=1;
If(w1!
=1)
For(k=0;
k<
k++)
If(k!
=i&
strcmp(*stu[k].num,stu[i].num==0)
{puts(“Thisrecordisexist.pleasereinput!
w1=1;
While(w1==1);
4)显示数据结构项目函数
Voidprintf_face()
{printf(“\n\tNO.namescore1score2score3sum\n”);
5)一个任务结束时的选择浏览还是返回的函数
voidprintf_back()
{intk,w;
printf(“\n\n\tSuccessful.^_^\n\n”);
printf(“Whatdoyouwanttodo?
\n\n\t1).Browseallnow\t2).Back:
[]\b\b”);
w);
if(w==1)browse();
elsemenu();
五:
上机操作
1.数据源
2.编译,连接和运行
3.结果