C语言程序设计课程设计--学生宿舍信息管理系统.doc

上传人:rrsccc 文档编号:9534386 上传时间:2021-03-03 格式:DOC 页数:27 大小:137.50KB
返回 下载 相关 举报
C语言程序设计课程设计--学生宿舍信息管理系统.doc_第1页
第1页 / 共27页
C语言程序设计课程设计--学生宿舍信息管理系统.doc_第2页
第2页 / 共27页
C语言程序设计课程设计--学生宿舍信息管理系统.doc_第3页
第3页 / 共27页
C语言程序设计课程设计--学生宿舍信息管理系统.doc_第4页
第4页 / 共27页
C语言程序设计课程设计--学生宿舍信息管理系统.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《C语言程序设计课程设计--学生宿舍信息管理系统.doc》由会员分享,可在线阅读,更多相关《C语言程序设计课程设计--学生宿舍信息管理系统.doc(27页珍藏版)》请在三一文库上搜索。

1、课 程 设 计 课程名称C语言程序设计课程设计题目名称宿舍学生信息管理系统二一五年6月20日计算机科学与技术系课程设计任务书课 程C语言程序设计班级指导教师题 目学生宿舍信息管理系统完成时间2015年6月1日至2015年6月20日主要内容要求: 1 能实现基本数据的输入、输出、查询、统计等操作;2 用文件的方式等操作。3需求由设计者自己分析。设计报告要求1封面:(格式附后)2课程设计任务书3课程设计报告: 系统总体方案 设计思路和主要步骤 各功能模块和流程图 设计代码 心得体会和参考资料说明:学生完成课程设计后,提交课程设计报告及软件,要求文字通畅、字迹工整(也可用以打印),文字不少于5000

2、 字,并装订成册。版面要求1 题目用黑体三号,段后距18磅(或1行),居中对齐;2 标题用黑体四号,段前、段后距6磅(或0.3行);3 正文用小四号宋体,行距为1.25倍行距;4 标题按“一”、“”、“1”、“”顺序编号。上机时间安排星期周次一二三四五六日第2周-第5周2014级智慧城市班,3-4节2014级智慧城市班,1-2节指导时间地点上机时间,多媒体技术实验室(A503)学生宿舍信息管理系统一、 系统总体方案:(一)总体功能设计学生宿舍管理系统存放了每个学生的学号、姓名、性别、年龄、寝室号、电话号码每个人的信息定义在一个结构体变量中。其结构如下:系统通过录入程序、浏览程序、查询程序、删除

3、程序、添加程序、修改程序及退出实现学生信息管理系统的录入、浏览、查询、删除、添加、修改各个功能的调用通过主函数中的switch语句来实现。switch(n)case 1:printf(1.录入学生信息n);printf(n);input();break;case 2:printf(2.浏览学生信息n);printf(n);display();break;case 3:printf(3.按学号查询n);printf(n);search();break;case 4:printf(4.删除学生信息n);printf(n);del();break;case 5:printf(5.添加学生信息n);p

4、rintf(n);add();break;case 6:printf(6.修改学生信息n);printf(n);modify();break;case 7:exit(0);break;default :break; (二)各模块功能设计:(1)录入模块通过设计一个模块,来实现学生信息的录入。(2)浏览模块通过设计一个模块,实现学生信息的显示,以便以便用户更好的浏览学生信息。(3)查询模块通过设计一个模块,这个模块可以按学生的学号、姓名来查询学生所有的信息,并显示学生的所有信息,以便用户阅读。(4)删除模块通过设计一个模块,通过程序实现找到学生信息,在通过程序将学生的信息文件中删除。(5)添加模

