第二次作业(代码片段)

DevilDante DevilDante     2022-11-01     737

关键词:

作业要求一:
作业截图:
C高级第二次作业(1)
6-7:

6-8:

6-9:

7-1:

C高级第二次作业(2):
7-1:

7-2:

C高级第二次作业(3):
6-1:

6-2:

作业要求二:
6-7 删除字符串中数字字符
1.实验代码:

#include <stdio.h>
void delnum(char *s);
int main ()
 char item[80];
gets(item);
 delnum(item);
 printf("%s\\n",item);
 return 0;

void delnum(char *s)

  int i=0,j=0;
  while(s[i]!=\'\\0\')
    if(s[i]>\'9\'||s[i]<\'0\')
    
      s[j]=s[i];
      j++;
    
    i++;
  
  s[j]=\'\\0\';

2.设计思路:
第一步:本题要删除字符串中数字,通过数组遍历字符串,遇到数字删除,将之后的字符向前移动。
第二步:定义变量ij,运用if判断字符串是否为数字,循环遍历字符串和ASCII码值达到目的。
3.遇到问题:在运用while循环时出现编译错误,通过devc++提示改正
4.流程图:

6-8统计子串在母串出现的次数
1.实验代码:

#include<stdio.h>
int fun(char *str,char *substr);
int main()
 char str[81]="asdasasdfgasdaszx67asdmklo",substr[4]="asd";
 int n;
 n=fun(str,substr);
 printf("n=%d\\n",n);
 return 0;

int fun(char *str,char *substr)

    int i=0,num=0;
  
    do
	
        if(*(str+i)==\'a\'&&*(str+i+1)==\'s\'&&*(str+i+2)==\'d\')
		
            num++;
        
        i++;
	while(*(str+i)!=\'\\0\');
    return num;
 

2.设计思路:
第一步:运用if语句和循环来遍历字符串和判断字符串是否为子串;
第二步:遇到子串循环变量加一,循环至末尾输出。
3.遇到问题:
提交过程中遇到了很多次编译错误,通过devc++提示改正。
几次答案错误是因为把I++放错了位置,仔细检查改正过来。

6-9字符串中除首尾字符外的其余字符按降序排列
1.实验代码:

#include <stdio.h>
int fun(char *s,int num);
int main()

 char s[10];
 gets(s);
 fun(s,7);
 printf("%s",s);
 return 0;
 
int fun(char *s,int num)

    int i,j;
    char temp;
    for(i=0;i<num;i++)
    
       for(j=1;j<num-2;j++)
       
        if(s[j]<s[j+1])
       
	   temp=s[j]; 
	   s[j]=s[j+1]; 
	   s[j+1]=temp;
	   



2.设计思路:
第一步:定义循环变量,运用循环遍历数组。
第二步:运用冒泡法进行排序。
3.遇到问题:没有遇到问题。

7-1输出学生成绩
1.实验代码:

#include<stdio.h> 
int main()

int n,i;
float max,min=100,sum=0,x,average;
scanf("%d",&n);
for(i=1;i<=n;i++)

	scanf("%f ",&x);
	if(x>max)
	
		max=x;
	
	if(x<min)
	
		min=x;
	
	sum=sum+x;
	average=sum/n;

printf("average = %.2f\\n",average);
printf("max = %.2f\\n",max);
printf("min = %.2f",min);
return 0;

2.设计思路:这道题运用了常规的思路,并没有想到如何运用指针。
第一步:定义出各个变量。
第二步:运用if语句和计算输出想要结果。
3.遇到问题:这道题在提交的过程中也遇到了很多次错误,总的来说都是不够认真所导致。仔细检查后改正。

7-1计算职工工资
1.实验代码:

#include<stdio.h>
struct employees 
                                      
    char name[10];                 
    float basic,floating,out;
; 
int main()

    int n,i=0;
    scanf("%d",&n);
	struct employees e[n];
	for(i=0;i<n;i++)
	
        scanf("%s %f %f %f",e[i].name,&e[i].basic,&e[i].floating,&e[i].out);
    
    for(i=0;i<n;i++)
    
        printf("%s %.2f\\n",e[i].name,e[i].basic+e[i].floating-e[i].out);
    

2.设计思路:
第一步:定义一个结构体,其中含有名字,基本工资,浮动工资和支出。
第二步;在函数中输入一个n,n为人数,运用循环输入各员工的数据,并输出结果。
3.遇到问题:对于代码的检查不够仔细导致总是答案错误,最后发现输出结果中的e[i]错写为e[n]。
4.流程图:

7-2计算平均成绩
1.实验代码:

#include<stdio.h>
#include<stdlib.h>
struct student

	char name[10];
	char num[5];
	int score;
;
int main()

	int n,i=0;
	float average,sum=0;
	scanf("%d",&n);
	struct student s[n];
	for(i=0;i<n;i++)
		scanf("%s %s %d",s[i].num,s[i].name,&s[i].score);
		sum=sum+s[i].score;
	
	average=(float)(sum/n*1.0);
	printf("%.2f\\n",average);
	for(i=0;i<n;i++)
	
		if((float)(s[i].score)<average)
		
			printf("%s %s\\n",s[i].name,s[i].num);
		
	

2.设计思路:
第一步:依然是定义一个结构体,其中有姓名 学号和成绩;
第二步:在函数中定义出n,i,sum,average,各值;
第三步;运用循环输入数据,运用算法计算结果,再次用循环输出值;
3.遇到问题:没有遇到问题

6-1 按等级统计学生成绩
1.实验代码:

#include <stdio.h>
#define MAXN 10

struct student
    int num;
    char name[20];
    int score;
    char grade;
;

int set_grade( struct student *p, int n );

int main()
   
    struct student stu[MAXN], *ptr;
    int n, i, count;
    ptr = stu;
    scanf("%d\\n", &n);
    for(i = 0; i < n; i++)
       scanf("%d%s%d", &stu[i].num, stu[i].name, &stu[i].score);
     
   count = set_grade(ptr, n);
   printf("The count for failed (<60): %d\\n", count);
   printf("The grades:\\n"); 
   for(i = 0; i < n; i++)
       printf("%d %s %c\\n", stu[i].num, stu[i].name, stu[i].grade);
    return 0;

int set_grade( struct student *p, int n )

    int i, count = 0;
    for(i = 0;i < n;i ++,p++)
        if((*p).score <=100 && (*p).score >= 85)
            (*p).grade = \'A\';
        else if((*p).score <85 && (*p).score >= 70)
            (*p).grade = \'B\';
        else if((*p).score && (*p).score >= 60)
            (*p).grade = \'C\';
        else
            (*p).grade = \'D\'; 
            count ++;
        
    
    return count;
  

2.设计思路:
第一步:定义变量i和count.
第二步:通过循环和if语句判断学生成绩,最后返还count值;
3.遇到问题:没有遇到问题。

6-2结构体数组按总分排序
1.实验代码:

#include <stdio.h>
struct student					

int num;
char name[15];
float score[3];
float sum;
;
void calc(struct student *p,int n);	 
void sort(struct student *p,int n);
int main()

struct student stu[5];
int i,j;
float f;
for(i=0;i<5;i++)

	scanf("%d%s",&stu[i].num,stu[i].name);
	for(j=0;j<3;j++)
	 
    	scanf("%f",&f);
		stu[i].score[j]=f;
	

calc(stu,5);
sort(stu,5);
for(i=0;i<5;i++)

	printf("%5d%15s",stu[i].num,stu[i].name);
	printf("  %.1f  %.1f  %.1f  %.1f\\n",stu[i].score[0],stu[i].score[1],stu[i].score[2], stu[i].sum);

return 0;

void calc(struct student *p,int n)

	int i=0;
	for(i=0;i<n;i++)
		p[i].sum=p[i].score[0]+p[i].score[1]+p[i].score[2];
	
	 
void sort(struct student *p,int n)

	int j=0,i=0;
	struct student a;
	for(i=0;i<n-1;i++)
	
		for(j=0;j<n-1-i;j++)
		
			if(p[j].sum<p[j+1].sum)
			
				a=p[j];
				p[j]=p[j+1];
				p[j+1]=a;
			
		
	

2.设计思路:起初并没有设计思路,而后还是求助于大佬赵寅胜。
第一步:在void calc这一函数中求出各同学成绩和;
第二步:在void sort函数中用冒泡法将结果排序;
3.遇到问题:在编程过程中遇到了很多问题,比较突出的就是编译错误,这是结构指针没有熟练掌握所导致的。最后还是赵寅胜大佬指出我的指针错误运用。
4.流程图:

作业要求三:
上传至git
地址: https://coding.net/u/AssassinCreed/p/Devil-May-Cry/git/tree/master/?public=true
截图:

作业要求四
表格:

折线图:

作业要求五:
评论同学:
顾家玮:http://www.cnblogs.com/qq807443119/p/8747414.html
班庆泽:http://www.cnblogs.com/wsbqz/p/8746704.html
高立彬:http://www.cnblogs.com/gao628526/p/8665187.html

第二次作业(代码片段)

第二次作业(3)6-1按等级统计学生成绩1.设计思路(1)题目算法第一步:找到需要调用的函数,及明确函数目的第二步:用if将grade进行分类第三步:当等级为D时,将不及格人数+1,以此类推第四步:返回不及格人数第五步:进... 查看详情

第二次作业(代码片段)

第二次作业提交列表第一题设计思路1.因为要删除所有数字,那么在输出字符时,当数组内的元素等于数字时,数组输出零2.用循环,把输出出来的新数组整合,就能得到想要的结果流程图代码voiddelnum(char*s)inti=0,j=0;for(;s[i]!=‘\0... 查看详情

第二次作业(代码片段)

6-7删除字符串中数字字符(1)第一步:读懂题意第二步:在草纸上模拟草图第三步:整理步骤并编译(2)实现代码#include"stdio.h"voiddelnum(char*s);intmain()charitem[80];gets(item);delnum(item);printf("%s\n",item);return0;delnum(char*s)chara[80]=0;intm= 查看详情

第二次作业(代码片段)

...一步:阅读题目要求及所给部分。     第二步:根据题意补全相应函数。(2)流程图:2.实验代码:#include"stdio.h"voiddelnum(char*s);intmain()charitem[80];gets(item);delnum(item);printf("%s\n",item); 查看详情

第二次作业(代码片段)

...串中数字字符1.设计思路(1)第一步:了解指针的用法;第二步:根据题意编写函数;第三步:用两个指针,遇到数字字符不动,遇到非数字字符存入。(2)流程图无2.实验代码#include"stdio.h"voiddelnum(char*s);intmain()charitem[80];gets(ite... 查看详情

第二次作业(代码片段)

一、开发软件选择之前安装过这次题目要求的VS和Eclipse,本次作业选择了使用不太熟练的Eclipse。下面截图为该软件图标二、编写一个Java程序1.建立项目:具体步骤:File->New->javaProject->Projectname->Next->Finish。2.导入Junit:... 查看详情

第二次作业(代码片段)

...中数字字符设计思路:第一步:审题,读懂题中参数意义第二步:理清思路,将函数补全流程图:实验代码:#include"stdio.h"voiddelnum(char*s);intmain()charitem[80];gets(item);delnum(item);printf("%s\n",item);return0;voiddelnum(char*s)inti,j;for(i= 查看详情

第二次作业(代码片段)

...步:观察题意了解各个参数与所需函数在题目中的意义;第二步:设计算法编写函数,让函数的功能实现题目中所需的功能;第三步:运行程序检测是否错误。(2)流程图无2.实验代码...include"stdio.h"voiddelnum(chars);intmain()charitem[80... 查看详情

第二次作业(代码片段)

...程序,了解题中各个参数的意义。     第二步:设计函数,执行题中所需功能。     第三步:运行,检查程序对错,加以补充。(2)流程图:2.实验代码#include"stdio.h"voiddelnum(char*s);intm 查看详情

第二次pta作业(代码片段)

...中数字字符设计思路:第一步:审题,读懂题中参数意义第二步:理清思路,将函数补全流程图:实验代码:#include"stdio.h"voiddelnum(char*s);intmain()charitem[80];gets(item);delnum(item);printf("%s\n",item);return0;voiddelnum(char*s)inti,j; 查看详情

第二次作业(代码片段)

...步:观察题意了解各个参数与所需函数在题目中的意义;第二步:设计算法编写函数,让函数的功能实现题目中所需的功能;第三步:运行程序检测是否错误。(2)流程图无2.实验代码#include<stdio.h>voidsplitfloat(floatx,int*intpart,... 查看详情

第二次作业(代码片段)

...步:观察题意了解各个参数与所需函数在题目中的意义;第二步:设计算法编写函数,让函数的功能实现题目中所需的功能;第三步:运行程序检测是否错误。(2)流程图无2.实验代码#include<stdio.h>voidsplitfloat(floatx,int*intpart,... 查看详情

第二次作业(代码片段)

...步:观察题意了解各个参数与所需函数在题目中的意义;第二步:设计算法编写函数,让函数的功能实现题目中所需的功能;第三步:运行程序检测是否错误。(2)流程图无2.实验代码#include<stdio.h>voidsplitfloat(floatx,int*intpart,... 查看详情

第二次作业(代码片段)

...步:观察题意了解各个参数与所需函数在题目中的意义;第二步:设计算法编写函数,让函数的功能实现题目中所需的功能;第三步:运行程序检测是否错误。(2)流程图无2.实验代码#include<stdio.h>voidsplitfloat(floatx,int*intpart,... 查看详情

第二次作业(代码片段)

...步:观察题意了解各个参数与所需函数在题目中的意义;第二步:设计算法编写函数,让函数的功能实现题目中所需的功能;第三步:运行程序检测是否错误。(2)流程图无2.实验代码#include<stdio.h>voidsplitfloat(floatx,int*intpart,... 查看详情

第二次作业(代码片段)

...步:观察题意了解各个参数与所需函数在题目中的意义;第二步:设计算法编写函数,让函数的功能实现题目中所需的功能;第三步:运行程序检测是否错误。(2)流程图无2.实验代码#include<stdio.h>voidsplitfloat(floatx,int*intpart,... 查看详情

第二次作业(代码片段)

...第一步:定义一个新的字符数组a等于要修改的字符数组s第二步:修改字符数组s,把a中不是数字的元素赋给s,完成字符串的删除。(2).流程图无2.实验代码voiddelnum(char*s)inti;char*a=s;for(i=0;*(a+i)!=‘\0‘;i++)if((*(a+ 查看详情

软件工程第二次作业(代码片段)

软件工程第二次作业一、选择开发工具因为我对java比较感兴趣,所以我选择了Eclipse,刚开始安装时忘记截图了,之后快装完时才想起来截图。二、使用Eclipse1.运行Eclipse2.需要测试的java类packagecaculator;publicclasscaculatorpublicintadd(inta... 查看详情