c语言语言课程设计报告--成绩记录簿

吞咽沧桑 范文 报告范文
精选回答

c语言语言课程设计报告--成绩记录簿本文简介:1110411414蒋佳琴程序设计语言课程设计报告上海应用技术学院课程设计2011~2012学年第二学期设计题目成绩记录簿院(系)计算机科学与信息工程学院专业计算机应用技术班级11104114学号1110411414学生姓名蒋佳琴设计时间2012.06.25-2012.07.06指导教师马智娴提交日

c语言语言课程设计报告--成绩记录簿本文内容:

1110411414

蒋佳琴

程序设计语言课程设计报告

上海应用技术学院

课程设计

2011~

2012学年第二学期

设计题目

成绩记录簿

院(系)

计算机科学与信息工程学院

计算机应用技术

11104114

学号

1110411414

学生姓名

蒋佳琴

设计时间

2012.06.25

-2012.07.06

指导教师

马智娴

提交日期

2012.07.06

上海应用技术学院课程设计任务书

课程名称

程序设计语言课程设计

课程代码

B704010

设计题目

1.

小型商品管理系统

2.

个人收支管理

3.

日程表管理

4.

成绩记录簿

5.

信息发布平台

6.

银行信贷管理系统

题目序号

4

设计时间

2012.06.25~2012.07.06

学院

计算机科学与信息工程

专业

计算机应用技术

班级

11104114

一、

课程设计任务(条件)、具体技术参数(指标)

1.

在指导书提供的课程设计题目中选择一题或自选(但需经过指导教师认可)

2.

每个题目限一人完成,题目选定后不可更换。

3.

用户提供的主操作界面应该方便用户的操作。

4.

最后提交的课程设计成果包括:

a)课程设计报告电子稿。

c)源程序文件。

d)可执行程序文件。

二、

对课程设计成果的要求(包括课程设计说明书、图纸、图表、实物等软硬件要求)

1.

分析课程设计题目的要求;

2.

写出详细设计说明;

3.

编写程序代码,调试程序使其能正确运行;

4.

设计完成的软件要便于操作和使用,有整齐、美观的使用界面;

5.

设计完成后提交课程设计报告和源代码文件的电子文档。

三、

课程设计工作进度计划:

第一天

选择课程设计题目,分析课题的要求,确定设计方案;

第二天

按功能模块编写详细设计说明;

第三天

绘制程序流程图;

第四~七天

编写与调试程序;

第八天

写课程设计报告;

第九天

提交课程设计报告;

第十天

面试或答辩。

四、

主要参考资料

[1]谭浩强.C程序设计(第四版).北京:清华大学出版社,2010

[2]谭浩强.C程序设计题解与上机指导(第四版).北京:清华大学出版社,2010

[3]

Herbert

Schildt.C语言大全(第四版).北京:电子工业出版社,2004

[4]Samuel

P.Harbison

Ⅲ,Guy

L.Steele.C语言参考手册(第5版).北京:机械工业出版社,2003

[5]程序设计语言课程设计指导书.

指导教师(签名):

马智娴

教研室主任(签名):马智娴

2012年

6

月25日

2012年6月25日

目录

1

设计目的5

2

功能描述5

2.1模块功能5

2.2流程图6

3

总体设计13

3.1

功能模块设计13

3.2

数据结构设计13

3.3

函数功能描述13

4

程序实现13

4.2

运行结果13

5课程设计总结17

成绩记录簿

成绩记录簿

1.

添加

2.

删除

3.

查学生成绩

4.

查班成绩表

5.

写入文件

6.

读取文件

0.

退出

程序的主界面

1.

设计要求:

基本功能

a)

添加成绩

b)

删除成绩

c)

查询学生成绩

d)

查询班级成绩

e)

退出

拓展功能

a)

写入文件

b)

读取文件

创新(自拟)功能:

程序实现的其它功能由个人自拟。

2.

设计要求具体说明

基本功能:

成绩记录簿中记录以下数据:

学号、姓名、课程编号、课程名称、成绩、学分,所有成绩都以百分制计分;

输入信息时要检查数据项学号、课程编号、成绩、学分的合法性,学号:8位数字;课程编号:5位数字;成绩:0

~

100

之间的整数,学分:

1~

5之间的实型数。

添加成绩:需要输入学生的学号或姓名、课程编号及成绩,如已有该门课程成绩给出提示;

查询(班级或个人)成绩:

a)

查询个人成绩:以学号或姓名作为关键字,可查询一个学生的所有成绩,和已完成的总学分。

b)

查询班级成绩:以课程编号为关键字,成绩表后面要统计平均分、及格率及全班同学不同课程在不同分数段分布的人数及百分比。

