程 序 设 计 课 程 设 计 报 告
学生籍贯信息记录簿
专
业
学生姓名
班
学
级
号
指导教师
完成日期
计算机科学与技术
(嵌入式软件人才培养)
李苏兴
2013 年 6 月
目 录
第 1 章 设计目的......................................................................................................
第 2 章 设计内容与要求........................................................................................
第 3 章 主要技术指标及特点...............................................................................
第 4 章 设计小结......................................................................................................
第 5 章 参考文献......................................................................................................
附录:源代码清单....................................................................................................
第 1 章 设计目的
1) 加深对《C语言程序设计》课程知识的理解,掌握C语言应用程序的开
发方法和步骤;
2) 进一步掌握和利用C语言进行课程设计的能力;
3) 进一步理解和运用结构化程序设计的思想和方法;
4) 初步掌握开发一个小型实用系统的基本方法;
5) 学会调试一个较长的程序的基本方法;
6) 学会利用流程图或N-S图表示算法;
7) 掌握书写课程设计开发文档的能力(书写课程报告)。
第 2 章 设计内容与要求
课程设计目的
课程设计题目:学生籍贯信息记录簿;
该软件主要是编制一个学生籍贯信息记录簿每个学生信息包括:学号、姓名、籍贯。
具体功能要求如下:
1) 创建信息链表并以磁盘文件保存;
2) 读取磁盘文件并显示输出所有学生的籍贯信息;
3) 按学号或姓名查询其籍贯;
4) 按籍贯查询并输出该籍贯的所有学生;
5) 能添加、删除和修改学生的籍贯信息;
6) 显示输出江苏籍和非江苏籍的所有学生的信息并可分别存盘。
第 3 章 主要技术指标及特点
各项功能(模块层次图):
该软件主要组成模块和各个模块之间的调用关系如图:
学生籍贯信息记录簿
主函数(在主函数调用的框架函数中包含
以下所有函数)
添
加
学
生
信
息
查
询
学
生
信
息
(
按
学
号
)
查
询
学
生
信
息
(
按
姓
名
)
查
询
学
生
信
息
(
按
籍
贯
)
修
改
学
生
信
息
删
除
学
生
信
息
显
示
学
生
信
息
(
全
部
)
显
示
学
生
信
息
(
分
类
)
退出系统
程序采用主要的结构类型分析
该程序采用的是结构体类型来处理学生的所有基本信息,如下所述。
结构体为:
typedef struct Student
{
char num[20];
char name[20];
char place[20];
struct Student *next;
}STU;
包含的库函数有:
#include
#include
#include
//文件的使用
/*主菜单*/
/*初始化学生信息*/
/*添加学生信息*/
/*查找学生信息(按学号)*/
包含的函数有:
Select();
New();
Add();
Query1();
Query2();
Query3();
Change();
Displayall();
Displayjs();
Delete();
Save();
Load();
/*查找学生信息(按姓名)*/
/*查找学生信息(按籍贯)*/
/*修改学生信息*/
/*显示学生信息(全部)*/
/*显示学生信息(分类)*/
/*删除学生信息*/
/*保存学生信息*/
/*载入学生信息*/
函数分析
(1)main()
该函数的主要功能是调用其他 12 个函数来实现主菜单的 8 项功能,通过 switch 选
择语句选择操作,然后通过调用各种函数实现调用:
void main()
{
FILE *fp;
/*创建文件型指针*/
if((fp=fopen("Student.dat","rb"))==NULL)
else
New();
Load();
for(;;) /*循环调用模式,保证能进行重复操作*/
{
switch(Select()) /*功能选择*/
{
case 0:
system("cls");/*清除屏幕先前的显示内容*/
Save();
printf("\n\n\t 文件保存成功!\n");
printf("\n\n\t 欢迎下次使用本系统!\n");
getchar();
exit(0);
case 1: Add();break;
case 2: Query1();break;
case 3: Query2();break;
case 4: Query3();break;
case 5: Change();break;
case 6: Delete();break;
case 7: Displayall();break;
case 8: Displayjs();break;
default:printf("\n 错误!");exit(0);
}
}
}
第 4 章 设计小结
好久没用 C 语言写东西了,自从程序竞赛结束后就没怎么碰过 C 语言,在做课
程设计的时候暴露出很多问题,知识点的遗忘之类的。在这过程中翻翻书本,还
都能回忆起来。不过链表和文件那部分的知识通过这次课程设计是确实重新学习
了。文件的读写、关于文件指针的各种函数、单链表的操作,等等。都复习巩固
了。
通过运行并调试自己写的代码,解决了遇到的一些问题。提高了编程能力。