C语言程序设计成绩管理系统.docx

上传人:b****2 文档编号:24591211 上传时间:2023-05-29 格式:DOCX 页数:34 大小:175.54KB
下载 相关 举报
C语言程序设计成绩管理系统.docx_第1页
第1页 / 共34页
C语言程序设计成绩管理系统.docx_第2页
第2页 / 共34页
C语言程序设计成绩管理系统.docx_第3页
第3页 / 共34页
C语言程序设计成绩管理系统.docx_第4页
第4页 / 共34页
C语言程序设计成绩管理系统.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

C语言程序设计成绩管理系统.docx

《C语言程序设计成绩管理系统.docx》由会员分享,可在线阅读,更多相关《C语言程序设计成绩管理系统.docx(34页珍藏版)》请在冰豆网上搜索。

C语言程序设计成绩管理系统.docx

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

 

内蒙古科技大学

本科生课程设计论文

 

题目:

C语言课程设计

——学生成绩管理系统

学生姓名:

黄亚坤

学号:

1367159105

专业:

软件

班级:

软件一班

指导老师:

王丽颖

内蒙古科技大学课程设计任务书

课程名称

C语言课程设计

设计题目

学生成绩管理系统

指导教师

王丽颖

时间

2013.12.30——2014.1.3

一、教学要求

1.巩固和加深学生对C语言课程的基本知识的理解和掌握

2.掌握C语言编程和程序调试的基本技能

3.利用C语言进行基本的软件设计

4.掌握书写程序设计说明文档的能力

5.提高运用C语言解决实际问题的能力

二、设计资料及参数

每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。

某班学生成绩管理,包括以下功能:

v从键盘输入包括学号、姓名、各门课程成绩(不少于5门),并将其保存在磁盘文件里

v打开文件后,计算每个人的总分和平均分,排序并保存

v具有单项查询或多项查询的功能(即按照给定的关键字,如姓名找出满足条件的纪录)

v具有插入、删除和修改功能

v具有输出文件数据信息的功能

三、设计要求及成果

1.分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多3人)协作完成一个题目)

2.写出详细设计说明(至少包括功能实现分析和模块流程图)

3.编写程序代码,调试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的注释,每人至少3个函数,每人至少200行代码,不包括注释和花括号)

4.设计完成的软件要便于操作和使用

5.设计完成后提交课程设计报告(请严格按照模板进行排版)

四、进度安排

第一天 选择课程设计题目,分析课题的要求

第二天 编程

第三天 编程及调试

第四天 写课程设计报告

第五天 提交课程设计报告(打印稿及电子稿)

五、评分标准

1.根据平时上机考勤、表现和进度,教师将每天点名和检查

2.根据课程设计完成情况,必须有可运行的软件。

3.根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。

六、建议参考资料

1.《C语言程序设计》,谭浩强,清华大学出版社

2.《C语言程序设计课程设计》,刘振安,机械工业出版社

 

第一章需求分析

1.1引言

近年来,随着学校规模的不断扩大,学生数量也相应的增加,有关学生考试的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致学生成绩管理上的混乱,人力与物力过多浪费,学生成绩管理费用的增加,从而使学校的负担过重,影响整个学校的运作和控制管理,因此,必须制定一套合理、有效,规范和实用的学生成绩管理系统,对学生成绩进行集中统一的管理。

系统开发的总的设计目标是学生成绩管理的系统化、规范化和自动化,实现对学绩集中统一的管理。

1.2任务概述

概述本系统通过管学生成绩信息可以进行学生成成绩信息的插入,修改,对学生的平均分进行排序,为学生成绩供准确的资料,提高了人员的工作效率

1.3功能需求

系统以菜单方式工作,编写存放有学生信息,包含学生姓名,学号、学生成绩,总分,平均分,并可对这些信息进行浏览,建立学生信息的文件,并可以对学生信息进行插入,删除。

根据学号对学生信息进行查找,修改,根据学生成绩的平均分进行计算排序

第二章概要设计

2.1总体设计

第三章详细设计

3.1输入模块设计

打开学生信息输入函数

读入学生信息

并进行存储

}

3.2查找模块设计

打开学生信息查询函数

按姓名查询

输入姓名(找不到结束)

按学号查询

输入学号(找不到结束)

 

3.3修改模块设计

进入学生信息修改函数

输入修改的学生学号

及修改后的学生信息(

前提是输入的学生学号正确)

}

3.4删除模块设计

{

进入学生信息修改模块

输入需要删除的学生学号

核对学生学号

删除成功

}

 

3.5插入模块设计

{

进入学生信息插入模块

输入需要插入的学生信息

插入成功

}

第四章测试分析

4.1测试程序执行情况

把下例中的数据输入到程序中,进行运行,即可得到此学生成绩管理系统的执行情况。

学号

姓名