拓展功能:

a)

程序启动时先从文件读入数据,如果文件中没有数据则给出提示;

b)

每次修改的数据写入文件。

3.

提示

定义合适的结构体类型,使用链表或数组的方式组织数据。

1

设计目的

1.

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

2.

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

3.

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

4.

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

5.

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

2

功能描述

2.1模块功能

2.1.1

添加功能:添加学生基本信息中可以输入学生学号,学生姓名和学生班级。添加学生成绩可以输入学生的课程编号、课程名称、成绩、学分。并且可以判断输入数据的合法性。

2.1.2

删除功能:能够删除输入错误或者不想要的陈旧信息。

2.1.3

查询功能:能查询学生基本信息,和学生成绩。

2.2流程图

成绩记录簿

添加

删除

查询学生成绩

写入文件

读取文件

退出

添加学生基本信息

添加学生成绩

删除学生基本信息

删除学生成绩

学号查询

姓名查询

课程代号查询

储存

读取

结束

查询班级成绩

图1

系统功能菜单

开始

提示

输入

检查学的合法性

放入结构体数组中

Y

N

结束

图2

添加(学生基本信息)

开始

提示

输入课程编号

检查课程编号的合法性

输入课程名字和成绩

检查成绩的合法性

输入学分

检查学分的合法性

计算学分

放入结构体数组中

结束

Y

N

Y

N

Y

N

图3

添加(学生成绩)

开始

提示

输入

检查

调出学生信息

删除

结束

Y

N

图4

删除(学生基本信息)

开始

提示

输入

检查

调出学生成绩

删除

结束

Y

N

图5

删除(学生成绩)

开始

输入查询的课程序号

判断课程是否存在Y

输出该班级所有成绩,学分

结束

N

图6

查询(学生基本信息)

开始

输入查询的学号n

判断学生存在

输出该学生所有成绩,学分

结束

Y

N

图7

查询(学生个人成绩)

开始

输入查询的课程序号

判断课程是否存在

输出该班级所有成绩,学分

结束

Y

N

图8

查询班级课程成绩

3

总体设计

3.1

功能模块设计

3.1.1

添加功能设计:

添加分为两部分添加学生基本信息和添加学生成绩。添加学生基本信息中要求输入学生学号,学生姓名和学生班级。添加学生成绩要求输入学生的课程编号、课程名称、成绩、学分。其中用结构体来建立输入的学生信息的形式。两个结构体间用静态链表连接,使其联系起来。

3.1.2

删除功能设计:删除也分为两部分删除学生基本信息和删除学生成绩。删除用后一个来覆盖前一个原理进行操作。

3.1.3

查询功能设计:查询学生成绩可以用3种方法来进行。1.学号2.姓名3.课程代号。

班级查询,可输入课程代号,可得班平均分。

3.2

数据结构设计

先建立两个结构体studen1,student2。再设立全局变量,建立循环以验证输入的合法性,全局变量累加,全局变量累减。

3.3

函数功能描述

3.3.1

#include

在使用标准函数库中的输入输出函数时,编译系统要求程序提供有关的信息(例如对这些输入输出函数的声明),#include的作用就是用来提供这些信息的,stdio.h是C编译系统提供的一个文件名,stdio是“standard

input

检查ch是否为空格制表或换行字符。

“ctype”中c为字符型char的缩写,type

为类型。

3.3.3#include

string.h是个头文件,里面写的是关于字符串操作的一些基本函数。当程序中涉及对字符串的操作时,会用到这个头文件里面的函数。所以要把它include(包含)进来。

3.3.4

#include

stdlib.h里面定义了五种类型、一些宏和通用工具函数。

类型例如size_t、wchar_t、div_t、ldiv_t和lldiv_t;

宏例如EXIT_FAILURE、EXIT_SUCCESS、RAND_MAX和MB_CUR_MAX等等;

常用的函数如malloc()、calloc()、realloc()、free()、system()、atoi()、atol()、rand()、srand()、exit()等等。

具体的内容你自己可以打开编译器的include目录里面的stdlib.h头文件看看。

4

程序实现

4.1

源码分析

#include

#include

#include

#include

main()

