ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

HNUST-C语言课程设计 完成质量测试记录·

2022-02-25 23:59:45  阅读:199  来源: 互联网

标签:课程设计 student 记录 int stud C语言 HNUST STUDENT printf


写在前面:

水了一周多的c语言课设该有点结局了(摆烂结束)

--在此献上周五的《C语言课程设计 完成质量测试》,礼炮冲天

1.主菜单的展示

小型管理系统一般会先显示主菜单。下面请你设计一个简单的主菜单。

解题思路:

 水题水到极致。(唯一的”陷阱“大概就是倒数第二行是空的)

#include <stdio.h>
#include <stdlib.h>
int main()
{
    printf("***************主菜单**************\n");
    printf("1. 输入记录\n");
    printf("2. 显示所有记录\n");
    printf("3. 对所有记录进行排序\n");
    printf("4. 按姓名查找记录并显示\n");
    printf("5. 插入记录\n6. 删除记录\n7. 将所有记录保存到文件\n8. 从文件中读入所有记录\n9. 退出\n***********************************\n\n请选择操作(1-9):");



}

 2.主菜单的简单测试

 解题思路:

虽然我们的课设不是强校的游戏制作,但我们的考试是游戏啊--【找不同*科大版】

四个错误中两个输出错误,一个循环条件出错,一个指针错误。

题不难,就是恶心(口区)

 贴上wa与ac的截图:

#include<stdio.h>   //printf()、scanf()等函数
#include<string.h>  //strlen()、strcpy()等函数
#include<stdlib.h>  //atoi()函数

//定义常数
#define N 3

//定义结构体
typedef struct student
{
    char no[11];
    char name[15];
    float score[N];
    float sum;
    float average;
    int order;
}STUDENT;


/*简单测试数据录入功能*/
int input(STUDENT *stud,int n)
{
    printf("\n您已经成功执行input()函数!\n");
    return(n+1);
}

/*简单测试显示模块*/
void print(STUDENT *stud,int n)
{
    printf("\n您已经成功执行print()函数!\n");
}

/*简单测试排序模块*/
void sort(STUDENT *stud,int n)
{
    printf("\n您已经成功执行sort()函数!\n");
}

/*简单测试查找记录模块*/
void search(STUDENT stud[],int n)
{
    printf("\n您已经成功执行search()函数!\n");
}

/*简单测试在指定位置插入记录*/
int insert(STUDENT *stud,int n)
{
    printf("\n您已经成功执行insert()函数!\n");
    return n+1;
}

/*简单测试删除记录模块*/
int delete1(STUDENT *stud,int n)
{
    printf("\n您已经成功执行delete1()函数!\n");
    return n-1;
}

/*简单测试保存数据到文件模块*/
void save(STUDENT *stud,int n)
{
    printf("\n您已经成功执行save()函数!\n");
}

/*简单测试导入信息模块*/
int load(STUDENT *stud)
{
    printf("\n您已经成功执行load()函数!\n");
    return 1;
}
/*菜单函数,返回值为整数*/
int menu_select()
{
	char s[3];
	int c=0;
	printf("***************主菜单**************\n");
	printf("1. 输入记录\n");
	printf("2. 显示所有记录\n");
	printf("3. 对所有记录进行排序\n");
	printf("4. 按姓名查找记录并显示\n");
	printf("5. 插入记录\n");
	printf("6. 删除记录\n");
	printf("7. 将所有记录保存到文件\n");
	printf("8. 从文件中读入所有记录\n");
	printf("9. 退出\n");
	printf("***********************************\n");

	do
	{
		printf("请选择操作(1-9):");
		scanf("%s",s);
		c=atoi(s);
	}while(c<1||c>9); /*选择项不在1~9之间重输*/
	return(c); /*返回选择项,主程序根据该数调用相应的函数*/
}

/******主函数开始*******/

int main(void)
{
    int n=0;
    STUDENT student[20];		/*定义结构数组*/

    switch(menu_select())               /*调用主菜单函数,返回值整数作开关语句的条件*/
    {
         case 1: input(student,n);break;			/*新建记录*/
         case 2: print(student,n);break;			/*显示全部记录*/
         case 3: sort(student,n);break;				/*排序*/
         case 4: search(student,n);break;			/*查找记录*/
         case 5: insert(student,n);break;			/*插入记录*/
         case 6: delete1(student,n);break;		        /*删除记录*/
         case 7: save(student,n);break;				/*保存文件*/
         case 8: load(student);break;				/*读文件*/
         case 9: exit(0);					/*程序结束*/
    }

    return 0;
}

