C语言课程设计实习报告

C语言课程设计实习报告

班级:  

姓名:   

学号:

20##-6

题目一、

题目描述:要求输入两个相对较大的正整数,能够通过程序计算出其结果。  

设计思路:

C语言课程设计实习报告

C语言课程设计实习报告

由于LONG型数据的数据范围并不大,所以两个相对较大的数不能用LONG INT类型存储。本程序中设计用数组存储一个大数,数组的初始空间可以定义到如100或200个单元,每个单元存储一位数据,以此解决乘数及乘积的存储问题。

解决了存储问题后,本程序设计让乘数数组及被乘数数组中的每一位数字单独来进行乘法运算,即用一个数字和另外一个数组中的每一位去相乘,得到乘法运算中一行的数字,再将每一行数字错位相加,最后得到预计的乘积并输出。

运行效果截图:

 

附源程序如下:

#include

int main()

{

   int a[100]={0},b[100]={0},c[200]={0},i,j,m,n,x,r[200];

   printf("请分别输入乘数p、q的位数m、n:\n");

   scanf("%d%d",&m,&n);

   printf("\n");

   printf("请分别输入两乘数p、q:\n");

   printf("p=");

   for(i=m-1;i>=0;i--) 

          scanf("%d",&a[i]);

   printf("q=");

   for(j=n-1;j>=0;j--)

          scanf("%d",&b[j]);

   printf("\n");

   for(j=0;j<=n-1;j++)

   {

          for(x=j;x<=m+j;x++)

          {

                 if(x==j)

                 {

                        r[x]=(c[x]+(a[0]*b[j])%10)/10;

                        c[x]=(c[x]+(a[0]*b[j])%10)%10;

                 }

                 else

                 {

                        if(x==m+j) c[x]=r[x-1]+a[m-1]*b[j]/10;

                        else

                               {

                                      r[x]=(c[x]+r[x-1]+(a[x-j]*b[j])%10+a[x-j-1]*b[j]/10)/10;

                             c[x]=(c[x]+(a[x-j]*b[j])%10+r[x-1]+a[x-j-1]*b[j]/10)%10;

                               }

                        }

                       

                 }

          }

   }

   printf("乘积为:\n");

   if(c[m+n-1]==0)

          for(x=m+n-2;x>=0;x--) printf("%d",c[x]);

   else

          for(x=m+n-1;x>=0;x--) printf("%d",c[x]);

   printf("\n");

   return 0;

}

题目二、

题目描述:学生信息管理系统设计。

学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能:

系统以文本菜单方式工作;

学生信息录入功能(学生信息最好用文件保存)---输入;

学生信息浏览功能---输出;

查询、排序功能---算法;

按学号查询;

按姓名查询;

学生信息的删除与修改。

设计思路:

C语言课程设计实习报告

本程序中不同的功能模块均由数据的读入、数据的处理、数据的输出及返回封装而成,差别仅体现在数据的处理上,而不同功能模块的选择则采用了switch语句简单明了。

运行效果截图:

附源程序如下:

#include

#include

#include

typedef struct

       {

              int num; char name[20]; char sex; int age;

              char birth[20]; char mail[20]; char add[20]; char tel[20];

       }inf;

main()

{

        void input();

    void scan();

    void find();

    void sort();

        void dele();

        void over();

        void change();

    int c;

        while(1)

       {

              system("cls");

        printf("                         O(∩_∩)O\n");

           printf("***************欢迎来到地大学生信息管理系统***************\n");

           printf("\n");

           printf("                         功能选择\n");

           printf("\n");

          printf("***********************1.信息录入*************************\n");

       printf("***********************2.信息浏览*************************\n");

           printf("***********************3.信息查询*************************\n");

           printf("***********************4.信息排序*************************\n");

               printf("***********************5.信息删除*************************\n");

               printf("***********************6.信息修改*************************\n");

           scanf("%d",&c);

        switch(c)

              {

                 case 1:input(); break;

                 case 2:scan();  break;

                 case 3:find();  break;

                 case 4:sort();  break;

                 case 5:dele();  break;

                 case 6:change();  break;

              }

       }

}