5、块通过设计一个模块,当要添加新的学生的信息的时候,来实现新学生的信息录入。(6)修改模块通过设计一个模块,当某个学生的信息要发生改变时,通过程序找到要修改的的学生信息,根据需要修改的内容去修改学生信息,在通过浏览模块来显示修改后的学生信息。(三)设计思路和主要步骤:(1).设计思路:学生宿舍管理系统是对学生住宿信息的录入、浏览、查询、删除、添加、修改等,方便宿管员对学生的管理;首先设计进入系统的界面,以方便用户与计算机之间的交互,然后通过编语句实现系统各个模块的功能,实现系统的功能。(2).主要步骤:(一)了解学生宿舍信息的内容(二)通过课本例题了解主要步骤(三)查阅课本所需要的编程语句(四)

6、通过用c+编语句,用c+语句的格式及要求完成系统的设计及实现(五)最后调试程序,查看运行结果,写报告。二、 系统总体模块设计图主函数录入模块浏览模块查询模块删除模块添加模块修改模块退出退出三、 系统总流程图及各模块流程图(一)总流程图:开始进入系统输入数字nn=?n=1 录入模块n=2 浏览模块n=3 查询模块n=4 删除模块n=5 添加模块n=6 修改模块n=7 退出显示结果输出退出结束(二)各模块流程图(1)录入信息流程图:输入姓名输入性别输入年龄输入寝室号输入电话是否继续录入结束是否(2)浏览信息流程图:(3)查询信息流程图:进入输入选项按学号查找按电话号码查找查找学生Flag=?输出学

7、生信息查无此人!是否继续查询退出Num=2Num=3flag=1flag=0是否(4)删除信息流程图:查无此人Flag=0开 始输入要查找的信息查找删除信息Flag=?删除学生信息输出要删除信息是否继续删除结 束否是(5)添加信息流程图:(6)修改信息流程图:(7)退出流程图四、 程序代码#include #include #include #include #define N 100struct studentint num; /*学号*/char name10; /*姓名*/char sex; /*性别*/ int age; /*年龄*/int qsh; /*寝室号*/char tel12

8、; /*电话号码*/stu100; /*定义一个结构体*/void menu(); /*菜单函数*/void input(); /*录入函数*/void save(int); /*保存函数*/void display(); /*浏览函数*/void del(); /*删除函数*/void add(); /*增加函数*/void search(); /*查询函数*/void search_num();void search_xueli();void search_tel();void modify(); /*修改函数*/void menu() /*菜单函数*/printf(n);printf(*

9、宿舍学生信息管理系统*nnn);printf(1.录入学生信息2.浏览学生信息nnn );printf(3.查询学生信息4.删除学生信息nnn);printf(5.添加学生信息6.修改学生信息nnn );printf(7.退出nn ); printf(*欢迎下次进入!*nnn);printf(n);printf(n);void main()int n,flag;char a;menu(); /*调用菜单函数*/doprintf(请选择你需要操作的步骤(1-7):n);scanf(%d,&n);if(n=1&n=7)flag=1;break;elseflag=0;printf(您输入有误,请重新

10、选择!);while(flag=0);while(flag=1)switch(n)case 1:printf(1.输入学生信息n);printf(n);input();break;case 2:printf(2.浏览学生信息n);printf(n);display();break;case 3:printf(3.按学号查询学生信息n);printf(n);search();break; case 4:printf(4.删除学生信息n);printf(n);del();break;case 5:printf(5.添加学生信息n);printf(n);add();break;case 6:prin

