文档库 最新最全的文档下载
当前位置:文档库 › 学生成绩管理系统(基本C语言编写)

学生成绩管理系统(基本C语言编写)

学生成绩管理系统(基本C语言编写)
学生成绩管理系统(基本C语言编写)

//代码版权所有,不要copy,仅供参考学习。

#include "stdio.h" //标准输入输出函数库

#include "stdlib.h" //标准函数库

#include "string.h" //字符串函数库

#include "conio.h" //屏幕操作函数库

#define HEADER1 " ***************************学生成绩信息****************************** \n\n"

#define HEADER2 " 学号姓名计算机数学英语总分平均分名次\n\n"

#define FORMAT " %-10s %-10s %5d %5d %5d %5d %.3f %4d \n"

#define DATA p->data.num,p->https://www.wendangku.net/doc/c918609943.html,,p->data.egrade,p->data.mgrade,p->data.cgrade,p->data.total,p->data.a ve,p->data.mingci

int saveflag=0; //是否需要存盘的标志变量

//定义与学生有关的数据结构

typedef struct student //标记为student

{

char num[12]; //学号

char name[15]; //姓名

int cgrade; //计算机成绩

int mgrade; //数学成绩

int egrade; //英语成绩

int total; //总分

float ave; //平均分

int mingci; //名次

}sqlist;

//定义每条记录或结点的数据结构,标记为:node

typedef struct node

{

struct student data;//数据域

struct node *next; //指针域

}Node,*Link; //Node为node类型的结构变量,*Link为node类型的指针变量

void menu() //主菜单

{

system("cls"); //调用DOS命令,清屏.与clrscr()功能相同

printf(" \n");

printf(" 学生成绩管理信息系统主菜单\n\n");

printf(" **************************************************\n");

printf(" $ 1、添加记录6、统计记录$\n");

printf(" $ 2、删除记录7、排序记录$\n");

printf(" $ 3、查找记录8、保存记录$\n");

printf(" $ 4、修改记录9、显示记录$\n");

printf(" $ 5、插入信息0、退出系统$\n");

printf(" **************************************************\n");

}

void printheader() //格式化输出表头

{

printf(HEADER1);

printf(HEADER2);

}

void printdata(Node *pp) //格式化输出表中数据

{

Node* p;

p=pp;

printf(FORMA T,DA TA);

}

void Wrong() //输出按键错误信息

{

printf("\n\n\n\n\n**********Error:输入错误!请按任意键继续!!**********\n");

getchar();

}

void Nofind() //输出未查找此学生的信息

{

printf("\n=====>未查找此学生的信息!\n");

}

void Disp(Link l) //显示单链表l中存储的学生记录,内容为student结构中定义的内容{

Node *p;

p=l->next; //l存储的是单链表中头结点的指针,该头结点没有存储学生信息,指针域指向的后继结点才有学生信息

if(!p) //p==NULL,NUll在stdlib中定义为0

{

printf("\n=====>无学生的记录!\n");

getchar();

return;

}

printf("\n\n");

printheader(); //输出表格头部

while(p) //逐条输出链表中存储的学生信息

{

printdata(p);

p=p->next; //移动直下一个结点

}

getchar(); getchar();

}

/*作用:用于定位链表中符合要求的节点,并返回指向该节点的指针

参数:findmess[]保存要查找的具体内容; nameornum[]保存按什么查找;在单链表l中查找;*/

Node* Locate(Link l,char findmess[],char nameornum[])