语文成绩

数学成绩

英语成绩

物理成绩

化学成绩

13042001

01

78

75

87

96

92

13042002

02

89

86

95

92

90

13042003

03

87

83

80

90

97

13042004

04

67

78

98

80

92

第五章用户手册(可选)

5.1使用说明

 打开该程序系统,浏览菜单,根据需要选择功能,进行各项操作。

点击开始菜单,进入菜单选择。

输入:

将所需的信息输入。

输出:

学号,姓名,成绩,排名,输入:

根据不同的需要选择,当信息输入显示出错误时,进入浏览信息,找出错误。

当错误不能改正,则退出浏览信息。

进入查询信息:

则屏幕会出现两个对话框——按作学号和按姓名查找,查处相应的所需信息,把所输入的信息进行修改,使之正确能够正常运行或进入删除信息中,重新输入自己所要的信息。

当信息输入正确,进入你所需要的菜单程序中:

学生信息:

显示学生的成绩,学号,姓名,排序等

 

第六章课程设计总结

该系统以学生成绩信息管理为背景,并且有一定的可行性和安全性,确保了各项指定功能得以运行。

本系统以基本函数、结构体、枚举性、文件以及链表等多方位知识贯穿实现。

通过此次程序设计实践,是对所学知识的综合运用,也是程序设计得以提高表现。

通过此次编程培养了我们结构化程序设计的思想,加深了对高级语言基本语言要素和控制结构的理解,锻炼我们独立思考制作程序的能力,并且掌握了一些课程设计的相关知识与实践操作能力,为以后的学习提供了锻炼的机会。

并且我对c语言这门课程有了更好的了解

 

附录:

程序代码

#include

#include

typedefstructkecheng

{

intyuwen;

intshuxue;

intyingyu;

intwuli;

inthuaxue;

}kecheng;

typedefstructstudent

{

intstudentxuehao;

charxingming[20];

kechengchengji;

intzongfen;

intpinjunfen;

}student;

studenta[100];

inti=0;

voidshuru();

voidjisuan();

voidchaxun();

voidcharu();

voidshanchu();

voidxiugai();

voidshuchu();

intmain()