{

int

t;

while(1)

{

printf(“\n\n\n“);

printf(“*成绩记录簿*\n“);

printf(“********************************************************************************“);

printf(“1:

添加\n“);

printf(“2:

删除\n“);

printf(“3:

查询学生成绩\n“);

printf(“4:

查询班成绩\n“);

printf(“5:

写入文件\n“);

printf(“6:

读取文件\n“);

printf(“0:

退

\n“);

printf(“********************************************************************************“);

printf(“请输入数字选择:

“);

scanf(“%d“,switch(t)

{

case

1:

tj();break;

case

2:

sc();break;

case

3:

cx1();break;

case

4:

cx2();

break;

case

5:

xw();break;

case

6:

dw();break;

case

0:

exit(0);

default:

;

}

}

}

struct

student1

//建立结构体

{

char

num[20];

char

name[20];

int

bj;

};

struct

student2

{

char

xh[20];

char

id[20];

char

idname[20];

int

sorce;

float

jd;

};

struct

student2

s2[200],ss,*pp;

//定义

struct

student1

s[200],s22,s3,*oo;

int

count1=0,count2=0;

//设立全局变量

void

tj1()

{

int

i,j,n,k;

printf(“请输入想要输入的学生的人的个数:“);

scanf(“%d“,for(j=count1;j7)

{k=0;}

}

}while(k!=1);

printf(“请输入学生的姓名:“);

scanf(“%s“,s[j].name);

printf(“请输入班级:“);

scanf(“%d“,}

count1=count1+n;

//全局变量累加

}

void

tj2()

{

int

ii,jj,nn,k1,k2,k3,k4;

printf(“请输入想要输入的学科的个数:“);

scanf(“%d“,for(jj=count2;jj7)

{k4=0;}

}

}while(k4!=1);

do

{

printf(“请输入课程编号(5位数字):“);

scanf(“%s“,s2[jj].id);

for(ii=0;s2[jj].id[ii]!=

\0

;ii++)

{

if((ii==4)

if(ii>4)

{k1=0;}

}

}while(k1!=1);

printf(“请输入学科的名称:“);

scanf(“%s“,s2[jj].idname);

do

//验证成绩的合法性

{

printf(“请输入成绩(成绩为0~100间的整数):“);

scanf(“%d“,if((s2[jj].sorce>=0)}

}

}

}

}

pt=0;

for(jj=0;jj

{

pt=pt+tt[jj];

}

rt=pt/j;

ct=(100*cpp)/j;

printf(“平均分为%f“,rt);

printf(“及格率为:百分之%f\n“,ct);

}

void

xw()