11、tf(6.修改学生信息n);printf(n);modify();break;case 7:exit(0);break;default :break;getchar();printf(n);printf(是否继续进行(y or n):n);scanf(%c,&a);if(a=y)flag=1;system(cls); /*清屏*/menu(); /*调用菜单函数*/printf(请再次选择你需要操作的步骤(1-6):n);scanf(%d,&n);printf(n);else exit(0);void input() /*录入函数*/int i,n,m,p,j;printf(请输入需要创建信息

12、的学生人数(1-100):n);scanf(%d,&m);for (i=0;im;i+)printf(学号(号码范围:51402000-51402100): );scanf(%d,&stui.num);for (n=1;n=1;)for (p=0;pi;p+)if(stui.num=stup.num)j=1;if(j=1)j=0;printf(n您输入的学号重复,请重新输入n);printf(学号: );scanf(%d,&stui.num);elsen=0; printf(n);printf(请输入姓名: );scanf(%s,stui.name);getchar();printf(请输入性

13、别(女 男): );scanf(%c,&stui.sex);printf(请输入年龄: );scanf(%d,&stui.age);printf(请输入寝室号: );scanf(%d,&stui.qsh);printf(请输入电话: );scanf(%s,stui.tel);printf(n);printf(n);printf(n创建完毕!n);save(m);void save(int m) /*保存文件函数*/int i;FILE*fp;if (fp=fopen(student_list,wb)=NULL) /*创建文件并判断是否能打开*/printf (cannot open filen

14、);exit(0);for (i=0;im;i+) /*将内存中学生的信息输出到磁盘文件中去*/if (fwrite(&stui,sizeof(struct student),1,fp)!=1)printf(file write errorn);fclose(fp);int load() /*导入函数*/FILE*fp;int i=0;if(fp=fopen(student_list,rb)=NULL)printf (cannot open filen);exit(0);else do fread(&stui,sizeof(struct student),1,fp);i+;while(feof

15、(fp)=0);fclose(fp);return(i-1);void display() /*浏览函数*/int i;int m=load();printf(n 学号t姓名t性别t年龄t宿舍号t电话 n);for(i=0;im;i+) /*m为输入部分的学生人数*/printf(n %dt%st%ct%dt%dt%sn,stui.num,stui.name,stui.sex,stui.age,stui.qsh,stui.tel); void del() /*删除函数*/int m=load();int i,j,n,t,flag;char name20;printf(n 原来的学生信息:n);

16、display(); /*调用浏览函数*/printf(n);printf(请输入要删除的学生的姓名:n);scanf(%s,name);for(flag=1,i=0;flag&im;i+)if(strcmp(stui.name,name)=0)printf(n已找到此人,原始记录为:n);printf(n学号t姓名t性别t年龄t寝室号t电话 n);printf(n%dt%st%ct%dt%dt%sn,stui.num,stui.name,stui.sex,stui.age,stui.qsh,stui.tel); printf(n确实要删除此人信息请按1,不删除请按0n);scanf(%d,&

17、n);if(n=1) /*如果删除,则其他的信息都往上移一行*/for(j=i;jm-1;j+)strcpy(stuj.name,stuj+1.name);stuj.num=stuj+1.num;stuj.sex=stuj+1.sex;stuj.age=stuj+1.age;stuj.qsh=stuj+1.qsh; strcpy(stuj.tel,stuj+1.tel);flag=0;if(!flag)m=m-1;elseprintf(n对不起,查无此人!n);printf( 浏览删除后的所有学生信息:n);save(m); /*调用保存函数*/display(); /*调用浏览函数*/pri

