问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

007年《C语言程序设计》实验报告题目

发布网友 发布时间:2024-03-17 07:27

我来回答

3个回答

热心网友 时间:2024-08-04 01:47

详细程序代码如下:(有详细注解)
用VC6.0编译,保存代码时,以.C为后缀名.(TC2.0也可,但不能显示汉字)
#include<stdio.h>
#include<conio.h>
#include<malloc.h>
#include<string.h>
#include<process.h>
#define NAME_LENGTH 20/*名字长度*/
#define NUMBER_LENGTH 10/*学号长度*/
#define MAX_STUDENT_NUMBER 50/*最大的学生数,你可以改大的*/
/*定义一个保存学生信息的结构体*/
struct student
{
unsigned char name[NAME_LENGTH];/*学生名字*/
unsigned char number[NUMBER_LENGTH];/*学号*/
float mark1;/*学习成绩1*/
float mark2;/*学习成绩2*/
float mark3;/*学习成绩3*/
float mark4;/*学习成绩4*/
float avg;/*平均成绩*/
};
struct student studentData[MAX_STUDENT_NUMBER];/*定义一个数组来保存学生信息*/
int studentNumber=0;/*用来保存学生人数*/

/*函数声明*/
void GetOneStudentInfomation(struct student *stu);
void OutputAllStudentInformation(void);
void OutputOneStudentInfo(struct student out);
void SearchStudentByNumber(void);
void CompositorByAvg(void);
void Menu(void);
/*主函数*/
void main()
{
Menu();
getch();
}
/***************************************
函数功能:显示菜单,根据用户选择完成相应功能
****************************************/
void Menu(void)
{
int choose;
printf("1-->输入新学生信息\n");
printf("2-->按总分从大到小排序并显示所有学生的成绩\n");
printf("3-->按学生的学号显示学生成绩\n");
printf("4-->退出系统\n");
scanf("%d",&choose);
switch(choose) /*根据用户选择进行不同的操作*/
{
case 1:
GetOneStudentInfomation(&(studentData[studentNumber]));
break;
case 2:
OutputAllStudentInformation();
break;
case 3:
SearchStudentByNumber();
break;
case 4:
exit(0);
default:
break;
}
Menu();
}

