C语言课程设计学生信息管理系统_第1页
C语言课程设计学生信息管理系统_第2页
C语言课程设计学生信息管理系统_第3页
C语言课程设计学生信息管理系统_第4页
C语言课程设计学生信息管理系统_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言课程设计实验报告一、设计目的:学生信息包括:学号、姓名、性别、系名、班级名、出生年月、住址、电话号 码。设计一学生信息管理系统,使之能提供以下功能:1 .系统以菜单方式工作;2 .学生信息录入功能(输入);3 .学生信息浏览功能(输出);4 .学生信息检索功能;5 .学生信息的删除与修改功能;二、总体设计思路:1程序设计组成框图2>N-S流程图三、详细设计说明:1>头文件#include <>#include<>#include<>#include<>2>数入口说明main();主函数;void menu();主菜单界面;

2、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();保存文件;2>调用关系add()fileopen()add() V()menu()scan() J res()(add()j menu() J menu()mai

3、n() jfmodify(inti)del(inti)八 menu()res_name()res() ,filesave(res_num(4.调试与测试:编译工具C+福序设计学习与实验系统+均通过调试!主菜单添加新的学生信息浏览所有学生信息检索信息库继续查找下一条修改学生信息删除信息库所有记录五、调试中所遇到的问题及解决方法1问题:程序退出后,再次打开,上次输入的数据无法保存。解决:调用fileopen() 与filesave() 保存文件数据,方便第二次打开程序时仍能调用上 次输入的数据。2问题:跳出的界面与选择分支中的对应项不符合。解决:改getchar()为getch(),头文件中加”.

4、因为getchar()从输入输出流中一次只 能读取一个字符,而且需要以回车来确认输入。本文件中多次用到getchar(),键盘缓冲区的n '会被下次调用getchar()时接收。而getch()则不会,从键盘上读入一个数据,不 给回显,不需要回车确认,按下键就实现了函数。3问题:误输入 X,导致退出。解决:加标志变量flag=1,用while(flag) 循环switch语句,当正确输入时,flag=1 ,跳 出循环。4问题:检索时只能查到第一个学生信息。解决:定义数组10g(100)记录符合的结构体数组。循环打印。5问题:不能刷新界面。解决:调用system( "cls &

5、quot;)清屏函数。6问题:删除某项信息,返回主函数时不能暂停。解决:调用system( "PAUSE)暂停函数。六、程序源码#include ""#include ""#include ""#include "" void menu();printf(" printf(" printf(" printf(" printf(" printf("加新的学生信息2. 浏览所有学生信息3. 检索学生信息4. 保存并退出系统by rlkI n"

6、;);n")n") n") n") n") n")while(flag)n"); um);printf("姓名:");scanf("%s”,&);printf("性别:");scanf("%s”,&stun.sex);printf("系名:");scanf("%s”,&stun.xi);printf("现级名:");scanf("%s”,&stun.ban

7、);scanf("%s”,&stun.birth); printf("住址:");printf("出生年月:");scanf("%s”,&stun.address); printf("电话号码:");printf("n,添加成功n请选择:1.继续添加n");2.返回主菜单n");n+;printf(" print他 print他 printf(" print他 print他 print他prin tf(" n"); um);姓名:

8、sn",);性别:sn",stui.sex);系名:sn",stui.xi);班级名:%sn",stui.ban);出生年月:sn",stui.birth);住址:sn",stui.address);电话号码:%sn",stui.tel);n");void scan()单 n");while(flag) switch(getch() 加新的学生信息2.返回主菜 elsecase '1':flag=0;add();break;case '2':flag=0;

9、menu();break;default:printf("错误!请重新输入.n");*n",n);for(i=0;i<n;i+)print(i);printf(" 请选择:1.检索信息库2.添加新的学生信息n");printf("3.while(flag) switch(getch()case '1':flag=0;res();break;case '2':flag=0;add();break;case '3':flag=0;printf("n!录!n");删除

10、所有记录4.返回主菜单n");告:您将删除信息库所有记flag=1; while(flag) switch(getch() 请选择:1.确认删除2.返回n");case '1':flag=0;n=0;printf("除!n");system("PAUSE");scan();break;,已删case '2':flag=0;scan();default:printf(" 错误!请重新输入.n");break;case '4':flag=0;menu();break;de

