资源描述
项目实训一
实训内容:
1、定义一个数组a[11],用以存放学生的成绩。
2、从键盘输入10个学生成绩
3、采用冒泡法,将学生成绩按照从高到低进行排序
4、再输入一个学生的成绩,将此成绩按照排序规律插入原学生成绩数组
5、将排好序的成绩单进行反序存放,即原来是从高到低,现在改为从低到高排列。
项目实训二
实训内容:
1、在函数中进行10个学生成绩从高到低排名 sort(int a[10])
2、改进第一步的函数为sort(int a[],int n),进行n个学生成绩从高到低排名,
3、改进第二步的函数为sort(int a[],int n, char style), 将n个学生成绩从高到低排名,排名方式4、根据sort()函数的style参数进行,如style为‘a’按升序排,style为’d’按降序排。
(a:ascending 升,d:descending 降)
项目实训三
实训内容:
1、定义一个数组stu[10]存放10个学生的成绩,从键盘输入数据,要求用指针实现
2、将数组stu[10]的内容输出到屏幕上,要求用指针实现
3、将成绩数组按照从高到低进行排序,要求用指针实现
4、将第三步内容放在函数中实现,在主函数中调用实现排序,用指针实现,输出排序后的成绩单
5、采用指针方法,输入字符串“student score ”,复制该字符串并输出(复制字符串采用库函数或用户自定义函数)
项目实训四
实训内容:
1、定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩
2、从键盘输入10个学生的以上内容
3、输出单门课成绩最高的学生的学号、姓名、以及该门课程的成绩
4、输出三门课程的平均分数最高的学生的学号、姓名及其平均分
5、将10个学生按照平均分数从高到低进行排序,输出结果,格式如下所示:
number name math Chinese English average
103 tom 90 90 100 95
101 alice 90 80 70 80
项目实训五
实训内容:
1、定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩
2、从键盘输入10个学生的以上内容,存入文件stud.dat,关闭文件
3、打开stud.dat文件,将数据读出,查看是否正确写入,关闭文件。
4、打开文件stud.dat文件,读出数据,将10个学生按照平均分数从高到低进行排序,分别将结果输出到屏幕上和另一文件studsort.dat中。
5、从studsort.dat 文件中读取第2,4,6,8,10个学生的数据。
最终项目
学生成绩管理系统
完成下列功能:
1、输入:函数input把20学生的学号、姓名、性别、年龄、四科成绩以及平均成绩和总成绩放在一个结构体数组中,学生的学号、姓名、四科成绩由键盘输入,然后计算出平均成绩和总成绩放在结构体对应的域中。
2、插入:insert 函数输入一个学生的记录,按学号的先后顺序插入该学生的全部内容。
3、排序:sort函数对所有学生按要求排序(1.学号 2.总成绩 ),并输出。
4、查找:find函数输入一个学生的学号或姓名,找到该学生并输出该学生的全部内容。要求能查询多次。
5、删除:delete函数输入一个学生的学号或姓名,找到该学生并删除该学生的全部内容。
6、输出:函数output 输出全部学生的记录。
7、main调用所有函数,实现全部函数功能(注:除了定义结构外,不允许使用全局变量,函数之间的数据全部使用参数传递)。
/**************************************/
/* 项目实训一 */
/* 源代码如下: */
/**************************************/
# include <stdio.h>
# include <strlib.h>
# include <string.h>
main ()
{
int a[11];
int num_init;
int num_sort_1,num_sort_2;
int num_temp;
int num_std;
int num_tag;
for (num_init=0;num_init<=9;num_init++)
{
printf("%d)input:",num_init+1);
scanf("%d",&a[num_init]);
}
for (num_sort_2=1;num_sort_2<10;num_sort_2++)
{
for (num_sort_1=num_sort_2;num_sort_1>=1;num_sort_1--)
{
if (a[num_sort_1]>a[num_sort_1-1])
{
num_temp=a[num_sort_1];
a[num_sort_1]=a[num_sort_1-1];
a[num_sort_1-1]=num_temp;
printf("a[%d]<==>a[%d]\n",a[num_sort_1],a[num_sort_1-1]);
}
}
}
for (num_init=0;num_init<10;num_init++)
{
printf("%d,",a[num_init]);
}
printf("input student score:\n");
scanf("%d",&num_std);
for(num_init=0;num_init<=10;num_init++)
{
if (num_std>a[num_init])
{
num_tag=num_init;
int total=10;
while (num_init<total)
{
a[total]=a[total-1];
total--;
}
a[num_tag]=num_std;
break;
}
}
for (num_init=0;num_init<=10;num_init++)
{
printf("%d ",a[num_init]);
}
printf("\n");
for (num_sort_2=1;num_sort_2<=10;num_sort_2++)
{
for (num_sort_1=num_sort_2;num_sort_1>=1;num_sort_1--)
{
if (a[num_sort_1]<a[num_sort_1-1])
{
num_temp=a[num_sort_1];
a[num_sort_1]=a[num_sort_1-1];
a[num_sort_1-1]=num_temp;
printf("a[%d]<==>a[%d]\n",a[num_sort_1],a[num_sort_1-1]);
}
}
}
for (num_init=0;num_init<=10;num_init++)
{
printf("%d ",a[num_init]);
}
printf("\n");
}
/**************************************/
/* 项目实训二 */
/* 源代码如下: */
/**************************************/
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
# define MAXLEN 1000
void sort (int a[],int n,char style);
int main (int argc,char *argv[])
{
int a[MAXLEN];
char b[MAXLEN];
int i=0,j,n;
char s;
while(1)
{
printf("a[%d]=",i);
fgets(b,MAXLEN,stdin);
if (b[0]=='\n')
break;
a[i]=atoi(b);
i++;
}
printf("input sort style(a=asc,d=desc):");
scanf("%c",&s);
n=--i;
sort(a,n,s);
for (j=0;j<=i;j++)
printf("%d ",a[j]);
return 0;
}
void sort(int a[],int n,char style)
{
int i,j,t;
for (j=n;j>0;j--)
{
for (i=0;i<j;i++)
{
if (style=='a')
{
if (a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
else
{
if(style=='d')
if (a[i]<a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
}
}
}
/**************************************/
/* 项目实训三 */
/* 源代码如下: */
/**************************************/
# include <stdio.h>
# include <string.h>
# include <stdlib.h>
void sort(int str[]);
int main (void)
{
int str[10];
char i_msg[100];
char o_msg[100];
int i;
int *pi;
char *pm_i,*pm_o;
pi=str;
pm_i=i_msg;
pm_o=o_msg;
printf("fun 1)\n");
printf("input 10 student score:\n");
for(i=0;i<10;i++)
scanf("%d",&str[i]);
sort(str);
printf("sort result:\n");
for(i=0;i<10;i++)
printf("%d ",*(pi+i));
getchar();
printf("\nfun 2)\n");
printf("input message:\n");
for(i=0;i<100;i++)
{
scanf("%c",pm_i+i);
if(*(pm_i+i)=='\n')
break;
}
*(pm_i+i)='\0';
strcpy(pm_o,pm_i);
puts(pm_o);
return 0;
}
void sort(int *p)
{
int i,j,t;
for(j=9;j>1;j--)
{
for(i=0;i<j;i++)
{
if(*(p+i)<*(p+i+1))
{
t=*(p+i);
*(p+i)=*(p+i+1);
*(p+i+1)=t;
}
}
}
}
/**************************************/
/* 项目实训四 */
/* 源代码如下: */
/**************************************/
# include <stdio.h>
# include <string.h>
# include <stdlib.h>
int main (int argc,char *argv[])
{
struct stu
{
int num;
char name[20];
int math;
int chinese;
int english;
int average;
}s[10];
struct stu temp;
int n,l,i,j;
for (n=0;n<10;n++)
{
printf("input %d)student num:",n);
scanf("%d",&s[n].num);
getchar();
printf("input %d)student name:",n);
fgets(s[n].name,20,stdin);
l=strlen(s[n].name);
s[n].name[l-1]='\0';
printf("input %d)student math:",n);
scanf("%d",&s[n].math);
printf("input %d)student chinese:",n);
scanf("%d",&s[n].chinese);
printf("input %d)student english:",n);
scanf("%d",&s[n].english);
s[n].average=(s[n].math+s[n].chinese+s[n].english)/3;
}
for(i=9;i>0;i--)
{
for(j=0;j<i;j++)
{
if(s[j].average<s[j+1].average)
{
temp.num=s[j].num;
strcpy(temp.name,s[j].name);
temp.math=s[j].math;
temp.chinese=s[j].chinese;
temp.english=s[j].english;
temp.average=s[j].average;
s[j].num=s[j+1].num;
strcpy(s[j].name,s[j+1].name);
s[j].math=s[j+1].math;
s[j].chinese=s[j+1].chinese;
s[j].english=s[j+1].english;
s[j].average=s[j+1].average;
s[j+1].num=temp.num;
strcpy(s[j+1].name,temp.name);
s[j+1].math=temp.math;
s[j+1].chinese=temp.chinese;
s[j+1].english=temp.english;
s[j+1].average=temp.average;
}
}
}
printf("max student:\nnum:%d\tname:%s\taverage:%d\n\n",s[0].num,s[0].name,s[0].average);
printf("number\tname\tmath\tChinese\tEnglish\taverage\n");
for (n=0;n<10;n++)
{
printf("%d\t",s[n].num);
printf("%s\t",s[n].name);
printf("%d\t",s[n].math);
printf("%d\t",s[n].chinese);
printf("%d\t",s[n].english);
printf("%d\n",s[n].average);
}
return 0;
}
/**************************************/
/* 项目实训五 */
/* 源代码如下: */
/**************************************/
# include <stdio.h>
# include <string.h>
# include <stdlib.h>
int main (int argc,char *argv[])
{
struct str{
int code;
char name[20];
int math;
int English;
int Chinese;
int average;
}stu[10];
struct str t;
int i,j,l,f=0,ch,n=0,k=0;
char temp[6][30];
FILE *fp;
printf("Module 1 begin\n");
printf("*********************************\n");
printf("Input 10 student data\n");
for (i=0;i<10;i++)
{
printf("input %d) student code:",i);
scanf("%d",&stu[i].code);
getchar();
printf("input name:");
fgets(stu[i].name,20,stdin);
l=strlen(stu[i].name);
stu[i].name[l-1]='\0';
printf("input math score:");
scanf("%d",&stu[i].math);
printf("input English score:");
scanf("%d",&stu[i].English);
printf("input Chinese score:");
scanf("%d",&stu[i].Chinese);
}
if ((fp=fopen("/tmp/stud.dat","wt+"))==NULL)
{
printf("open file stud.dat failed!\n");
exit(1) ;
}
for (i=0;i<10;i++)
{
fprintf(fp,"%d",stu[i].code);
fputc(':',fp);
fprintf(fp,"%s",stu[i].name);
fputc(':',fp);
fprintf(fp,"%d",stu[i].math);
fputc(':',fp);
fprintf(fp,"%d",stu[i].English);
fputc(':',fp);
fprintf(fp,"%d",stu[i].Chinese);
fputc('\n',fp);
}
fclose(fp);
printf("\n");
printf("Module 2 begin:\n");
printf("***********************************\n");
printf("Display stud.dat file all data:\n");
if ((fp=fopen("/tmp/stud.dat","rt+"))==NULL)
{
printf("open file stud.dat failed!\n");
exit(1) ;
}
ch=fgetc(fp);
while(ch!=EOF)
{
putchar(ch);
ch=fgetc(fp);
}
fclose(fp);
printf("\n");
printf("Module 3 begin:\n");
printf("***********************************\n");
printf("Sort average score and output to studsort.dat\n");
if ((fp=fopen("/tmp/stud.dat","rt+"))==NULL)
{
printf("open file stud.dat failed!\n");
exit(1) ;
}
for(i=0;i<10;i++)
{
for(k=0;k<5;k++)
{
n=0;
temp[k][n]=fgetc(fp);
for(;temp[k][n]!=EOF;n++)
{
if(temp[k][n]==':' || temp[k][n]=='\n')
break;
temp[k][n+1]=fgetc(fp);
}
temp[k][n]='\0';
}
stu[i].code=atoi(temp[0]);
strcpy(stu[i].name,temp[1]);
stu[i].math=atoi(temp[2]);
stu[i].English=atoi(temp[3]);
stu[i].Chinese=atoi(temp[4]);
stu[i].average=(stu[i].math+stu[i].English+stu[i].Chinese)/3;
}
for(i=9;i>0;i--)
{
for(j=0;j<i;j++)
{
if(stu[j].average<stu[j+1].average)
{
t.code=stu[j].code;
strcpy(t.name,stu[j].name);
t.math=stu[j].math;
t.Chinese=stu[j].Chinese;
t.English=stu[j].English;
t.average=stu[j].average;
stu[j].code=stu[j+1].code;
strcpy(stu[j].name,stu[j+1].name);
stu[j].math=stu[j+1].math;
stu[j].Chinese=stu[j+1].Chinese;
stu[j].English=stu[j+1].English;
stu[j].average=stu[j+1].average;
stu[j+1].code=t.code;
strcpy(stu[j+1].name,t.name);
stu[j+1].math=t.math;
stu[j+1].Chinese=t.Chinese;
stu[j+1].English=t.English;
stu[j+1].average=t.average;
}
}
}
for(i=0;i<10;i++)
{
printf("%d %s %d %d %d %d\n",stu[i].code,stu[i].name,stu[i].math,stu[i].Chinese,stu[i].English,stu[i].average);
}
fclose(fp);
if ((fp=fopen("/tmp/studsort.dat","wt+"))==NULL)
{
printf("open file studsort.dat failed!\n");
exit(1) ;
}
for (i=0;i<10;i++)
{
fprintf(fp,"%d",stu[i].code);
fputc(':',fp);
fprintf(fp,"%s",stu[i].name);
fputc(':',fp);
fprintf(fp,"%d",stu[i].math);
fputc(':',fp);
fprintf(fp,"%d",stu[i].English);
fputc(':',fp);
fprintf(fp,"%d",stu[i].Chinese);
fputc(':',fp);
fprintf(fp,"%d",stu[i].average);
fputc('\n',fp);
}
fclose(fp);
printf("Module 4 begin:\n");
printf("***********************************\n")
展开阅读全文