/***************************************
函数功能:获取1个学生的数据信息,将数据保存到
stu指向的变量中
****************************************/
void GetOneStudentInfomation(struct student *stu)
{
printf("请输入学生姓名:\n");
scanf("%s",stu->name);
printf("请输入学生学号:\n");
scanf("%s",stu->number);
printf("请输入学生第1门成绩:\n");
scanf("%f",&(stu->mark1));
printf("请输入学生第2门成绩:\n");
scanf("%f",&(stu->mark2));
printf("请输入学生第3门成绩:\n");
scanf("%f",&(stu->mark3));
printf("请输入学生第4门成绩:\n");
scanf("%f",&(stu->mark4));
stu->avg=(stu->mark1+stu->mark2+stu->mark3+stu->mark4)/4;/*得到平均成绩*/
studentNumber++;/*得到一个学生信息后,学生人数增1*/
}
void OutputAllStudentInformation(void)
{
int i;
if(studentNumber==0)/*如果还没有学生信息,就提示用户*/
{
printf("还没有学生信息,请先输入学生信息\n");
return;
}
CompositorByAvg();/*先排序再输出*/
printf("名字\t学号\t第1门\t第2门\t第3门\t第4门\t平均成绩\n");
for(i=0;i<studentNumber;i++)
{
OutputOneStudentInfo(studentData[i]);
}
}
void SearchStudentByNumber(void)
{
unsigned char number[NUMBER_LENGTH];
int i;
int flag=0;
if(studentNumber==0)/*如果还没有学生信息,就提示用户*/
{
printf("还没有学生信息,请先输入学生信息\n");
return;
}
printf("请输入要查找的学生的学号:\n");
scanf("%s",number);
for(i=0;i<studentNumber;i++)
{
if(strcmp(number,studentData[i].number)==0)
{
printf("查到该学生\n");
printf("名字\t学号\t第1门\t第2门\t第3门\t第4门\t平均成绩\n");
OutputOneStudentInfo(studentData[i]);
flag=1;
break;
}
}
if(!flag)
printf("不存在学号为%s的学生\n",number);
}
/***************************************
函数功能:显示一个学生的信息
****************************************/
void OutputOneStudentInfo(struct student out)
{
printf("%s\t",out.name);
printf("%s\t",out.number);
printf("%.2f\t",out.mark1);
printf("%.2f\t",out.mark2);
printf("%.2f\t",out.mark3);
printf("%.2f\t",out.mark4);
printf("%.2f\t\n",out.avg);
}
/***************************************
函数功能:按总分高到低排序
****************************************/
void CompositorByAvg(void)
{
int i;
int j;
struct student temp;
if(studentNumber!=0)/*有学生信息时帮排序*/
for(i=0;i<studentNumber;i++)
{
for(j=i+1;j<studentNumber;j++)
{
if((studentData[j].mark1+studentData[j].mark2
+studentData[j].mark3+studentData[j].mark4)>
(studentData[i].mark1+studentData[i].mark2+studentData[i].mark3+studentData[i].mark4))/*后面的总成绩大时,就放到前面*/
{
temp.avg=studentData[i].avg;
temp.mark1=studentData[i].mark1;
temp.mark2=studentData[i].mark2;
temp.mark3=studentData[i].mark3;
temp.mark4=studentData[i].mark4;
strcpy(temp.name,studentData[i].name);
strcpy(temp.number,studentData[i].number);

studentData[i].avg=studentData[j].avg;
studentData[i].mark1=studentData[j].mark1;
studentData[i].mark2=studentData[j].mark2;
studentData[i].mark3=studentData[j].mark3;
studentData[i].mark4=studentData[j].mark4;
strcpy(studentData[i].name,studentData[j].name);
strcpy(studentData[i].number,studentData[j].number);

studentData[j].avg=temp.avg;
studentData[j].mark1=temp.mark1;
studentData[j].mark2=temp.mark2;
studentData[j].mark3=temp.mark3;
studentData[j].mark4=temp.mark4;
strcpy(studentData[j].name,temp.name);
strcpy(studentData[j].number,temp.number);
}
}
}
}

热心网友 时间:2024-08-04 01:50

#include <stdio.h>
#include <string.h>

#define N 3//学生数目

typedef struct /*定义结构体数组*/
{
char num[20]; /*学号*/
char name[20]; /*姓名*/
float score[4]; /*成绩*/
float total;//总分
float average;//平均分
} Student;

Student stu[N];

//输入学生信息
void input()
{
int i,j;

printf("请输入%d个学生的信息:\n",N);
for(i=0;i<N;i++)
{
printf("学号:");
scanf("%s",stu[i].num);
printf("姓名:");
scanf("%s",stu[i].name);
for(j=0;j<4;j++)
{
printf("科目%d的成绩:",j+1);
scanf("%f",&stu[i].score[j]);
}
}
}

//输出学生信息
void output(int i)
{
int j;

printf("学生的信息如下:\n");
printf("学号:%s\n",stu[i].num);
printf("姓名:%s\n",stu[i].name);
for(j=0;j<4;j++)
{
printf("科目%d的成绩:%f\n",j+1,stu[i].score[j]);
}
printf("总分:%f\n",stu[i].total);
printf("平均分:%f\n",stu[i].average);
}

//计算总分和平均分
void process()
{
int i,j;

for(i=0;i<N;i++)
{
stu[i].total=0;
for(j=0;j<4;j++)
{
stu[i].total+=stu[i].score[j];
}
stu[i].average=stu[i].total/4;
}
}

