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、董遇:“三余”读书法汉代的著名学者董遇提倡利用“三余”时间读书。他说:“冬者岁之余,夜者日之余,雨者晴...
展开详情

集中注意力的基础是

集中注意力的基础是对大脑进行科学的锻炼,促使脑神经变得发达和强壮。注意力是指人的心理活动指向和集中于某种事物的能力。“注意”,是一个古老而又永恒的话题。俄罗斯教育家乌申斯基曾精辟地指出:“注意是我们心灵的唯一门...
展开详情

一年之计在于春,一日之计在于晨是什么意思

这句话的意思是:只有在春天辛勤劳动才能获得丰收,一天最宝贵的时间是早晨。这句话一般用于激励人刻苦学习,充分利用学习时间,达到提升自我的目的!出处有:1、南朝·梁·萧绎《纂要》:“一年之计在于春,一日之计在于晨。...
展开详情

精选推荐更多>

ch是声母还是韵母

ch是声母。
声母:b、p、m、f、d、t、n、l、g、k、h、j、q、x、zh、ch、sh、r、c、s、y、w。
韵母:a、o、e、i、u、ü、ai、ei、ui、ao、ou、iu、ie、üe、r、an、en、in、un、ün、ang、eng、ing、ong。
韵母是一个中国汉语音韵学术语,汉语字音中声母、字调以外的部分。旧称为韵。韵母由韵头(介音)、韵腹(主要元音)、韵尾三部分组成。按韵母结构可分为单韵母、复韵母、鼻韵母。
汉语字音中声母、字调以外的部分。旧称为韵。韵母又可以分成韵头(介音)、韵腹(主要元音)、韵尾三部分。如“娘”niáng的韵母是iang,其中i是韵头,α是韵腹,ng是韵尾。每个韵母一定有韵腹,韵头和韵尾则可有可无。

戴的偏旁是什么偏旁

“戴”的偏旁是戈,指顶在头上,泛指把东西放在头、面、颈、手等处;也引申为“尊崇、爱戴”;还有“竖立”;“正对”等意思。
出处:
1、《左传·僖公十五年》:“君履后土而戴皇天。”
2、《舒州被召试不赴偶书》:“戴盆难与望天兼。”
3、《东京赋》:“戴金钲而建黄钺。”
造句:
1、我们的老校长受到了全校师生的衷心爱戴。
2、李老师待人和善,虚怀若谷,深受学生爱戴。
3、他为人民做了好事,人民爱戴他是理所当然的。
4、他无私无畏,一身正气,深受人民的爱戴。
5、张老师是一位深受同学爱戴的老教师。
6、从小到大,对您的感情永远是敬仰与爱戴。
7、这些劳苦功高的老师们,深受广大人民群众的爱戴。

关于鲁迅的对联

关于鲁迅的对联有:
1、上联:一生反封帝。下联:至死不宽容。
2、上联:一生不曾屈服。下联:临死还要斗争。
3、上联:平生功业尤拉化。下联:旷代文章数阿Q。
4、上联:返国空余挂墓剑。下联:斫泥难觅运风斤。
5、上联:一代高文树新帜。下联:千秋孤痛托遗言。
6、上联:侠骨柔肠,横眉俯首。下联:胸中海岳,笔底风雷。
7、上联:救亡阵线中,失一重镇。下联:学术思想界,见此完人。
8、上联:呐喊如狂人,为国为己。下联:华盖育彷徨,导民中流。
9、上联:笔耕大野,胸怀日月光和热。下联:墨洒长河,夜度春秋慨而慷。

一个人自愈是什么意思

“一个人自愈”意思是独自一个人治愈内心伤痛,没有人帮助。比喻什么事情都一个人,体现了生活的无助和无可奈何,不管经历多少风雨都要抬头挺胸站起来,不被困难打倒。
出自现代短语。
一个:
1、表数量。单个。用于人和各种事物。如:一个地方。
2、整个。如:他今天一个上午都没歇过。
3、用在动词和补语之间,表示程度。如:吃了一个饱。
人:
1、某人,某种人,某些人。出自《孟子·滕文公上》:“劳心者治人,劳力者治于人。”
2、人才,杰出人物。出自《左传·文公十三年》:“子无谓秦无人。”
3、能制造和使用工具进行劳动并能使用语言的高等动物。出自《说文》:“人,天地之性最贵者也。”
自愈:疾病不经治疗而自行痊愈。如:因为落枕是急性起病,仅为单纯性肌肉痉挛,本身有自愈的趋向。
常见热点问答
热点搜索
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