{

FILEfp;

int

i,m,n;

char

filename[20];

printf(“请输入想要储存的内容:

1。*学生基本信息*

2。*课程成绩*\n“);

scanf(“%d“,if(m==1)

{

printf(“请输入文件的寸盘位置及文件名:“);

scanf(“%s“,filename);

if((fp=fopen(filename,“wb+“))==NULL)

{printf(“不能打开文件\n“);

exit(0);}

for(i=0;i

if(fwrite(

printf(“请输入学生学号(要求8位数字):“);

scanf(“%s“,filename);

fputs(filename,fp);

fputc(

\0,fp);

printf(“请输入学生的姓名:“);

scanf(“%s“,filename);

fputs(filename,fp);

fputc(

\0,fp);

printf(“请输入班级:“);

scanf(“%s“,filename);

fputs(filename,fp);

fclose(fp);}

else

if(m==2)

{

printf(“请输入文件的寸盘位置及文件名:“);

scanf(“%s“,filename);

if((fp=fopen(filename,“wb+“))==NULL)

{printf(“不能打开文件\n“);

exit(0);}

for(i=0;i

if(fwrite(

printf(“请输入学生学号(要求8位数字):“);

scanf(“%s“,filename);

fputs(filename,fp);

fputc(

\0,fp);

printf(“请输入课程编号(5位数字):“);

scanf(“%s“,filename);

fputs(filename,fp);

fputc(

\0,fp);

printf(“请输入学科的名称:“);

scanf(“%s“,filename);

fputs(filename,fp);

fputc(

\o,fp);

printf(“请输入成绩(成绩为0~100间的整数):“);

scanf(“%d“,filename);

fputs(filename,fp);

fputc(

\0,fp);

printf(“请输入本门课的学分(学分为1~5之间实型数):“);

scanf(“%d“,filename);

fputs(filename,fp);

fclose(fp);}

else

if(m!=1

exit(0);}

}

void

dw()

{

FILEfp;

char

ch;

if

((fp=fopen(“d:\\student.txt“,“r“))==NULL

)

{

printf(“cannot

open

file.\n“);

exit(0);

}

while(!feof(fp))

{

ch=fgetc(fp);

printf(“%c“,ch);

}

printf(“\n“);

fclose(fp);

}

4.2

运行结果

在函数开始时,初始化临时结构体数组,让结构体内所有成绩均为0.,读取目标文件,然后运行功能函数,选择需要的功能

图1

初始页面

1.

输入学生的学号、姓名、课程序号、课程名称、成绩、学分,并在输入的时候检查输入的合法性,然后检查结构体数组内是否有学号、姓名、课程序号都相同的重复数据。

图2

输入界面

图3输入时判断合法性

图4

输入时检测是否重复

图5输入完成时

2.

删除已存在学生的信息,通过输入学生的学号或姓名来检索需要删除的内容。

图6查询学生个人成绩

3.

查找学生个人信息,通过输入学生姓名或学号来进行查找,输出全部个人成绩。

图7

查询班级成绩

4.

查询班级成绩,通过输入课程序号检索所有该门课程的成绩。基本原理同3.。

5.

将内存里的结构体数组保存到文件中,用fwrite(),按一个结构体做单位保存到文件中。如果磁盘内没有该文件,报错,并在该路径下新建一个文件。

6.

将磁盘里的文件内容读取到临时结构体数组中,如果不存在磁盘文件,那么在该路径下新建一个文件。

7.

菜单呼出,当输入较多数据后,为方便查询指令代码而呼出菜单。

图8

写入文件

图9

读出文件

0.

结束程序。

5课程设计总结

经过2个礼拜的程序设计,很大程度上的让我更深刻的理解的C

语言在实际上的运用,及其灵活。尤其在文件的存储和结构体模块,大大加强了我对概念和小细节的理解和把握。

同时也让我知道的编程的艰辛,以后的路任重而道远。总之,这次课程设计让我收益非浅。对我将来的学习很有帮助。

努力吧 2022-07-06 10:46:51

相关推荐

燕子的诗句

1、何处哀筝随急管,樱花永巷垂杨岸。东家老女嫁不售,白日当天三月半。溧阳公主年十四,清明暖后同墙看。归来展转到五更,梁间燕子闻长叹。李商隐《无题》2、梦后楼台高锁,酒醒帘幕低垂。去年春恨却来时。落花人独立,微雨...
展开详情

最新唯美语录

1、我的幸福,就是看着你幸福。2、说忘记的人,往往还是记得的。3、可怜无定河边骨,犹是春闺梦里人。4、不知苦的甜,爱的悲哀也在随风遣散。5、你懂得那么多,想必过得也不是很好。6、在物事已非的景色里。叫我如何喜欢...
展开详情

描写令箭荷花的诗句

1、奉得青枝当令箭,敢叫荷花上岸开。果然茎端花频现,疑是观音驾莲来。2、娇艳无双天上来,九天霞彩下瑶台。姹紫嫣红无可比,织女精心巧剪裁。3、潺潺滋雨润,点点浸香萦。漱玉濯清韵,衔珠弄雅情。深凝渐羞赧,轻诉漫吟风...
展开详情

新的一月开始了正能量精美语句 每月第一天句子

1、每一次努力,都是幸运的伏笔,每天都是好时光,不容浪费,新的一月,早安!2、新的一月,别让生活埋没梦想,别让时间困住目光,去你想去的地方,看你向往的风光。3、我们什么都没有,唯一的本钱就是青春。梦想让我与众不...
展开详情

伤感的让人流泪的网名 时光给相爱取名叫放手

忘了怎么笑半根烟、烫心难逃劫数笑似心酸鱼葬空白久入我梦最初爱人怪我怀旧百年孤寂就这么颓废着旧城已无他谁在坚持谁的信仰颜不如初我不会等你太久孤寂ほ的世界他已入她心无人与我酒不见阳光的暖i回忆是片空白时光给相爱取名...
展开详情

精选推荐更多>

鸿鹄之志岂燕雀能知是什么意思

鸿鹄之志岂燕雀能知,即“燕雀安知鸿鹄之志”,意思是:燕雀怎么能知道鸿鹄的远大志向,比喻平凡的人不知道英雄人物的志向。
出自《史记·陈涉世家》,又见《庄子·内篇·逍遥游》,原文是:陈涉少时,尝与人佣耕,辍耕之垄上,怅恨久之,曰:“苟富贵,勿相忘。”佣者笑而应曰:“若为佣耕,何富贵也?”陈涉叹息曰:“嗟乎,燕雀安知鸿鹄之志哉!”
翻译:陈涉年轻的时候,曾经同别人一起被雇佣耕地。(有一天)陈涉停止耕作走到田畔高地上(休息),因失望而愤慨叹息了很久,说:“如果(有朝一日我们谁)富贵了,可不要忘记老朋友啊。”雇工们笑着回答说:“你是个被雇佣耕地的人,哪来的富贵呢?”陈涉长叹一声说:“唉,燕雀怎么知道鸿鹄的志向呢!”
使用示例:
1、《吕氏春秋·士容》:“夫骥骜之气,鸿鹄之志,有谕乎人心者诚也。” 
2、唐·卢肇《鸜鹆舞赋》:“况乃意绰步蹲,然后知鸿鹄之志,不与俗态而同尘。”
3、元·郑光祖《王粲登楼》第一折:“大丈夫仗鸿鹄之志,据英杰之才。”亦省作“鸿鹄志”。
4、《北史·张定和张奫等传论》:“当其郁抑未遇,亦安知有鸿鹄志哉!” 
5、宋·陆游《庵中杂书》诗:“辍耕垄上鸿鹄志,长啸山中鸾凤音。”
6、郁达夫《己未秋应外交官试被斥仓卒东行返国不知当在何日》诗:“燕雀岂知鸿鹄志,凤凰终惜羽毛伤!” 

言有物而行有恒是什么意思

言有物而行有恒(yán yǒu wù ér xíng yǒu héng)是一个文化术语,说话要言之有物,做事要持之以恒。“言有物”即说话或写文章要有实际根据和内容,语言、文字要与实际情况相符,不能想当然,不能假大空;“行有恒”即做任何事情都应该有恒心、有原则,说到做到,专心一意,坚持到底,不朝三暮四或半途而废。此术语实际所包含的是一种务真求实的科学态度和专一持守的诚信精神。
出处:《易经·象下》:“君子以言有物而行有恒。”
象,易经用语,是《易经》中非常重要的一个用语。《三易》之一(另有观点:认为易经即三易,而非易经),是传统经典之一,相传系周文王姬昌所作,内容包括《经》和《传》两个部分。《经》主要是六十四卦和三百八十四爻,卦和爻各有说明(卦辞、爻辞),作为算卦之用。《传》包含解释卦辞和爻辞的七种文辞共十篇,统称《十翼》,相传为孔子所撰。
春秋时期,官学开始逐渐演变为民间私学。易学前后相因,递变发展,百家之学兴,易学乃随之发生分化。自孔子赞易以后,《易经》被儒门奉为儒门圣典,六经之首。儒门之外,有两支易学与儒门易并列发展:一为旧势力仍存在的筮术易;另一为老子的道家易,易学开始分为三支。

举目见日不见长安表达了什么

“举目见日,不见长安”表达了对长安的怀念,对前朝的眷恋。出自南朝·宋·刘义庆《世说新语》:“明日,集群臣宴会,告以此意,便重问之。乃答曰:‘日近。’元帝失色,曰:‘尔何故异昨日之言邪?’答曰:‘举目见日,不见长安。’”
译文:第二天,召集群臣宴饮,就把明帝这个意思告诉大家,并且再重问他一遍,不料明帝却回答说:“太阳近。”元帝惊愕失色,问他:“你为什么和昨天说的不一样呢?”明帝回答说:“现在抬起头就能看见太阳,可是看不见长安。
《世说新语》是南朝宋文学家刘义庆撰写(一说刘义庆组织门客编写)的文言志人小说集,是魏晋轶事小说的集大成之作,是魏晋南北朝时期“笔记小说”的代表作。其内容主要是记载东汉后期到魏晋间一些名士的言行与轶事。通行本6卷36篇。有梁刘孝标注本。

小学体测项目有哪些

小学一、二年级体测项目有身高体重、肺活量、50米跑、坐位体前屈、1分钟跳绳。小学三、四年级体测项目比一、二年级体测项目多了1分钟仰卧起坐。小学五、六年级体测项目比三、四年级多了50米×8往返跑。
身高体重:测量身高、体重可以判断人的生长发育和体型。
肺活量:指一次尽力吸气后,再尽力呼出的气体总量,它是一次呼吸的最大通气量,在一定意义上可反映呼吸机能的潜在能力。
50米跑:是一个能体现快速跑能力和反应能力的体育项目。
坐位体前屈:它的测试目的是测量在静止状态下的躯干、腰、髋等关节可能达到的活动幅度,主要反映这些部位的关节、韧带和肌肉的伸展性和弹性及身体柔韧素质的发展水平。
1分钟跳绳:目的在于训练下肢耐力和协调性。
1分钟仰卧起坐:用于测量腹部肌肉的力量,及一个人的体力、耐力。
50米×8往返跑:是有效反映学生灵敏及耐力素质发展水平的常用指标。
常见热点问答
热点搜索
1-20
21-40
41-60
61-80
81-100
101-120
121-140
141-160
161-180
181-200
作文大全
1-20
21-40
41-60
61-80
81-100
101-120
121-140
141-160
161-180
181-200