3.结构数组的显示 

 解题思路:

本题难点不在补全,在于输出的格式,这次玩的不是找不同,玩的是不停wa后的心态

(微笑)

 同样贴上wa与ac的截图,罚时让我怀疑人生(幸好考试不是比赛)

#include<stdio.h>   //printf()、scanf()等函数
typedef struct student
{
    char xueHao[11];
    char xingMing[15];
    double chengJi[3];
    double zongFen;
    double pingJunFen;
    int mingCi;
}STUDENT;
void print(int n,STUDENT stud[]   )   /*请将print函数的参数定义完整*/
{
	int i=0;                /* 统计记录条数*/
	if(n==0)
	{
		printf("\n很遗憾,空表中没有任何记录可供显示!\n");
	}
	else
	{
		printf("********************************** STUDENT ****************************************\n");
		printf("   位置号   学号          姓名      成绩1 成绩2 成绩3    总分   平均分  名次\n");
		printf("-----------------------------------------------------------------------------------\n");
		while(i<n)
		{
			printf("    %-4d %-11s%-12s%7.2f%7.2f%7.2f %9.2f  %6.2f  %3d \n", i, stud[i].xueHao,stud[i].xingMing,stud[i].chengJi[0],stud[i].chengJi[1],
					stud[i].chengJi[2],stud[i].zongFen,stud[i].pingJunFen,stud[i].mingCi);
			i++;
		}
		printf("***********************************************************************************\n");
	}
}

/******主函数开始*******/
int main(void)
{
	STUDENT student[20]={{"2105030155","zhaoxiaozhao",{100,100,100},300,100,0},
                            {"2105030166","qianxiaoqian",{99,99,99},297,99,0},
                            {"2105030177","sunxiaosun",{98,98,98},294,98,0},
                            {"2105030188","lixiaoli",{98,98,98},294,98,0}};/*定义结构数组,并初始化0、1、2、3号位置的数组元素*/
        int n;
        scanf("%d",&n);
        print(n,student  );       /*请设置print()函数的实参*/
	return 0;
}

4. 在结构数组插入一条新记录

解题思路:冲就是了,一个循环解决,就是要注意是i--,不是习惯的i++(微笑)

 for(i=n+1; i>position; i--)
    {
        stud[i]=stud[i-1];
    }

5.利用指针变量找最大值 

解题思路:好久没用指针,在语法那里卡了一小会,索性不难,冲! 

for( i=0; i<n; i++)scanf("%d",&a[i]);
    p=&a[0];
    for( i=0; i<n; i++)
    {
        if(a[i]>*p)p=&a[i];
    }

6.链表的显示 

解题思路:while循环啦,还不如课设后面的链表题难,水水水水水水。 注意cnt增加的条件

while(p){

    printf("%s %d\n",p->name,p->score);
    if(p->score>=60)cnt++;
    p=p->next;

}
printf("%d",cnt);

7.汉字字形横向放大 

解题思路:边读边输出 

 #include<stdio.h>
 #include<string.h>
 int main(){
 char a[100][100];
 int i;
    for( i=0; i<56; i++)scanf("%s",a[i]);
  int j;
  for(i=0;i<56;i++){
    for(j=0;j<strlen(a[i]);j++){
        if(a[i][j]=='_')printf("00");
        if(a[i][j]=='X')printf("11");


    }printf("\n");


  }
 }

8. 24位色真彩色位图的实际像素数据

解题思路: 题目字有点多,循环解决(水水水水)

#include<stdio.h>
#include<string.h>
int main()
{
    int a[200][200];
    int n;
    scanf("%d",&n);
    for(int i=0; i<n; i++)for(int j=0; j<n; j++)scanf("%1d",&a[i][j]);
    for(int i=n-1; i>=0; i--)
    {
        for(int j=0; j<n; j++)
        {
            if(a[i][j]==0)printf("FF FF FF ");
            else printf("00 00 FF ");
        }
 
 
    }
 
 
}
 

写在最后:

不是夸耀题目的难度,只是匹配不上那么好的课设题(水水水水);

个人状态:小弱鸡一个,写下本篇记录第一次课设。

看到这不留个赞与收藏吗(嘿嘿嘿),评论一波也是好滴,溜了溜了。 

标签:课程设计,student,记录,int,stud,C语言,HNUST,STUDENT,printf
来源: https://blog.csdn.net/abc_dot/article/details/123143101

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有