
#include <stdioh>
#include <stdlibh>
#include <stringh>
#define MAX_NUM 50
#define MAX_LINE 256
struct student {
char name[10];
float math;
float chinese;
float eng;
float aver;
char grade;
};
const char student_file = "studenttxt";
const char grade_file = "gradetxt";
int init(struct student s, int n);
int fun(struct student s[], int n);
void sort(struct student s, int n);
void display(struct student s, int n);
void save_student(struct student s, int n, const char file);
void load_student(const char file);
int main(int argc, char argv[])
{
int num = 0;
struct student st[MAX_NUM];
num = init(st, MAX_NUM);
printf("\n等级为D的人数: %d\n", fun(st, num));
save_student(st, num, student_file);
sort(st, num);
save_student(st, num, grade_file);
display(st, num);
printf("\n所有学生信息\n");
load_student(student_file);
printf("\n排序后的学生信息\n");
load_student(grade_file);
return 0;
}
/ 初始化 /
int init(struct student s, int n)
{
int num = 0, i = 0;
if (0 == s || 0 >= n || MAX_NUM < n)
return 0;
printf("请输入学生数量[不大于50]: ");
fflush(stdout);
scanf("%d", &num);
while (0 >= num || n < num)
{
fflush(stdin);
printf("无效的参数,请输入学生数量[不大于50]: ");
fflush(stdout);
scanf("%d", &num);
}
for (i = 0; i < num; ++i)
{
printf("请输入第%d个学生的信息: ", i + 1);
fflush(stdout);
scanf("%9s %f %f %f", s[i]name, &s[i]math, &s[i]chinese, &s[i]eng);
fflush(stdin);
}
return num;
}
/ 计算平均成绩并统计等级为D的人数 /
int fun(struct student s[], int n)
{
int i = 0, cnt = 0;
if (0 == s || 0 >= n || MAX_NUM < n)
return 0;
for (i = 0; i < n; ++i)
{
s[i]aver = (s[i]math + s[i]chinese + s[i]eng) / 30;
if (70 <= s[i]aver && 85 > s[i]aver)
s[i]grade = 'B';
else if (60 <= s[i]aver && 70 > s[i]aver)
s[i]grade = 'C';
else if (60 > s[i]aver)
s[i]grade = 'D';
else
s[i]grade = 'A';
if ('D' == s[i]grade)
++cnt;
}
return cnt;
}
/ 降序排列 /
void sort(struct student s, int n)
{
int i = 0, j = 0;
struct student tmp;
if (0 == s || 0 >= n || MAX_NUM < n)
return 0;
for (i = 0; i < n - 1; ++i)
{
for (j = 0; j < n - 1 - i; ++j)
{
if (s[j]aver < s[j + 1]aver)
{
tmp = s[j];
s[j] = s[j + 1];
s[j + 1] = tmp;
}
}
}
}
void display(struct student s, int n)
{
int i = 0;
if (0 == s || 0 >= n || MAX_NUM < n)
return 0;
printf("所有学生的信息如下: \n");
for (i = 0; i != n; ++i)
{
printf("%d name[%s] math[%1f] chinese[%1f] eng[%1f] aver[%1f] grade[%c]\n",
i + 1, s[i]name, s[i]math, s[i]chinese, s[i]eng, s[i]aver, s[i]grade);
}
}
/ 保存学生信息到指定文件 /
void save_student(struct student s, int n, const char file)
{
int i = 0;
FILE fp = 0;
char buf[MAX_LINE] = {0};
if (0 == s || 0 >= n || MAX_NUM < n || 0 == file)
return 0;
if (fp = fopen(file, "w"))
{
for (i = 0; i != n; ++i)
{
sprintf(buf, "%s %1f %1f %1f %1f %c\r\n",
s[i]name, s[i]math, s[i]chinese, s[i]eng, s[i]aver, s[i]grade);
fwrite(buf, 1, strlen(buf), fp);
memset(buf, 0x00, MAX_LINE);
}
fclose(fp);
}
}
/ 加载指定文件中的信息 /
void load_student(const char file)
{
char buf[MAX_LINE] = {0};
FILE fp = 0;
if (0 == file)
return ;
if (fp = fopen(file, "r"))
{
while (fgets(buf, MAX_LINE, fp))
printf("%s", buf);
fclose(fp);
}
}
语言程序开发的步骤
1
定义程序目标。在开始写程序之前,应对希望程序要做什么有一个清晰的想法。考虑程序需要的信息,程序需要进行的计算和 *** 作
2
设计程序。在对程序需要完成的事情有一个概念性的认识后,就应该决定程序要如何完成它,用户界面应该是怎么样的,程序应该如何组织
3
编写代码。在程序有了清晰的设计后,就可以通过编写代码来实现它了。也就是说,将设计构思转变为C语言。一般来说
4
编译源代码。编译细节取决于编程环境,编译器还检查程序是否为有效的C语言程序。
C语言是古老而长青的编程语言,它具备了现代程序设计的基础要求,它的语法是很多其他编程语言的基础,在系统程序、嵌入式系统等领域依然是无可替代的编程语言,在各类编程语言排行榜上常年占据前两名的位置。
程序设计是一门基础课程。对于计算机相关专业而言,程序设计是专业基础知识,是进一步学习其他专业知识的第一步阶梯;对于非计算机专业而言,程序设计的学习有助于理解计算机的能力所在,理解哪些是计算机擅长解决的问题,怎样的方式方法是计算机擅长的手段,从而能更好地利用计算机来解决本专业领域内的问题。
C是一种计算机编程语言。就是说可以用C编写指令清单交给计算机去执行。C是当前正在使用的成千上万种编程语言之一。它已经有几十年的历史了。因为它功能强大而且效率很高,所以受到了程序员们广泛的欢迎。
C是所谓的编译型语言,意思是说您写好的源程序必须通过C编译器来运行,使它变成可以在计算机上运行(执行)的可执行文件。C源程序是供人阅读的,而编译器产生的可执行程序是供计算机读入和执行的。也就是说,要编写并运行一个C程序,您必须借助于C编译器。如果使用UNIX系统(例如,您在UNIX主机上用C编写CGI脚本,或者您是学生,在实验室的UNIX机器上工作),C编译器是免费提供的。它的名字是cc或者gcc,可以通过命令行调用。
以上就是关于C语言程序设计全部的内容,包括:C语言程序设计、c语言程序设计的基本步骤、C语言程序设计是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)