求一C语言设计!! 尽量简单点 本人是菜鸟!! 四个任选其一!!

1.学生成绩管理系统

①每一条记录包括一个学生的学号、姓名、3门课成绩、平均成绩。

②输入功能:能按学期、按班级完成对学生成绩的录入、修改。

③显示功能:完成全部学生记录的显示,能按班级输出学生的成绩单。

④查找功能:完成按姓名查找学生记录,能查询学生成绩,不及格科目及学生名单并显示。

⑤排序功能:能按班级统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序。

⑥应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!
2.图书信息管理系统
图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功能:
①系统以菜单方式工作?
②图书信息录入功能(图书信息用文件保存)--输入?
③图书信息浏览功能--输出?
④查询和排序功能:(至少一种查询方式)--算法?
? 按书名查询
? 按作者名查询
⑤图书信息的删除与修改(可选项)?
3 学生档案管理系统

①每一条记录包括一个学生的学号、姓名、出生日期、专业、籍贯,性别。

②输入功能。

③显示功能:完成全部学生记录的显示。

④查找功能:完成按学号姓名查找学生档案记录。

⑤排序功能:能根据学生的学号,姓名进行排序。

⑥应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!

4 课程教学管理系统

①每一条记录包括一门课程的课程号、课程名称、教室、任课教师、上课班级。

②输入功能。

③显示功能:完成全部课程记录的显示。

④查找功能:完成按课程名称查找课程记录。

⑤排序功能:能根据课程号进行排序。

⑥应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!

四、对所编写的源程序的要求:
①能够达到系统功能的基本要求,鼓励自行增加新功能;
②要有用户界面。要求至少采用文本菜单界面;鼓励采用图形菜单界面。尽可能的使界面友好、直观、易操作;
③只能使用C语言,源程序要有适当的注释,使程序容易阅读。

我自己编的学生成绩管理系统
/* Note:Your choice is C IDE */
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#include "ctype.h"
#include "math.h"

#define N 3 /*这是总的学生数,你可以想多少就多少*/

char name[N][20];
int i,num[N];
float yuwen[N],shuxue[N],yingyu[N];

int input()
{
for(i=0;i<N;i++)
{
printf("请输入第[%d]学生的姓名\n",i+1);
scanf("%s",name[i]);
printf("请输入第[%d]学生的学号\n",i+1);
scanf("%d",&num[i]);
printf("请输入第[%d]学生的语文成绩\n",i+1);
scanf("%f",&yuwen[i]);
printf("请输入第[%d]学生的数学成绩\n",i+1);
scanf("%f",&shuxue[i]);
printf("请输入第[%d]学生的英语成绩\n",i+1);
scanf("%f",&yingyu[i]);
}
return(i);
}

void sort1()
{
int n;
float t;
int i,j;
char a[10];
for(i=0;i<N-1;i++)
for(j=i+1;j<N;j++)
{
if(num[i]>num[j]) /*条件成立,交换前后学号*/
{ n=num[j];
num[j]=num[i];
num[i]=n;

strcpy(a,name[j]); /*交换前后姓名,使与学号相对应*/
strcpy(name[j],name[i]);
strcpy(name[i],a);

t=yuwen[j]; /*交换前后语文成绩,使与学号想对应*/
yuwen[j]=yuwen[i];
yuwen[i]=t;

t=shuxue[j]; /*交换前后数学成绩,使与学号想对应*/
shuxue[j]=shuxue[i];
shuxue[i]=t;

t=yingyu[j]; /*交换前后英语成绩,使与学号想对应*/
yingyu[j]=yingyu[i];
yingyu[i]=t;
}
}
printf("学生成绩按学号排序:\n");
printf("姓名\t学号\t语文成绩\t数学成绩\t英语成绩\n");
for(i=0;i<N;i++)
printf("%s\t%d\t%.2f\t\t%.2f\t\t%.2f\n",name[i],num[i],yuwen[i],shuxue[i],yingyu[i]);

}
void sort2()
{
int i,j;
float t;
char a[10];
int b;
for(i=0;i<N-1;i++)
for(j=i+1;j<N;j++)
{
if(yuwen[j]+shuxue[j]+yingyu[j]>yuwen[i]+shuxue[i]+yingyu[i])
{b=num[i];
num[i]=num[j];
num[j]=b;

strcpy(a,name[j]);/*交换前后姓名,使与学号相对应*/
strcpy(name[j],name[i]);
strcpy(name[i],a);

t=yuwen[i]; /*交换前后语文成绩,使与学号想对应*/
yuwen[i]=yuwen[j];
yuwen[j]=t;

t=shuxue[i]; /*交换前后数学成绩,使与学号想对应*/
shuxue[i]=shuxue[j];
shuxue[j]=t;

t=yingyu[i]; /*交换前后英语成绩,使与学号想对应*/
yingyu[i]=yingyu[j];
yingyu[j]=t;
}
}
printf("学生成绩按总分排序:\n");
printf("姓名\t学号\t总分\n");
for(i=0;i<N;i++)
{
printf("%s\t%d\t%.2f",name[i],num[i],yuwen[i]+shuxue[i]+yingyu[i]);
printf("\n");
}

}

