C语言程序设计学生成绩管理系统

1.目的:(1)基本掌握面向过程程序设计的基本思路和方法;(2)达到熟练掌握C语言的基本知识和技能;(3)能够利用所学的基本知识和技能,解决简单的程序设计问题2.要求基本... 1. 目的:
(1)基本掌握面向过程程序设计的基本思路和方法;
(2)达到熟练掌握C语言的基本知识和技能;
(3)能够利用所学的基本知识和技能,解决简单的程序设计问题
2. 要求
基本要求:
1. 要求利用C语言面向过程的编程思想来完成系统的设计;
2. 突出C语言的函数特征,以多个函数实现每一个子功能;
3. 画出功能模块图;
4. 进行简单界面设计,能够实现友好的交互;
5. 具有清晰的程序流程图和数据结构的详细定义;
6. 熟练掌握C语言对文件的各种操作。
创新要求:
在基本要求达到后,可进行创新设计,如系统用户功能控制,对管理员级和一般级别的用户系统功能操作不同
三、信息描述
有关该系统基本信息的描述,如:学号、姓名、系别、班级和所选科目及各科成绩等。
四、功能描述
1. 学生基本信息及成绩所选科目成绩的录入。
2. 基本信息的查询(分系、班级;分科目)与修改
3. 对每系或每班各科成绩进行分析(即求单科平均成绩、及格率和优秀率);
4. 对所开课程的成绩分析(求其平均成绩,最高分和最低分);
5. 对学生考试成绩进行排名(单科按系别或班级进行排名,对每一个班级,同一学期学生总体成绩进行排名,并显示各科成绩信息)
要求写出需求分析、总体设计、详细设计、编码、测试的步骤和内容。
程序需要最低500行
其实我的分没多少 呵呵我自己不知道怎么写啊 我才大一让我写这 太难了 哪位大侠帮帮忙?光写编码那一部分也行,
展开
 我来答
520zhan123
2010-06-06 · 超过25用户采纳过TA的回答
知道答主
回答量:141
采纳率:0%
帮助的人:95.2万
展开全部
随便写了些
不满意你自己在改改吧
#include <stdio.h>
#include <malloc.h>
#include <memory.h>
#include <string.h>

typedef struct student{
int Num;
char name[12];
int age;
struct student* pNext;
}STUDENT,*PSTUDENT;
#define LEN sizeof(STUDENT)
PSTUDENT pHeader,pNail;
int n=0;
void PrintMenu();
bool ExistStudent(int Num);
void InsertInfo();
bool DeleteInfo(int Num);
bool UpdateInfo(int Num,PSTUDENT pNewInfo);
void PrintInfo();
int main()
{
PrintMenu();
int iSel=0;
while(1)
{
printf("输入操作选择:");
scanf("%d",&iSel);
switch(iSel)
{
case 0:
return 0;
case 1:
PrintInfo();
continue;
case 2:
InsertInfo();
continue;
case 3:
{
int num=0;
printf("输入要删除的学生学号:");
scanf("%d",&num);
if(DeleteInfo(num))
printf("删除成功!\n");
else
printf("删除失败!\n");
continue;
}
case 4:
{
int num=0;
printf("输入要修改的学生学号:");
scanf("%d",&num);
STUDENT stu={0};
printf("输入该学生的新信息(空格分隔):");
scanf("%d%s%d",&stu.Num,&stu.name,&stu.age);
if(UpdateInfo(num,&stu))
printf("修改成功!\n");
else
printf("修改失败!\n");
continue;
}
continue;
default:
continue;
}
}
return 0;
}
void PrintMenu()
{
printf("******操作菜单******\n");
printf("* 1. 打印学生信息\n");
printf("* 2. 添加学生信息\n");
printf("* 3. 删除学生信息\n");
printf("* 4. 修改学生信息\n");
printf("* 0. 退出系统\n");
printf("*********************\n");
}

void InsertInfo()
{
PSTUDENT pCur;
printf("请输入学生记录(各元素用空格分隔,输入学号为0时停止)\n");
while(true)
{
pCur = (PSTUDENT)malloc(LEN);
memset(pCur,NULL,LEN);
printf("==>:");
scanf("%d%s%d",&pCur->Num,pCur->name,&pCur->age);
if(pCur->Num==0)
break;
if(ExistStudent(pCur->Num))
{
printf("该学生信息已经存在!\n");
break;
}
if(n==0)
{

pNail=pHeader=pCur;
pHeader->pNext=NULL;
}
else
{
pNail->pNext=pCur;
pNail=pCur;
pCur->pNext=NULL;
}
n++;
}
}
bool DeleteInfo(int Num)
{
PSTUDENT pStu=pHeader;
if(!pStu)
return false;
for(pStu;pStu!=NULL;pStu=pStu->pNext)
{
if(Num==pStu->Num)
{

pHeader=pStu->pNext;
return true;
}
else if(pStu->pNext&&Num==pStu->pNext->Num)
{
pStu->pNext=pStu->pNext->pNext;
return true;
}
}
return false;
}
bool UpdateInfo(int Num,PSTUDENT pNewInfo)
{
PSTUDENT pStu=pHeader;
if(!pStu)
return false;
if(Num!=pNewInfo->Num&&ExistStudent(pNewInfo->Num))
return false;
for(pStu;pStu!=NULL;pStu=pStu->pNext)
{
if(Num==pStu->Num)
{
pStu->Num=pNewInfo->Num;
memset(pStu->name,0,sizeof(pStu->name));
strcpy(pStu->name,pNewInfo->name);
pStu->age=pNewInfo->age;
return true;
}
}
return true;
}
void PrintInfo()
{
PSTUDENT pStu=pHeader;
if(!pStu)
{
printf("没有学生信息!\n");
return;
}
for(pStu;pStu!=NULL;pStu=pStu->pNext)
printf("学号:%d 姓名:%s 年龄:%d\n",pStu->Num,pStu->name,pStu->age);
}
bool ExistStudent(int Num)
{
PSTUDENT pStu=pHeader;
if(!pStu)
return false;
for(pStu;pStu!=NULL;pStu=pStu->pNext)
{
if(Num==pStu->Num)
return true;
}
return false;
}
54759252
2010-06-04 · TA获得超过1385个赞
知道小有建树答主
回答量:1372
采纳率:0%
帮助的人:0
展开全部
1.匿名。。怎么联系你?
2.只有10分。。你让别人写500行代码的人情何以堪。。
3.需求、设计、详设、测试文档少说50页。。

其实你可以把自己的代码贴出来,把遇到的问题提出来,会有很多热心人帮你的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
MR_鸭嘴兽
2010-06-05
知道答主
回答量:28
采纳率:0%
帮助的人:0
展开全部
我也这么觉得~ 30有点少了 想要个满意的答复这种苦累活得要再多点吧~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
恬适还鲜丽灬海鸥0K
2010-06-06
知道答主
回答量:20
采纳率:0%
帮助的人:10.8万
展开全部
这个我一时也做不好,把邮箱贴出来,做好了给你发过去!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式