void input()

{

       inf w[1000];

       FILE *fp1,*fp2;

       int i,n=0,j;

       fp1=fopen("data.txt","r");

    while(!feof(fp1))

       {

       fscanf(fp1,"%d %s %c %d %s %s %s %s",&w[n].num,w[n].name,&w[n].sex,&w[n].age,w[n].birth,w[n].mail,w[n].add,w[n].tel);

              n++;

       }

    fclose(fp1);

       fp2=fopen("information.txt","w");

       for(i=0;i

       fprintf(fp2,"%d   %s   %c   %d   %s   %s   %s   %s\n",w[i].num,w[i].name,w[i].sex,w[i].age,w[i].birth,w[i].mail,w[i].add,w[i].tel);

       fclose(fp2);

       printf("录入已完成!\n");

       printf("\n");

    printf("返回主界面请按2,结束请按1:\n");

       scanf("%d",&j);

       if(j==1) over();

}

void scan()

{

       inf w[1000]; FILE *fp;

       int i,n=0,j;

       fp=fopen("information.txt","r");

       while(!feof(fp))

       {

       fscanf(fp,"%d   %s   %c   %d   %s   %s   %s   %s",&w[n].num,w[n].name,&w[n].sex,&w[n].age,w[n].birth,w[n].mail,w[n].add,w[n].tel);

              n++;

       }

       fclose(fp);

       for(i=0;i

       printf("%d   %s   %c   %d   %s   %s   %s   %s\n",w[i].num,w[i].name,w[i].sex,w[i].age,w[i].birth,w[i].mail,w[i].add,w[i].tel);

       printf("\n");

       printf("返回主界面请按2,结束请按1:\n");

       scanf("%d",&j);

    if(j==1) over();

}

void find()

{

       inf w[1000]; FILE *fp;

       int i,n=0,j,q,r; char p[20];

       fp=fopen("information.txt","r");

       while(!feof(fp))

       {

       fscanf(fp,"%d   %s   %c   %d   %s   %s   %s   %s",&w[n].num,w[n].name,&w[n].sex,&w[n].age,w[n].birth,w[n].mail,w[n].add,w[n].tel);

              n++;

       }

       fclose(fp);

       printf("请输入查询方式:\n");

       printf("\n");

       printf("1.按照姓名查询        2.按照学号查询\n");

       scanf("%d",&q);

       if(q==1)

       {

              printf("请输入学生姓名:");

           scanf("%s",p);

              printf("\n");

           printf("查询结果:\n");

           printf("\n");

           for(i=0;i

                     if(strcmp(p,w[i].name)==0)

       printf("%d   %s   %c   %d   %s   %s   %s   %s\n",w[i].num,w[i].name,w[i].sex,w[i].age,w[i].birth,w[i].mail,w[i].add,w[i].tel);

       }

       else

       {

              printf("请输入学生学号:");

           scanf("%d",&r);

              printf("\n");

        printf("查询结果:\n");

           printf("\n");

              for(i=0;i

                     if(r==w[i].num)

       printf("%d   %s   %c   %d   %s   %s   %s   %s\n",w[i].num,w[i].name,w[i].sex,w[i].age,w[i].birth,w[i].mail,w[i].add,w[i].tel);

       }

       printf("\n");

     printf("返回主界面请按2,结束请按1:\n");

       scanf("%d",&j);

    if(j==1) over();

}

void sort()

{

       inf w[1000]; FILE *fp;

       int i,n=0,j; inf t;

       fp=fopen("information.txt","r");

       while(!feof(fp))

       {

       fscanf(fp,"%d   %s   %c   %d   %s   %s   %s   %s",&w[n].num,w[n].name,&w[n].sex,&w[n].age,w[n].birth,w[n].mail,w[n].add,w[n].tel);

              n++;

       }

       fclose(fp);

       for(i=0;i

              for(j=i+1;j

                     if(w[i].num

                     {

                            t=w[i]; w[i]=w[j]; w[j]=t;

            }

       printf("排序结果:\n");

    printf("\n");

    for(i=0;i

printf("%d   %s   %c   %d   %s   %s   %s   %s\n",w[i].num,w[i].name,w[i].sex,w[i].age,w[i].birth,w[i].mail,w[i].add,w[i].tel);

       printf("\n");

    printf("返回主界面请按2,结束请按1:\n");

       scanf("%d",&j);

    if(j==1) over();

}

void dele()

{

       inf w[1000]; FILE *fp1,*fp2  ;

       int i,n=0,j; char p[20];

       fp1=fopen("data.txt","r");

    while(!feof(fp1))

       {

       fscanf(fp1,"%d %s %c %d %s %s %s %s",&w[n].num,w[n].name,&w[n].sex,&w[n].age,w[n].birth,w[n].mail,w[n].add,w[n].tel);

              n++;

       }

       fclose(fp1);

       printf("请输入删除人姓名:");

       scanf("%s",p);

       for(i=0;i

              if(strcmp(p,w[i].name)==0)

              for(i;i

              w[i]=w[i+1];

       fp2=fopen("deleted.txt","w");

       for(i=0;i

       fprintf(fp2,"%d   %s   %c   %d   %s   %s   %s   %s\n",w[i].num,w[i].name,w[i].sex,w[i].age,w[i].birth,w[i].mail,w[i].add,w[i].tel);

       fclose(fp2);

       printf("\n");

       printf("删除已完成!修改文件以deleted.txt命名请注意查看。\n");

       printf("\n");

       printf("返回主界面请按2,结束请按1:\n");

       scanf("%d",&j);

    if(j==1) over();

}

void change()

{

       inf w[1000]; FILE *fp1,*fp2  ;

       int i,n=0,r,q,c,t,j,y; char p[20],s[20],x;

       fp1=fopen("data.txt","r");

    while(!feof(fp1))

       {

       fscanf(fp1,"%d %s %c %d %s %s %s %s",&w[n].num,w[n].name,&w[n].sex,&w[n].age,w[n].birth,w[n].mail,w[n].add,w[n].tel);

              n++;

       }

       fclose(fp1);

       printf("请先输入查找信息:\n");

       printf("\n");

       printf("1.按姓名        2.按学号\n");

       scanf("%d",&q);

       if(q==1)

       {

              printf("请输入学生姓名:");

           scanf("%s",p);

              printf("\n");

           for(i=0;i

                     if(strcmp(p,w[i].name)==0)

                     {

                            y=i;

       printf("%d   %s   %c   %d   %s   %s   %s   %s\n",w[i].num,w[i].name,w[i].sex,w[i].age,w[i].birth,w[i].mail,w[i].add,w[i].tel);

                     }

           printf("\n");

           printf("请输入修改信息的类:\n");

        printf("\n");

       printf("1.  学号         2.姓名        3.性别          4.年龄\n");

printf("5.出生日期       6.邮箱        7.住址          8.电话\n");

           scanf("%d",&c);

           if(c==1)

              {

                     printf("将%d改为\n",w[y].num);

               scanf("%d",&t);

            w[y].num=t;

              }

              if(c==2)

              {

                     printf("将%s改为\n",w[y].name);

               scanf("%s",s);

            strcpy(w[y].name,s);

              }

              if(c==3)

              {

                     printf("将%c改为\n",w[y].sex);

               scanf("%c",&x);

            w[y].sex=x;

              }

              if(c==4)

              {

                     printf("将%d改为\n",w[y].age);

               scanf("%d",&t);

            w[y].age=t;

              }

              if(c==5)

              {

                     printf("将%s改为\n",w[y].birth);

               scanf("%s",s);

            strcpy(w[y].birth,s);

              }

           if(c==6)

              {

                     printf("将%s改为\n",w[y].mail);

               scanf("%s",s);

            strcpy(w[y].mail,s);

              }

              if(c==7)

              {

                     printf("将%s改为\n",w[y].add);

               scanf("%s",s);

            strcpy(w[y].add,s);

              }

              if(c==8)

              {

                     printf("将%s改为\n",w[y].tel);

               scanf("%s",s);

            strcpy(w[y].tel,s);

              }

       }

       else

       {

              printf("请输入学生学号:");

           scanf("%d",&r);

              printf("\n");

              for(i=0;i

                     if(r==w[i].num)

       printf("%d   %s   %c   %d   %s   %s   %s   %s\n",w[i].num,w[i].name,w[i].sex,w[i].age,w[i].birth,w[i].mail,w[i].add,w[i].tel);

printf("\n");

printf("请输入修改信息的类:\n");

printf("\n");

printf("1.  学号         2.姓名        3.性别          4.年龄\n");

printf("5.出生日期       6.邮箱        7.住址          8.电话\n");

scanf("%d",&c);

           if(c==1)

              {

                     printf("将%d改为\n",w[r-1].num);

               scanf("%d",&t);

            w[r-1].num=t;

              }

              if(c==2)

              {

                     printf("将%s改为\n",w[r-1].name);

               scanf("%s",s);

            strcpy(w[r-1].name,s);

              }

              if(c==3)

              {

                     printf("将%c改为\n",w[r-1].sex);

               scanf("%c",&x);

            w[r-1].sex=x;

              }

              if(c==4)

              {

                     printf("将%d改为\n",w[r-1].age);

               scanf("%d",&t);

            w[r-1].age=t;

              }

              if(c==5)

              {

                     printf("将%s改为\n",w[r-1].birth);

               scanf("%s",s);

            strcpy(w[r-1].birth,s);

              }

           if(c==6)

              {

                     printf("将%s改为\n",w[r-1].mail);

               scanf("%s",s);

            strcpy(w[r-1].mail,s);

              }

              if(c==7)

              {

                     printf("将%s改为\n",w[r-1].add);

               scanf("%s",s);

            strcpy(w[r-1].add,s);

              }

              if(c==8)

              {

                     printf("将%s改为\n",w[r-1].tel);

               scanf("%s",s);

            strcpy(w[r-1].tel,s);

              }

       }

       fp2=fopen("changed.txt","w");

       for(i=0;i

              fprintf(fp2,"%d   %s   %c   %d   %s   %s   %s   %s\n",w[i].num,w[i].name,w[i].sex,w[i].age,w[i].birth,w[i].mail,w[i].add,w[i].tel);

       fclose(fp2);

       printf("修改已完成,保存在名为changed.txt的文档中,请注意查看!");

       printf("\n");

    printf("返回主界面请按2,结束请按1:\n");

       scanf("%d",&j);

       if(j==1) over();

}

void over()

{

       system("cls");

       printf("\n");

       printf("\n");

       printf("\n");

       printf("\n");

       printf("\n");

       printf("\n");

       printf("\n");

       printf("\n");

       printf("\n");

       printf("\n");

       printf("                            Thanks,good bye!!!\n");

       printf("\n");

       printf("                                 O(∩_∩)O\n");

       while(1) {};

}

题目三、

题目描述:

职工信息管理系统设计。

职工信息包括职:工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。试设计一职工信息管理系统,使之能提供以下功能:

系统以菜单方式工作;
职工信息录入功能(职工信息用文件保存)--输入;
职工信息浏览功能 --输出。

设计思路:

C语言课程设计实习报告

本程序与二题类似,不同的功能模块均由数据的读入、数据的处理、数据的输出及返回封装而成,差别仅体现在数据的处理上,而不同功能模块的选择则采用了switch语句。

运行效果截图:

附源程序如下

#include

#include

#include

typedef struct

       {

              int num; char name[20]; char sex; int age;

              char eb[20]; int salary; char add[20]; char tel[20];

       }inf;

main()

{

       void input();

    void scan();

    void find();

    void sort();

       void dele();

       void over();

       void change();

    int c;

       while(1)

       {

              system("cls");

        printf("                         O(∩_∩)O\n");

          printf("***************欢迎来到地大职工信息管理系统***************\n");

           printf("\n");

           printf("                         功能选择\n");

           printf("\n");

         printf("***********************1.信息录入*************************\n");

       printf("***********************2.信息浏览*************************\n");

           printf("***********************3.信息查询*************************\n");

           printf("***********************4.信息排序*************************\n");

              printf("***********************5.信息删除*************************\n");

              printf("***********************6.信息修改*************************\n");

           scanf("%d",&c);

        switch(c)

              {

                 case 1:input(); break;

                 case 2:scan();  break;

                 case 3:find();  break;

                 case 4:sort();  break;

                 case 5:dele();  break;

                 case 6:change();  break;

              }

       }

}

void input()

{

       inf w[1000];

       FILE *fp1,*fp2;

       int i,n=0,j;

       fp1=fopen("data.txt","r");

    while(!feof(fp1))

       {

       fscanf(fp1,"%d %s %c %d %s %d %s %s",&w[n].num,w[n].name,&w[n].sex,&w[n].age,w[n].eb,&w[n].salary,w[n].add,w[n].tel);

              n++;

       }

    fclose(fp1);

       fp2=fopen("information.txt","w");

       for(i=0;i

       fprintf(fp2,"%d   %s   %c   %d   %s   %d   %s   %s\n",w[i].num,w[i].name,w[i].sex,w[i].age,w[i].eb,w[i].salary,w[i].add,w[i].tel);

       fclose(fp2);

       printf("录入已完成!\n");

       printf("\n");

    printf("返回主界面请按2,结束请按1:\n");

       scanf("%d",&j);

       if(j==1) over();

}

void scan()

{

       inf w[1000]; FILE *fp;

       int i,n=0,j;

       fp=fopen("information.txt","r");

       while(!feof(fp))

       {

       fscanf(fp,"%d   %s   %c   %d   %s   %d   %s   %s",&w[n].num,w[n].name,&w[n].sex,&w[n].age,w[n].eb,&w[n].salary,w[n].add,w[n].tel);

              n++;

       }

       fclose(fp);

       for(i=0;i

       printf("%d   %s   %c   %d   %s   %d   %s   %s\n",w[i].num,w[i].name,w[i].sex,w[i].age,w[i].eb,w[i].salary,w[i].add,w[i].tel);

       printf("\n");

       printf("返回主界面请按2,结束请按1:\n");

       scanf("%d",&j);

       if(j==1) over();

}

void find()

{

       inf w[1000]; FILE *fp;

       int i,n=0,f,j,q,r; char p[20];

       fp=fopen("information.txt","r");

       while(!feof(fp))

       {

       fscanf(fp,"%d   %s   %c   %d   %s   %d   %s   %s",&w[n].num,w[n].name,&w[n].sex,&w[n].age,w[n].eb,&w[n].salary,w[n].add,w[n].tel);

              n++;

       }

       fclose(fp);

printf("请输入查询方式:\n");

       printf("1.按照姓名查询        2.按照工号查询\n");

       scanf("%d",&q);

       if(q==1)

       {

              printf("请输入请姓名:");

           scanf("%s",p);

           printf("查询结果:\n");

           printf("\n");

           for(i=0;i

                     if(strcmp(p,w[i].name)==0)

       printf("%d   %s   %c   %d   %s   %s   %s   %s\n",w[i].num,w[i].name,w[i].sex,w[i].age,w[i].eb,&w[i].salary,w[i].add,w[i].tel);

       }

       else

       {

              printf("请输入职工工号:");

           scanf("%d",&r);

        printf("查询结果:\n");

           printf("\n");

              for(i=0;i

                     if(r==w[i].num)

       printf("%d   %s   %c   %d   %s   %s   %s   %s\n",w[i].num,w[i].name,w[i].sex,w[i].age,w[i].eb,&w[i].salary,w[i].add,w[i].tel);

       }

       printf("\n");

     printf("返回主界面请按2,结束请按1:\n");

       scanf("%d",&j);

    if(j==1) over();

}

void sort()

{

       inf w[1000]; FILE *fp;

       int i,n=0,j; inf t;

       fp=fopen("information.txt","r");

       while(!feof(fp))

       {

       fscanf(fp,"%d   %s   %c   %d   %s   %d   %s   %s",&w[n].num,w[n].name,&w[n].sex,&w[n].age,w[n].eb,&w[n].salary,w[n].add,w[n].tel);

              n++;

       }

       fclose(fp);

       for(i=0;i

              for(j=i+1;j

                     if(w[i].num

                     {

                            t=w[i]; w[i]=w[j]; w[j]=t;

            }

       printf("排序结果:\n");

    printf("\n");

    for(i=0;i

printf("%d   %s   %c   %d   %s   %d   %s   %s\n",w[i].num,w[i].name,w[i].sex,w[i].age,w[i].eb,w[i].salary,w[i].add,w[i].tel);

       printf("\n");

    printf("返回主界面请按2,结束请按1:\n");

       scanf("%d",&j);

       if(j==1) over();

}

void dele()

{

       inf w[1000]; FILE *fp1,*fp2  ;

       int i,n=0,j; char p[20];

       fp1=fopen("data.txt","r");

    while(!feof(fp1))

       {

       fscanf(fp1,"%d %s %c %d %s %d %s %s",&w[n].num,w[n].name,&w[n].sex,&w[n].age,w[n].eb,&w[n].salary,w[n].add,w[n].tel);

              n++;

       }

       fclose(fp1);

       printf("请输入删除人姓名:");

       scanf("%s",p);

       for(i=0;i

              if(strcmp(p,w[i].name)==0)

              for(;i

              w[i]=w[i+1];

       fp2=fopen("deleted.txt","w");

       for(i=0;i

       fprintf(fp2,"%d   %s   %c   %d   %s   %d   %s   %s\n",w[i].num,w[i].name,w[i].sex,w[i].age,w[i].eb,w[i].salary,w[i].add,w[i].tel);

       fclose(fp2);

       printf("\n");

       printf("删除已完成!修改文件以deleted.txt命名。\n");

       printf("\n");

       printf("返回主界面请按2,结束请按1:\n");

       scanf("%d",&j);

       if(j==1) over();

}

void change()

{

       inf w[1000]; FILE *fp1,*fp2  ;

       int i,n=0,r,q,c,t,j,y,a; char p[20],s[20],x;

       fp1=fopen("data.txt","r");

    while(!feof(fp1))

       {

       fscanf(fp1,"%d %s %c %d %s %d %s %s",&w[n].num,w[n].name,&w[n].sex,&w[n].age,w[n].eb,&w[n].salary,w[n].add,w[n].tel);

              n++;

       }

       fclose(fp1);

       printf("请先输入查找信息:\n");

       printf("\n");

       printf("1.按姓名        2.按工号\n");

       scanf("%d",&q);

       if(q==1)

       {

              printf("请输入职工姓名:");

           scanf("%s",p);

              printf("\n");

           for(i=0;i

                     if(strcmp(p,w[i].name)==0)

                     {

                            y=i;

       printf("%d   %s   %c   %d   %s   %d   %s   %s\n",w[i].num,w[i].name,w[i].sex,w[i].age,w[i].eb,w[i].salary,w[i].add,w[i].tel);

                     }

           printf("\n");

           printf("请输入修改信息的类:\n");

        printf("\n");

           printf("1.工号        2.姓名         3.性别          4.年龄\n");    

        printf("5.学历       6.工资         7.住址          8.电话\n");

           scanf("%d",&c);

           if(c==1)

              {

                     printf("将%d改为\n",w[y].num);

               scanf("%d",&t);

            w[y].num=t;

              }

              if(c==2)

              {

                     printf("将%s改为\n",w[y].name);

               scanf("%s",s);

            strcpy(w[y].name,s);

              }

              if(c==3)

              {

                     printf("将%c改为\n",w[y].sex);

               scanf("%c",&x);

            w[y].sex=x;

              }

              if(c==4)

              {

                     printf("将%d改为\n",w[y].age);

               scanf("%d",&t);

            w[y].age=t;

              }

              if(c==5)

              {

                     printf("将%s改为\n",w[y].eb);

               scanf("%s",s);

            strcpy(w[y].eb,s);

              }

           if(c==6)

              {

                     printf("将%d改为\n",w[y].salary);

               scanf("%d",&a);

            w[i].salary=a;

              }

              if(c==7)

              {

                     printf("将%s改为\n",w[y].add);

               scanf("%s",s);

            strcpy(w[y].add,s);

              }

              if(c==8)

              {

                     printf("将%s改为\n",w[y].tel);

               scanf("%s",s);

            strcpy(w[y].tel,s);

              }

       }

       else

       {

              printf("请输入工号:");

           scanf("%d",&r);

              printf("\n");

              for(i=0;i

                     if(r==w[i].num)

       printf("%d   %s   %c   %d   %s   %d   %s   %s\n",w[i].num,w[i].name,w[i].sex,w[i].age,w[i].eb,w[i].salary,w[i].add,w[i].tel);

              printf("\n");

              printf("请输入修改信息的类:\n");

        printf("\n");

           printf("1.工号       2.姓名        3.性别           4.年龄\n");    

        printf("5.学历      6.工资         7.住址          8.电话\n");

           scanf("%d",&c);

           if(c==1)

              {

                     printf("将%d改为\n",w[r-1].num);

               scanf("%d",&t);

            w[r-1].num=t;

              }

              if(c==2)

              {

                     printf("将%s改为\n",w[r-1].name);

               scanf("%s",s);

            strcpy(w[r-1].name,s);

              }

              if(c==3)

              {

                     printf("将%c改为\n",w[r-1].sex);

               scanf("%c",&x);

            w[r-1].sex=x;

              }

              if(c==4)

              {

                     printf("将%d改为\n",w[r-1].age);

               scanf("%d",&t);

            w[r-1].age=t;

              }

              if(c==5)

              {

                     printf("将%s改为\n",w[r-1].eb);

               scanf("%s",s);

            strcpy(w[r-1].eb,s);

              }

           if(c==6)

              {

                     printf("将%s改为\n",w[r-1].salary);

               scanf("%d",a);

            w[r-1].salary=a;

              }

              if(c==7)

              {

                     printf("将%s改为\n",w[r-1].add);

               scanf("%s",s);

            strcpy(w[r-1].add,s);

              }

              if(c==8)

              {

                     printf("将%s改为\n",w[r-1].tel);

               scanf("%s",s);

            strcpy(w[r-1].tel,s);

              }

       }

       fp2=fopen("changed.txt","w");

       for(i=0;i

       fprintf(fp2,"%d   %s   %c   %d   %s   %d   %s   %s\n",w[i].num,w[i].name,w[i].sex,w[i].age,w[i].eb,w[i].salary,w[i].add,w[i].tel);

       fclose(fp2);

       printf("修改已完成,保存在名为changed.txt的文档中,请注意查看!");

       printf("\n");

    printf("返回主界面请按2,结束请按1:\n");

       scanf("%d",&j);

       if(j==1) over();

}

void over()

{

       system("cls");

       printf("\n");

       printf("\n");

       printf("\n");

       printf("\n");

       printf("\n");

       printf("\n");

       printf("\n");

       printf("\n");

       printf("\n");

       printf("\n");

       printf("                            Thanks,good bye!!!\n");

       printf("\n");

       printf("                                 O(∩_∩)O\n");

       while(1) {};

}

题目四、

题目描述:编写程序,用二分法求方程2x3-4x2+3x-6=0在(-10,10)之间的根。

设计思路:

C语言课程设计实习报告

用二分法求方程的根思路简单,本程序中拟用do-while语句实现。通过不停地求解求根区间的中间值的方程带入值及其符号与区间左值的同异性来用区间中间值代替区间左边界或右边界,直至区

间中间值达到一定标准后便将它近似看做方程的解。

判断若f[(a+b)/2]=0,则即是根,计算过程结束。

否则,检测:

A.若f[(a+b)/2]与f(a)异号,则根位于区间[a,(a+b)/2]内,这时以(a+b)/2代替b;

B.若f[(a+b)/2]与f(a)同号,则根位于区间[(a+b)/2,b]内,这时以(a+b)/2代替a;

反复执行步骤2和3,直到区间[a,b]长度缩小到允许的误差范围之内,此时中点(a+b)/2即为所求的根。

运行效果截图:

附源程序如下:

#include

#include

 int main()

 {

        float f(float x);

        float x1,x,a=-10,b=10;

        do

        {

               x1=f(a),x=f((a+b)/2);

               if(x==0) break;

               else

               {

                      if(x*x1<0) b=(a+b)/2;

                      else       a=(a+b)/2;

               }

        } while(fabs(a-b)>=1e-6);

          printf("根为:%f\n",(a+b)/2);

          return 0;

 }

 float f(float x)

 {

        float z;

        z=2*pow(x,3)-4*pow(x,2)+3*x-6;

        return(z);

 }

题目五、

题目描述:购房排队程序。

假定文本文件a1.txt中的内容是我校南望山庄二期购房报名名单,其中职称0为博导、教授,1为正教授,2为副教授,3为讲师,4为助教。请编程完成排名顺序。排队原则为首先按照职称排序,职称高者排前面,如职称一样的情况下按工龄排,工龄一样的情况下按年龄排,以此类推。将排序后的名单存入另外一个文本文件中,假设为a2.txt。另假定此次房源只有200套,请将前200名存入a3.txt文件中。

 设计思路:

C语言课程设计实习报告

本程序中通过指针的运用成功调用了目标文件,并通过while循环和fscanf函数达到了文件中信息可修改的目的。因为三个与信息排序有关的因素所占比重不同(优先次序不同),所以采用了使用与这些元素的紧要性相关联的“权重”这一思路,使得排序函数具有可操作的单一的简单对象。

排序部分则是采用“起泡法”这一简单思路。

运行效果截图:

附源程序如下

#include

typedef struct

{

       char name[20];

       int num,wage,age,score;

}for_house;

main()

{

       void sort(for_house *a, int n);

       int i,n=0;

       for_house a[1000];

       FILE *fp1,*fp2,*fp3;

       fp1=fopen("a1.txt","r");

       while(!feof(fp1))

       {

              fscanf(fp1,"%s%d%d%d",a[n].name,&a[n].num,&a[n].wage,&a[n].age);

              a[n].score=(5-a[n].num)*5000+a[n].wage*100+a[n].age;

              n++;

       }

       fclose(fp1);

       sort(a,n);

       fp2=fopen("a2.txt","w");

       for(i=0;i

              fprintf(fp2,"%d.%10s\n",i+1,a[i].name);

    fclose(fp2);

       fp3=fopen("a3.txt","w");

       for(i=0;i<200;i++)

              fprintf(fp3,"%d.%10s\n",i+1,a[i].name);

    fclose(fp3);

}

void sort(for_house *a, int n)

{

       int i,j;

       for_house t;

       for(i=0;i

              for(j=i+1;j

                     if(a[i].score

                     {

                            t=a[i]; a[i]=a[j]; a[j]=t;

            }

}

相关推荐