void stat()
{
int i,j;
float max1,max2,max3,min1,min2,min3;
float sum1=0,sum2=0,sum3=0;
float aver1,aver2,aver3;
printf("姓名\t学号\t语文\t数学\t英语\t总分\t平均分\n");
for(i=0;i<N;i++)
{
printf("%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f",name[i],num[i],yuwen[i],shuxue[i],yingyu[i],
yuwen[i]+shuxue[i]+yingyu[i],(yuwen[i]+shuxue[i]+yingyu[i])/3);
printf("\n");
}

for(i=0;i<N;i++) /*求总分*/
{

sum1=sum1+yuwen[i];
sum2=sum2+shuxue[i];
sum3=sum3+yingyu[i];
}
aver1=sum1/N;/*求平均分*/
aver2=sum2/N;
aver3=sum3/N;

max1=yuwen[N-1];min1=yuwen[0];/*求语文成绩的最高分和最低分*/
for(j=0;j<N;j++)
{
if(max1<yuwen[j])
max1=yuwen[j];
if(min1>yuwen[j])
min1=yuwen[j];
}

max2=shuxue[N-1];min2=shuxue[0]; /*求数学成绩的最高分和最低分*/
for(j=0;j<N;j++)
{
if(max2<shuxue[j])
max2=shuxue[j];
if(min2>shuxue[j])
min2=shuxue[j];
}

max3=yingyu[N-1];min3=yingyu[0];/*求英语成绩的最高分和最低分*/
for(j=0;j<N;j++)
{
if(max3<yingyu[j])
max3=yingyu[j];
if(min3>yingyu[j])
min3=yingyu[j];
}

printf("语文成绩统计:\n");
printf("平均分:%.2f\t""最高分:%.2f\t""最低分:%.2f\n",aver1,max1,min1);

printf("数学成绩统计:\n");
printf("平均分:%.2f\t""最高分:%.2f\t""最低分:%.2f\n",aver2,max2,min2);

printf("英语成绩统计:\n");
printf("平均分:%.2f\t""最高分:%.2f\t""最低分:%.2f\n",aver3,max3,min3);
}

void main()
{ int k;
while(1)
{
printf("*******************学生成绩管理系统*********************\n");
printf("\t\t | 1. 输入学生资料 |\n");
printf("\t\t | 2. 学生成绩排序 |\n");
printf("\t\t | 3. 学生成绩统计 |\n");
printf("\t\t | 0. 退出 |\n");
printf("********************************************************\n");
printf("请输入(0~3)选择:");
scanf("%d",&k);
switch(k) /*用switch语句实现功能选择*/
{
case 1: input();break;/*输入学生资料函数*/
case 2: sort1();sort2();break;/*成绩排序函数*/
case 3: stat();break;/*成绩统计函数*/
case 0: exit(0);break;/*退出*/
}
}
}
温馨提示:答案为网友推荐,仅供参考
相似回答