佛山科学技术学院Word文档格式.docx
《佛山科学技术学院Word文档格式.docx》由会员分享,可在线阅读,更多相关《佛山科学技术学院Word文档格式.docx(14页珍藏版)》请在冰点文库上搜索。
a)排序:
按选择按平均分排序
b)查询:
根据学号查询成绩
c)统计:
可以选择统计各学生的平均成绩或统计所有存在不及格科目的学生;
5.数据输出:
输出学生的相应结果信息;
6.退出:
退出整个学生信息管理系统。
三、程序组织结构图、函数调用关系图
主函数……LEAP……选择:
case1:
myget();
break;
case2:
myproc();
case3:
myedit();
{函数myorder()函数mysum()函数myseek()
函数num1()函数ave1()}
case4:
myput();
case5:
default:
printf("
输入有误"
);
四、程序清单
#include<
stdio.h>
string.h>
conio.h>
iostream.h>
inttemp;
structstudent//
{
charnum[10];
//
charname[10];
charsex[4];
charmyclass[20];
intcj1,cj2,cj3;
floatave;
}stu[100];
voidmyget()//输入
{//FILE*P;
charx='
y'
;
inti=0;
while
(1)
{printf("
\n\t数据输入:
\n"
\t学号:
"
scanf("
%s"
stu[i].num);
\t姓名:
stu[i].name);
\t性别:
stu[i].sex);
\t班级:
stu[i].myclass);
\t成绩1:
%d"
&
stu[i].cj1);
\t成绩2:
stu[i].cj2);
\t成绩3:
stu[i].cj3);
stu[i].ave=float((stu[i].cj1+stu[i].cj2+stu[i].cj3)/3.0);
i++;
temp=i;
//if(p=(fopen(123.txt,"
w"
)==0)
//{printf("
exit(0);
}
//fread(
学生个数为%d"
temp);
\t是否继续输入(Y/N)"
cin>
>
x;
if(x=='
n'
||x=='
N'
)
voidmyproc()//修改
{inti;
charx='
charj[10];
for(i=0;
i<
temp;
i++)
{cout<
<
总的数据如下:
endl;
学号姓名性别班级成绩1成绩2成绩3\n"
------------------------------------------------------------------------\n"
%-10s"
%-11s"
%-8d"
stu[i].cj1);
stu[i].cj2);
stu[i].cj3);
cout<
请输入一个学号:
j;
for(i=0;
if((strcmp(j,stu[i].num)==0))//比较
这个学号的同学原来的数据:
\n\t数据修改:
stu[i].cj3;
\t是否继续修改Y/N)"
//
voidave1()
inti,j;
studentstud;
=temp-2;
for(j=0;
j<
=temp-2-i;
j++)
if(stu[j].ave>
stu[j+1].ave)
stud=stu[j+1];
stu[j+1]=stu[j];
stu[j]=stud;
/*printf("
*/
按平均分大小排序如下:
学号姓名性别班级成绩1成绩2成绩3成绩\n"
%-8f"
stu[i].ave);
voidnum1()
{inti,j,k;
k=i;
for(j=1+i;
if(strcmp(stu[k].num,stu[j].num)>
0)
k=j;
if(k!
=i)
stud=stu[i];
stu[i]=stu[k];
stu[k]=stud;
按学号大小排序如下:
voidmyorder()////排序
longx;
{printf("
\t|-----------------------------|\n"
printf("
\t|学生信息管理系统|\n"
\t|1.按学号排序|\n"
\t|2.按成绩排序|\n"
\t|3.退出|\n"
\n\t请选择编号:
\n\t"
cin>
switch(x)
{case1:
num1();
ave1();
case3:
}
if((x)==3)break;
//查找
voidmyseek()
{charx,min[10];
inti;
min);
while
(1)
if(strcmp(min,stu[i].num)==0)
此学生的数据如下:
\t是否继续查找(Y/N)"
voidmysum()
\t第%d学生的平均分"
i+1);
%f"
voidmyedit()//处理
intx;
{
\t||\n"
\t|1.数据排序|\n"
\t|2.数据查询|\n"
\t|3.数据统计|\n"
\t|4.退出|\n"
myorder();
myseek();
mysum();
if(x==4)break;
}
voidmyput()
\n\t总的数据输出:
voidmain()
\t|1.数据输入|\n"
\t|2.数据修改|\n"
\t|3.数据处理|\n"
\t|4.数据输出|\n"
\t|5.退出|\n"
if((x)==5)break;
五、运行结果
六、实验总结(调试分析和体会)
这个程序比较大,首先应想好整体的布局,例如
由此,我们可以得到主函数包含的内容;
然后先编辑好各个调用函数,有些在调用函数里喊要嵌入几个调用函数,这就需要我们耐心的编写,尤其是有些函数,在前面的作业里有一模一样的,可以直接用过来;
最后,再想主函数的调用,在我的程序里,用了switch函数,当输入对应的数字,就进入对应的程序里,运行。