18、ntf(n继续删除请按1,不再删除请按0n);scanf(%d,&t);switch(t)case 1:del();break;case 0:break;default :break;void add()/*添加函数*/FILE*fp;int n;int count=0;int i,k,p,j;int m=load();printf(n 原来的学生信息:n);display(); /* 调用浏览函数*/printf(n);fp=fopen(student_list,a);printf(请输入想增加的学生数:n);scanf(%d,&n);for (i=m;i(m+n);i+)printf(n

19、请输入新增加学生的信息:n);printf(请输入学号: );scanf(%d,&stui.num);for (k=1;k=1;)for (p=0;p=1&t=3)flag=1;break;elseflag=0;printf(您输入有误,请重新选择!);while(flag=0);while(flag=1)switch(t) case 1:printf(按学生学号查询n);search_num();break;case 2:printf(按电话号码查询n);search_tel();break;case 3:main();break;default:break;void search_num(

20、)int num;int i,t,g=0;int m=load();printf(请输入要查找的学号(5140000-5140100):n);scanf(%d,&num);for(i=0;im;i+) if(num=stui.num) g+;printf(n已找到此人,其记录为:n);printf(n学号t姓名t性别t年龄t寝室号t电话 n);printf(n%dt%st%ct%dt%dt%sn,stui.num,stui.name,stui.sex,stui.age,stui.qsh,stui.tel); if(g=0)printf(n对不起,查无此人n);printf(n);printf(

21、返回查询函数请按1,继续查询学号请按其他键(2-9)n);scanf(%d,&t);switch(t) case 1:search();break;case 2: break;default:break;void search_tel()char tel12;int i,t,g=0;int m=load();printf(请输入要查找的电话号码:n);scanf(%s,tel);for(i=0;im;i+) if(strcmp(stui.tel,tel)=0) g+;printf(n已找到此人,其记录为:n);printf(n学号t姓名t性别t年龄t寝室号t电话 n);printf(n%dt%

22、st%ct%dt%dt%sn,stui.num,stui.name,stui.sex,stui.age,stui.qsh,stui.tel); if(g=0)printf(n对不起,查无此人n);printf(n);printf(返回查询函数请按1,继续查询电话号码请按其他键(2-9)n);scanf(%d,&t);switch(t) case 1:search();break;case 2:break;default :break;void modify() /*修改函数*/int num;char name10;char sex; int age;int qsh;char tel12;in

23、t b,c,i,n,t,flag; int m=load(); /*导入文件内的信息*/printf(n 原来的学生信息:n);display(); /* 调用浏览函数*/printf(n);printf(请输入要修改的学生的姓名:n); scanf(%s,name);for(flag=1,i=0;flag&i8|c1) printf(n选择错误,请重新选择!n); flag=0;if(flag=1)printf(n对不起,查无此人!n); do switch(c) /*因为当找到第i个学生时,for语句后i自加了1,所以下面的应该把改后的信息赋值给第i-1个人*/case 1:printf(

24、学号改为: scanf(%d,&num);stui-1.num=num; break; case 2:printf(姓名改为: );scanf(%s,name);strcpy(stui-1.name,name); break; case 3:printf(性别改为: );getchar();scanf(%c,&sex);stui-1.sex=sex; break; case 4:printf(年龄改为: );scanf(%d,&age);stui-1.age=age; break; case 5:printf(寝室号改为: );scanf(%d,&qsh); break; case 6:pri

25、ntf(电话改为: );scanf(%s,tel); strcpy(stui-1.tel,tel); break; printf(n);printf(n是否确定所修改的信息?n 是 请按1 ; 不,重新修改 请按2: n); scanf(%d,&b); while(b=2);printf(n浏览修改后的所有学生信息:n);printf(n);save(m);display();printf(n继续修改请按1,不再修改请按0n);scanf(%d,&t);switch(t)case 1:modify();break;case 0:break;default :break;(五)心得体会及考资料c

26、语言要想学好它,必须要通过不断的上机操作才能更好地学习它,通过实践,我们也发现我们的好多不足之处,首先是我们在指法上还不行,经常按错字母,通过学习也有所改进;再有对c语言的一些标准库函数不太了解,在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了我们的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,还有对函数调用的正确使用不够熟悉,还有对c语言中经常出现的错误也不了解,通过实践,我们在这几个方面的认识有所提高。C语言中程序编译过程中有错误,往往有很多错误都不知道错在其处,处理问题很棘手,在学习并运行c语言过程中,基本了解错误的含义。通过实践的学习,我们认到学好计算机要重视实践操作,不仅仅是学习c语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我们会更加注视实践操作,更好地学好计算机。参考资料:高等学校计算机教材c语言程序设计高等数学计算机教材c语言程序设计实验指导书与课程设计

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1