{

intt;

printf("\n\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("****按1输入****\n");

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

printf("****按2计算排序***\n");

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

printf("****按3查询****\n");

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

printf("****按4插入****\n");

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

printf("****按5删除****\n");

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

printf("****按6修改****\n");

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

printf("****按7输出****\n");

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

printf("****按0退出****\n");

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

printf("\n");

while(scanf("%d",&t)&&t!

=0)

{

switch(t)

{

case1:

shuru();

break;

case2:

jisuan();

break;

case3:

chaxun();

break;

case4:

charu();

break;

case5:

shanchu();

break;

case6:

xiugai();

break;

case7:

shuchu();

break;

default:

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

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

printf("*输入不符合要求请重新输入!

*\n");

printf("\n");

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

}

}

return0;

}

voidshuru()

{

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");

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

printf("**请输入物理成绩**\n");

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

printf("**请输入化学成绩**\n");

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

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

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

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

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

scanf("%d",&a[i].studentxuehao);

getchar();

scanf("%s",a[i].xingming);

scanf("%d",&a[i].chengji.yuwen);

scanf("%d",&a[i].chengji.shuxue);

scanf("%d",&a[i].chengji.yingyu);

scanf("%d",&a[i].chengji.wuli);

scanf("%d",&a[i].chengji.huaxue);

i++;

printf("\n");

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

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

printf("\n");

printf("*输入成功!

*\n");

printf("\n");

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

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

printf("\n");

}

voidjisuan()

{

intj,z;

studentt;

for(j=0;j

{

a[j].zongfen=a[j].chengji.yuwen+a[j].chengji.shuxue+a[j].chengji.yingyu+a[j].chengji.wuli+a[j].chengji.huaxue;

a[j].pinjunfen=a[j].zongfen/5;

}

for(z=0;z

{

for(j=0;j

{

if(a[j].pinjunfen>a[j+1].pinjunfen)

t=a[j],a[j]=a[j+1],a[j+1]=t;

}

}

printf("\n");

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

printf("**排列完毕**\n");

printf("\n");

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

}

voidchaxun()

{

intj,k,z=0,c,e=1;

charb[20];

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

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

printf("**请选择按学号查询或者按名字查询**\n");

printf("**按1学号查询**\n");

printf("**按2姓名查询**\n");

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

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

scanf("%d",&c);

if(c==1)

{

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

printf("***请输入你要查询的学号:

***");

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

scanf("%d",&k);

for(j=0;j

{

if(a[j].studentxuehao==k)

z=1,printf("学号:

%d名字:

%s语文成绩:

%d数学成绩:

%d英语成绩:

%d物理成绩:

%d化学成绩:

%d平均分:

%d\n",a[j].studentxuehao,a[j].xingming,a[j].chengji.yuwen,a[j].chengji.shuxue,a[j].chengji.yingyu,a[j].chengji.wuli,a[j].chengji.huaxue,a[j].pinjunfen);

}

if(z==0)

{

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

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

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

}

}

if(c==2)

{

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

printf("**请输入你要查询的名字:

**");

printf("*************************");

scanf("%s",b);

for(j=0;j

{

e=strcmp(b,a[j].xingming);

if(e==0)

z=1,printf("学号:

%d名字:

%s语文成绩:

%d数学成绩:

%d英语成绩:

%d物理成绩:

%d化学成绩:

%d平均分:

%d\n",a[j].studentxuehao,a[j].xingming,a[j].chengji.yuwen,a[j].chengji.shuxue,a[j].chengji.yingyu,a[j].chengji.wuli,a[j].chengji.huaxue,a[j].pinjunfen);

}

if(z==0)

{

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

printf("**你输入的名字有误!

**\n");

}

}

}

voidcharu()

{

intj,c=0,k=0;

studentt;

i++;

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

printf("请输入你要插入的学生信息\n");

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

scanf("%d",&t.studentxuehao);

getchar();

scanf("%s",t.xingming);

scanf("%d",&t.chengji.yuwen);

scanf("%d",&t.chengji.shuxue);

scanf("%d",&t.chengji.yingyu);

scanf("%d",&t.chengji.wuli);

scanf("%d",&t.chengji.huaxue);

t.zongfen=t.chengji.yuwen+t.chengji.shuxue+t.chengji.yingyu+t.chengji.wuli+t.chengji.huaxue;

t.pinjunfen=t.zongfen/5;

for(j=0;j

{

if(t.zongfen<=a[j].zongfen&&k==0)

c=j,k=1;

}

for(j=i-1;j>c;j--)

{

a[j]=a[j-1];

}

a[c]=t;

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

printf("插入成功!

\n");

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

}

voidshanchu()

{

intj,z,k,c=0;

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

printf("请输入你要删除的学生学号:

");

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

scanf("%d",&k);

if(a[i-1].studentxuehao==k)

i--,c=1;

else

{

for(j=0;j

{

if(a[j].studentxuehao==k)

{

for(z=j;z

{

a[z]=a[z+1];

}

i--;

c=1;

}

}

}

if(c==0)

printf("你输入的学号有误!

\n");

else

printf("删除成功!

");

}

voidxiugai()

{

intj,c=0;

studentt;

printf("请输入你要修改的学生学号以及修改后的学生信息\n");

scanf("%d",&t.studentxuehao);

getchar();

scanf("%s",t.xingming);

scanf("%d",&t.chengji.yuwen);

scanf("%d",&t.chengji.shuxue);

scanf("%d",&t.chengji.yingyu);

scanf("%d",&t.chengji.wuli);

scanf("%d",&t.chengji.huaxue);

t.zongfen=t.chengji.yuwen+t.chengji.shuxue+t.chengji.yingyu+t.chengji.wuli+t.chengji.huaxue;

t.pinjunfen=t.zongfen/5;

for(j=0;j

{

if(a[j].studentxuehao==t.studentxuehao)

a[j]=t,c=1;

}

if(c==0)

{

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

printf("你输入的学生学号有误!

\n");

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

}

else

{

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

printf("修改成功!

\n");

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

}

}

voidshuchu()

{

intj;

for(j=0;j

{

printf("学号:

%d名字:

%s语文成绩:

%d数学成绩:

%d英语成绩:

%d物理成绩:

%d化学成绩:

%d平均分:

%d\n",a[j].studentxuehao,a[j].xingming,a[j].chengji.yuwen,a[j].chengji.shuxue,a[j].chengji.yingyu,a[j].chengji.wuli,a[j].chengji.huaxue,a[j].pinjunfen);

}

}

参考文献

[1].张跃廷,王小科,帖凌珍.ASP.NET程序开发范例宝典[M],北京:

人民邮电出版社,2007

[2].马颖华,苏贵洋,袁艺等.ASP.NET2.0网络编程从基础到实践[M],北京:

电子工业出版社,2000

[3]C程序设计题解与上机指导,谭浩强,清华大学出版社,1999

[4]C语言的实际应用,安徽科学技术出版社,2000 

致谢

在编写程序的过程中,我们得到了王丽颖老师的精心指导以及孜孜不倦的教诲,在老师指导下,我们的能力得到了提高,同时养成了科学、严谨的作风和习惯,在此,我们对老师的精心栽培表示衷心的感谢!

感谢我们小组同学对我的帮助和指点,尤其感谢我的舍友在非常时期,在生活和学习上帮我许多忙。

在课设即将完成之际,我的心情无法平静,从开始进入课题到

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1