//排序并输出
void sort()
{
Student tStu;
int i,j;

for(i=0;i<N;i++)
{
for(j=N-1;j>i;j--)
{
if(stu[j].total>stu[j-1].total)
{
tStu=stu[j];
stu[j]=stu[i];
stu[i]=tStu;
}
}
}
for(i=0;i<N;i++)
{
output(i);
}
}

//根据学号查找
void find(char *no)
{
int i;

for(i=0;i<N;i++)
{
if(strcmp(stu[i].num,no)==0)
{
output(i);
return;
}
}
printf("没有找到!\n");
}

void main()
{
input();
process();
sort();
find("1");
}

热心网友 时间:2024-08-04 01:50

好利害啊!!!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
填地方专项志愿会影响本科二批录取吗? 地方专项计划成绩不好的可以报吗 国家专项地方专项影响本科填报吗 地方专项计划滑档影响本科录取吗 报地方专项计划会影响高考录取吗 地方专项计划影响后续录取吗 电脑最高配组装机配置组装电脑什么配置比较好 台式组装游戏电脑配置组装电脑什么配置比较好 打游戏主机电脑配置台式电脑主要是玩游戏什么配置最合适 组装高配置台式电脑组装电脑什么配置比较好 虎跳峡是什么意思 全班同学都埋头写作业用文言文怎么说。 古文“学习”和“做作业”怎么说3 抓紧时间写作业古文怎么说8 古文“学习”和“做作业”怎么说。谁知道?3 不认真写作业翻译成古文怎么说15 写作业在古代怎么说33 为才村属于哪个省哪个市 氟伏沙明片吃了容易肚子饿怎么办 科左后旗历史简介什么是科左后旗历史简介 K2SO4和明矾的混和溶液中,的电荷守恒怎么写 (20b2?德阳模拟)为了测定明矾[eAl(SO4)?nH2O]的纯度(其中混有少量e他l... 《小哑巴与双胞胎》txt下载在线阅读全文,谁能分享下百度网盘资源... 树脂的电热水壶,重复加热饮用水(小区饮水机里打的水)会有毒吗? 认真写作业 古文 怎么说5 格力耗能量最大的空调打26度1小时多少钱?大神们帮帮忙 如何看待NBA金州勇士宣布,库里在对阵骑士复出? 离婚多年后与母亲成为夫妻是否可行? 离婚后与母亲再结婚是否有法律障碍 为什么我的白色网鞋用肥皂刷完晒干之后上面会有一层黄黄的动西,好难看... 6000块钱的Gucci,手袋在法国代购便宜多少钱 驱散夏季心理焦躁的5个小方法 驱散夏季心理焦躁的5个小方法有哪些 2022年12月10日为什么核酸检测点减少了? 钦州市核酸检测点在2022年12月取消了吗 西安第九医院怎么样 西安第九铁路医院骨科赵主任说“治手指粉碎性骨折只要500块”,赵主 ... 间隔时间5年随原来的礼金合适吗? 公务员考试我差第一名12.5分,面试百分制,算法5比5,我得...1 公务员考试面试最后一名和第一名差10分面试还有希望吗?60 公务员考试笔试跟第一名成绩差20多分,面试还有希望么?28 《如懿传》如懿的女儿咸红色的不好看,然后又跟哥哥绿色化,她自己挑衣... citespace 为什么安装不了 could not find the main class echo 关闭状 ... ...可以报考政法干警么?已退伍军人报考,还是以毕业生身份报考? 如何才能报考陕西政法干警大学生退役士兵职位?如何才能报考陕西政法干 ... 不锈钢保温杯的真空层是怎么做的?主要是焊接工艺怎么完成?焊接后怎样保 ... 遇见始兴:探寻广东美丽县城的文化与旅游胜地 收获七分福什么意思 过膝的长筒蕾丝边丝袜穿起来容易卷边吗(本人大腿比较粗,而且不想和那个... 从蚂蚁借呗借款,可以分期还款吗 大陆的产品,能直接通过顺丰寄到香港吗3