C语言课程设计报告 2.docx

上传人:b****6 文档编号:3242171 上传时间:2022-11-21 格式:DOCX 页数:31 大小:72.75KB
下载 相关 举报
C语言课程设计报告 2.docx_第1页
第1页 / 共31页
C语言课程设计报告 2.docx_第2页
第2页 / 共31页
C语言课程设计报告 2.docx_第3页
第3页 / 共31页
C语言课程设计报告 2.docx_第4页
第4页 / 共31页
C语言课程设计报告 2.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

C语言课程设计报告 2.docx

《C语言课程设计报告 2.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告 2.docx(31页珍藏版)》请在冰豆网上搜索。

C语言课程设计报告 2.docx

C语言课程设计报告2

C语言课程设计报告

 

设计题目:

学生成绩管理系统

系(院):

经济管理学院

学年学期:

2010~2011学年第1学期2010年1月3日

 

C语言课程设计任务书

课程设计题目

学生成绩管理

课程设计目的

(1)培养学生正确的设计思想,将理论与实际相结合,严肃认真、实事求是的科学态度和勇于探索的创新精神。

(2)培养学生综合运用所学知识与生产实践经验,分析和解决工程技术问题的能力。

(3)通过课程设计实践,建立系统设计的整体思想,锻炼编写程序、调试程序的能力,学习文档编写规范,培养独立学习、吸取他人经验、探索前言知识的习惯。

同时,C++语言程序设计课程设计可以充分弥补课堂教学及普通实验中知识深度与广度有限的缺陷,更好地帮助学生从全局角度把握课程体系。

课程设计环境

硬件:

P4以上计算机

软件:

VisualC++

MicrosoftWindowsXP

课程设计任务和要求

任务:

用C语言对学生成绩进行编程;

要求:

1、要充分认识C++语言程序设计课程设计的重要性,认真做好各项准备工作;既要虚心接受老师的指导,又要充分发挥主观能动性,要结合课题,独立思考,努力钻研,勤于实践,勇于创新;收集资料,自学相关知识,拓宽知识面,根据课题的基本要求,自行完成设计任务。

要按时、独立完成规定的工作任务,不弄虚作假,不抄袭他人;严格遵守学习和劳动纪律,不无故缺席,不迟到早退,不懈怠,不拖拉,要积极主动;严格要求自己,树立严肃、严密、严谨的科学态度,按时、按质、按量完成。

工作进度计划

序号

起止日期

工作内容

01

2010.12.27~2010.12.28

查找资料,熟悉操作环境,开始编写程序

02

2010.12.29~2010.12.31

编写程序,调试程序

03

2010.01.01~2010.01.03

写实验报告

指导老师签字(盖章):

年月日

 

摘要:

本系统使用VisualC++语言编写制作一个对学生成绩信息的管理系统,对于信息管理的具体分类,例如:

学生信息,成绩信息进行管理,信息查询进行方便查询。

系统包括信息管理和查询两个部分,更加方便地减少人工所花费的时间,提高了管理的水平和服务质量,使得查询降低了错误率,完成了不同类型的查询。

本系统具有的功能如下:

学生信息管理功能:

显示学生信息,用户可以浏览查看学生信息,也可对学生信息进行添加,修改,删除等一系列操作。

信息查询功能:

用户可以按学号对学生的基本信息以及成绩信息进行查询,

退出系统功能:

完成了对学生信息管理系统的操作后,应该可以安全的离开该系统,通过该模块可以离开学生信息管理系统。

 

关键词:

功能;管理;查询;

 

学生成绩管理系统分析和设计

1需求分析

学生成绩管理系统的功能需求分析

学生成绩管理系统主要提供成绩查询、添加和修改,方便管理的学生成绩信息查阅平台,系统管理员可以对学生的信息进行修改、查询、插入;同时可以为学生提供各门成绩的查询,包括总分和平均分;也可以为各科任课教师提供任教课程学生的成绩查询,方便老师了解教学质量;还可以为学校提供评奖、评优的信息,并且这些信息还可以保留备份。

2总体方案设计

按要求排序

 

3数据库的物理设计

3.1把关系模型转换为表结构:

3.1.1course用于记录课程的基本信息,如表3.1.1所示:

字段名

描述

字段类型

允许空值

说明

Cname

课程名

Varchar(10)

No

主键

grade

成绩

Int(10)

Yes

表3.1.1course

3.1.2student用于记录车票的基本信息,如表3.1.2所示:

字段名

描述

字段类型

允许空值

说明

Sno

学号

Varchar(10)

No

主键

sname

姓名

Float(10)

YES

bj

班级

Char(10)

YES

表3.1.2ticket

3.1.3coursestudent用于记录学生查询和添加记录的基本信息,如表3.1.3所示:

字段名

描述

字段类型

允许空值

说明

Sno

编号

Varchar(10)

No

主键(同时都是外键)

cname

班次

Varchar(10)

No

sname

票价

Float(10)

YES

Bj

终点站

Varchar(10)

YES

grade

发车时间

Datetime(8)

YES

表3.1.2coursestudent

3.2实现数据完整性

通过各种约束,缺省,规则实现数据的完整性。

(1)各种外键约束保证数据的完整性,不能随意删除。

(2)主键约束保证实体的完整性。

 

