C语言程序设计课程设计大作业-学生成绩管理系统

C语言程序设计课程设计大作业-学生成绩管理系统计算机科学学院计算机科学与应用系C程序设计报告

成绩管理系统设计

学生姓名:* *

学号:1004681082

班级:计科102

指导老师:* *

报告日期:2011--02--16

1.题目与要求

1)问题提出

本人计划编写一个学生信息管理系统,主要用来管理学生基本信息及成绩信息。

2)本系统涉及的知识点

单链表、结构体、函数、循环、指针、选择

3)功能要求

(1)建立学生信息,每个学生的信息包括:学号、姓名、成绩。 (2)求出每个学生的总分和平均分。

(3)查找:根据学号、姓名、成绩、总分、平均分中任一项查询该生的基本信息。

(4)排序:根据学号或总分将学生的信息按照一定的顺序进行排序。 (5)根据需要修改学生的基本信息。

(6)根据实际情况删除某生的信息。

(7)根据实际情况插入某生的信息。

(8)输出。

2.功能设计

1)算法设计

(1)利用switch语句设计如图所示的主菜单。

请输入选项编号

1——查找

2——排序

3——学生信息的修改

4——链表的删除

5——链表的插入

6——链表的输出

7——退出

图1 学生信息管理系统主菜单

(2)选择1后,调用查找函数search,进入查找函数后利用switch语句实现如图所示的查找子菜单。

该菜单中每个选项调用一个函数(除选项10外)。

查找菜单

请输入选项编号

1——按学号查找

2——按姓名查找

3——按C语言分数查找

4——按高数分数查找

5——按英语分数查找

6——按总分查找

7——按平均分查找

8——总分前三名

9——不及格者

10——班级成绩情况

11——退出

图2 查找子菜单

(3)选项2后,调用排序函数arrange,进入查找函数后利用switch语句实现如图所示的查找子菜单。

该菜单中每个每个选项调用一个函数(除3外)。

排序菜单

输入选项编号

1——按学号排序

2——按总分排序

3——退出

图3 排序子菜单

(4)选择3后,调用修改函数correct,修改某个学生的信息。 (5)选择4后,调用删除函数del,根据需要删除某个学生的信息。 (6)选择5后,调用插入函数insert,根据需要插入某个学生的信息。 (7)选择6后,调用输出函数output,将每个学生的信息全部输出。 (8)选择7后,退出学生信息管理系统。

(9)根据所选菜单编号编写相应代码。

(a)函数welcome:欢迎用户使用。

(b)函数about: 简要介绍本程序。

(c)函数create:创建单链表,采用循环输入的方式输入学生的基本信息。 (d)函数SnoSearch:根据学号查找,输出该生的基本信息。 (e)函数NameSearch:根据

姓名查找,输出该生的基本信息。 (f)函数CYuYanSearch:根据C语言成绩成绩查找,输出该生的基本信息。 (g)函数GaoShuSearch:根据高数成绩查找,输出该生的基本信息。 (h)函数YingYuSearch:根据英语成绩查找,输出该生的基本信息。

(i)函数ZongFenSearch:根据总分查找,输出该生的基本信息。 (j)函数AverageSearch:根据平均分查找,输出该生的基本信息。 k)函数QSMSearch:查看班级前三名学生信息情况。 (

(l)函数BuJiGeSearch:查看班级不及格学生信息情况。

成绩菜单

输入选项编号

1——C语言不及格者

2——高数不及格者

3——英语不及格者

4——不及格者

5——全不及格者

6——退出

图4 成绩子菜单

(m)函数ClassScore:查看班级成绩平均分整体情况。

(n)函数SnoArrange:按照学号将学生信息进行排序。 (o)函数ZongFenArrange:按照总分将学生信息进行排序。 (n)函数over:感谢用户使用。

2)画模块图

显示按学

欢迎号查

界面找

显示按姓

程序名查按C介绍找语言

不及

输入按成格者

绩查查找

成绩找

查找按总按高

分查数不

排序找及格

者查主找模修改按平

块学生均分

信息查找

按英

语不删除按前及格学生三名者查信息查找找插入按不

学生及格按不信息查找及格

者查

输出按学找

学生号排

信息序

按全显示按总不及结束分排格者界面序查找图5 成绩管理系统模块图

3)画部分模块的流程图

开始

输入学生信息

pnew->score=pnew->score1+pnew->score2+pnew->score3; pnew->avg=pnew->score/3

a==pnew->sno

N Y

p->next=NULL 输入学生信息

结束

pnew->score=pnew->score1+pnew->score2+pnew->score3; pnew->avg=pnew->score/3

图6 creat函数流程图

开始

输入a

t++

t==num+1

Y

N

p=p->next a==p->sno

N

Y

输出学生信息

结束

图7 SnoSearch函数流程图

开始

输入b

t=0;flag=0;p=head;

t++

Y N

t==num+1

Y

flag==0 k==0

N

N Y

结束 flag=1

输出学生信息

p=p->next

图8 NameSearch函数流程图开始

s=0;r=0;w=0;t=0

m=0;n=0;p=head;

N Y s!=num

s++ p=head;s=0

N Y tscore s!=num

N

Y s++

t=p->score

t==p->score

p=p->next N

Y

输出学生信息

p=head p=p->next

……

结束

图9 QSMSearch函数流程图

开始

p=head

输入b

N

a==1

Y N

a>1&&a

Y a==num head=head->next n=2 N Y n=3 i=0

j=0 N

i!=a-2 N

j!=a-2 Y

p=p->next Y

p=p->next

i++

j++

p->next=NULL p->next=p->next->next num=num-1

结束

图10 del函数流程图

3.程序代码设计

1.main函数:

(1)函数原型:void main()

(2)功能:分别调用 welcome函数、about函数、create函数、search函数、del函数、insert函数、output

