《高级语言程序设计》课程设计报告.docx

上传人:b****5 文档编号:29947254 上传时间:2023-08-03 格式:DOCX 页数:20 大小:103.04KB
下载 相关 举报
《高级语言程序设计》课程设计报告.docx_第1页
第1页 / 共20页
《高级语言程序设计》课程设计报告.docx_第2页
第2页 / 共20页
《高级语言程序设计》课程设计报告.docx_第3页
第3页 / 共20页
《高级语言程序设计》课程设计报告.docx_第4页
第4页 / 共20页
《高级语言程序设计》课程设计报告.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

《高级语言程序设计》课程设计报告.docx

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

《高级语言程序设计》课程设计报告.docx

《高级语言程序设计》课程设计报告

学号

2013-2014学年第二学期

 

《高级语言程序设计》

课程设计报告

题目:

班级档案管理系统

专业:

网络工程

班级:

姓名:

朱和芳

指导教师:

孙妍姑

成绩:

计算机与信息工程系

2014年5月11日

]班级档案管理系统

设计总说明

一、设计目的

运用计算机语言设计班级档案管理,通过此次课程设计,加深对此课程基本知识的理解,提高综合运用知识的能力;掌握本课程的主要内容、课程设计或撰写小论文的步骤和方法;以提高独立分析问题、解决问题的能力,逐步增强实际工程训练。

二、设计内容

对一个有N个学生的班级,通过该系统实现对该班级学生基本信息进

行录入、显示、修改、删除、保存等操作的管理。

三、设计方法

结合C语言的有关知识,查阅资料,对班级档案管理系统的内容进行构思和设计,在MicrosoftVisualC++6.0平台上完成设计,并进行调试。

第一章绪论

......5

第章需求分析

2.1问题描述

......6

2.2功能要求

.......6

2.3算法提示

.......6

2.4项目开发的目的

7

第三章概要设计

3.1程序模块的组成

8

3.2班级档案管理系统

8

3.3各个程序的功能介绍..…

9

3.4系统结构图

9

第四章模块设计分析

4.1程序的模块组成

10

4.2各个函数的主要功能..…

10

4.3系统的功能模块的划分.

10

4.4总流程图

......12

4.5功能流程图

13

第五章测试

5.1存在的问题

14

5.2测试方案

14

第六章使用说明书

15

第七章总结17

附录

A参考文献18

B源程代码20

第一章绪论

班级档案管理系统有六种功能,把这六种功能做成六个子函数。

在主函数中设计一个菜单对这六个子函数进行管理,来实现对整个系统的操作。

根据课题的要求,每个数据的结构应当包括:

学号(char)、姓名(char)、性别(char)、年龄(int)、备注(char)。

对一个有N个学生的班级,通过该系统实现对该班级学生的基本信息的录入、显示、修改、删除、保存等操作的管理。

最后为了以后按照处理后的顺序保存到文件中。

第二章需求分析

2.1问题描述:

对一个有N个学生的班级,通过该系统实现对该班级学生的基本信息进行录

入、显示、修改、删除、保存等操作的管理。

2.2功能要求:

1、本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:

姓名、学号、性别、年龄、备注。

2、本系统显示这样的菜单:

请选择系统功能项:

A、学生基本信息录入

B、学生基本信息显示

C、学生基本信息保存

D、学生基本信息删除

E、学生基本信息修改

F、学生基本信息查询

(1)按学号查询

(2)按姓名查询

(3)按性别查询

(4)按年龄查询

G、退出系统

3、执行一个具体的功能之后,程序将重新显示菜单。

4、将学生基本信息保存到文件中。

2.3算法提示

1、数据结构:

结构体类型数组

2、数据库结构:

下表构成该系统的基本数据库

简单的班级档案管理系统,能够使老师了解到相应的信息。

是争对目前的现状,把管理人员从繁忙的数据统计中解脱出来,使其具有更多地精力去从事教务管理政策的而研究实施,教学计划的制定执行和教学质量的监督检查,从而全面提高教学质量,同时也减轻任课老师的负担,让其有更多的时间投入到教学和科研中,还有学生档案管理的重要性,以及当前的档案管理的现实,为了改善这种情况,使档案管理工作真正步入高效,健康的轨道从而促使我们开发了这个系统,以提高档案管理工作的效率和满足用户的基本需求为目的,实现档案管理。