4算法设计

算法:

第一步:

进入系统界面,按要求输入管理员密码;如果密码正确,那么进入系统;否则,再输入密码,3次内任意一次正确进入系统,超过3次退出界面。

第二步:

进入系统,按界面提示选择0~9按键,进入所需要的界面。

第三步:

若选择1进入,按系统提示进行初始化并输入数据;若选择2进入,进入下一层界面,按要求选择0~7按键,选择排序方式;若选择3进入,进入搜索界面,输入学号进行搜索;若选择4则进入浏览界面,对系统中数据进行浏览;若选择5进入插入界面,按要求输入记录;若选择6,则进入删除界面中,输入要删除的学号;选择7进入修改界面,选择0~7按键按所需进行修改;选择8保存记录;选择9读取记录;选择0则退出程序。

第四步:

完成所需要求,退出系统。

5实现方法:

分别通过顺序结构、选择结构,按照顺序,通过判断输入数据是否满足条件进行操作,同时调用C语言本身具有的一些函数,如struct(),getch(),_sleep(),strcmp()等等函数,在关键的地方进行选择判断,从而保证系统的进行与操作正确。

6流程图:

 

(fp=fopen("d:

\zhang。

txt","w+"))==NULL

printf("无发打开\n");

c==1

printf("\t");

fprintf(fp,"%s\t",a[i]num);

i++

i<10

i=0

fclose(fp);

i++

i=0

inti,c=0;

fprintf(fp,"学号\t姓名\t班级\tc语言\t语文\t数据库\t高数\t英语\t总分\t平均分\n");

i

 

保存功能:

 

a[j]。

score[0]

score[0]

temp=a[j];

j++

j<=m-i-1

j=0

i++

i<=m-1

i=1

inti,j;

课程排序

i++

continue

break;

h==1

printf("请输入学号:

\n");

i

i=m

a[i]=a[i+1];

c==1

printf("初始化完毕!

是否增加新记录(1/0)!

");

i--

i>0

i=m

inti,c=0;

初始功能

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

printf("%。

1f\t",a[i]。

score[j]);

printf("%。

1f\t%。

1f\t",a[i]。

sum,a[i]。

averge);

j++

j<5

j=0

printf("%s\t",a[i]。

num);

i++

i

i=0

inti;

输出功能

printf("%。

1f\t",a[i]。

score[j]);

搜索功能

 

7代码编写

structstu

{

charname[20];

charnum[20];

charbanji[20];

floatscore[5];

floatsum;

floataverge;

};

定义结构体数组,包括姓名,学号,班级,5门成绩分数,总分和平均分

zhuomian();

scanf("%d",&a);

getchar();

switch(a)

{

case1:

case0

自定义函数zhoumian()实现从键盘输入a,当a分别等于0~9中的数时,分被执行case下的程序

printf("请输入学号:

\n");

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

printf("姓名:

\n");

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

printf("班级:

\n");

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

a[i].sum=0;

printf("C语言的成绩:

\n");

scanf("%f",&a[i].score[0]);

printf("语文的成绩:

\n");

scanf("%f",&a[i].score[1]);

printf("数据库的成绩:

\n");

scanf("%f",&a[i].score[2]);

printf("高数的成绩:

\n");

scanf("%f",&a[i].score[3]);

printf("英语的成绩:

\n");

scanf("%f",&a[i].score[4]);

a[i].sum=a[i].sum+a[i].score[0]+a[i].score[1]+a[i].score[2]+a[i].score[3]+a[i].score[4];

a[i].averge=a[i].sum/5;

分别从键盘上输入学号、姓名、班级和C语言、语文等五门成绩,同时求五门成绩的总分和平均分

if(a[j].score[0]

{

temp=a[j];

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

a[j+1]=temp;

}

比较两门成绩的大小,如果a[i].sorce[0]

8程序调试

在输出班级、学号、姓名、五门成绩以及总分、平均分时与下面所对应的数字不对齐,造成数据的错误。

后来经过多次的调试与代码检查,终于发现是在输出时“\t”即水平制表的后面多加了一个空格键,将空格删去后问题就解决的,数据就能够对齐了。

其他的还存在一些中英文切换的输入输出的错误,基本上没什么太大的错误。

 

运行与测试

图1初始化并输入记录

图2按学号查找学生记录

图3浏览学生记录

图3删除学生记录

图3修改学生记录

能够迅速地查找出学生的相关成绩,并且能够一一对应;准确性、可靠性都达到了,基本上达到了实验目的。

 

总结

忙碌了一个多星期,终于将此程序设计出来。

虽然有点累但还是很高兴的,因为在设计的过程中,让我了解到要设计一个程序,查找资料是至关重要的,在他人的基础上,再根据自己所学进行修改与调试,最后设计出自己想要的程序,这过程艰辛,但只要你持之以恒,成功指日可待。

另外平时扎实的基础也很关键,因为如果你平时学得就不怎么样,那么你面对这么一个比较有难度的程序,你可能会望而却步,看他人的程序都是个难点,更别说让你自己去设计。

为了解决此类问题,最好就是多向同学,老师请教,不要怕难为情,尤其是老师。

在设计这个程序时,刚开始是根据老师给我们提供的要求,

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

当前位置:首页 > 小学教育 > 语文

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

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