《c语言课程设计-学生信息管理系统》由会员分享,可在线阅读,更多相关《c语言课程设计-学生信息管理系统(15页珍藏版)》请在金锄头文库上搜索。
1、内蒙古科技大学本科生课程设计说明书题 目:C 语言课程设计 学生基本信息管理系统学生姓名:朱玉龙学 号:1467159106专 业:软件工程班 级:软件一班指导教师:周李涌日 期:2015 年 1 月 9 日C 语言课程设计实验报告2C 语言课程设计实验报告1.设计目的:学生信息管理系统设计学生信息包括:学号、姓名、年龄、电话号码、性别、出生年月、籍贯、QQ、专业、班级、奖惩信息 等。试设计一学生信息管理系统,使之能提供以下功能:1. 系统以菜单方式工作2. 学生信息添加功能-输入3. 查询功能- 算法按学号查询按姓名查询4. 学生信息的删除与修改5. 学生信息整表浏览功能-输出2.总体设计:
2、程序设计组成框图主菜单学生信息录入学生信息整表浏览信息查询按学号查询按姓名查询信息编辑按学号修改按学号删除C 语言课程设计实验报告3流程图case 4case 3 case 5 case6case 1 case 2case 0结束N结束程序Y窗口展示载入链表判断 cmd!=0?主菜单显示输入选择 cmdcmd开始调用add_info()调用serch_info()调用serch_info()调用delete_info()调用delete_info()调用preview_info()C 语言课程设计实验报告43.详细设计:1函数入口说明menu()输出主菜单load_info()载入函数: tx
3、t 转为链表add_info(STU*h) 增加学生信息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 ty
4、pe) 、update_info(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 语言课程设计实验报告52边界测试解决方法:
5、用极端的或偏门的情况来探测和验证代码在处理时会发生什么。3执行窗口执行多次命令后显示过多,不利于输入指令及结果查看解决方法:调用系统清屏函数 system(cls);。4文件在打开和保存时有问题。解决方法:调整文件的打开方式,从原来的单纯的 w+修改为添加一个 if 语句,当没有文件时执行 w+的操作,否则执行 r+。避免了原存储文件被覆盖的问题。5.源程序清单和执行结果:#include #include #include /学 生 信 息 结 构 体typedef struct recordchar No10;char name12;unsigned int age;char sex4;c
6、har birth10;char qq12;char grade20;char phone11;char jg100;char jcxx100;struct record *next;STU;/菜 单 函 数int menu();/载 入 函 数 : txt 转 为 链 表STU * load_info();/增 加 学 生C 语言课程设计实验报告6STU * add_info(STU *h);/搜 索 函 数STU * search_info(STU *h,int type);/删 除 学 生STU * delete_info(STU *h);/修 改 学 生 信 息void update_
7、info(STU *h);/输 出 信 息void output_info(STU *h);/预 览 信 息void preview_info(STU *h,int type);void main()STU *header=NULL,*sear=NULL;int cmd=1;system(title 学 生 信 息 管 理 系 统 );/system(mode con cols=48 lines=25);system(date /T);system(TIME /T);system(color 3E);header=load_info();/preview_info(header,2);cmd=
8、menu();while(cmd!=0)switch(cmd)case 0:break;/添 加 信 息case 1:header=add_info(header);output_info(header);break;/学 号 查 询case 2:sear=search_info(header,1);if(sear!=NULL)C 语言课程设计实验报告7preview_info(sear,1);elseprintf(该 学 生 不 存 在 !n);sear=NULL;break;/姓 名 查 询case 3:sear=search_info(header,2);if(sear!=NULL)pr
9、eview_info(sear,1);elseprintf(该 学 生 不 存 在 !n);sear=NULL;break;/按 学 号 删 除case 4:header=delete_info(header);output_info(header);break;/修 改case 5:update_info(header);output_info(header);break;/整 表 输 出case 6:preview_info(header,2);break;default:printf(无 效 的 命 令 !n 请 重 新 输 入 命 令 !n);break;if(cmd!=0)cmd=m
10、enu();C 语言课程设计实验报告8int menu()int cmd=0;printf(n 感 谢 赵 亚 琼 同 学 对 我 课 程 设 计 的 帮 助 n 请 输 入 命 令 : nt0:结 束 程 序 !nt1:添 加 记 录 !nt2:按 学 号 查 询 !nt3:按 姓 名 查 询 !nt4:按 学 号 删 除 信 息 !nt5:按 学 号 修 改 信 息 !nt6:整 表 浏 览 !n);scanf(%d,while(cmd9)printf(无 效 的 命 令 !n 请 重 新 输 入 : n);scanf(%d,return cmd;STU * load_info()FILE
11、 *fp=fopen(d:stu.txt,r+),*fpNew=NULL;STU *h=NULL,*q=NULL,*p=NULL;char ch=0;h=(STU *)malloc(sizeof(STU);if(fp=NULL)fpNew=fopen(d:stu.txt,w);fclose(fpNew);return NULL;rewind(fp);ch=fgetc(fp);if(ch=EOF)return NULL;elserewind(fp);fscanf(fp,%10s %12s %3d %11s %4s %10s %12s %20s %20s %20s,h-No,h-name,&h-a
12、ge,h-phone,h-sex,h-birth,h-qq,h-grade,h-jcxx,h-jg);q=h;q-next=NULL;ch=fgetc(fp);while(ch!=EOF)p=(STU *)malloc(sizeof(STU);C 语言课程设计实验报告9p-next=NULL;fscanf(fp,%10s %12s %3d %11s %4s %10s %12s %20s %20s %20s,p-No,p-name,&p-age,p-phone,p-sex,p-birth,p-qq,p-grade,p-jcxx,p-jg);ch=fgetc(fp);q-next=p;q=q-ne
13、xt;fclose(fp);return h;STU * add_info(STU *h)FILE *fpin=fopen(d:stu.txt,a);STU *stu,*p;p=h;stu=(STU *)malloc(sizeof(STU);stu-next=NULL;system(cls);if(h=NULL)h=stu;printf(请 输 入 学 号 : n);scanf(%s,h-No);printf(请 输 入 姓 名 : n);scanf(%s,h-name);printf(请 输 入 年 龄 : n);scanf(%d,printf(请 输 入 籍 贯 : n);scanf(%s
14、,h-jg);printf(请 输 入 手 机 号 : n);scanf(%s,h-phone);printf(请 输 入 性 别 :n);scanf(%s,h-sex);printf(请 输 入 出 生 年 月 日 :n);scanf(%s,h-birth);printf(请 输 入 qq:n);scanf(%s,h-qq);printf(请 输 入 专 业 班 级 : n);scanf(%s,h-grade);printf(请 输 入 奖 惩 信 息 : n);scanf(%s,h-jcxx);elseC 语言课程设计实验报告10while(p-next!=NULL)p=p-next;p-
15、next=stu;printf(请 输 入 学 号 : n);scanf(%s,stu-No);printf(请 输 入 姓 名 : n);scanf(%s,stu-name);printf(请 输 入 年 龄 : n);scanf(%d,printf(请 输 入 籍 贯 : n);scanf(%s,stu-jg);printf(请 输 入 手 机 号 : n);scanf(%s,stu-phone);printf(请 输 入 性 别 :n);scanf(%s,stu-sex);printf(请 输 入 出 生 年 月 日 :n);scanf(%s,stu-birth);printf(请 输 入 qq:n);scanf(%s,stu-qq);printf(请 输 入 专 业 班 级 :n);scanf(%s,stu-grade);printf(请 输 入 奖 惩 信 息 : n);scanf(%s,stu-jcxx);fclo