第三章概要设计

3.1程序模块的组成

主函数:

voidmain()

录入函数:

voidGetInfo()

显示函数:

voidDisPlay()

保存函数:

voidSave()

删除函数:

voidDelect()

修改函数:

voidModfiy()

查询函数:

voidSearch()

输出函数:

voidprint()

1.GetInfo()是录入函数,主要是录入学生的基本信息;

2.DisPlay()是显示函数,就是把学生的基本信息显示在电脑上;

3.Save()是保存函数,就是把学生基本信息保存下来;

4.Delect()是删除函数,把不要的信息删除;

5.Modfiy()是修改函数,修改错误的学生基本信息;

6.Search()是查询函数,查询学生的基本信息;

7.print()是输出函数,输出学生的基本信息。

3.2班级档案管理系统

structstudent//设定一个内容为学生信息的结构体

{

charname[10];〃名字的长度允许最大为10;

charno[10];//学号的长度允许最大为10;

charsex;

intage;

charbnote[100];〃备注的长度允许最大为100;};

3.3各个程序的功能介绍

主函数:

利用无限次循环例如if(;;)while()和switch()语句

实现各函数的调用,系统根据输入的数字选项来调用相应的函数。

录入函数:

用来录入学生的基本信息。

显示函数:

把录入的学生的基本信息显示在桌面上。

保存函数:

可以保存学生信息。

删除函数:

可以删除学生的错误信息。

修改函数:

可以修改旧的信息。

查询函数:

方便管理员和学生查询。

4退出函数:

可以用来退出系统以保证学生信息的安全。

保存函数:

voidSave

()

删除函数:

voidDelect

()

查询函数:

voidSearch

()

修改函数:

voidModify

()

菜单函数:

voidmenu_

select()

4.2各个函数的主要功能:

录入函数:

录入学生的基本信息;

菜单函数:

显示系统主菜单;

显示函数:

显示所有学生信息;

查询函数:

方便学生查找自己基本的信息;

删除函数:

删除某学生的信息;

保存函数:

保存好学生基本信息,以免丢失。

4.3系统的功能模块的划分:

开始

菜单界面

功能选择

初始化函数

录入学生信息

显示学生信息

保存学生信息

删除学生信息

修改学生信息

查询学生信息

退出系统

结束

整个系统除了主函数外,另外还有14个函数,实现七大功能:

录入功能、显示功能、保存功能、删除功能、修改功能、查询功能、退出系统功能。

各个函数的详细设计说明分明如下:

(1)主函数main()

利用无限次循环for(;;)和swithch()实现各函数的调用,系统根据输入的数字选项来调用相应的函数。

(2)菜单选择函数intmenu_select()

这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的九项功能,根据每个功能前面的序号进行选择。

等执行完每一个函数功能后,返回菜单。

(3)代码设计初始化函数STUDENT*init()

这是一个无参函数,里面只有两个语句,它的作用是使链表初始化,使head

的值为NULL和一个清屏语句。

比如:

没有这个函数的话,在你没有输入任何数据的情况下,去执行显示功能的时候会显示一些乱码。

(4)输入记录函数STUDENT*create()

这是一个无参函数,用来执行学生档案的记录的输入,当学生为@寸停止输入,函数结束后,带回一个链表头的指针指向下一个学生的信息插在表头。