函数和over函数。

3)变量及类型: (

int m,n; //switch选择变量

(4)说明:main函数中用到system("cls"),其作用是清除屏幕上的文字。

2.welcome函数:

(1)函数原型:void welcome()

(2)功能:显示欢迎用户使用界面。

(3)说明:getchar()函数用于使屏幕停止,按下Enter键后再执行下面程序。

3.about函数:

1)函数原型:void about() (

(2)功能:简要介绍本程序。

(3)说明:getchar()函数用于使屏幕停止,按下Enter键后再执行下面程序。

4.create函数:

(1)函数原型:void create()

(2)功能:利用单链表、while循环和 scanf函数完成对学生信息的输入(学号、姓名、三门成绩),

并计算出总分和平均分,再存入单链表中。

(3)变量及类型:

int a=0; //判断学生信息输入是否结束(学号是否为0)

struct student *p,*pnew; //结构体指针指向结点

(4)说明:学生的人数不受限制,输入结束符号即可。

5.search函数:

(1)函数原型:void search()

(2)功能:通过选项来选择调用不同函数,完成不同的功能。 (3)变量及类型:

int m,n; //switch选择变量

6.SnoSearch函数:

(1)函数原型:void SnoSearch()

(2)功能:通过学号来查找该生的基本信息。

(3)变量及类型:

int a,t; //a用来存储学号;t用来计数,以便跳出循环

struct student *p; //指针p用于指向头结点

https://www.360docs.net/doc/7c19321129.html,Search函数:

(1)函数原型:void NameSearch() (2)功能:通过姓名来查找该生的基本信息。

(3)变量及类型:

int k,t,flag; //k用于判断;t用于计数;flag起标记作用

char b[20]; //数组b用于存放姓名

struct student *p; //指针p用于指向头结点

8.CYuYanSearch函数:

(1)函数原型:void CYuYanSearch() (2)功能:通过C语言成绩来查找该生的基本信息。 (3)变量及类型:

int t,flag; //t用于计数;flag起标记作用

float a; //a用于存放C语言成绩

struct student *p; //指针p用于指向头结点

9.GaoShuSearch函数:

(1)函数原型:void GaoShuSearch() (2)功能:通过高数成绩来查找该生的基本信息。 3)变量及类型: (

int t,flag; //t用于计数;flag起标记作用

float b; //b用于存放高数成绩

struct student *p; //指针p用于指向头结点

10.YingYuSearch函数:

(1)函数原型:void YingYuSearch() (2)功能:通过英语成绩来查找该生的基本信息。 (3)变量及类型:

int t,flag; //t用于计数;flag起标记作用

float c; //c用于存放英语成绩

struct student *p; //指针p用于指向头结点

11.ZongfenSearch函数:

(1)函数原型:void ZongfenSearch() (2)功能:通过总分来查找该生的基本信息。

(3)变量及类型:

int t,flag; //t用于计数;flag起标记作用

float d; //d用于存放总分

struct student *p; //指针p用于指向头结点

12.AverageSearch函数:

(1)函数原型:void AverageSearch() (2)功能:通过平均分来查找该生的基本信息。

(3)变量及类型:

int t,flag; //t用于计数;flag起标记作用

float e; //e用于存放平均分

struct student *p; //指针p用于指向头结点

13.QSMSearch函数:

(1)函数原型:void QSMSearch() (2)功能:显示前三名的基本信息

(3)变量及类型:

int s=0,r=0,w=0; //s,r,w均用做计数

float t=0,m=0,n=0; //t,m,n均用做记录最高分

struct student *p; //指针p用于指向头结点

14. BuJiGeSearch函数:

(1)函数原型:void BuJiGeSearch() (2)功能:通过switch选择输出不及格情况。

3)变量及类型: (

int n,m,r,s,t,k,h,flag; //n,m为switch选择变量;r,s,t,k,h用做计数;flag起标记作用

struct student *p; //指针p用于指向头结点

15.ClassScore函数:

(1)函数原型:void ClassScore() (2)功能:查看班级成绩的整体情况。

(3)变量及类型:

int i; //i用于for循环

float a=0,b=0,c=0,d,e; //a,b,c,d,e均用于中间变量

struct student *p; //指针p用于指向头结点

16.arrange函数:

(1)函数原型:void arrange() (2)功能:通过选项来选择调用不同函数,完成不同的功能。 (3)变量及类型:

int a,m; //a,m均为switch选择变量;

17.SnoArrange函数:

(1)函数原型:void SnoArrange() (2)功能:将学生信息按照学号进行排序。

(3)变量及类型:

int a,c,i,j; //a为switch选择变量;c用于计数;i,j用于for循环

struct student *p,*q,*k,*newp,*newhead; //指针p,q,k,newp,newhead均用于创建新链表

18.ZongFenArrange函数:

(1)函数原型:void ZongFenArrange() (2)功能:将学生信息按照总分进行排序。

(3)变量及类型:

int a,c,i,j; //a为switch选择变量;c用于计数;i,j用于for循环

struct student *p,*q,*k,*newp,*newhead; //指针p,q,k,newp,newhead均用于创建新链表

19. correct函数:

(1)函数原型:void correct()

(2)功能:修改某生的信息。

(3)变量及类型:

int t,a,b,m,flag; // t用于计数;a用于判断;b,m为switch选择变量;flag 起标记作用

struct student *p; //指针p用于指向头结点

20.del函数:

(1)函数原型:void del()

(2)功能:删除单链表中某生的基本信息。

(3)变量及类型:

int a,n,i,j; //a存放要删除的结点;n为switch选择变量;i,j用于for循环struct student *p; //指针p用于指向头结点

21.insert函数:

(1)函数原型:void insert()

2)功能:将某生的基本信息插入单链表中。 (

(3)变量及类型:

int a,n,i,j; // a存放要插入的结点;n为switch选择变量;i,j用于for循环

struct student *p,*q; //指针p用于指向头结点;指针q用于指向新生信息的结点

22.output函数:

(1)函数原型:void output()

(2)功能:输出每个学生的基本信息。

(3)变量及类型:

int s=0; //s用于计数

struct student *p //指针p用于指向头结点

23.over函数:

(1)函数原型:void over()

(2)功能:显示感谢用户使用界面。

4.C程序设计总结

(1)程序调试情况

在编写完程序后,执行时总会出现很多错误,便又重新检查程序,改写程序,再经过不断的调试,最终将程序改写完成。

2)本人在程序中的感想 (

程序在编写时总是感觉非常难,而且还会出现很多小错误,从而导致出很多麻烦,最终经过耐心检查,才将问题解决。

5.结束语

由于本人完成此程序是在家中完成,又无网络可以查询,故只能参考课本,在本人的独立下完成此程序,在此须感谢白燕老师。

6.参考文献

[1]尹业安白燕.C语言程序设计.国防科技大学出版社,2008.8

7.附录:程序清单

#include #include #include void welcome();

void about();

void create();

void search();

void SnoSearch(); void NameSearch(); void CYuYanSearch(); void GaoShuSearch(); void YingYuSearch(); void ZongFenSearch(); void AverageSearch(); void QSMSearch(); void BuJiGeSearch(); void ClassScore(); void arrange();

void SnoArrange(); void ZongFenArrange(); void correct();

void del();

void insert();

void output();

void over();

struct student

{

int sno;

char name[20];

float score1;

float score2;

float score3;

float score;

double avg;

struct student *next;

};

struct student *head;

int num=0;

void main()

{

int m,n;

welcome();

about();

system("cls"); create();

system("cls"); Z: printf("1——查找\n"); printf("2——排序\n"); printf("3——学生信息的修改\n"); printf("4——链表的删除\n");

printf("5——链表的插入\n"); printf("6——链表的输出\n"); printf("7——退出\n"); scanf("%d",&n); switch(n)

{

case 1:

system("cls"); search(); system("cls"); goto Z;

case 2: system("cls"); arrange(); system("cls"); goto Z;

case 3: system("cls"); correct(); system("cls"); goto Z;

case 4: system("cls"); del();

system("cls"); goto Z;

case 5: system("cls"); insert(); system("cls"); goto Z;

case 6:

system("cls");

output();

system("cls");

goto Z;

case 7:

system("cls"); F: printf("你真的想退出吗\n 1——是 2——否\n"); scanf("%d",&m);

switch(m)

{

case 1:

break;

case 2:

goto Z;

default:

system("cls");

printf("你的输入有误\n");

goto F;

}

break;

default:

system("cls");

printf("你的输入有误\n");

goto Z;

}

system("cls");

over();

}

void welcome()

{

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

printf(" 【】————————————————————【】\n"); printf(" ||————————————————————||\n"); printf(" || 欢迎使用 ||\n");

printf(" || ||\n");

printf(" || ||\n");

printf(" || 学生成绩管理系统 ||\n");

printf(" || ||\n");

printf(" || ||\n");

printf(" || ||\n");

printf(" || 制作人:** ||\n");

printf(" || 指导老师:** ||\n");

printf(" || ||\n");

printf(" ||————————————————————||\n"); printf(" 【】————————————————————【】\n"); getchar();

}

void about()

{

system("cls");

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

printf("\t\t\t关于学生管理系统的说明\n\n\n");

printf(" 本程序采用链表和函数编写完成,主要功能有查找,链表的删除,链表的插入和链表的输出.\n");

printf("程序中主要运用链表部分和函数的知识.程序优点是:学生人数可以根据实际情况进行更改;\n缺点是:部分程序

过于复杂,程序功能不太齐全;");

printf("本程序已经经过多次测试,尚未出现问题.\n\n若在使用中出现错误,还请谅解!");

getchar();

}

void create()

{

int a=0;

struct student *p,*pnew;

head=pnew=p=(struct student *)malloc(sizeof(struct student));

printf("请依次输入每位同学的学号,姓名和3门成绩,按0键结束\n");

printf(" 学号姓名 C语言高数英语\n") ;

scanf("%d%s%f%f%f",&pnew->sno,pnew->name,&pnew->score1,&pnew-

>score2,&pnew->score3);

pnew->score=pnew->score1+pnew->score2+pnew->score3; pnew->avg=pnew->score/3.0;

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语言课程设计--学生成绩管理系统

*题目七:学生成绩管理系统设计 学生成绩信息包括:学期,学号,班别,姓名,四门课程成绩(语文、数学、英语和计算机)等。 主要功能: (1)能按学期、按班级完成对学生成绩的录入、修改 (2)能按班级统计学生的成绩,求学生的总分及平均分 (3)能查询学生成绩,不及格科目及学生名单 (4)能按班级输出学生的成绩单 要求:使用二进制文件方式存储数据,系统以菜单方式工作 源代码: #include #include #include #include struct Student { int cls; char nam[10]; char num[10]; int chinese; int english; int computer; int math; }stud1[100],stud2[100];

{ char a; while(a>'7'||a<'0') { system("cls"); printf(" 欢迎使用学生成绩管理系统\n"); printf(" 制作人:章建\n"); printf("********************** 学生成绩管理系统************************\n"); printf(" 1.输入学生成绩\n"); printf(" 2.输出学生成绩\n"); printf(" 3.查找并显示学生成绩\n"); printf(" 4.按姓名查找,修改学生资料\n"); printf(" 5.显示所有学生名单\n"); printf(" 6.查找并删除学生信息\n"); printf(" 7.从文件读取数据\n"); printf(" 0.储存学生资料并退出系统\n"); printf("********************************************************************* *\n"); printf("请选择(0-7)\n"); a=getchar(); } return(a-'0'); } /******************************************************************************

C语言学生成绩管理系统设计报告

物理与电子信息学院 C语言课程设计(科创实验)报告 学生成绩管理系统专业年级 学生姓名 学号 指导教师 2021年 1 月 4 日

目录 1 设计任务 (1) 2 需求分析 (1) 2.1基础功能 (1) 2.2扩展功能 (2) 3系统设计概要 (2) 3.1开发与运行环境 (2) 3.2数据结构设计 (2) 3.2总体设计 (3) 4系统详细设计 (3) 5 系统测试 (4) 6 总结与反思 (8) 参考文献 (8) 附录 (9)

1.设计任务 设计一个系统,使其能够记录学生的学号、姓名、专业和5门课程的成绩。该系 统能够实现添加、删除、修改功能。并且能够计算某学生的总分和平均成绩,能够按照总分排序输出。 2.需求分析 学生成绩管理系统主要是提供成绩查询,方便管理的网上的信息查阅平台,学生可以通过该系统查阅与自己相关信息。教师可以通过成绩管理系统查阅学生成绩信息。系统管理员可以实现以上的所有功能,还有对学生的添加、删除、修改、教师的添加、删除、修改。 根据开发要求,学生成绩管理系统主要应用于教育系统,完成对日常的教学、教务、教师以及学生的计算机化的管理。开发学生成绩管理系统可使学院教职员工减轻工作压力,比较系统地对教务、教学上的各项服务和信息进行管理,同时,可以减少劳动力的使用,加快查询速度、加强管理,以及国家各部门关于信息化的步伐,使各项管理更加规范化。目前,学校工作繁杂、资料重多。目前,管理信息系统已进入高校,但还未普及,而对于学生成绩管理来说,目前还没有一套完整的、统一的系统。因此,开发一套适和大众的、兼容性好的系统是很有必要的。 2.1基础功能 该系统所具有的基础功能有能够记录学生的学号、姓名、专业和5门课程的成绩。该系统能够实现添加、删除、修改功能。并且能够计算某学生的总分和平均成绩,能够按照总分排序输出。

c语言大作业 学生成绩管理系统

#include #include #include #define NUM 4 struct lhb /定义结构体变量,为lhb/ {int num; char name[10]; int score[4]; float average; }stu[4],s; void save() /定义save函数,把录入的学生数据输出到磁盘list文件中/ {FILE *fp; int i; if((fp=fopen("list","wb"))==NULL) {printf("can not open this file\n"); return;} for(i=0;i<4;i++) if(fwrite(&stu[i],sizeof(struct lhb),1,fp)!=1) /用fwrite函数将数据送到 printf("file write error\n"); list 文件中/ fclose(fp); } void file1() /建立菜单1,录入4个学生的4科成绩,并算其平均分/ { int i,j; /定义变量/ float s=0; printf("Input the student's number name and 4 score:\n"); printf("num name score0 score1 score2 score3\n"); for(i=0;i<4;i++) scanf("%d%s%d%d%d%d",&stu[i].num,&stu[i].name,&stu[i].score[0],&stu[i].score[1], &stu[i].score[2],&stu[i].score[3]); for(i=0;i<4;i++) /用for循环算出每个学生的平均成绩/ {for(j=0;j<4;j++) {s+=stu[i].score[j]; /各科成绩累加后赋给s/ stu[i].average=s/4.0;} /计算出平均成绩/ s=0;} save(); /调用save函数,保存数据/ return;} void file2() /建立菜单2,打印全班学生的数据输出到屏幕上/ {FILE *fp; /寻找并调用list文件数据/ int i; { fp=fopen("list","rb"); for(i=0;i<4;i++) fread(&stu[i],sizeof(struct lhb),1,fp); fclose(fp);}

C语言程序设计课程设计大作业-学生成绩管理系统

C语言程序设计课程设计大作业-学生成绩管理系统计算机科学学院计算机科学与应用系C程序设计报告 成绩管理系统设计 学生姓名:* * 学号:1004681082 班级:计科102 指导老师:* * 报告日期:2011--02--16 1.题目与要求 1)问题提出 本人计划编写一个学生信息管理系统,主要用来管理学生基本信息及成绩信息。 2)本系统涉及的知识点 单链表、结构体、函数、循环、指针、选择 3)功能要求 (1)建立学生信息,每个学生的信息包括:学号、姓名、成绩。 (2)求出每个学生的总分和平均分。 (3)查找:根据学号、姓名、成绩、总分、平均分中任一项查询该生的基本信息。 (4)排序:根据学号或总分将学生的信息按照一定的顺序进行排序。 (5)根据需要修改学生的基本信息。 (6)根据实际情况删除某生的信息。 (7)根据实际情况插入某生的信息。

(8)输出。 2.功能设计 1)算法设计 (1)利用switch语句设计如图所示的主菜单。 请输入选项编号 1——查找 2——排序 3——学生信息的修改 4——链表的删除 5——链表的插入 6——链表的输出 7——退出 图1 学生信息管理系统主菜单 (2)选择1后,调用查找函数search,进入查找函数后利用switch语句实现如图所示的查找子菜单。 该菜单中每个选项调用一个函数(除选项10外)。 查找菜单 请输入选项编号 1——按学号查找 2——按姓名查找 3——按C语言分数查找 4——按高数分数查找 5——按英语分数查找 6——按总分查找

7——按平均分查找 8——总分前三名 9——不及格者 10——班级成绩情况 11——退出 图2 查找子菜单 (3)选项2后,调用排序函数arrange,进入查找函数后利用switch语句实现如图所示的查找子菜单。 该菜单中每个每个选项调用一个函数(除3外)。 排序菜单 输入选项编号 1——按学号排序 2——按总分排序 3——退出 图3 排序子菜单 (4)选择3后,调用修改函数correct,修改某个学生的信息。 (5)选择4后,调用删除函数del,根据需要删除某个学生的信息。 (6)选择5后,调用插入函数insert,根据需要插入某个学生的信息。 (7)选择6后,调用输出函数output,将每个学生的信息全部输出。 (8)选择7后,退出学生信息管理系统。 (9)根据所选菜单编号编写相应代码。 (a)函数welcome:欢迎用户使用。 (b)函数about: 简要介绍本程序。 (c)函数create:创建单链表,采用循环输入的方式输入学生的基本信息。 (d)函数SnoSearch:根据学号查找,输出该生的基本信息。 (e)函数NameSearch:根据

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

C课程设计报告 专业: 班级: 学号: 姓名: 指导老师: 日期:

一、设计任务与要求 1.设计内容: 按班级完成对学生成绩的录入,修改,能按班级统计学生的成绩;求学生的总分及平均分;并能根据学生的平均成绩进行排序,能查询学生成绩,不及格科目及学生名单;能按班级输出学生的成绩单。 设置学生的成绩信息:学生学号、姓名、所选课程名称、显示学生的姓名、所选课程名称以及平时成绩、期末成绩和总评成绩信息。能根据学生的姓名、学号、班级进行相应成绩的查询。 2.课程设计的要求: 根据C++课程所学的概念、理论和方法,按照C++程序设计的基本步骤,设计出一个适当规模的程序来实现设计课程内容中的全部功能;设计主控模块程序.对给出的程序源代码要给出各部分的详细注释.自己根据能力及需要添加相应功能模块,增强模拟系统功能。包括系统的功能分析、系统的功能模块设计、程序流程图或结构框图、逻辑结构设计,数据库中的表、课程设计体会。 二、系统分析 1.要求分析: 1)能对学生各科成绩进行录入 2)能对学生的成绩进行增加、删除、修改 3)能对学生的姓名、学号、班级进行修改 4)能对学生的成绩按总成绩,姓名,学号进行查询

5)能输出学生的姓名、学号、班级、成绩 6)能进行成绩统计、分析、排序 7)能进行总分查询排名 4.系统功能模块 学生成绩查询系统有:成绩录入、增加、删除、修改,数据查询,排序显示构成。 5.模块框架图 三、程序代码 #include #include #include #include #include #include using namespace std; struct xueshengguanli { string name; string banbie;

学生成绩管理系统c语言代码(供参考)

C程序学生管理系统 以下是用C语言编写的学生成绩管理系统的简单代码,可以用vc运行(供参考)#include"stdio.h" #include”stdlib。h" #include"string。h” typedefstruct student//定义学生 { char name[10]; int number; char sex[2]; int math; int eglish; int clanguge; int average; }student; typedefstruct unit//定义接点 { studentdate; struct unit*next; }unit; unit大build()//建立链表并返回指针 { unit*p; if((p=(unit*)malloc(sizeof(unit)))==NULL) {printf("二>初始化失败!”); return0; } else {p—>next=NULL; p-〉date.number=O;//头结点存放学生人数 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—>https://www.360docs.net/doc/7c19321129.html,);fflush(stdin);

printf("二〉请输入学号!\n"); while(n==0) { scanf("%d",&m);fflush(stdin); if(q二二NULL)n二1; while(q) { if(q->date.number==m) { prinTf("二>你输入的学号与已有同学的学号相同,请重新输入!\n"); q=head-〉next; break; } else { q=q->next;if(q==NULL)n=1; } } } p一〉date。number=m; printf(”二>请输入性别!\n"); gets(p一〉Date。sex);fflush(stdin); printf("=>请输入数学成绩\n");scanf("%d",&m);fflush(stdin); p一〉date。math二m; printf("=>请输入英语成绩\n”);scanf("%d",&m);fflush(stdin);p 一〉date.eglish二m; printf(”二〉请输入c语言成绩\n”);scanf(”%d”,&m);fflush(stdin);p 一>date.clanguge二m; p一>date。average=(p-〉date°math+p—>date。 eglish+p->date.clanguge);q=head->next; head->next=p; p->next=q; head—>date。number++; } void deletion(unit*head)//删除一名学生 { unit*p=head->next,*q=head; char N[10]; printf(”二〉请输入你想删除的学生姓名!\n”); gets(N);fflush(stdin); if(p==NULL) printf(”二>系统无学生可删除!\n"); while(p)

c语言程序设计学生管理系统统计成绩部分

学生管理系统是现代教育管理中不可或缺的一部分,而统计成绩的功 能更是其核心之一。在C语言程序设计中,学生管理系统的成绩统计 部分是非常重要的,因为它涉及到对学生成绩数据的存储、处理和展示。在本文中,我们将深入探讨C语言程序设计中学生管理系统统计 成绩部分的实现原理和功能设计。 1. 数据存储和管理 在C语言程序设计中,我们可以通过数组、结构体或指针来存储学生 成绩数据。以数组为例,我们可以定义一个二维数组来存储学生成绩:```c int scores[100][3]; ``` 其中,第一维表示学生的数量,第二维表示科目的数量。这样我们就 可以方便地存储每个学生的各科成绩,并且可以通过循环来进行数据 的遍历和处理。 2. 成绩统计和计算 在学生管理系统中,成绩统计和计算是至关重要的。我们可以通过定 义函数来实现成绩的统计和计算,比如计算平均分、最高分、最低分等。以下是一个简单的成绩统计函数示例: ```c float calculateAverage(int scores[], int n) { float sum = 0;

for (int i = 0; i < n; i++) { sum += scores[i]; } return sum / n; } ``` 通过这样的函数,我们可以方便地计算出学生的平均成绩,并且可以 在程序中多次调用以实现不同的统计功能。 3. 数据展示和输出 在学生管理系统中,数据的展示和输出是非常重要的一环。我们可以 通过控制台输出或文件输出的方式来展示学生成绩,从而方便教师和 学生对成绩进行查看和分析。以下是一个简单的控制台输出函数示例:```c void displayScores(int scores[][3], int n) { for (int i = 0; i < n; i++) { printf("Student %d: ", i+1); for (int j = 0; j < 3; j++) { printf("%d ", scores[i][j]); } printf("\n"); } }

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

C语言程序设计学生成绩管理系统报告 引言 随着计算机技术的发展,C语言作为一种高级程序设计语言,被广泛应用于各个领域。在教育领域中,C语言的学习也越来越重要。为了提高学生在C语言程序设计方面的能力,快速准确地管理学生成绩,我们设计了一个C语言程序设计学生成绩管理系统。 设计目标 •实现学生成绩的录入、查询、修改和删除功能。 •提供直观、友好的用户界面,操作简便明了。 •保证系统的安全性,仅授权用户可进行操作。 •能够生成学生成绩报告和统计信息,方便教师和学生进行分析和参考。 系统设计与实现 数据结构 为了实现学生成绩的管理,我们采用了以下的数据结构: 1.学生信息结构体 –学号 –姓名 –年龄 –性别 –成绩 typedef struct { int student_id; char name[20]; int age; char gender[10]; float score; } Student; 2.学生信息链表

–指向学生信息的指针 –指向下一个学生信息的指针 typedef struct Node { Student* student_info; struct Node* next; } StudentNode; 功能实现 录入学生信息 1.输入学生信息,并验证合法性(如学号是否已存在)。 2.将学生信息加入学生信息链表中。 查询学生信息 1.输入学号或姓名进行查询。 2.在学生信息链表中查找匹配的学生信息。 3.显示查找到的学生信息。 修改学生信息 1.输入学号或姓名进行查询。 2.在学生信息链表中查找匹配的学生信息。 3.若找到匹配的学生信息,则修改其中的字段内容。 删除学生信息 1.输入学号或姓名进行查询。 2.在学生信息链表中查找匹配的学生信息。 3.若找到匹配的学生信息,则删除该节点。 生成报告和统计信息 1.遍历学生信息链表,计算平均分、最高分和最低分。 2.根据指定条件(如按性别、按年龄段)进行筛选和排序。 3.根据筛选结果生成学生成绩报告和统计信息。

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

c语言课程设计学生成绩管理系统源代码 一、引言 学生成绩管理系统是一个非常常见的应用程序,它可以帮助学校或教育机构轻松地管理学生的成绩信息。在本文中,我们将介绍一个基于C语言的学生成绩管理系统源代码。 二、需求分析 在开始编写代码之前,我们需要明确系统的需求和功能。该系统应该能够完成以下任务: 1. 添加新学生信息:包括姓名、性别、年龄等基本信息。 2. 添加课程信息:包括课程名称、授课教师等基本信息。 3. 输入学生的成绩:输入每个学生在每个课程中的成绩。 4. 计算总分和平均分:计算每个学生的总分和平均分,并将其存储在数据库中。

5. 查询成绩信息:查询某个学生或某门课程的成绩信息。 6. 修改成绩信息:修改某个学生或某门课程的成绩信息。 7. 删除成绩信息:删除某个学生或某门课程的成绩信息。 三、设计思路 1. 数据库设计 我们需要设计一个简单的数据库来存储所有的数据。该数据库应该包括以下表: - 学生表(student):包含姓名、性别、年龄等基本信息。 - 课程表(course):包含课程名称、授课教师等基本信息。 - 成绩表(score):包含每个学生在每个课程中的成绩信息。 2. 界面设计 我们需要设计一个简单的界面来让用户输入和查看数据。该界面应该包括以下功能: - 添加新学生信息

- 添加新课程信息 - 输入学生成绩 - 查询成绩信息 - 修改成绩信息 - 删除成绩信息 3. 程序设计 在程序设计方面,我们需要编写一些函数来执行以上功能。这些函数应该包括: - add_student():添加新学生信息。 - add_course():添加新课程信息。 - input_score():输入学生成绩。 - calculate_score():计算总分和平均分。 - query_score():查询成绩信息。 - update_score():修改成绩信息。 - delete_score():删除成绩信息。 四、源代码实现 在这里,我们提供一个C语言的学生成绩管理系统源代码,该代码可以满足以上需求。请注意,此代码仅供参考。

c语言成绩管理系统课程设计报告

c语言成绩管理系统课程设计报告 一、引言: 成绩管理系统是一种可以有效管理学生课程成绩的工具。通过该系统,教师可以方便地录入、修改和查询学生的成绩,而学生和家长也可以方便地查看自己的成绩情况。本次课程设计旨在设计一个基于C语言的成绩管理系统,实现对学生课程成绩的录入、修改和查询等功能。 二、系统设计: 1. 数据结构设计: 为了实现成绩管理系统的各项功能,需要设计相关的数据结构。对于学生信息,可以设计一个结构体,包含学号、姓名、性别等字段;对于课程成绩,可以设计一个结构体,包含学号、课程名称、成绩等字段。 2. 功能设计: (1) 学生信息录入功能: 教师可以通过输入学生的学号、姓名、性别等信息,将学生信息录入系统中。 (2) 成绩录入功能: 教师可以通过输入学生的学号和课程名称,将学生的课程成绩录入系统中。 (3) 成绩修改功能: 教师可以根据学生的学号和课程名称,修改学生

的课程成绩。 (4) 成绩查询功能: 学生和家长可以通过输入学生的学号,查询学生的课程成绩。 三、系统实现: 1. 用户界面设计: 使用C语言中的控制台窗口,通过菜单的方式显示系统功能选项,用户可以通过键盘输入选择对应的功能。 2. 数据存储设计: 使用文件存储学生信息和课程成绩。通过读取和写入文件的方式,实现数据的持久化存储。 3. 功能实现: (1) 学生信息录入功能的实现: 用户输入学生的学号、姓名、性别等信息后,将学生信息写入文件。 (2) 成绩录入功能的实现: 用户输入学生的学号、课程名称和成绩后,将成绩信息写入文件。 (3) 成绩修改功能的实现: 用户输入学生的学号、课程名称和新的成

c语言大作业学生管理系统

c语言大作业学生管理系统 随着信息化的快速发展,计算机技术已经深入到各个领域。在教育领域中,学生管理系统是学校管理学生信息的重要工具。本次大作业将以“c语言大作业学生管理系统”为题,介绍如何使用c语言开发一个简单的学生管理系统。 一、需求分析 学生管理系统需要实现以下功能: 1、添加学生信息 2、查询学生信息 3、修改学生信息 4、删除学生信息 5、显示所有学生信息 二、设计 1、定义数据结构 为了存储学生信息,我们可以定义一个结构体,包含学生的姓名、学

号、性别、年龄等信息。 c include include include typedef struct { char name; char id; char gender; int age; Student; 2、定义函数 为了实现学生管理系统的各个功能,我们可以定义以下函数:1、add_student():添加学生信息

2、query_student():查询学生信息 3、modify_student():修改学生信息 4、delete_student():删除学生信息 5、display_students():显示所有学生信息 三、实现 下面是一个简单的实现示例: c include include include typedef struct { char name; char id; char gender;

int age; Student; void add_student(Student *students, int *num_students) { Student student; printf("Enter name: "); scanf("%s", https://www.360docs.net/doc/7c19321129.html,); printf("Enter ID: "); scanf("%s", student.id); printf("Enter gender: "); scanf("%s", student.gender); printf("Enter age: "); scanf("%d", &student.age); students[*num_students] = student; (*num_students)++;

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

学生成绩管理系统c语言源代码 介绍 学生成绩管理系统是一个能够帮助学校、教师和学生管理和查询学生成绩的软件系统。通过该系统,教师可以录入学生的考试成绩,并进行统计和分析;学生可以查询自己的成绩和排名;学校可以通过系统生成各种报表和分析数据。本文将介绍一个使用C语言编写的学生成绩管理系统的源代码实现。 功能设计 学生成绩管理系统的功能设计可以分为以下几个主要模块: 登录模块 1.输入用户名和密码; 2.验证用户名和密码是否匹配; 3.登录成功后进入主菜单。 学生管理模块 1.输入学生信息(学号、姓名、性别、年龄等); 2.添加学生信息到系统中; 3.删除指定学号的学生信息; 4.修改指定学号的学生信息; 5.查询指定学号的学生信息; 6.显示所有学生的信息。 课程管理模块 1.输入课程信息(课程号、课程名称、授课教师等); 2.添加课程信息到系统中; 3.删除指定课程号的课程信息; 4.修改指定课程号的课程信息; 5.查询指定课程号的课程信息; 6.显示所有课程的信息。

成绩管理模块 1.输入学号和课程号; 2.输入成绩信息(平时成绩、期末成绩、总评成绩等); 3.添加成绩信息到系统中; 4.修改指定学号和课程号的成绩信息; 5.查询指定学号和课程号的成绩信息; 6.统计指定课程的平均成绩、最高成绩和最低成绩; 7.统计指定学生的平均成绩、最高成绩和最低成绩。 数据导入与导出模块 1.从文件导入学生信息和成绩信息; 2.将学生信息和成绩信息导出到文件。 源代码实现 以下是一个使用C语言实现的学生成绩管理系统的源代码实例: #include #include #include // 定义学生结构体 typedef struct { int id; char name[100]; char gender[10]; int age; } Student; // 定义课程结构体 typedef struct { int id; char name[100]; char teacher[100]; } Course; // 定义成绩结构体 typedef struct { int studentId; int courseId; float ordinaryGrade;

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

学生成绩管理系统c语言课程设计报告 一、引言 学生成绩管理系统是一个为学校或教育机构提供学生学业成绩管理 的重要工具。通过该系统,可以方便地记录和查询学生的各项成绩,帮助教师和学生了解学生的学业表现,及时作出教学和学习的调整和改进。本文将介绍一个基于C语言的学生成绩管理系统的设计与实现。 二、需求分析 1. 学生信息管理:包括学生基本信息的录入、修改和删除。 2. 成绩信息管理:包括成绩的录入、修改和删除。 3. 成绩查询与统计:可以按照学生学号或姓名查询学生的成绩,并 能够进行成绩的统计分析,如计算平均分和排名等。 4. 数据存储与备份:能够将学生信息和成绩信息存储在文件中,并 能够进行数据的备份和恢复。 三、系统设计 1. 学生信息管理模块:设计一个结构体来存储学生的基本信息,包 括学号、姓名、性别、年龄等。通过菜单选择,可以实现学生信息的录入、修改和删除功能。 2. 成绩信息管理模块:设计一个结构体来存储学生的成绩信息,包 括科目名称和成绩。通过菜单选择,可以实现成绩信息的录入、修改和删除功能。

3. 成绩查询与统计模块:通过学号或姓名查询学生的成绩,并能够进行成绩的统计分析,如计算平均分和排名等。 4. 数据存储与备份模块:设计文件操作函数,将学生信息和成绩信息存储在文件中,并能够进行数据的备份和恢复。 四、系统实现 1. 使用C语言编写程序代码,通过结构体和数组等数据结构实现学生信息和成绩信息的存储。 2. 利用文件操作函数实现数据的读取和存储,包括学生信息和成绩信息的存储和备份。 3. 设计菜单界面,通过用户选择来实现各个功能模块的调用。 五、系统测试与优化 1. 针对各个功能模块进行测试,验证系统的正确性和稳定性。 2. 根据测试结果优化程序代码,提高系统性能和用户体验。 3. 完善系统功能,考虑异常情况的处理,提高系统的容错性和健壮性。 六、总结与展望 通过本次课程设计,我们成功实现了一个基于C语言的学生成绩管理系统。该系统能够方便地记录和查询学生的成绩信息,帮助教师和学生进行教学和学习的分析和改进。未来可以进一步完善系统功能,如

学生成绩管理系统c语言作业

学生成绩管理系统c语言作业 计算机做学生成绩管理系统设计 一、简介 学生成绩管理系统是一款非常有用的软件,它集管理、查询和统计 学生成绩等全部功能为一体,让学生成绩管理更加方便、快捷、有效 率和可靠性。系统主要功能包括添加、删除成绩、查询成绩、修改成绩、统计成绩等功能,并可以根据用户的要求生成相应的成绩报表。 二、系统功能 1、添加成绩:可以向系统中添加一个新的学生的成绩,包括姓名, 学号,课程号,课程名,成绩等。 2、删除成绩:可以删除系统中某一个学生的成绩,也可以批量删除 多个学生的成绩。 3、查询成绩:可以通过学号查询某一学生的成绩,也可以通过课程 号查询某一门课程的成绩。 4、修改成绩:可以修改某一学生的成绩,也可以按需要修改多个学 生的成绩。 5、统计成绩:将所有学生的数据进行统计分析,统计出学生总人数、平均分、最高分、最低分、合格率等情况。 6、生成报表:可以根据用户的要求生成所有学生成绩报表,可以将 报表保存为excel表或者文本文件。

三、开发环境 1、语言:C语言 2、开发工具:VS2008 四、设计目标 主要设计一个学生成绩管理系统,使用C/C++语言,实现成绩的添加、删除、查询、修改、统计信息和生成报表功能。 五、系统分析 1、数据库:数据库是系统的核心部分,主要作用是存储学生的个人 信息和成绩。 2、数据处理:主要是对用户输入的信息进行处理,包括添加、修改、删除、查询、统计信息和生成报表等功能。 3、图形界面:主要用来接收用户输入的数据,并将结果以图形形式 输出。 六、测试 主要设计和实现学生成绩管理系统,在系统设计实现完成之后,会 对系统进行测试,测试包括功能测试和性能测试,以确保系统的功能 正确,且效率高。 七、总结 学生成绩管理系统是一款处理教学成绩的软件系统,它能够实现成 绩的查询、添加、修改、删除和统计等功能,它具有功能灵活,操作

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

学生成绩管理系统c语言课程设计 一、引言 学生成绩管理系统是一种可以帮助学校或教育机构管理学生的成绩、课程和考试信息的软件。本文将介绍一个基于C语言的学生成绩管理系统的设计过程。 二、需求分析 在设计一个学生成绩管理系统之前,我们需要先进行需求分析。以下是该系统需要满足的基本需求: 1. 学生信息管理:包括添加、删除和修改学生信息,如姓名、性别、年龄等; 2. 课程信息管理:包括添加、删除和修改课程信息,如课程名称、授课教师等; 3. 成绩录入:可以录入每个学生在每门课程中的成绩; 4. 成绩查询:可以查询某个学生在某门课程中的成绩以及某门课程所有学生的成绩排名等; 5. 成绩统计:可以统计某个班级或某门课程所有学生的平均分、最高分和最低分等。 三、系统设计 1. 数据结构设计 为了实现上述需求,我们需要定义一些数据结构来存储相关信息。以下是我们所定义的数据结构:

(1)Student结构体:用于存储每个学生的基本信息,包括姓名、性别、年龄等。 typedef struct { char name[20]; char sex[10]; int age; } Student; (2)Course结构体:用于存储每门课程的基本信息,包括课程名称、授课教师等。 typedef struct { char name[20]; char teacher[20]; } Course; (3)Score结构体:用于存储每个学生在每门课程中的成绩。typedef struct { int student_id; int course_id; float score; } Score; (4)Class结构体:用于存储某个班级的所有学生和所选的所有课程。typedef struct { Student students[MAX_STUDENT_NUM]; int student_num;

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

学生成绩管理系统是一个常见的C语言入门项目,可以帮助初学者了解循环、条件控制、结构体、文件操作等基本知识。以下是一个简单的C语言学生成绩管理系统示例,实现了查询、添加、修改和删除学生成绩等功能。您可以修改和扩展该代码以满足您 的需求: #include #include #include typedef struct { int id; char name[20]; float score; } Student; void display_menu(); void add_student(); void find_student(); void edit_student(); void delete_student(); void save_data(); void load_data(); int student_count = 0; Student students[100]; int main() { load_data(); while (1) { display_menu(); int choice; printf("请输入您的选择:"); scanf("%d", &choice); switch (choice) { case 1: find_student(); break; case 2: add_student(); break; case 3:

edit_student(); break; case 4: delete_student(); break; case 5: save_data(); printf("数据已保存。\n"); exit(0); default: printf("无效的选项!\n"); } } return 0; } void display_menu() { printf("学生成绩管理系统\n"); printf("====================\n"); printf("1. 查询学生成绩\n"); printf("2. 添加学生成绩\n"); printf("3. 修改学生成绩\n"); printf("4. 删除学生成绩\n"); printf("5. 退出系统\n"); printf("====================\n"); } void add_student() { printf("请输入学生ID:"); scanf("%d", &students[student_count].id); printf("请输入学生姓名:"); scanf("%s", students[student_count].name); printf("请输入学生成绩:"); scanf("%f", &students[student_count].score); student_count++; printf("学生已添加成功!\n"); } void find_student() { int id; printf("请输入要查询的学生ID:");

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(); /*停顿函数*/

相关主题
相关文档
最新文档