11、fault:printf(" 错误!请重新输入.n");void modify(int i)4.系名n");printf(" 5.printf("- while(flag)号2.姓名3.性别班级名6.出生年月7.住址8.电话号码n");n");case'1':flag=0;printf("请重新输入号:");scanf("%s”,&stui.num);break;请重新输case'2':flag=0;printf("名:");scanf

12、("%s”,&);break;入case'3':flag=0;printf("别:");scanf("%s”,&stui.sex);break;请重新输入case'4':flag=0;printf("名:");scanf("%s”,&stui.xi);break;请重新输入case'5':flag=0;printf("请 重 新 输名:");scanf("%s”,&stui.ban);break;c

13、ase '6':flag=0;printf("请重新输入出生年月:");scanf("%s”,&stui.birth);break;case '7':flag=0;printf("请重新输入住址:");scanf("%s”,&stui.address);break;case '8':flag=0;printf("请 It 新输入电话号码:");scanf("%s”,&stui.tel);break;default:printf(&qu

14、ot;错误!请重新输入.");入班switch(getch()printf(",修改成功!n修改后的学生信息:n");学 姓 性 系 级print(i);3.system("PAUSE");printf(" 请选择:1.继续修改此学生信息2.查看下一条相关信息 返回主菜单n");flag=1;while(flag)switch(getch()case '1':flag=0;modify(i);break;case '2':flag=0;break;case '3':flag=0

15、;menu();default:printf("错误!请重新输入.n");void del(int i)printf("n2.while(flag)switch(getch()case '1':不删除,续删除) 返回主菜单n");flag=0;for(a=i;a<n-1;a+)um,stua+1.num);strcpy(,stua+1.name);strcpy(stua.sex,stua+1.sex);strcpy(stua.xi,stua+1.xi);strcpy(stua.ban,stua+1.ban);str

16、cpy(stua.birth,stua+1.birth);strcpy(stua.address,stua+1.address);strcpy(stua.tel,stua+1.tel);n-;printf(",删除成功!n");; menu();n");void res_num()um,xh)续查找2一返回主菜单n");while(flag)switch(getch()case '1':flag=0;res();break;case '2':flag=0;menu();break;default:printf("

17、 错误!请重新输入.n");elseprintf("n在信息库中共找到舔相关信息.n",j);for(i=0;i<j;i+)flag=1;printf("n第族 n”,i+1);print(logi);printf("n*n");请选择:1.修改此学生信息2,删除此学生信息n");printf(" 3.继续查找下一条4.返回主菜单n");while(flag)switch(getch()case '1':flag=0;modify(logi);break;case '2

18、9;:flag=0;del(logi);break;case '3':flag=0;break;case '4':flag=0;menu();break;default:printf(" 错误!请重新输入.n");printf("n已到最后一条相关信息.n");system("PAUSE");menu();void res_name()ame,mz)续查找2一返回主菜单n");while(flag)switch(getch()case '1':flag=0;res();brea

19、k;case '2':flag=0;menu();break;default:printf(" 错误!请重新输入.n");elseprintf("n在信息库中共找到舔相关信息.n",j);for(i=0;i<j;i+)flag=1;printf("n第族 n”,i+1);print(logi);printf("n*n");请选择:1.修改此学生信息2.删除此学生信息n");printf(" 3.继续查找下一条4.返回主菜单n");while(flag)switch(getc

20、h()case '1':flag=0;modify(logi);break;case '2':flag=0;del(logi);break;case '3':flag=0;break;case '4':flag=0;menu();break;default:printf(" 错误!请重新输入.n");n已到最后一条相关信息.n");system("PAUSE");menu();void res()学号检索 n");printf("2.按姓名检索n");print他3.返回主菜单n");print他 n");while(flag)switch(getch()case '1':flag=0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论