(5)显示记录函数voidprint(STUDENT*head

这是有一个不返回值的有参函数,形参为“链表头的指针”,负责对全部学生

成绩的输出,不足之处就是不能就是不能对学生成绩进行分页显示。

4.4总流程图

 

结束

4.5功能流程图

开始

通过switch函数选择插入功能

Voidprint

打开文件

录入学生基本信息

 

5.1存在的问题:

在我们编号程序的时候其实还是存在许多问题的,当然这是一个过程,可以

说错误基本上是不可避免的,比如说“一些输入格式问题和一些习惯性的问题而导致的错误等等”。

我个人认为系统调试需要比较扎实的基本功以及充分的细心,因为C语言中

的有些错误是不直接明了的。

在这个时候就需要我们耐心的去查找错误,有些错误是由于我们不好的习惯造成的,而且往往很难发现,因为这些错误都是自己平时不怎么注意的。

比如花括号的使用,比如分号的使用等等。

所以平时调试时得养成良好的习惯,尽量减少出错。

5.2测试的方案

1.系统验证技术

2.系统确认技术

3.系统测试技术

1.将编好的源代码放到C语言的运行环境中去运行,通过运行找出其中的错误或者是输入不规范的地方,加以改正,还有就是试一下程序能不能运行,是不是满足课程设计题目的要求。

2.把已经整理好的源代码放到C语言运行环境去调试一下,就是确认这个源代码是否正确。

3.用运行系统测试源程序代码。

第六章使用说明书

按照菜单的提示进行选择,1表示学生信息的录入,先进行信息的录入完成后,按回车键会弹出弹出第二个界面,根据第二个界面进行选择。

2表示信息的显示。

3表示信息的保存。

4表示信息的删除。

5表示信息的修改。

6表示信息的查询。

7表示安全退出系统。

当保存好学生的基本信息的时候你可以通过3保存

学生的信息,按4是删除,删除成功后再输入你的学号会显示该学生不存在,在

按5时会显示要输入密码才能改变信息,按6时会弹出一个由四个选项组成的界面,有按1按学号查询、2按年龄查询、3按性别查询、4按姓名查询。

所以只要你根据菜单上操作是不难的,欢迎使用!

第七章总结g■

通过这次课程设计,我觉得自己的知识还远远不够,这次C语言课程设计的

“班级档案管理系统”,通过不断调试与修改,最终还是完成了,虽然参考了许多资料,但是自己亲手完成的第一个课程设计,还是挺激动地。

这次课程设计充分运用了自己所学的东西,明白了自己的不足点,由于学艺不精,也遇到了不少麻烦,比如画E-R图时,各实体中关系的确定,由于对系统还不够了解而找不到一个准确的词来形容,总体规划材料太多,不易整理;相关数据库没有多注意,这次课程设计的重点只在对整个系统的总体思路设计。

通过这次设计让我明白了,只有通过自己动手才能真正学到东西。

书本知识固然重要,但只有把它运用于实际才会发现自己的不足和错误,才能改进,才能达到学习的最终目标。

以下是我总结出的一些经验:

1.要对系统的功能做出详细的分析,并合理分解任务。

2.把分解出来的子任务,做成一个相对独立的模块。

3.在设计一个模块之前,要简单构想一下总界面的显示情况。

4.针对构想出来的界面进行程序的编写。

虽然我的课程设计存在许多问题,究其原因还是因为自己平时没认真学习,以后定会认真学习,学以致用。

附录:

参考文献

《C程序设计(第三版)》谭浩强着清华大学出版社

《C语言程序设计实用指南》谭浩强着清华大学出版社

《课程设计与上级指导》谭浩强着

《课程设计与习题详解》葛日波着

源程序:

#include#include#include#include#defineN3〃测试数据人数为3

structstudent〃设定一个内容为学生信息的结构体

charname[10];//名字的长度允许最大为10

charno[10];//学号的长度允许最大为10

charsex;

intage;

printf("\t\t\t(

欢迎使用本班级档案管理系统)\t\t\t\n");

printf("***********

欢迎进入我们的系统**********\n\n");

if(!

menu)〃主菜单

else

printf(”学生基本信息录入;press1\n");

printf("学生基本信息显示,press2\n");

printf(”学生基本信息保存,press3\n");

printf("学生基本信息删除,press4\n");

printf("学生基本信息修改,press5\n");

printf("学生基本信息查询,press6\n");

}

printf("退出学生信息系统,press7\n");

}

voidGetInfo(structstudent*arr,intn)〃学生基本信息录入

{

charch;

for(inti=0;i

{

printf("输入学生的基本信息:

namenoagesexbnote\n");

scanf("%s%s%d%c%c%s",arr[i].name,arr[i].no,&arr[i].age,&ch,&arr[i].sex,arr[i].bnote);

}

}

voidDisplay(structstudent*arr,intn)〃学生基本信息显示

{

printf("学生基本信息:

NameNoSexAgeNote\n");

for(inti=0;i

{

printf("%15s%15s%15c%15d%15s\n",arr[i].name,arr[i].no,arr[i].sex,arr[i].

age,arr[i].bnote);

voidSave(structstudent*arr,intn)〃学生基本信息保存,保存在

c:

\\student.txt{

FILE*fp;

fp=fopen("c:

\\student.txt","w+");

if(fp==NULL)

{

printf("

exit(0);

文件不存在!

\n");

}fwrite(arr,sizeof(structstudent)*n,n,fp);fclose(fp);

}

voidModfiy(structstudent*arr,intn)〃学生基本信息修改

{

charnumber[10],ch;

boolflag=false;

printf("

修改学生信息:

\n");

printf("

请输入学号:

\n");

scanf("%s",number);

for(inti=0;i

{

if(!

strcmp(number,arr[i].no))

{

printf("infor:

namenosexagebnote'n”);

printf("%12s%12s%12c%12d%12s\n",arr[i].name,arr[i].no,

arr[i].sex,arr[i].age,arr[i].bnote);

printf("pleaseinputinformation:

\n");

seanf("%s%s%c%c%d%s",arr[i].name,arr[i].no,&ch,&arr[i].sex,&arr[i].age,

arr[i].bnote);

Save(arr,n);

flag=true;

}

}

if(flag==false)

{

printf("该学生不存在!

:

\n");

}

}

学生基本信息删除

voidDelete(structstudent*arr,intn)〃

{

charnumber[10];

boolflag=false;

printf("Deleteinformation:

\n");

printf("pleaseinputtheno:

\n");

scanf("%s",number);

for(inti=0;i

{

if(!

strcmp(number,arr[i].no))

{

strcpy(arr[i].name,"");

strcpy(arr[i].no,"");

strcpy(arr[i].bnote,"");

arr[i].sex='';

arr[i].age=0;

Save(arr,n);

flag=true;

if(flag==true)

{

printf("该学生已删除不存在!

:

\n");

}

}

voidSearch(structstudent*arr,intn)〃学生基本信息查询

{

inttemp,i;

boolflag=false;

printf("

通过学号查询,

press1

——\n");

printf("

通过姓名查询,

press2

——\n");

printf("

通过性别查询,

press3

——\n");

printf("

通过年龄查询,

press4

——\n");

printf("

退出,press5---

——\n");

scanf("%d",&temp);

switch(temp)

{

case1:

{

charnum[10];

printf("请输入学号:

\n");

scanf("%s",num);

for(i=0;i

{

if(!

strcmp(num,arr[i].no))printf("%12s%12s%12c%12d%12s\n",arr[i].name,arr[i].no,arr[i].sex,arr[i].age,arr[i].bnote);

flag=true;

}

}

if(!

flag)

{

printf("该学生不存在.\n");

}

}

break;

case2:

{

charnum[10];

printf("pleaseinputname:

\n");

scanf("%s",num);

for(i=0;i

{

if(!

strcmp(num,arr[i].name))

^1{

printf("%12s%12s%12c%12d%12s",arr[i].name,arr[i].no,arr[i].sex,arr[i].age,arr[i].bnote);

flag=true;

}

}if(!

flag)

printf("该学生不存在.\n");

}

}

break;

case3:

{

charch;

printf("请输入性别:

\n");

ch=getch();

for(i=0;i

{

if(ch==arr[i].sex)

{

printf("%12s%12s%12c%12d%12s\n",arr[i].name,arr[i].no,arr[i].sex,arr[i].age,arr[i].bnote);

flag=true;

}

}

if(!

flag)

{

printf("该学生不存在.\n");

}

}

break;

case4:

{

charnum_age;

printf("请输入年龄:

\n");

seanf("%d",&num_age);

for(i=0;i

{

if(num_age==arr[i].age)

{

printf("%12s%12s%12c%12d%12s\n",arr[i].name,arr[i].no,arr[i].sex,arr[i].age,arr[i].bnote);

flag=true;

}

}

if(!

flag)

{

printf("该学生不存在.\n");

}

}

break;

default:

break;

}

}

voidmain()

{

structstudentarr[N];

intselect;

print(false);

scanf("%d",&select);

while(0

switch(select)

{

case1:

Getlnfo(arr,N);print(true);break;

case2:

Display(arr,N);print(true);break;

case3:

Save(arr,N);print(true);break;

case4:

Delete(arr,N);print(true);break;

case5:

Modfiy(arr,N);print(true);break;

case6:

Search(arr,N);print(true);

break;

default:

break;

printf("请选择:

\n");seanf("%d",&select);

}

}

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

当前位置:首页 > 幼儿教育 > 家庭教育

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

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