{

Node *r;

if(strcmp(nameornum,"num")==0) //按学号查询

{

r=l->next;

while(r)

{

if(strcmp(r->data.num,findmess)==0) //若找到findmess值的学号

return r;

r=r->next;

}

}

else if(strcmp(nameornum,"name")==0) //按姓名查询

{

r=l->next;

while(r)

{

if(strcmp(r->https://www.wendangku.net/doc/c918609943.html,,findmess)==0) //若找到findmess值的学生姓名

return r;

r=r->next;

}

}

return 0; //若未找到,返回一个空指针

}

//输入字符串,并进行长度验证(长度

void stringinput(char *t,int lens,char *notice)

{

char n[255];

do

printf(notice); //显示提示信息

scanf("%s",n); //输入字符串

if(strlen(n)>lens)

printf("\n 超出长度范围,重新输入! \n"); //进行长度校验,超过lens值重新输入

}

while(strlen(n)>lens);

strcpy(t,n); //将输入的字符串拷贝到字符串t中

}

//输入分数,0<=分数<=100)

int numberinput(char *notice)

{

int t=0;

do

{

printf(notice); //显示提示信息

scanf("%d",&t); //输入分数

if(t>100 || t<0)

printf("\n 分数必须在0到100之间! \n"); //进行分数校验

}

while(t>100 || t<0);

return t;

}

//增加学生记录

void Add(Link l)

{

Node *p,*r,*s; //实现添加操作的临时的结构体指针变量

char ch,flag=0,num[12];

r=l;

s=l->next;

system("cls");

Disp(l); //先打印出已有的学生信息

while(r->next!=NULL)

r=r->next; //将指针移至于链表最末尾,准备添加记录

while(1) //一次可输入多条记录,直至输入学号为0的记录结点添加操作

{

while(1) //输入学号,保证该学号没有被使用,若输入学号为0,则退出添加记录操作

{

stringinput(num,12,"\n 输入学号(按“0”返回菜单!):"); //格式化输入学号并

flag=0;

if(strcmp(num,"0")==0) //输入为0,则退出添加操作,返回主界面

{

return;

}

s=l->next;

while(s) //查询该学号是否已经存在,若存在则要求重新输入一个未被占用的学号

{

if(strcmp(s->data.num,num)==0)

{

flag=1;

break;

}

s=s->next;

}

if(flag==1) //提示用户是否重新输入

{

getchar();

printf("=====>学号%s 存在,重试?(y/n):",num);

scanf("%c",&ch);

if(ch=='y'||ch=='Y')

continue;

else

return;

}

else

{

break;

}

}

p=(Node *)malloc(sizeof(Node)); //申请内存空间

if(!p)

{

printf("\n 内存空间申请失败! "); //如没有申请到,打印提示信息

return ; //返回主界面

}

strcpy(p->data.num,num); //将字符串num拷贝到p->data.num中

stringinput(p->https://www.wendangku.net/doc/c918609943.html,,15,"姓名:");

p->data.cgrade=numberinput("计算机[0-100]:"); //输入并检验分数,分数必须在0-100

p->data.mgrade=numberinput("数学[0-100]:"); //输入并检验分数,分数必须在0-100之间

p->data.egrade=numberinput("英语[0-100]:"); //输入并检验分数,分数必须在0-100之间

p->data.total=p->data.egrade+p->data.cgrade+p->data.mgrade; //计算总分

p->data.ave=(float)(p->data.total/3); //计算平均分

p->data.mingci=0;

r->next=p; //将新建的结点加入链表尾部中

p->next=NULL; //表明这是链表的尾部结点

r=p;

saveflag=1;

}

return ;

}

//按学号或姓名,查询学生记录

void Qur(Link l)

{

int select; //1:按学号查,2:按姓名查,其他:返回主界面(菜单)

char searchinput[20]; //保存用户输入的查询内容

Node *p;

if(!l->next) //若链表为空

{

system("cls");

printf("\n=====>无此学生的记录!\n");

getchar();

return;

}

system("cls");

printf("\n =====>1 按学号查询=====>2 按名字查询\n");

printf(" 请选择[1,2]:");

scanf("%d",&select);

if(select==1) //按学号查询

{

stringinput(searchinput,12,"请输入现有学生的学号:");

p=Locate(l,searchinput,"num");//在l中查找学号为searchinput值的节点,并返回节点的指针

if(p)

{

printheader();

printdata(p);

printf("按任意键返回!");

getchar();

}

else

Nofind();

getchar();

}

else if(select==2) //按姓名查询

{

stringinput(searchinput,15,"请输入现有学生的姓名:");

p=Locate(l,searchinput,"name");

if(p)

{

printheader();

printdata(p);

printf("按任意键返回!");

getchar();

}

else

Nofind();

getchar();

}

else

Wrong();

getchar();

}

//删除学生记录:先找到保存该学生记录的节点,然后删除该节点

void Del(Link l)

{

int sel;

Node *p,*r;

char findmess[20];

if(!l->next)

{

system("cls");

printf("\n=====>无此学生记录!\n");

getchar();

return;

}

system("cls");

Disp(l);

printf("\n =====>1 按学号删除=====>2 按姓名删除\n");

printf(" 请选择[1,2]:");

scanf("%d",&sel);

if(sel==1)

{

stringinput(findmess,12,"请输入现有学生的学号:");

p=Locate(l,findmess,"num");

if(p)

{

r=l;

while(r->next!=p)

r=r->next;

r->next=p->next; //将p所指节点从链表中去除

free(p); //释放内存空间

printf("\n=====>删除成功!\n");

getchar();

saveflag=1;

}

else

Nofind();

getchar();

}

else if(sel==2) //先按姓名查询到该记录所在的节点{

stringinput(findmess,15,"请输入现有学生的姓名");

p=Locate(l,findmess,"name");

if(p)

{

r=l;

while(r->next!=p)

r=r->next;

r->next=p->next;

free(p);

printf("\n=====>删除成功!\n");

getchar();

saveflag=1;

}

else

Nofind();

getchar();

}

else

Wrong();

getchar();

}

//修改学生记录。先按输入的学号查询到该记录,然后提示用户修改学号之外的值,学号不能修改

void Modify(Link l)

{

Node *p;

char findmess[20];

if(!l->next)

{

system("cls");

printf("\n=====>无此学生记录!\n");

getchar();

return;

}

system("cls");

printf("修改学生记录!");

Disp(l);

stringinput(findmess,12,"请输入现有学生的学号:"); //输入并检验该学号

p=Locate(l,findmess,"num"); //查询到该节点

if(p) //若p!=NULL,表明已经找到该节点

{

printf("学号:%s,\n",p->data.num);

printf("姓名:%s,",p->https://www.wendangku.net/doc/c918609943.html,);

stringinput(p->https://www.wendangku.net/doc/c918609943.html,,15,"输入新的姓名:");

printf("计算机:%d,",p->data.cgrade);

p->data.cgrade=numberinput("计算机[0-100]:");

printf("数学:%d,",p->data.mgrade);

p->data.mgrade=numberinput("数学[0-100]:");

printf("英语:%d,",p->data.egrade);

p->data.egrade=numberinput("英语[0-100]:");

p->data.total=p->data.egrade+p->data.cgrade+p->data.mgrade;

p->data.ave=(float)(p->data.total/3);

p->data.mingci=0;

printf("\n=====>修改成功!\n");

Disp(l);

saveflag=1;

}

else

Nofind();

getchar();

}

//插入记录:按学号查询到要插入的节点的位置,然后在该学号之后插入一个新节点。

void Insert(Link l)

{

Link p,v,newinfo; //p指向插入位置,newinfo指新插入记录

char ch,num[12],s[12]; //s[]保存插入点位置之前的学号,num[]保存输入的新记录的学号int flag=0;

v=l->next;

system("cls");

Disp(l);

while(1)

{

stringinput(s,12,"按学号查询到要插入的节点的位置:");

flag=0;v=l->next;

while(v) //查询该学号是否存在,flag=1表示该学号存在

{

if(strcmp(v->data.num,s)==0) {flag=1;break;}

v=v->next;

}

if(flag==1)

break; //若学号存在,则进行插入之前的新记录的输入操作

else

{

getchar();

printf("\n=====>学号%s 存在,重试?(y/n):",s);

scanf("%c",&ch);

if(ch=='y'||ch=='Y')

{

continue;

}

else

{

return;

}

}

}

//以下新记录的输入操作与Add()相同

stringinput(num,12,"请输入新的学号! :");

v=l->next;

while(v)

{

if(strcmp(v->data.num,num)==0)

{

printf("=====>Sorry,新学号:'%s' 已存在!\n",num);

printheader();

printdata(v);

printf("\n");

getchar();

return;

}

v=v->next;

}

newinfo=(Node *)malloc(sizeof(Node));

if(!newinfo)

{

printf("\n 内存申请失败! "); //如没有申请到,打印提示信息

return ; //返回主界面

}

strcpy(newinfo->data.num,num);

stringinput(newinfo->https://www.wendangku.net/doc/c918609943.html,,15,"姓名:");

newinfo->data.cgrade=numberinput("计算机[0-100]:");

newinfo->data.mgrade=numberinput("数学[0-100]:");

newinfo->data.egrade=numberinput("英语[0-100]:");

newinfo->data.total=newinfo->data.egrade+newinfo->data.cgrade+newinfo->data.mgrade;

newinfo->data.ave=(float)(newinfo->data.total/3);

newinfo->data.mingci=0;

newinfo->next=NULL;

saveflag=1; //在main()有对该全局变量的判断,若为1,则进行存盘操作将指针赋值给p,因为l中的头节点的下一个节点才实际保存着学生的记录

p=l->next;

while(1)

{

if(strcmp(p->data.num,s)==0) //在链表中插入一个节点

{

newinfo->next=p->next;

p->next=newinfo;

break;

}

p=p->next;

}

Disp(l);

printf("\n\n");

getchar();

}

//统计该班的总分第一名和单科第一,和各科不及格人数

void Tongji(Link l)

{

Node *pm,*pe,*pc,*pt; //用于指向分数最高的节点

Node *r=l->next;

int countc=0,countm=0,counte=0; //保存三门成绩中不及格的人数

fflush(stdin);

if(!r)

{

system("cls");

printf("\n=====>无此学生记录!\n");

getchar();

return ;

}

system("cls");

Disp(l);

pm=pe=pc=pt=r;

while(r)

{

if(r->data.cgrade<60) countc++;

if(r->data.mgrade<60) countm++;

if(r->data.egrade<60) counte++;

if(r->data.cgrade>=pc->data.cgrade) pc=r;

if(r->data.mgrade>=pm->data.mgrade) pm=r;

if(r->data.egrade>=pe->data.egrade) pe=r;

if(r->data.total>=pt->data.total) pt=r;

r=r->next;

}

printf("\n------------------------------统计结果--------------------------------\n");

printf("计算机不及格:%d (人)\n",countc);

printf("数学不及格:%d (人)\n",countm);

printf("英语不及格:%d (人)\n",counte);

printf("----------------------------------------------------------------------\n");

printf("总分最高分姓名:%s 分数为:%d\n",pt->https://www.wendangku.net/doc/c918609943.html,,pt->data.total);

printf("英语最高分姓名:%s 分数为:%d\n",pe->https://www.wendangku.net/doc/c918609943.html,,pe->data.egrade);

printf("数学最高分姓名:%s 分数为:%d\n",pm->https://www.wendangku.net/doc/c918609943.html,,pm->data.mgrade);

printf("计算机最高分姓名:%s 分数为:%d\n",pc->https://www.wendangku.net/doc/c918609943.html,,pc->data.cgrade);

printf("\n\n按任意键返回!");

getchar();

}

//利用插入排序法实现单链表的按总分字段的降序排序,从高到低

void Sort(Link l)

{

Link ll;

Node *p,*rr,*s;

int i=0;

if(l->next==NULL)

{

system("cls");

printf("\n=====>无此学生记录!\n");

getchar();

return ;

}

ll=(Node*)malloc(sizeof(Node)); //用于创建新的节点

if(!ll)

{

printf("\n 内存申请失败! "); //如没有申请到,打印提示信息

return ; //返回主界面

}

ll->next=NULL;

system("cls");

Disp(l); //显示排序前的所有学生记录

p=l->next;

while(p)

{

s=(Node*)malloc(sizeof(Node)); //新建节点用于保存从原链表中取出的节点信息

if(!s)

{

printf("\n 内存申请失败! "); //如没有申请到,打印提示信息

return ; //返回主界面

}

s->data=p->data; //填数据域

s->next=NULL; //指针域为空

rr=ll;

//rr链表于存储插入单个节点后保持排序的链表,ll是这个链表的头指针,每次从头开始查找插入位置

while(rr->next!=NULL && rr->next->data.total>=p->data.total)

{

rr=rr->next;

} //指针移至总分比p所指的节点的总分小的节点位置

if(rr->next==NULL) //若新链表ll中的所有节点的总分值都比p->data.total大时,就将p所指节点加入链表尾部

rr->next=s;

else //否则将该节点插入至第一个总分字段比它小的节点的前面

{

s->next=rr->next;

rr->next=s;

}

p=p->next; //原链表中的指针下移一个节点

}

l->next=ll->next; //ll中存储是的已排序的链表的头指针

p=l->next; //已排好序的头指针赋给p,准备填写名次

while(p!=NULL) //当p不为空时,进行下列操作

{

i++; //结点序号

p->data.mingci=i; //将名次赋值

p=p->next; //指针后移

}

Disp(l);

saveflag=1;

printf("\n =====>排序完成!\n");

}

//数据存盘,若用户没有专门进行此操作且对数据有修改,在退出系统时,会提示用户存盘void Save(Link l)

{

FILE* fp;

Node *p;

int count=0;

fp=fopen("c:\\student","wb"); //以只写方式打开二进制文件

if(fp==NULL) //打开文件失败

{

printf("\n=====>打开文件失败!\n");

getchar();

return ;

}

p=l->next;

while(p)

{

if(fwrite(p,sizeof(Node),1,fp)==1)//每次写一条记录或一个节点信息至文件

{

p=p->next;

count++;

}

else

{

break;

}

}

if(count>0)

{

getchar();

printf("\n\n\n\n\n=====>保存文件完成,总体保存的记录是:%d\n",count);

getchar();

saveflag=0;

}

else

{

system("cls");

printf("连接为空,没有保存学生的记录!\n");

getchar();

}

fclose(fp); //关闭此文件

}

void main()

{

Link l; //定义链表

FILE *fp; //文件指针

int select; //保存选择结果变量

char ch; //保存(y,Y,n,N)

int count=0; //保存文件中的记录条数(或结点个数)

Node *p,*r; //定义记录指针变量

l=(Node*)malloc(sizeof(Node));

if(!l)

{

printf("\n 内存申请失败"); //如没有申请到,打印提示信息

return ; //返回主界面

}

l->next=NULL;

r=l;

fp=fopen("C:\\student","ab+"); //以追加方式打开一个二进制文件,可读可写,若此文件不存在,会创建此文件

if(fp==NULL)

{

printf("\n=====>不能打开文件!\n");

exit(0);

}

while(!feof(fp))

{

p=(Node*)malloc(sizeof(Node));

if(!p)

{

printf(" 内存申请失败!\n"); //没有申请成功

exit(0); //退出

}

if(fread(p,sizeof(Node),1,fp)==1) //一次从文件中读取一条学生成绩记录

{

p->next=NULL;

r->next=p;

r=p; //r指针向后移一个位置

count++;

}

}

fclose(fp); //关闭文件

printf("\n=====>打开文件成功,总计记录是: %d.\n",count);

menu();

while(1)

{

system("cls");

menu();

p=r;

printf("\n 请输入你的选择(0-9):"); //显示提示信息

scanf("%d",&select);

if(select==0)

{

if(saveflag==1) //若对链表的数据有修改且未进行存盘操作,则此标志为1

{

getchar();

printf("\n=====>是否保存修改记录到文件?(y/n):");

scanf("%c",&ch);

if(ch=='y'||ch=='Y')

Save(l);

}

printf("=====>谢谢使用!");

getchar();

break;

}

switch(select)

{

case 1:Add(l);break; //增加学生记录

case 2:Del(l);break; //删除学生记录

case 3:Qur(l);break; //查询学生记录

case 4:Modify(l);break; //修改学生记录

case 5:Insert(l);break; //插入学生记录

case 6:Tongji(l);break; //统计学生记录

case 7:Sort(l);break; //排序学生记录

case 8:Save(l);break; //保存学生记录

case 9:Disp(l); break;

//显示学生记录

default: Wrong();getchar(); //按键有误,必须为数值0-9 }

}

}

C语言课程设计-学生成绩管理系统-完整版

#include<> #include<> #include<> #include<> /* strcmp函数原型包含*/ #define N 100 /*定义最大学生人数为100*/ struct student /*学生结构体定义*/ { char no[11]; /*学号,10位*/ char name[10];/*姓名,3个汉字*/ char grade[10];/*班级*/ char pro[20];/*专业*/ float score[5];/*储存5门功课的成绩*/ float ave;/*储存平均分*/ int year;/*入学年*/ }stu[N]; int num; void panduani(int); /*通过i的值,判断信息要查找的信息是否存在*/ void output(); /*输出学生成绩函数(公共函数)*/ void init(); /*系统初始化函数*/ void newfile(); /*建立新的数据文件*/ void read1(); /*从数据文件中读取数据*/ void weihu(); /*维护界面函数*/ void new1(); /*新增一个学生成绩函数*/ void xiugai(); /*修改学生成绩*/ void xgcj(int); /*修改成绩*/

void delete1(); /*删除学生信息函数*/ void tongji(); /*统计界面函数*/ void tongji1(); /*计算每个学生平均分*/ void tongji2(); /*计算每门课程的平均分*/ void paixu1(); /*排序函数*/ void paino(); /*按学号排序*/ void paiave(); /*按平均分排序*/ void paidkcj(); /*按单科成绩排序*/ void change(int,int); /*交换结构体数组中的两个记录*/ void outputx(int); /*选择输出单科成绩*/ void find1(); /*查找界面函数*/ int find(char sno[]); /*按学号查找*/ int findname(char cname[]);/*按姓名查找*/ void findyear(int cyear); /*按入学年查找*/ void save(); /*保存文件*/ void stop(); /*停顿函数*/ void stop() /*停顿函数(公共函数)*/ { printf("Press Any Key To Continue...\n"); getchar(); } void output() /*输出学生成绩函数(公共函数)*/ { int i,j;

学生管理系统 C语言

C/C++程序设计 课程设计报告 专业: 班级: 学号: 姓名: 版本号: 时间:

目录 1 概述 (2) 1.1目的 (2) 1.2计划 (2) 2 课程设计过程及结果 (3) 2.1编程环境及工具 (3) 2.2排序与简单分析 (3) 2.3综合设计 (3) 2.3.1 功能实现 (3) 2.3.2 程序异常处理 (5) 2.3.3 特色功能 (5) 3 课程设计总结 (6) 3.1课程设计计划执行情况 (6) 3.2我理解的C++ (6) 3.3改进设想 (6) 附录关键代码 (6)

原创声明:本课程设计报告及相应的软件程序的全部内容均为本人独立完成,如有抄袭,愿承担相应后果。 声明人___________________ 学号:__________________

1概述 1.1 目的 1、熟悉c语言的编译环境 2、掌握c语言的基本操作 3、回顾并加深对C/C++程序设计相关知识的理解,能够用C/C++独立完成简单数据管 理软件的编写 4、锻炼同学思维强度与能力 5、培养同学认真态度和刻苦的精神 1.2 计划 用Microsoft Visual C++ 6.0进行编译,利用之前学过的课程知识和查询资料等方法完成题目的设计,用Debug进行调试。 1.回顾c语言编程基本内容,了解各种数据类型及掌握各种语句的结构类型。 2.完成一个简单任务:排序与简单分析把一个完全由小写字母组成字符串按照每个字母的出现次数从低到高重新排序。出现次数相同的按照字母顺序排列,(a最前,z最后)。 输入:任意一个字符串(小写,长度小于255) 输出:重新排序后的结果 例如,输入:aassdfkjiowea回车 则输出为:defijkowssaaa 3.综合设计:设计实现学生成绩管理软件。 参考下面的数据,用C/C++设计一个简单的学生成绩管理软件,实现基本的功能。 学生信息文件(A.TXT)及其内容(示意): 学号姓名性别班级 200800800901 张三男电子0801 200800820902 李四女通信0801 200800800903 王五女电子0802 200800820904 赵六男通信0801 …… 课程信息(B.TXT)及其内容(示意): 课程编号课程名称学分 C01 大学英语 4 C02 高等数学 4 C03 C++程序设计 3 …… 学生成绩信息文件(C.TXT)及其内容(示意,成绩保存使用浮点数): 学号课程成绩 200800800901 C01 89 200800800902 C01 68.5 200800800901 C02 45.5 200800800903 C02 78 实现数据录入显示功能查询功能数据删除、整理功能排序功能。

C语言程序设计学生成绩管理系统实验报告

计算机学院 C语言程序设计报告书设计名称:学生成绩管理系统 专业:软件工程 指导老师: 班级: 姓名: 学号: 座号: 2011-6-15

一、实验目的 1.在编辑应用程序过程中,逐步加深对C语言编程的理解; 2.加强实践的能力,动手能力,同时进一步对所学的知识 进行巩固; 3.培养初步编程的能力,为以后的学习奠定基础。 二、实验内容 运用所学的C语言知识编辑一个应用程序:学习成绩管理系统 三.系统软件环境: 本程序主要运行在:Visual C++ 6.0 Turbo C/C++ 3.0 四.课程设计题目: 学生成绩管理系统 程序说明:有N个学生,每个学生的数据包含学号(不重复)、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统,使之能提供以下功能: (1)主菜单

(2)各菜单项功能 ①成绩录入:输入学生的学号、姓名及三门课的成绩; ②成绩查询: *按学号查询学生记录。 ③成绩统计: *计算学生的平均分; *根据学生的平均分高低,对学生的数据进行排序后输出; ④退出系统:退出整个系统(即主菜单) 。 五.数据结构设计描述: ↓ ↓

六.各变量的定义和作用 int num; /*定义学号,变量为整型*/ char name; /*定义姓名,变量为字符型*/ int score; /*定义课程的成绩,变量为整型*/ float average; /*定义平均分,变量为浮点型*/ 七.系统各函数的功能,、相互调用关系 1.函数实现功能说明: (1)menu函数 是定义一个菜单函数,其功能在于输出菜单界面供使用者选择。 (2)input函数 是定义用于输入学生信息。 (3)select 函数 是定义用于查询学生信息。包括学号、姓名及各科成绩。(4)statistics 函数 计算学生的平均分。 根据学生的平均分高低,对学生的数据进行排序输出。2.相互调用关系: Main函数调用menu函数。 Menu 函数可以调用input 函数、select函数和statistics函数八.心得体会

c语言学生成绩管理系统含源代码

C 语言程序设计作业 一设计项目:学生成绩管理系统 二总体设计: 2:模块功能说明: 1 输入功能:输入学生姓名学号及成绩。 2 查看功能:输出姓名学号及各科成绩。 3 查询功能:通过学号查询学生姓名及各科成绩。 4 统计功能:统计班级学生及格率,优秀率,各个学生成绩方差等。 5 修改功能:通过输入学号修改指定学生的错误信息。 6添加功能:添加学生信息。 7删除功能:通过输入学号输入指定学生信息。 8保存功能:将学生信息保存。 9 退出系统。 3:主要函数之间的调用关系及各自功能: 主要函数的函数原型 void inputscore(void); void savescore(void); void avergescore(void); void modifyscore(void); void lookscore(void); void searchscore(void); void statistic(void); void add(void); void modify(void);

void delscore(void); void menu(void); i.在菜单界面输入1,调用函数inputscore( )实现输入学生成绩信息功能。ii.在菜单界面2,调用函数lookscore( )实现学生成绩按平均分高低排序输。 出,同时lookscore()函数调用avergescore()函数实现各个学生平均分的计 算。 iii.在菜单界面输入3,调用searchscore()函数实现通过学号查找学生成绩信息功能。 iv.在菜单界面输入4,调用statistic()函数输出班级及格率,优秀率,学生成绩方差,不及格学生名单。 v.在菜单界面输入5,调用modify()函数实现通过学号修改学生成绩的功能vi.在菜单界面输入6,调用add()函数实现添加学生成绩。 vii.在菜单界面输入7,调用delscore()函数实现删除指定学生成绩。 viii.在菜单界面输入8,调用savescore()函数将学生成绩信息保存。 ix.在菜单界面输入9,退出成绩管理系统。

学生成绩管理系统代码c语言编写

/* Note:Your choice is C IDE */ #include "stdio.h" #include "stdlib.h" #include "string.h" typedef struct student // 定义学生 { char name[10]; int number; char sex[2]; int math; int eglish; int clanguge; int average; } student; typedef struct unit // 定义接点 { student date; struct unit * next; } unit; unit * build() // 建立链表并返回指针 { unit *p; if ((p =(unit * )malloc( sizeof (unit))) ==NULL) { printf( "=>初始化失败!"); return 0; } else { p-> next =NULL; p-> date . number=0; // 头结点存放学生人数printf( " 初始化成功!\n" ); return p; } } void add(unit * head) // 增加学生 { unit *p,*q; int m,n =0; q=head-> next; p=(unit * )malloc( sizeof (unit)); printf( "=>请输入新生姓名!\n" ); gets(p ->date . name);fflush(stdin); printf( "=>请输入学号!\n" ); while (n ==0)

c语言成绩管理系统

C语言综合实验设计报 告 C语言成绩管理系统 班级:************ 任课教师:******** 实验老师:******** 小组成员:姓名:******** 姓名:******** 姓名:********

一、实验目的 开发一个c语言成绩管理系统来统计分析大家的c语言学习情况。本程序主要实现对大家的学号,姓名,c语言平时成绩、实验成绩、期末考试成绩,综合评价的成绩。以及通过求平均分,方差,标准差来对大家的学习情况进行分析总结。 二、设计分工说明 组长:********** 组员:****** 组员:******* 本程序开发过程,小组成员分工如下: 录入学生成绩的数据结构和名称由全体组员共同商讨确定; 学生成绩的录入和显示在屏幕上的模块由组员***完成; 学生成绩的方差的计算和排序模块由组员***完成; 学生成绩的保存函数设计和主调用函数的模块的设计由组员***完成。 三、问题概述 要实现这样一个学生成绩信息管理系统,程序的开发中应该涉及到以下的内容: 1、编写一个统一的函数来调用各功能函数; 2、处理新增学生信息的操作; 3、显示输出全部记录的信息; 4、计算学生成绩的平均值、方差和标准差的函数设计; 5、根据学生记录的某一属性对记录排序; 6、对所录入的信息的保存函数设计; 同时,还应有合适的数据变量和结构参与各功能的运算。 四、问题分析 由于信息管理系统中的数据通常是不确定的多条记录,并且我们小组成员的能力有限,所以只是选择了管理一个班级(数据有限)的程序设计。 程序设计中主要是采用了结构体的数据形式,主函数调用,文件的写入,以及子函数配合的组合设计。主要录入了本班学生的学号、姓名、平时成绩、实验成绩、期末成绩等。其中由于我们学校的学号比较长(由15位),因此用双精度实数类型(double)类型,但在输出的时候控制称“15.0lf”的形式输出;姓名为字符型(char);平时成绩、实验成绩、期末成绩等都是单精度实数类型(float)。 由于信息管理这类系统,数据通常是不确定多条记录,故本系统应采用链表的结构来维持整个数据集,同时,根据题目要求,学生成绩信息包含学号、姓名、班级、计算机、专业英语、总分等属性,各属性中,学号为整型,姓名和班级为字符串,计算机、专业英语和总分应为浮点型,对一个学生记录应设置一个结构体,同时学生记录链表应包含这样的结构体,以及指向下一条记录的指针。为了便于各功能模块对整个链表的操作,链表的头指针要定义为全局变量。 下面具体分析各功能模块操作: 新建录入函数实际上就是一个for循环和标准输入输出函数的组合,现要求输入人数,然后就是标准输入输出进行数据的输入。最后再综合算一下总评成绩。完成数据的输入。 显示信息函数实际就是for语句和标准输出函数的结合,完成对刚才录入数据的显示输出。

最新学生信息管理系统C语言编程

学生信息管理系统C语言编程 【问题描述】 学生信息的管理是每个学校必须具有的管理功能,主要是对学生的基本情况及学习成绩等方面的管理。该系统模拟一个简单的学生管理系统,要求对文件中所存储的学生数据进行各种常规操作,如:排序、查找、计算、显示等功能。通过此课题,熟练掌握文件、数组、结构体的各种操作,在程序设计中体现一定的算法思想,实现一个简单的学生信息管理系统。【基本要求】 (1)学生信息包括: 学生基本信息文件(student.txt)(注:该文件不需要编程录入数据,可用文本编辑工具直接生成)的内容如下: (2)学生成绩基本信息文件(score.dat)及其内容如下:((注:该文件内容需要编程录入数据,具体做法见下面的要求) 学号课程编号课程名称学分平时成绩实验成绩卷面成绩综合成绩实得学分(3)需要实现的功能 1)数据录入和计算功能:对score.dat进行数据录入,只录入每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据,综合成绩、实得学分由程序根据条件自动运算。 综合成绩的计算:如果本课程的实验成绩为-1,则表示无实验,综合成绩=平时成绩*30%+卷面成绩*70%;如果实验成绩不为-1,表示本课程有实验,综合成绩=平时成绩*15%+实验成绩*15%+卷面成绩*70% 。 实得学分的计算:采用等级学分制,综合成绩在90-100之间,应得学分=学分*100%;综合成绩在80-90之间,应得学分=学分*80%;综合成绩在70-80之间 ,应得学分=学分*75%;综合成绩在60-70之间,应得学分=学分*60%;综合成绩在60以下 ,应得学分=学分*0%。 2)查询功能:分为学生基本情况查询和成绩查询两种 (1)学生基本情况查询: ①、输入一个学号或姓名(可实现选择),查出此生的基本信息并显示输出,格式如下: ②、输入一个宿舍号码,可查询出本室所有的学生的基本信息并显示输出。(格式如上所示) (2)成绩查询: ①、输入一个学号时,查询出此生的所有课程情况,格式如下: 学号:xx 姓名:xxxxx 课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx 课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx 课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx …………………… 共修:xx科,实得总学分为: xxx (3)删除功能: 提供待删除学生的学号,则在student.txt和score.dat中删除所有与该学生有关的信息。(4)排序功能:能实现选择按综合成绩或实得学分升序或降序排序并显示数据。 【程序设计的具体说明】 (1)将与两个文件对应的信息分别定义两种结构体类型来表示,也可以用类来定义;(2)对score.dat文件的写入,从键盘上输入的是前七项,后两项数据项根据计算方法算出后,得到完整的结构体信息,作为一个整体写入(可调用write函数)。

用c语言编写一个成绩管理系统

程序说明:有N个学生,每个学生的数据包含学号(不重复)、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统,使之能提供以下功能:(1)主菜单学生成绩管理系统 1、成绩录入 2、成绩查询 3、成绩统计 4、退出(2)各菜单项功能① 成绩录入:输入学生的学号、姓名及三门课的成绩;② 成绩查询:(至少一种查询方式)。 v 按学号查询学生记录。 v 查询不及格学生的记录。③成绩统计: v 计算学生的平均分; v 根据学生的平均分高低,对学生的数据进行排序后输出; v 对学生单科成绩排序,输出学生姓名与该科成绩;④退出系统:退出整个系统(即主菜单)。(3)结构体数组: #define N 30 struct student {int num; /* 定义学号*/ char name[20]; /* 定义姓名*/ float score[3]; /* 定义存贮三门课成绩的数组*/ float average; /* 定义平均成绩*/ };struct student stu[N]; /* 定义结构体数组,存贮多个学生的记录*/ . #include #include #include struct student { int num; char name[20]; float score[4]; float average; } stu[10000]; long t,max; bool unpass[1000]; FILE *fstu=fopen("stud.dat","at+"); int init() { int no,i; float s[4],ave; char nam[20]; while (!feof(fstu)) { fscanf(fstu,"%d",&no); fscanf(fstu,"%s",nam); fscanf(fstu,"%f%f%f%f",&s[1],&s[2],&s[3],&ave);

学生信息管理系统C语言课程设计报告

通信工程C语言强化训练实验报告 评语: 教师签字: 东北大学秦皇岛分校

学生信息管理系统 强化训练目的 C语言基本知识的巩固和综合运用。基本数据类型、基本控制结构、数组、指针、函数、结构体和共用体。 C语言高级编程。链表基本操作、文件的基本操作、图形和声音制作。 程序的结构化设计。 编辑、设置、编译、调试、执行。 C语言结合实际问题的综合设计。 设计题目功能 通过计算机对数据文件的存储和读取,对学生信息进行管理,能够完成学生信息的增、删、改、查找等功能。 设计题目要求 名片信息至少包括学号、姓名、性别、出生日期、宿舍号等基本信息。 具体要求包括: 1有主界面和主菜单

2以班级为单位用链表存放学生信息 3可以实现按学号、姓名、宿舍号查询和统计并在屏幕上输出查询结果 4友好的界面和操作提示 [A]信息录入 [D]信息删除 [F]信息查询 [Q]退出 4、程序流程图 总体设计 详细设计 【程序】主函数 void main() /*主函数即用户的操作界面*/ { system("color 1E"); /*设计文本颜色*/ int b,flag=0; /*声明局部变量*/ while(1) /*循环输出以下信息*/ { printf("\n\t\t\t欢迎来到学生成绩管理系统!\n"); printf("\n\t\t\t\t ###制作\n"); printf("\t\t\t-------------------------------\n");

printf("\t\t\t1.键入学生的信息\n\n"); /*键入学生的信息*/ printf("\t\t\t2.查看录入的学生信息\n\n"); /*查看录入的学生信息*/ printf("\t\t\t3.按姓名查看学生的信息\n\n"); /*按姓名查看学生的信息*/ printf("\t\t\t4.按学号查看学生的信息\n\n"); /*按学号查看学生的信息*/ printf("\t\t\t5.按宿舍号查看学生的信息\n\n"); /*按宿舍号查看学生的信息*/ printf("\t\t\t6.删除学生信息\n\n"); /*删除学生信息*/ printf("\t\t\t7.保存学生信息\n\n"); /*保存*/ printf("\t\t\t8.打开文件\n\n"); /*打开文件*/ printf("\t\t\t9.我的个人信息\n\n"); /*我的个人信息*/ printf("\t\t\t0.退出\n\n"); /*退出*/ printf("\t\t\t请输入你的选择:"); scanf("%d",&b); switch(b) { case 1:type();break; /*调用键入学生信息函数*/ case 2:look();break; /*调用查看函数*/ case 3:search_name();break; /*调用姓名查看函数*/ case 4:search_number();break; /*调用学号查看函数*/ case 5: search_dorm();break; /*调用宿舍号查看函数*/ case 6:del();break;/*调用删除函数*/ case 7:save();break;/*调用保存函数*/ case 8:see();break;/*调用打开文件函数*/ case 9:welcome();break;/*调用我的个人信息函数*/ case 0:flag=1;break;/*退出SWITCH语句*/ default :printf("错误!"); } if(flag) break; /*如果选择0就退出循环*/ } } 5、程序设计源代码 #include"stdio.h" #include"conio.h" #include"string.h" #include"stdlib.h" void look(); /*声明查看函数*/ void save(); /*声明保存函数*/ void search_name(); /*声明按姓名查看函数*/ void search_number(); /*声明按学号查看函数*/ void search_dorm(); /*声明按宿舍号查看函数*/ void del(); /*声明删除函数*/ int openl(); /*声明打开函数*/ void welcome(); /*声明我的个人信息函数*/ void type(); /*声明输入函数*/

学生成绩管理系统基本C语言编写

//代码版权所有,不要 #include "stdio.h" #include "stdlib.h" #include "string.h" #include "conio.h" copy,仅供参考学习。//标准输入输出函数库 //标准函数库 //字符串函数库 //屏幕操作函数库 #define p->data.num,p->https://www.wendangku.net/doc/c918609943.html,,p->data.egrade,p->data.mgrade,p->data.cgrade,p->data.total,p->data.a ve,p->data.mingci int saveflag=0; //是否需要存盘的标志变量 //定义与学生有关的数据结构 typedef struct student { char num[12]; char name[15]; int cgrade; int mgrade; int egrade; int total; float ave; int mingci; }sqlist; //定义每条记录或结点的数据结构,标记为:node typedef struct node { struct student data;// 数据域 struct node *next; //指针域 }Node,*Link; //Node 为node 类型的结构变量,*Link 为node 类型的指针变量 void menu() //主菜单 { system("cls"); //调 用 DOS 命令,清屏.与clrscr() 功能相同 printf(" \n"); printf(" 学生成绩管理信息系统主菜单\n\n"); printf(" **************************************************\n"); printf(" $ 1 、添加记录6、统计记录$\n"); #define HEADER1 " ********************** ***** 学生成绩信息 ****************************** \n\n" #define HEADER2 " 学号姓名计算机数学英语总分平均分名次\n\n" #define FORMAT " %-10s %-10s %5d %5d %5d %5d %.3f %4d \n" DATA //标记为student //学号 //姓名//计 算机成绩// 数学成绩// 英语成绩 //总分 //平均分 //名次

c语言课程设计学生成绩管理系统

目录 ——学生成绩管理程序题目要求 (2) 设计目的 (2) 总体设计 (3) 详细设计 (3) 调试与测试 (12) 源程序 (14) 总结 (30)

学生成绩管理程序 一.题目要求 1.问题描述: 对在校学生几门课程的考试成绩进行统一管理.每个学生记录包括学号,姓名,年龄,数学,英语,物理成绩,默认以学号为序存放. 2.要求: (1)一个文件按以班为单位存储学生记录. (2)将允许的操作分为四种,以A,B ,C,D,E,F为标志: A:插入一个学生记录; B:修改学生记录; C:删除一个学生记录; D:查找一个学生记录; E:浏览学生成绩: F:退出 3.计算学生的总成绩. 4.按学号排序输出全班学生成绩表 . 二.设计目的 根据题目要求,由于学生信息是存放在文件中,所以应提供文件的输入,输出等操作;在程序中需要浏览学生的信息,应提供显示,查找,排序等操作;另外还应提供键盘式选择菜单实现功能选择.

三.总体设计 根据上面的需求分析,可以将这个系统分为以下模块:输入模块,修改模块,删除模块,查找模块,显示模块. 四.详细设计 1.主函数: 主函数一般设计得比较简单,只提供输入,处理和输出部分的函数调用,其中各功能模块用菜单方式选择. 流程图:

[程序]: //#include "head.h" int menu_select() { char c; printf("\n\n"); printf(" | 1. 增加学生记录 5.统计信息|\n"); printf(" | 2. 查询学生记录 6.打开文件|\n"); printf(" | 3. 修改学生记录7.保存文件|\n"); printf(" | 4. 学生纪录排序8.显示记录|\n"); printf(" | 0. 退出系统|\n"); printf("\n\n"); printf("请选择(0-8):"); c=getchar(); getchar(); return (c-'0'); } 2.输入模块: [分析]: 单独看各数据信息,学号,姓名是字符型,可以采用字符型数组;分数为整数,采用整数;数据信息存放在文件中,一条记录对应一个学生,既符合习惯又方便信息管理. 如果要存放若干学生信息就用结构体数组: void addrecord(student stud[]) { int i=0,j,num; char str[5]; if(numstus!=0) {

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

青岛农业大学 课程设计报告 题目:学生成绩管理系统 姓名:田世强元成张斌 学院:工程系 专业:电子信息工程技术 班级:2班 学号:200806013 200806015 200806023 指导教师:曹红波 2010年9月16日 六详细设计(各功能模块的具体实现算法——流程图) (3)

一设计目的 进一步加深、巩固所学专业课程(《C语言程序设计》)的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。掌握运用C语言独立地编写、调试应用程序和进行其它相关设计的技能。 二课程设计的内容 对学生信息(包括学号、语文、数学、英语、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出.将学生的成绩信息进行记录,信息内容包含:(1)学生的学号(2)学生的姓名(3)学生的成绩。假设,现收集到了一个班学生的所有成绩信息,要求用C语言编写一个简单的成绩管理系统,可进行录入、查询、修改和浏览等功能。学习相关开发工具和应用软件,熟悉系统建设过程。 三课程设计的要求与数据 1、用C语言实现系统; 2、对学生信息(包括学号、姓名、语文、数学、英语、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出. 3、学生信息包括:其内容较多,为了简化讨论,要求设计的管理系统能够完成以下功能: (1) 每一条记录包括一个学生的学号、姓名、3门课成绩 (2)、成绩信息录入功能:(成绩信息用文件保存,可以一次完成若干条记 录的输入。) (3)、成绩信息显示浏览功能:完成全部学生记录的显示。 (4)、查询功能:完成按姓名查找学生记录,并显示。 (5)成绩信息的删除:按学号进行删除某学生的成绩. (6)、排序功能:按学生平均成绩进行排序。 (7)、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!

c语言学生成绩管理系统代码

#include #include #include #define MAXN 100 //一个班最多的人数 #define MAXM 2 //成绩的课程门数 int R; void input(); //1.学生成绩新建 void sort(); //2.学生成绩插入 void load(); //3.学生成绩修改 void print(); //4.学生成绩删除 void total(); //5.学生成绩统计 void search(); //6.学生成绩查询 void save(); //7.学生成绩保存 void end(); //8.结束 struct student { char name[20]; //保存全班姓名 char num[12]; //保存全班学号 float score[MAXM]; //保存全班所有课程成绩 float sum; //保存全班每个人的总成绩 float avg; //保存每个人的平均成绩 }; struct student s[MAXN]; struct http { char subject[20]; //保存全班所有课程 }; struct http c[MAXM]; void main() //欢迎首界面 { int select,l; system("color fC"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf(" ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥\n"); printf(" * *\n"); printf(" * *\n"); printf(" * 欢迎进入终极一班学生管理系统 *\n"); printf(" * *\n"); printf(" * ︻┳═一 cf ... *\n"); printf(" * ┈━═☆甘总管的多塔生活∝╬══→ *\n");

C语言学生信息管理系统 (2)

C语言课程设计 题目名称:学生信息管理系统 姓名XXX 学号XXXXXXXX 专业网络工程 班级一班 指导教师XXX 编写日期2011/6/6 目 录 查询函数.............................................................................................................................

1、序言 随着学校的规模不断过大,学生数量急剧增加,有关学生的各种信息量也成倍增加。面对庞大的信息量需要有学生信息管理系统来提高学生管理工作的效率。通过这样的系统可以做到信息的规范化管理、科学性统计和快速查询、修改、增加、删除等,从而减少管理方面的工作量。 2、需求分析 本系统主要需要解决的任务是实现学生信息关系的系统化、规范化和自动化,其主要目的是计算学生各种信息进行日常管理,如查询、修改、增加删除学生信息等。在实现程序功能的同时应该做到界面简单易懂,容易操作,方便使用的要求。并且程序需要有一定的纠错能力。 .具体目标 本系统主要应用于学生学籍管理、信息查询等部分,具有不同的操作功能。具体功能如下: 2.1.1 有关学生信息的录入,学生信息包括输入学生的学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等(学生信息用文件保存)。 2.1.2. 学生信息的浏览功能。 2.1. 3.学生信息的查询功能,其中实现按学号和姓名二种方式查询。 2.1.4.学生信息的修改功能,包括增加、删除等。 3、总体设计 .算法分析 首先,考虑信息的录入,一个学生包括这么多的属性,应该考虑定义一个结

C语言_学生成绩管理系统实验报告

学生成绩管理系统实验报告 ㈠实验名称: 学生成绩管理系统 ㈡实验目的: 1)利用所学的三种程序基本结构以及数组、用户自定义函数进行一个简单管理系统的设计,进一步理解和掌握c语言的语法以及三种基本程序结构的综合应用。 2)通过程序中设计到的排序、查找、求和等操作加深对算法、程序设计思路、常用程序设计技巧的理解与掌握,逐步培养学生的程序开发能力。 ㈢实验要求: 设某班有n位同学,每位同学的数据包括一下内容:学号(长整型)、姓名(字符号)、数学成绩(整型)、程序设计成绩(整型)。设计程序完成以下5项功能:新建数据档案、添加数据、删除数据、对输入的数据进行排序和查询。 ㈣算法内容: ①程序运行,利用printf函数显示主菜单,并提示输入相应的数字来进行相关操作。 显示主菜单如下: 1.新建数据 2.添加数据 3.删除数据 4.排序 5.查询 6.退出 ②若输入1,则进入新建数据界面。根据提示依次输入学生人数、学生的学号、姓名、数学成绩和程序设计程序。 S1:输入学生人数n, S2: 0->i,(把0放在变量i中) S3:输入第i+1个学生的数据(学号,姓名,学数学成绩,程序设计成绩) S4:i+1->i S5:若i

③输入2,进入添加数据界面。 S1:原有学生人数n加1,即n+1=>n S2:输入学生数据 S3:0->i S4:输出第i+1个学生的数据 S5:若ii,0->j S3:若学生的学号stu[i].num,转到S6,否则继续 S4:i+1->i S5:若i n S7: 把要删除的数据覆盖 stu[i].num=>stu[j].num;stu[i].name=>stu[j].name; stu[i].math=stu[j].math;stu[i].C=stu[j].C;j++; S8:若ii S10:输出第i+1个学生的数据 S11:若ii S2:i+1->j S3:若a[i]j S5:若ji S7:若ii S3:若stu[i].num=a[10],输出该生数据并结束 S4:i+1->i S5:若ii,0->j S3:若std[i].math=m,转到S6 S4:i+1->i

C语言班级成绩管理系统

学院 课程设计报告 C语言程序设计课程设计 专业电气工程及其自动化班级 姓名 学号 指导教师 年月

新能源与动力工程学院课程设计任务书课程名称:C语言程序设计课程设计指导教师(签名): 班级:姓名学号:

指导教师评语及成绩评定表 指导教师签字: 年月日

目录 一.引言........................................................ - 1 - 1.1 设计目的.......................................... - 1 - 1.2意义............................................... - 1 - 1.3内容............................................... - 1 - 1.4主要任务........................................... - 2 - 二.主要功能和功能.............................................. - 3 - 2.1主要功能........................................... - 3 - 2.2要求............................................... - 3 - 三.系统的数据需求及性能分析..................................... - 4 - 3.1 数据需求.......................................... - 4 - 3.2系统的性能分析..................................... - 4 - 四. 输入输出要求................................................ - 5 - 五.整体框架结构................................................ - 6 - 六.学生成绩业务管理图.......................................... - 7 - 七.系统概要设计................................................ - 8 - 7.1 程序的模块组成.................................... - 8 - 7.2 学生信息结构数组.................................. - 8 - 7.3 各个程序的主要功能介绍:.......................... - 9 - 八.系统详细设计................................................ - 10 - 8.1函数介绍.......................................... - 10 - 九. 调试与测试................................................. - 13 - 9.1系统调试.......................................... - 13 - 9.2系统测试.......................................... - 13 - 十.总结....................................................... - 20 - 参考文献....................................................... - 22 - 附录源代码................................................... - 23 -

学生信息管理系统c语言

学生信息管理系统 1 课程设计目的与要求 1.1课程设计目的 本课程设计是在学习C语言基本理论之后的实践教学环节。该实践教学是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧。要求学生在设计中逐步提高程序设计能力,培养科学的软件工作方法。学生通过课程设计在下述各方面得到锻炼: 1.能根据实际问题的具体情况,结合C语言的基本理论和基本技巧,正确分析问题,并能设计出解决问题的有效算法与程序。 2.提高程序设计和调试能力。学生通过上机实习,验证自己设计的算法和程序的正确性。学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改,进一步提高程序设计水平。 1.2课程设计要求 通过一个学期的学习,我认为要学好C语言程序这门课程,不仅要认真阅读课本知识,更重要的是要通过上机实践才能增强和巩固我的知识。特别是作为本科生,更要注重实践这一环节,只有这样我们才能成为合格的计算机人材。通过这次课程设计,进一步巩固所学的语句,如语句嵌套等;加深对循环,分支等结构的运用。具体如下: (1)数据组织方面尽量使用到:数组、链表、结构体、文件; (2)程序结构方面做到函数调用,尽量采用指针运算; (3)代码编写规范,形成良好的编程习惯; (4)程序须有一定的健壮性和必要的提示信息,考虑问题的多种可能和边界数据。 (5)课设完成须进行答辩,提交课设报告电子稿、装订的打印稿。课设报告内容包括以下几个方面: ●程序的总体设计和算法分析。 ●程序流程图、函数说明

●源程序代码清单 ●测试数据和测试过程记录 ●遇到的问题及解决方法分析 ●课程设计小结 1.3课程设计的评价 通过此次课程设计,我的知识面得到了扩展,发现课本上的东西是远远不够的,需要上网找资料寻找补充,而且小组合作的形式可以互相交流知识,弥补自己的不足。通过课程设计,加深对结构化程序设计思想的理解,能进行一个系统功能需求分析,并设计合理的模块化结构。提高程序开发能力。 1

相关文档
相关文档 最新文档