C语言课程设计学生信息管理系统(1).docx
《C语言课程设计学生信息管理系统(1).docx》由会员分享,可在线阅读,更多相关《C语言课程设计学生信息管理系统(1).docx(16页珍藏版)》请在三一办公上搜索。
1、C语言课程设计学生信息管理系统C语言课程设计实验报告 一、设计目的: 学生信息包括:学号、姓名、性别、系名、班级名、出生年月、住址、电话号码。设计一学生信息管理系统,使之能提供以下功能: 1.系统以菜单方式工作; 2.学生信息录入功能(输入); 3.学生信息浏览功能(输出); 4.学生信息检索功能; 5.学生信息的删除与修改功能; 二、总体设计思路: 1程序设计组成框图 添加新的学生信息 检索信息浏览所有学生信息 添加新的学生信息 删除所有记录 按学号检索 主菜单 检索学生信息 按姓名检索 删除此同学信息 修改此同学信息 保存并退出 C语言程序设计实验报告 2N-S流程图开始 fileopen
2、 Menu 输入选择x x case 1 调用add 添加新的学生信息 Case 2 case 3 调用res 检索学生信息 case 4 退出系统 调用scan 浏览所有学生信息 filesave 结束 2 C语言程序设计实验报告 三、详细设计说明: 1头文件 #include #include #include #include 2数入口说明 main;主函数; void menu;主菜单界面; void add;添加新的学生信息; void print(int i);打印学生信息; void scan;查找学生信息; void res;检索学生信息界面; void res_name;按姓
3、名检索; void res_num;按学号检索; void del(int i);删除学生信息; void modify(int i);修改学生信息; void fileopen;打开文件; void filesave;保存文件; 2调用关系 main fileopen add menu res add menu add scan menu res_name res modify(int i) del(int i) filesave res_num menu 3 C语言程序设计实验报告 4.调试与测试: 编译工具 1.C/C+程序设计学习与实验系统 2.Tc 4 C语言程序设计实验报告 3.V
4、C+6.0均通过调试! 5 C语言程序设计实验报告 主菜单 添加新的学生信息 浏览所有学生信息 6 C语言程序设计实验报告 检索信息库 继续查找下一条 7 C语言程序设计实验报告 修改学生信息 删除信息库所有记录 8 C语言程序设计实验报告 五、调试中所遇到的问题及解决方法 1问题:程序退出后,再次打开,上次输入的数据无法保存。 解决:调用fileopen与filesave保存文件数据,方便第二次打开程序时仍能调用上次输入的数据。 2问题:跳出的界面与选择分支中的对应项不符合。 解决:改getchar为getch,头文件中加”conio.h”.因为getchar从输入输出流中一次只能读取一个字
5、符,而且需要以回车来确认输入。本文件中多次用到getchar,键盘缓冲区的n会被下次调用getchar时接收。而getch则不会,从键盘上读入一个数据,不给回显,不需要回车确认,按下键就实现了函数。 3问题:误输入X,导致退出。 解决:加标志变量flag=1,用while(flag)循环switch语句,当正确输入时,flag=1,跳出循环。 4问题:检索时只能查到第一个学生信息。 解决:定义数组log(100)记录符合的结构体数组。循环打印。 5问题:不能刷新界面。 解决:调用system(“cls”)清屏函数。 9 C语言程序设计实验报告 6问题:删除某项信息,返回主函数时不能暂停。 解决
6、:调用system(“PAUSE”)暂停函数。 六、程序源码 #include stdio.h #include string.h #include stdlib.h #include conio.h void menu; /声明所有函数; void add; void print(int i); void scan; void res; void res_name; void res_num; void del(int i); void modify(int i); void fileopen; void filesave; ; /定义全局变量x,减少代码量; int n=0; /定义全局变
7、量n,代表信息条数; struct student /定义结构体数组stu100; char num15; char name30; char sex2; char xi30; char ban10; 10 C语言程序设计实验报告 char birth10; char address30; char tel20; stu100; void main /主函数; fileopen; menu; /调用menu函数,打开主界面; filesave; void fileopen /打开data文件; FILE *fp; int i; if(fp=fopen(data,r+)=NULL) /若无dat
8、a文件,则新建; fp=fopen(data,w+); for(i=0;i100;i+) /读取数据; fread(&stui,sizeof(struct student),1,fp); fread(&n,4,1,fp); fclose(fp); void menu /主菜单; int flag=1; /定义标志标量flag; system(cls); /清屏函数; printf(n); /主界面; printf( 欢迎登录学生信息管理系统 n); printf( n); printf( 1.添加新的学生信息 n); printf( 2.浏览所有学生信息 n); printf( 3.检索学生信
9、息 n); printf( 4.保存并退出系统 n); printf( n); printf( by rlkn); printf(n); while(flag) /防止用户误选导致退出; switch(getch) /用switch分支选择语句;getch获取用户键入值; case 1:flag=0;add;break;/当用户选择1时,调用add函数,添加新的学生信息; case 2:flag=0;scan;break;/当用户选择2时,调用scan函数,浏览所有学生信息; case 3:flag=0;res;break;/当用户选择3时,调用res函数,检索学生信息; case 4:fla
10、g=0;printf(保存成功!);break; /当用户选择4时,调用flag函数,退出系统; default:printf(错误!请重新输入.n); /其它输入,提示错误; void add /信息添加函数; int flag=1; 11 C语言程序设计实验报告 system(cls); /清屏函数; printf(%2dn,n+1); /逐一输入各项数据; printf( *添加新的学生信息*n); printf( 学号:); scanf(%s,&stun.num); printf( 姓名:); scanf(%s,&stun.name); printf( 性别:); scanf(%s,&
11、stun.sex); printf( 系名:); scanf(%s,&stun.xi); printf( 班级名:); scanf(%s,&stun.ban); printf( 出生年月:); scanf(%s,&stun.birth); printf( 住址:); scanf(%s,&stun.address); printf( 电话号码:); scanf(%s,&stun.tel); printf(n); printf(n添加成功!nn 请选择 : 1.继续添加 2.返回主菜单n); n+; /总信息量增加一项; while(flag) switch(getch) case 1:flag=
12、0;add;break; /选择1,重新调用add; case 2:flag=0;menu;break; /选择2,调用menu,返回主菜单; default:printf(错误!请重新输入.n); /其它输入,提示错误; void print(int i) /学生信息打印函数; printf(%2dn,i+1); printf( 学号:%sn,stui.num); printf( 姓名:%sn,stui.name); printf( 性别:%sn,stui.sex); printf( 系名:%sn,stui.xi); printf( 班级名:%sn,stui.ban); printf( 出生
13、年月:%sn,stui.birth); printf( 住址:%sn,stui.address); printf( 电话号码:%sn,stui.tel); printf(n); void scan /信息浏览函数; int i,flag=1; system(cls); if(n=0) /当n=0时,信息库中无记录; printf(n); printf( 当前信息库记录为0!n); printf(n); printf( 请选择 : 1.添加新的学生信息 2.返回主菜单n); while(flag) switch(getch) 12 C语言程序设计实验报告 case 1:flag=0;add;br
14、eak; case 2:flag=0;menu;break; default:printf(错误!请重新输入.n); else /当n不为0时,打印信息; printf(*目前信息库里共有%d条记录.*n,n); for(i=0;in;i+)print(i); printf( 请选择 : 1.检索信息库 2.添加新的学生信息n); printf( 3.删除所有记录4.返回主菜单 n); while(flag) switch(getch) case 1:flag=0;res;break; case 2:flag=0;add;break; case 3: flag=0; printf(n!警告:您
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 学生 信息管理 系统
链接地址:https://www.31ppt.com/p-3155358.html