|
C语言作为很多大学生大一的一门必修课,对于很多对电脑不是很熟悉的同学来说上手是比较困难的,在c语言课程中会有一个大作业。以下为大家提供一种思路。
#include<stdio.h>
#include<stdlib.h>
#define N 50
struct Student //定义一个学生
{
int num; //学号
char name[20]; //姓名
char sex[6]; //性别
int year; //年龄
int math; //数学成绩
int chinese; //语文成绩
int english;//英语成绩
int programme;//编程成绩
int history;//历史成绩
int zong;//总分
double average;//平均分
} Stu[999];
int n=0;
int sum;
void Exit()
{
system(&#34;cls&#34;);
printf(&#34;\n\n\n\n&#34;);
printf(&#34;\t\t\t****************************************************************\n&#34;);
printf(&#34;\t\t\t|| ||\n&#34;);
printf(&#34;\t\t\t|| 感谢使用本程序! ||\n&#34;);
printf(&#34;\t\t\t|| ||\n&#34;);
printf(&#34;\t\t\t|| ||\n&#34;);
printf(&#34;\t\t\t|| ||\n&#34;);
printf(&#34;\t\t\t****************************************************************\n&#34;);
}
void Menu()
{
printf(&#34; *************************欢迎使用学生成绩管理系统************************\n&#34;);
printf( &#34; \n&#34;);
printf(&#34; 请选择要进行的操作\n \n&#34;);
printf(&#34; 1 : 输入学生信息\n&#34;);
printf(&#34; 2 : 显示所有学生信息\n&#34;);
printf(&#34; 3 : 排序学生信息\n&#34;);
printf(&#34; 4 : 查找学生信息\n&#34;);
printf(&#34; 5 : 删除学生信息\n&#34;);
printf(&#34; 6 : 修改学生信息\n&#34;);
printf(&#34; 7 : 退出\n&#34;);
printf(&#34; *************************************************************************\n&#34;);
printf(&#34;\n&#34;);
printf(&#34;请输入你的选项: \n&#34;);
scanf(&#34;%d&#34;,&sum);
}
int InputStudent() //输入学生信息
{
int d;
int i=0;
void WriteFile()
{
int i=0;
FILE *fp;
fp=fopen(&#34;Student.txt&#34;,&#34;w&#34;);//打开文件
for(i=0;i<n; i++)
{
printf(&#34;\n请输入第%d个学生的信息:\n&#34;,i+1);
printf(&#34;学号: &#34;);
fprintf(fp,&#34;%d&#34;,&Stu.num);
printf(&#34;姓名: &#34;);
fprintf(fp,&#34;%d&#34;,&Stu.name);
printf(&#34;性别: &#34;);
fprintf(fp,&#34;%d&#34;,&Stu.sex);
printf(&#34;年龄: &#34;);
fprintf(fp,&#34;%d&#34;,&Stu.year);
printf(&#34;数学成绩: &#34;);
fprintf(fp,&#34;%d&#34;,&Stu.math);
printf(&#34;语文成绩: &#34;);
fprintf(fp,&#34;%d&#34;,&Stu.chinese);
printf(&#34;英语成绩: &#34;);
fprintf(fp,&#34;%d&#34;,&Stu.english);
printf(&#34;编程成绩: &#34;);
fprintf(fp,&#34;%d&#34;,&Stu.programme);
printf(&#34;历史成绩: &#34;);
fprintf(fp,&#34;%d&#34;,&Stu.history);
i++;
n++;
printf(&#34;是否继续输入?(输入任意数.继续 输入2.退出)\n&#34;);
fprintf(fp,&#34;%d&#34;,&d);
if(d==2)
{
system(&#34;cls&#34;);
return main();
}
}
fclose(fp);
}
while(1)
{
system(&#34;cls&#34;);
printf(&#34; ========================学生成绩输入========================\n\n&#34;);
WriteFile();
}}
void PrintStudent() //显示学生信息
{
int i;
system(&#34;cls&#34;);
printf(&#34; ========================学生成绩显示========================\n\n\n&#34;);
printf(&#34;\n学号\t姓名\t性别\t数学成绩\t语文成绩\t英语成绩\t编程成绩\t历史成绩\t总成绩\t平均分\n\n\n&#34;);
for(i=1; i<=n; i++)
{
Stu.zong=Stu.chinese+Stu.english+Stu.math+Stu.programme+Stu.history;
Stu.average=(Stu.chinese+Stu.english+Stu.math+Stu.programme+Stu.history)/5.0;
printf(&#34;%d\t%s\t%s\t\t%d\t\t%d\t\t%d\t\t%d\t\t%d\t\t%d\t\t%.2f\n&#34;, Stu.num, Stu.name,Stu.sex, Stu.math,Stu.chinese,Stu.english,Stu.programme,Stu.history,Stu.zong,Stu.average);
}
return main();
}
void SortStudent() //学生信息排序
{
struct Student k; //另一个结构体,互换
int j;
int i;
system(&#34;cls&#34;);
printf(&#34;\n ============按成绩从大到小排序===========\n&#34;);//按成绩从大到小排序
printf(&#34;\n学号\t姓名\t性别\t数学成绩\t语文成绩\t英语成绩\t编程成绩\t历史成绩\t总成绩\t平均分\n\n\n&#34;);
for(i=0; i<n; i++)
{
Stu.zong=Stu.chinese+Stu.english+Stu.math+Stu.programme+Stu.history;
Stu.average=(Stu.chinese+Stu.english+Stu.math+Stu.programme+Stu.history)/5.0;
}
for(j=0; j<n-1; j++)
for(i=1; i<n; i++)
{
if(Stu[j].zong<Stu.zong)
{
k=Stu;
Stu=Stu[j];
Stu[j]=k;
}
}
for(i=0; i<n; i++)
{
printf(&#34;%d\t%s\t%s\t\t%d\t\t%d\t\t%d\t\t%d\t\t%d\t\t%d\t\t%.2f\n&#34;, Stu.num, Stu.name,Stu.sex, Stu.math,Stu.chinese,Stu.english,Stu.programme,Stu.history,Stu.zong,Stu.average);
}
printf(&#34;\n&#34;);
return main();
}
void FindStudent() //查找学生信息
{
int xuehao;
int i,q;
system(&#34;cls&#34;);
printf(&#34;\n ============按学号进行查找===========\n&#34;);
printf(&#34;请输入要查找的学号: &#34;);
scanf(&#34;%d&#34;,&xuehao);
for(i=1; i<=n; i++)
{
if(xuehao==Stu.num)
{
Stu.zong=Stu.chinese+Stu.english+Stu.math+Stu.programme+Stu.history;
Stu.average=Stu.zong/5.0;
printf(&#34;学生的学号为:%d\n&#34;,Stu.num);
printf(&#34;学生的姓名为:%s\n&#34;,Stu.name);
printf(&#34;学生的性别为:%s\n&#34;,Stu.sex);
printf(&#34;数学成绩为:%d\n&#34;,Stu.math);
printf(&#34;语文成绩为:%d\n&#34;,Stu.chinese);
printf(&#34;英语成绩为:%d\n&#34;,Stu.english);
printf(&#34;编程成绩为:%d\n&#34;,Stu.programme);
printf(&#34;历史成绩为:%d\n&#34;,Stu.history);
printf(&#34;学生的总成绩为:%d\n&#34;,Stu.zong);
printf(&#34;学生的平均分为:%.2f\n\n&#34;,Stu.average);
}
}
return main();
}
void DeleteStudent() //删除学生信息
{
int nums;
int i,j,d;
system(&#34;cls&#34;);
printf(&#34;\n ============按学号进行删除信息===========\n&#34;);
printf(&#34;输入想要删除人的学号: &#34;);
scanf(&#34;%d&#34;,&nums);
for(i=1; i<=n; i++)
{
if(nums==Stu.num)
{
printf(&#34;学号\t姓名\t性别\t数学\t语文\t英语\t编程\t历史\n&#34;);
printf(&#34;%d\t%s\t%s\t%d\t%d\t%d\t\n&#34;,Stu.num,Stu.name,Stu.sex,Stu.math,Stu.chinese,Stu.english,Stu.programme,Stu.history);
printf(&#34;确认删除!(1.YES 2.NO)\n&#34;);
scanf(&#34;%d&#34;,&d);
if(d==1)
{
for(j=i; j<=n; j++)
{
Stu[j].num=Stu[j+1].num;
strcpy(Stu[j].name,Stu[j+1].name);
strcpy(Stu[j].sex,Stu[j+1].sex);
Stu[j].math=Stu[j+1].math;
Stu[j].chinese=Stu[j+1].chinese;
Stu[j].english=Stu[j+1].english;
Stu[j].programme=Stu[j+1].programme;
Stu[j].history=Stu[j+1].history;
}
n--;
printf(&#34;删除成功!\n&#34;);
return main();
}
if(d==2)
{
return main();
}
}
}
}
void ModifyStudent() //修改学生信息
{
int i;
int w;
int nums;
system(&#34;cls&#34;);
printf(&#34;\n ============按学号进行修改===========\n&#34;);
printf(&#34;请输入修改的学号:\n\n&#34;);
scanf(&#34;%d&#34;,&nums);
for(i=1; i<=n; i++)
{
if(Stu.num==nums)
{
printf(&#34;请重新输入该生信息: \n\n&#34;);
printf(&#34;学号: \n&#34;);
scanf(&#34;%d&#34;,&Stu.num);
printf(&#34;姓名: \n&#34;);
scanf(&#34;%s&#34;,&Stu.name);
printf(&#34;性别: \n&#34;);
scanf(&#34;%s&#34;,&Stu.sex);
printf(&#34;数学成绩: \n&#34;);
scanf(&#34;%d&#34;,&Stu.math);
printf(&#34;语文成绩: \n&#34;);
scanf(&#34;%d&#34;,&Stu.chinese);
printf(&#34;英语成绩: \n&#34;);
scanf(&#34;%d&#34;,&Stu.english);
printf(&#34;编程成绩: \n&#34;);
scanf(&#34;%d&#34;,&Stu.programme);
printf(&#34;历史成绩: \n&#34;);
scanf(&#34;%d&#34;,&Stu.history);
printf(&#34;修改成功!\n\n&#34;);
}
}
return main();
}
//***********************主函数
int main()
{
Menu();
switch (sum)
{
case 1: //输入学生信息
InputStudent(Stu,N);
break;
case 2: //显示学生信息
PrintStudent(Stu,N);
break;
case 3: //排序
SortStudent(Stu,N);
break;
case 4: //查找
FindStudent(Stu,N);
break;
case 5: //删除
DeleteStudent(Stu,N);
break;
case 6: //修改
ModifyStudent(Stu,N);
break;
case 7: //退出
Exit(Stu,N);
break;
}
return 0;
} |
|