C语言课程设计报告书张杉.docx

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

C语言课程设计报告书张杉.docx

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

C语言课程设计报告书张杉.docx

C语言课程设计报告书张杉

(此文档为word格式,下载后您可任意编辑修改!

西安郵電學院

高级语言课程设计报告书

 

系部名称

 电信系

学生姓名

 张杉

专业名称

电子信息工程

班级

 电子0701

学号

 

指导教师

衡霞

时间

2008年06月09日至

2008年06月20日

 

实验题目学生成绩管理系统

一、实验目的:

(1)本课程设计为学生提供了一个既动手又动脑,自学,查资料,独立实践的机会。

将本学期课本上的理论知识和实际有机的结合起来,锻炼学生实际分析问题和解决问题的能力,提高学生适应实际、实践编程的能力,使对C语言系统编程有一个大致的了解。

(2)C语言的实践。

掌握C语言函数的定义方法,函数的声明及函数的调用过程。

掌握结构体类型变量的定义和使用,综合应用C语言的知识,实现一个完整的系统,提高编程能力,体会软件程序的开发过程。

二、实验内容:

(1)运用结构体数组编辑一个简单的学生成绩管理系统,使之能够完成学生成绩的创建、添加,查询、修改,删除、统计、排序等操作,并对文件进行保存和读取。

(2)执行编译操作,并根据提示调试此程序,排除所有的错误和警告。

直到编译成功为止。

(3)执行运行操作,逐一对每个模块进行调试。

直到全部程序运行成功为止。

(4)请老师检查,向老师演练此程序,并能回答老师提出的相关问题。

三、需求分析:

(1)根据学生成绩管理的需要,建立一个“学生信息管理系统”,系统具有输入、查询、修改、删除、统计、排序等基本功能;以方便对成绩的各项管理操作。

每一条记录包括一个学生的学号、姓名、性别,年龄,生日,成绩。

系统的各个功能模块都用函数的形式来实现;可以将学生成绩信息保存在文件中,并从文件中读取出来。

有一个清晰美观界面来调用各个功能。

本程序是由C语言的基本单位—函数来设计实现与其功能的多次使用函数调用以及函数的嵌套调用。

本程序分为7个模块,分别为创建学生资料;添加学生的资料;查询学生的成绩;修改学生的资料;删除学生的资料;统计学生的成绩;对学生的资料进行排序。

本程序可以处理多个学生的成绩的输入、添加、修改、排序等问题。

本程序的使用特别方便,每做完一个模块,下面都有提示信息。

使用环境为Win-Tc。

(2)创建该学生成绩管理系统目的就是能够对学生基本信息进行创建、追加、查询、修改、删除、统计、排序等功能,这样可以简化许多人工做起来很复杂的问题。

譬如:

“排序”,有了此程序只需将信息输入,计算机就可自动执行,省时、省力。

另外,它还可以重复使用,方便、快捷。

(3)该学生基本信息管理系统是在WIN-TC中文简体环境下运行。

该系统要测试的数据如下:

1.输入模块:

(输入5个学生的信息)

Numbernamesexagebirthdayscore

1am2060

2bm2070

3cf2080

2.追加模块:

(再加1个信息)

4df2090

3.查询模块:

(查询GULI的基本信息)

1(按学号即可查询)或a(按姓名也可查询)

4.修改模块:

(修改b的成绩)

(输入)1(修改number)(输入)2(修改name)(输入)3(修改sex)(输入)4(修改age)(输入)5(修改birthday)(输入)6(修改score)

5.删除模块:

(删除c的基本信息):

06(输入学号即可删除)

6.统计模块:

可统计各分数的人数。

7.排序模块:

按成绩进行排序。

四、概要设计

(1)主函数结构图:

(2)数据类型:

结构体类型

structdate/*结构体类型*/

{intyear;/*结构体变量,用来定义生日中的年*/

……};

structstudent_type/*结构体类型*/

{intnum;/*结构体变量,用来定义学号*/

charname[10];/*结构体数组,用来定义姓名*/

……

structdatebirth;/*结构体中的结构体*/

};

(3)模块功能详细说明:

1.录入模块:

此模块可以连续输入20个学生的资料,若学生数少于20,则可以在输入学号处输入0便可退出此模块,并把输入的信息保存到e:

\\score.txt文件中。

2.输出模块:

此模块分两页输出二十名同学的信息。

3.添加模块:

输入要添加的学生信息。

4.删除模块:

输入要删除的同学学号,然后删除。

5.查询模块:

此模块中使用者可以用三种方式查询学生成绩。

分别为

(1)按学号查询

(2)按姓名查询。

6.修改模块:

此模块中可以修改一门科的成绩也可以同时修改四门科的成绩。

修改完毕后输入y可以继续修改,输入n则退出此模块。

7.删除模块:

此模块中用到的删除原理为覆盖要删除的学生的资料。

过程简述,先输入要删除的学生的学号,系统找到此学生的信息后给它复制下一个学生的信息,给下一个学生的纪录复制下下一个学生的信息,一直到最后一个学生的信息复制给倒数第二个学生的信息为止。

然后文件中的学生总数减一。

8.统计模块:

统计一个分数的人数。

9.排序模块:

此模块用的方法为冒泡法。

五、详细设计及运行结果

(1)各个模块的程序流程图加模块:

添加模块:

删除模块:

排序模块:

(2)函数之间相互调用的图示:

(3)主要函数之间相互调用如下:

六、调试情况,设计技巧及体会

1.测试数据:

输入合法数据

输入非法数据

Numnamesexagebirthdayscore

1Am2050

2Bf2160

3Cm2070

程序显示出现错误,不能正常输入

2.调试情况:

(1).刚开始时,输入的成绩不能保存在文件中,所有数据都是一次性的。

后来知道是没在主程序中加保存模块,添加后就可以了。

但调试中又发现在添加模块中加入数据还是不能保存,在老师的帮助下发现问题出现在sum值上,我的添加后sum值不变,导致天价的数据不能保存。

我在程序中加了sum++;使每次添加数据后,sum也随之添加。

问题就解决了。

(2).删除模块是最头疼的,调试了n多次才成功,问题也出现在sum值上。

(3).其他问题也就在粗心或者简单的错误,印象不是很深刻。

3.自我评价:

在没有输入任何信息的情况下,不能执行查询、修改、删除、统计、排序功能。

本程序是由C语言的基本单位—函数来设计实现与其功能的多次使用函数调用以及函数的嵌套调用。

本程序分为8个模块,分别为

(1)录入学生资料。

((3)添加学生的资料(4)查询学生的成绩(5)修改学生的资料(6)删除学生的资料(7)统计学生的成绩(8)对学生的资料进行排序。

本程序可以处理多个学生的成绩的输入、添加、修改、排序等问题。

本程序的使用特别方便,每做完一个模块,下面都有提示信息。

使用环境为Win-Tc。

此程序的不足之处在学生基本信息方面还不够完善,另一方面就是在运行此程序时,需要执行操作的提示语不够具体和完善.

改进方法:

可以在学生基本信息的结构体中添加更多的学生信息,使得学生信息更加完善,此外,还可以在编程时加一些必要的提示语,用printf(“”);语句直接可输入.

4.感受:

经过两周的编程实习,并在后一段的报告总结,我对C语言这门科有新的认识。

要成功编一套程序,不仅需要有一个整体的思路,更重要的是对基础知识把握一定要扎实。

通过编程,对我发现了很多知识上的漏洞和不足,也得到了用诸多C语言解决实际问题的宝贵经验。

相信在以后的学习生活包括考试中一定会有很大帮助。

当然我的成绩也离不开老师的热心帮助,不管是粗心造成的错误还是正需本身的错误,老师都耐心给我讲解调试,知道成功运行。

我想没有老师的帮助我很难在短期内把程序设计做的这样好,在此特地感谢老师的帮助。

七、源程序清单:

#include"stdio.h"

#include"string.h"

#defineMAX20

#definePAGE10

#definePRINT1printf("\n")

#definePRINT2printf("numnamesexagebirthdayscore\n")

#definePRINT3printf("%d%s%c%d%d-%d-%d%d\n",student[i].num,student[i].name,student[i].sex,student[i].age,student[i].birth.year,student[i].birth.month,student[i].birth.date,student[i].score)

#definePRINT4printf("*******************************************************************\n")

intsum;

/*date*/

structdate

{intyear;

intmonth;

intdate;

};

/*studentstructtype*/

structstudent_type

{intnum;

charname[10];

intsex;

intage;

intscore;

structdatebirth;

}student[MAX];

/*stonemessage*/

save_message(intsum)

{

FILE*fp;

inti;

if((fp=fopen("e:

\\score.txt","wb"))==NULL)

{

printf("thefileyoureadiswrong1\n");

return;

}

for(i=0;i

if(fwrite(&student[i],sizeof(structstudent_type),1,fp)!

=1)

printf("thefileyouwriteiswrong!

\n");

fclose(fp);

}

/*inputmessage*/

input_message()

{inti=0;

system("cls");

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

PRINT1;

do

{printf("NO.%dstudent\n",i+1);

printf("\nstudentnumber(****):

");

scanf("%d",&student[i].num);

if(student[i].num==0)break;

printf("\nstudentname:

");

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

printf("\nstudentsex(m/f):

");

getchar();

scanf("%c",&student[i].sex);

printf("\nstudentage:

");

scanf("%d",&student[i].age);

printf("\nstudentbirthday(yyyy-mm-dd):

");

scanf("%d-%d-%d",&student[i].birth.year,&student[i].birth.month,&student[i].birth.date);

printf("\nstudentsorce:

");

scanf("%d",&student[i].s

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

当前位置:首页 > 人文社科 > 法律资料

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

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