C语言的六个实训小项目-源码例程

项目实训一
实训内容:
1、定义一个数组a[11],用以存放[url=javascript:;][u][b]学生[/b][/u][/url]的成绩。
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
# include
# include
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=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_inita[num_init])
        {
            num_tag=num_init;
            int total=10;
            while (num_init=1;num_sort_1--)
                {
                        if (a[num_sort_1]a[%d]/n",a[num_sort_1],a[num_sort_1-1]);
                        }
                }
        }
    for (num_init=0;num_init
# include
# include
# 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;j0;j--)
        {
                for (i=0;ia[i+1])
                                {
                                        t=a[i];
                                        a[i]=a[i+1];
                                        a[i+1]=t;
                                }
                        }
                        else
                        {
                                if(style=='d')
                                if (a[i]
# include
# include
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;i1;j--)
        {
                for(i=0;i
# include
# include
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;n0;i--)
        {
                for(j=0;j
# include
# include
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;i0;i--)
    {
        for(j=0;j
# include
# include
struct node
{
    int code;
    char name[20];
    char type;
    int age;
    int chinese;
    int english;
    int computer;
    int math;
    int total;
    int average;
}stud[100];
struct node temp;
void menu(void)
{
    system("clear");
    printf("/t/t        项目六实例/n");
    printf("/t/t**************************/n");
    printf("/t/t*               */n");
    printf("/t/t* [1] 输 入 数 据      */n");
    printf("/t/t* [2] 查 找 数 据      */n");
    printf("/t/t* [3] 插 入 数 据      */n");
    printf("/t/t* [4] 删 除 数 据      */n");
    printf("/t/t* [5] 打 印 数 据      */n");
    printf("/t/t* [6] 排 序 数 据     */n");
    printf("/t/t* [7] 退 出            */n");
    printf("/t/t*               */n");
    printf("/t/t*               */n");
    printf("/t/t**************************/n");
    printf("/t/t 请输入你的选项(1-7):");
}
void input()
{
    int i;
    for (i=0;ii;j--)
            {
            stud[j].code=stud[j-1].code;
            strcpy(stud[j].name,stud[j-1].name);
            stud[j].type=stud[j-1].type;
            stud[j].age=stud[j-1].age;
            stud[j].english=stud[j-1].english;
            stud[j].chinese=stud[j-1].chinese;
            stud[j].computer=stud[j-1].computer;
            stud[j].math=stud[j-1].math;
            stud[j].total=stud[j-1].total;
            stud[j].average=stud[j-1].average;
            }
           
            stud[j].code=temp.code;
            strcpy(stud[j].name,temp.name);
            stud[j].type=temp.type;
            stud[j].age=temp.age;
            stud[j].english=temp.english;
            stud[j].chinese=temp.chinese;
            stud[j].computer=temp.computer;
            stud[j].math=temp.math;
            stud[j].total=temp.total;
            stud[j].average=temp.average;
            break;
        }
    }
    if(i>=c)
    {
        stud[i].code=temp.code;
        strcpy(stud[i].name,temp.name);
        stud[i].type=temp.type;
        stud[i].age=temp.age;
        stud[i].english=temp.english;
        stud[i].computer=temp.computer;
        stud[i].math=temp.math;
        stud[i].chinese=temp.chinese;
        stud[i].total=temp.total;
        stud[i].average=temp.average;
    }
}
void delete(int c)
{
    int i,j,l,n,k;
    char name[20];
    printf("按学号删除(按1):/n");
    printf("按姓名删除(按2):/n");
    scanf("%d",&k);
    if(k==1)
    {
        printf("请输入学号:/n");
        scanf("%d",&n);       
        for(i=0;i0;i--)
        {
            for(j=0;jstud[j+1].code)
                {
                    temp.code=stud[j].code;
                    strcpy(temp.name,stud[j].name);
                    temp.type=stud[j].type;
                    temp.age=stud[j].age;
                    temp.english=stud[j].english;
                    temp.chinese=stud[j].chinese;
                    temp.math=stud[j].math;
                    temp.computer=stud[j].computer;
                    temp.total=stud[j].total;
                    temp.average=stud[j].average;
                    stud[j].code=stud[j+1].code;
                    strcpy(stud[j].name,stud[j+1].name);
                    stud[j].type=stud[j+1].type;
                    stud[j].age=stud[j+1].age;
                    stud[j].english=stud[j+1].english;
                    stud[j].chinese=stud[j+1].chinese;
                    stud[j].math=stud[j+1].math;
                    stud[j].computer=stud[j+1].computer;
                    stud[j].total=stud[j+1].total;
                    stud[j].average=stud[j+1].average;
               
                    stud[j+1].code=temp.code;
                    strcpy(stud[j+1].name,temp.name);
                    stud[j+1].type=temp.type;
                    stud[j+1].age=temp.age;
                    stud[j+1].english=temp.english;
                    stud[j+1].chinese=temp.chinese;
                    stud[j+1].computer=temp.computer;
                    stud[j+1].math=temp.math;
                    stud[j+1].total=temp.total;
                    stud[j+1].average=temp.average;                   
                }
            }
        }
    }
    else
    if(n==2)
    {
        c=c-1;       
        for(i=c;i>0;i--)
        {
            for(j=0;j0)
                {
                    temp.code=stud[j].code;
                    strcpy(temp.name,stud[j].name);
                    temp.type=stud[j].type;
                    temp.age=stud[j].age;
                    temp.english=stud[j].english;
                    temp.chinese=stud[j].chinese;
                    temp.math=stud[j].math;
                    temp.computer=stud[j].computer;
                    temp.total=stud[j].total;
                    temp.average=stud[j].average;
                   
                    stud[j].code=stud[j+1].code;
                    strcpy(stud[j].name,stud[j+1].name);
                    stud[j].type=stud[j+1].type;
                    stud[j].age=stud[j+1].age;
                    stud[j].english=stud[j+1].english;
                    stud[j].chinese=stud[j+1].chinese;
                    stud[j].math=stud[j+1].math;
                    stud[j].computer=stud[j+1].computer;
                    stud[j].total=stud[j+1].total;
                    stud[j].average=stud[j+1].average;
               
                    stud[j+1].code=temp.code;
                    strcpy(stud[j+1].name,temp.name);
                    stud[j+1].type=temp.type;
                    stud[j+1].age=temp.age;
                    stud[j+1].english=temp.english;
                    stud[j+1].chinese=temp.chinese;
                    stud[j+1].computer=temp.computer;
                    stud[j+1].math=temp.math;
                    stud[j+1].total=temp.total;
                    stud[j+1].average=temp.average;               
                }
            }
        }
    }
    else
    {
        getchar();
        getchar();
    }
}
void error()
{
    printf("输入错误,请输入(1-7):/n");
    printf("按回车键继续..../n");
    getchar();
    getchar();
    getchar();
}
int main (void)
{
    int n,c=0;
    while(1)
    {
        menu();
        scanf("%d",&n);
        switch(n)
        {
            case 1:input();c=c+3;break;
            case 2:find(c);break;
            case 3:insert(c);++c;break;
            case 4:delete(c);--c;break;
            case 5:print(c);break;
            case 6:sort(c);break;
            case 7:exit(0);break;
            default:error();break;
        }
    }
}
 

你可能感兴趣的:(C语言的六个实训小项目-源码例程)