TFTF
temp=stu[i]temp=stu[i]
stu[i]=stu[j]stu[i]=stu[j]
stu[j]=tempstu[j]=temp
3.3系统特点
【1】特点:
这个学生信息管理系统建立了学生信息的结构体,实现了学生信息的录入、添加、修改、删除、查找等功能,并能计算学生的平均分和总分,对学生进行排序。
4.程序代码
【1】程序代码
voidHelp();
voidSave(structstudentstu[]);
voidInputStu(structstudentstu[]);
voidDelStu(structstudentstu[]);
voidModifyStu(structstudentstu[]);
voidFindStu(structstudentstu[]);
voidInsertStu(structstudentstu[]);
voidSortStu(structstudentstu[]);
voidListStu(structstudentstu[]);
voidmain()
{structstudentstu[50];structstudent*p;
intin;intin1;charch;
voidInputStu(structstudentstu[])
{pp=stu;
system("cls");
inti;
printf("Numberofstudentsyouwanttoenterinformation:
");
scanf("%d",&input);
if((fp=fopen("inputdata.sys","wb+"))==NULL)
{printf("Cannotopenfilestrikeanykeyexit!
");
getch();exit
(1);}
voidModifyStu(structstudentstu[])
{system("cls");
pp=stu;intid,i,flag=1;
if((fp=fopen("modifydata.sys","wb+"))==NULL)
{printf("Cannotopenfilestrikeanykeyexit!
");
getch();exit
(1);}
voidFindStu(structstudentstu[])
{system("cls");inti=0,id,flag=1,chose;
printf("\nPleaseselectquery:
1.No.inquiriesbyschool;2.Querybyclass;3.Querybyname\n");
scanf("%d",&chose);
switch(chose){
case1:
printf("PleaseenteryourqueryNo.students:
");
scanf("%d",&id);
for(i=0;i
{if(stu[i].num==id)
{flag=0;
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].ave=stu[i].sum/3;
printf("\nNo.Studies\Name\No.classes\Thefirstsubjec\Thesecondsubject\Thethirdsubject\Average\Total\n");
voidInsertStu(structstudentstu[])
{system("cls");
intflag=1;pp=stu;inti,id;
if((fp=fopen("insertdata.sys","wb+"))==NULL)
{printf("Cannotopenfilestrikeanykeyexit!
");
getch();exit
(1);}
voidListStu(structstudentstu[])
{inti=0;
for(i=0;i
{stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].ave=stu[i].sum/3;}
printf("\nNo.Studies\Name\No.classes\Thefirstsubjec\Thesecondsubject\Thethirdsubject\Average\Total\n");
for(i=0;i
{printf("\n%d%s%d\t%d\t%d\t%d\t%d%d",stu[i].num,stu[i].name,stu[i].classid,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave,stu[i].sum);}
getch();}
voidDelStu(structstudentstu[])
{system("cls");
pp=stu;intdelnum,flag=1;charask;inti,j;
if((fp=fopen("Deldata.sys","wb+"))==NULL)
{printf("Cannotopenfilestrikeanykeyexit!
");
getch();exit
(1);}
voidSortStu(structstudentstu[])
{system("cls");
inti,j,chose;
structstudenttemp;
printf("Tosortthedatabefore:
\n");
printf("\nNo.Studies\Name\No.classes\Thefirstsubjec\Thesecondsubject\Thethirdsubject\Average\Total\n");
for(i=0;i
{printf("\n%d%s%d%d\t%d\t%d\t%d\t%d\n",stu[i].num,stu[i].name,stu[i].classid,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave,stu[i].sum);}
printf("\n1.SortbyStudentID\t2.Bytheaveragescore(high→low)Sort\n");
voidSave(structstudentstu[])
{inti,j;pp=stu;
system("cls");
printf("\n\n\n\n\t\t\tSaving");
if((fp=fopen("stu_list2.doc","wb+"))==NULL)
{printf("Cannotopenfilestrikeanykeyexit!
");
getch();exit
(1);
}
【2】程序执行结果
【3】结果的讨论:
系统最后将修改过后的学生信息保存了下来
5.调试情况
三科成绩、平均分、总分不能用float定义应改为int
定义应在函数的最前端
文件未定义
这是建立学生信息文件
添加学生信息并计算平均分和总分
找不到要删除的学生信息
删除了学号为12的学生信息
修改学生信息
新学生信息记录
保存信息后退出程序
6.结论
(1)能够通过编译时出现的出错提示信息,进行初步的纠错。
(2)完成一个程序的一般步骤为设计,录入,编译,如果出错,则修改,然后再编译,编译成功后,看看结果是否正确,如果结果不正确,则再重复以上步骤。
(3)从这次编程序的过程中,我学到了编程所必须具备的专业技能,更领会编译程序所需要的细心和耐心。