1、 C 课题:学生信息管理系统设计 语 言 课 程 设 计 实 验 报 告 C 语言课程设计实验报告 2 C语言课程设计实验报告 1.设计目的: 学生信息管理系统设计 学生信息包括:学号、姓名、年龄、电话号码、性别、出生年月、QQ、班级 等。试设计一学生信息管理系统,使之能提供以下功能: 1. 系统以菜单方式工作 2. 学生信息添加功能-输入 3. 查询功能-算法 按学号查询 按姓名查询 4. 学生信息的删除与修改 5. 学生信息整表浏览功能-输出 2.总体设计: 程序设计组成框图 主菜单 学生信息录入 学生信息整表浏览 信息查询 按学号查询 按姓名查询 信息编辑 按学号修改 按学号删除 C 语
2、言课程设计实验报告 3 流程图 case 4 case 3 case 5 case6 case 1 case 2 case 0 结束 N 结束程序 Y 窗口展示 载入链表 判断 cmd!=0? 主菜单显示 输入选择 cmd cmd 开始 调用 add_info() 调用 serch_info 调用 serch_info 调用 delete_info 调用 delete_info 调用 preview_info( C 语言课程设计实验报告 4 3.详细设计: 1函数入口说明 menu() 输出主菜单 load_info() 载入函数:txt 转为链表 add_info(STU*h) 增加学生信息
3、 search_info(STU*h,int type) 搜索学生信息 delete_info(STU*h) 删除学生信息 update_info(STU*h) 修改学生信息 output_info(STU*h) 输出学生信息 preview_info(STU*h,int type) 预览学生信息 main() 主函数 2调用关系 3参数说明 add_info(STU*h) 、delete_info(STU*h) 、output_info(STU*h) 、preview_info(STU*h,int type) 、search_info(STU*h,int type) 、update_info
4、(STU*h) 、函数中的 STU*h 为传入的链表 节点指针,type 为搜索的方式:1 为输出传入节点指针的一条学生记录,2 为输出所有的 学生记录。 4.调试与测试: 1调用STU * load_info()函数(文件载入) ,读写出现乱码 解决方法:更改相应指针指向,及有关变量的初值设置。 delete_info () update_info () load_info() add_info(STU*h) main() preview_info () output_info() search_info() output_info() C 语言课程设计实验报告 5 2边界测试 解决方法:用
5、极端的或偏门的情况来探测和验证代码在处理时会发生什么。 3执行窗口执行多次命令后显示过多,不利于输入指令及结果查看 解决方法:调用系统清屏函数 system(“cls“);。 4文件在打开和保存时有问题。 解决方法:调整文件的打开方式,从原来的单纯的 w+修改为添加一个 if 语句,当没有 文件时执行 w+的操作,否则执行 r+。避免了原存储文件被覆盖的问题。 5.源程序清单和执行结果: #include #include #include /学生信息 结构体 typedef struct record char No10; char name12; unsigned int age; cha
6、r sex4; char birth10; char qq12; char grade20; char phone11; struct record *next; STU; /菜单函数 int menu(); /载入函数:txt 转为链表 STU * load_info(); /增加学生 STU * add_info(STU *h); /搜索函数 STU * search_info(STU *h,int type); /删除学生 STU * delete_info(STU *h); /修改学生信息 void update_info(STU *h); /输出信息 void output_info(STU *h); C 语言课程设计实验报告 6 /预览信息 void preview_info(STU *h,int type); void main() STU *header=NULL,*sear=NULL;int cmd=1; system(“title 学生信息管理系统“); /system(“mode c