学生宿舍管理系统c语言实习报告
c语言实训报告宿舍管理系统

实验(实习、实训)报告课程(项目)名称:程序设计基础课程设计学院:专业:计算机科学与技术班级: _________学号:______ *名:*绩:2015年7 月 2 日目录一、问题定义 (3)二、算法设计 (4)1.模块图 (4)2.数据结构 (4)3.菜单设计 (4)4.功能模块函数设计 (7)5.流程图设计 .............................................................................................. 错误!未定义书签。
6.程序代码设计 (26)三、系统运行结果及说明 (27)四、课程设计总结 (30)1.遇到的问题及解决方法 (30)2.个人总结 (30)五、参考资料 (31)六、评语 (31)一、问题定义实训题目10:学生宿舍管理系统系统至少应该包含以下功能,鼓励在此基础上进行完善创新:该系统只有合法用户才能登陆,登陆成功后,显示系统功能提示信息,如图a所示。
选择主菜单中的1,添加学生住宿信息,学生住宿信息包括学号、姓名、性别、年龄、班级、宿舍楼、楼层号、宿舍号等。
选择主菜单中的2、3,可以根据学号对学生住宿信息进行修改和删除操作。
选择主菜单中的4会输出所有住宿学生的信息。
选择主菜单中的5会打开子菜单如图b所示。
根据不同关键字查询学生住宿信息。
选择主菜单中的6会打开子菜单,如图c所示,可以对住宿信息进行多种统计,如输入要统计的宿舍号,输出该宿舍里的所有成员,并显示宿舍里的总人数。
在主菜单中选择0显示结束信息“感谢使用本软件”,按任意键后退出系统。
菜单要求:主菜单和子菜单能够循环,每一项菜单执行之后询问用户是否继续进行,从子菜单可以返回到主菜单。
如需要其它菜单请自行设计。
二、算法设计1.模块图2.数据结构结构体struct student{char num[10]; //字符数组:用来存放编号char S_name[10]; //字符数组:用来存放姓名char sex[10]; //字符数组:用来存放学生性别char B_num[10];//字符数组:用于存放宿舍楼号char F_num[10];//字符数组:用于存放楼层char D_num[10];//字符数组:用于存放宿舍号定义字符变量char choose='\0',yes_no='\0';choose用来存放选择,yes_no判断是否继续;定义整形变量int i,n,flag;其中i,n为循环变量,flag为标记变量菜单设计主菜单子菜单1查找住宿信息子菜单2统计住宿情况3.功能模块函数设计1. void myprint(); //用于打印主菜单2. void myprint1(); //用于打印查询子菜单3. void myprint2(); //用于打印统计子菜单4. void mycreate(); //创建新纪录5. void mydisplay(); //显示记录6. void mysearch(); //查询功能7. void sch_num(); //按学号查询8. void sch_S_name(); //按姓名查询9. void sch_sex(); //按性别查询10. void sch_B_num(); //按宿舍楼查询11. void sch_F_num(); //按楼层查询12. void sch_D_num(); //按宿舍查询13. void mymodify(); //修改功能14. void myadd(); //添加功能15. void mydelete(); //删除功能16. void del_S_name(); //按姓名删除17. void del_num(); //按学号删除18. void mycount(); //统计功能19. void count_B_num(); //按宿舍楼统计20. void count_D_num(); //按宿舍统计21. void count_F_num(); //按楼层统计22. void mainmenu(); //主菜单1.主函数(从键盘上输入一个数字,打开对应的功能)int main(void){mainmenu();return 0;}void myprint(){system("cls"); //清屏printf(" |----------------------------------------------------|\n");printf(" | 请输入选项编号(0-7): |\n");printf(" |----------------------------------------------------|\n");printf(" | 1--添加学生住宿信息|\n");printf(" | 2--浏览学生住宿信息|\n");printf(" | 3--查询住宿信息|\n");printf(" | 4--修改学生住宿信息|\n");printf(" | 5--删除学生住宿信息|\n");printf(" | 6--统计住宿信息|\n");printf(" | 0--退出系统|\n");printf(" |----------------------------------------------------|\n");}void mainmenu(){char choose = '\0', yes_no = '\0';do{myprint(); //在控制台打印显示操作主界面printf(" ");choose = getch(); //从控制台无回显地取一个字符switch (choose) //根据用户键入的字符选择不同的操作{case '1': mycreate(); break;case '2': mydisplay(); break;case '3': mysearch(); break;case '4': mymodify(); break;case '5': myprint2();mydelete(); break;case '6': mycount(); break;case '0':printf("感谢制作人李抽抽!\n");exit(0);default: printf("\n %c为非法选项!\n", choose);}printf("\n 要继续选择吗(Y/N)?\n");do{yes_no = getche();} while (yes_no != 'Y' && yes_no != 'y' && yes_no != 'N' && yes_no != 'n');} while (yes_no == 'Y' || yes_no == 'y');}2.功能函数(1)打印函数,打印对应的功能界面void myprint(){system("cls"); //清屏printf(" |----------------------------------------------------|\n");printf(" | 请输入选项编号(0-7): |\n");printf(" |----------------------------------------------------|\n");printf(" | 1--添加学生住宿信息|\n");printf(" | 2--浏览学生住宿信息|\n");printf(" | 3--查询住宿信息|\n");printf(" | 4--修改学生住宿信息|\n");printf(" | 5--删除学生住宿信息|\n");printf(" | 6--统计住宿信息|\n");printf(" | 0--退出系统|\n");printf(" |----------------------------------------------------|\n");}void myprint1(){system("cls"); //清屏printf(" |---------------------------------------------------|\n");printf(" | 请输入选项编号(0-5): |\n");printf(" |----------------------------------------------------|\n");printf(" | 1--按学号查询|\n");printf(" | 2--按姓名查询|\n");printf(" | 3--按宿舍楼查询|\n");printf(" | 4--按楼层查询|\n");printf(" | 5--按宿舍查询|\n");printf(" | 6--返回|\n");printf(" | 0--退出系统|\n");printf(" |-----------------------------------------------------|\n"); }void myprint2(){system("cls"); //清屏printf(" |---------------------------------------------------|\n");printf(" | 请输入选项编号(0-4): |\n");printf(" |----------------------------------------------------|\n");printf(" | 1--按宿舍统计|\n");printf(" | 2--按楼层统计|\n");printf(" | 3--按宿舍楼统计|\n");printf(" | 4--返回|\n");printf(" | 0--退出系统|\n");printf(" |----------------------------------------------------|\n"); }(2)添加函数,添加学生宿舍记录void mycreate(){int i = 1;struct student temp = { 0 };FILE *fp = NULL;fp = fopen("D:\\JiLu.dat", "w"); //以写方式打开文件。
C语言课程设计学生宿舍管理系统

5.运行结果10
5.1主菜单界面:10
5.2信息录入界面:10
5.3信息浏览界面:11
5.4信息查询界面:11
5.5信息修改界面:12
6.程序调试与测试12
6.1程序调试与分析12
6.2程序测试结果12
7.问题与不足12
8.建议12
9.编程体会12
10.程序源代码:12
4)通过课程实训,培养C语言知识运用和自学能力,真正的把课堂上获得的知识运用起来,培养自己对程序编写的兴趣,并能独立设计和实现一个小型系统。
5)通过课程实训,加强了自己的程序分析能力。
2.需求分析
2.1
1)遵循软件开发过程的基本规范;能灵活应用,初步具备运用C程序解决实际问题的能力。
2)运用结构化程序设计方法,按照课程实训题目要求,完成包括需求分析、数据结构设计、概要设计、详细设计、编写代码、调试和测试C程序等过程。
数据项名称
数据项系统表示
数据类型
数据长度(字节)
备注
学生姓名
[i]
字符串
50
学生住宿层号
[i]
整型
4
学生住宿房号
[i]
整型
4
学生住宿床位号
[i]
整型
4
学生学号
[i]
整型
4
住宿收费标准
[i]
整型
4
缴费状态
[i]
字符串
20
学生入住时间
[i]
整型
4
根据系统要求,系统中需要保存的类别信息,其结构如下:
类别代号
()*显示浏览界面*/
( );*实现按学号查询*/
( )*实现按入住时间查询*/
c语言课程设计报告(宿舍管理系统)

西安郵電大學C语言课程设计报告书学院名称计算机学院学生姓名吴戌睿专业名称网络工程班级1201班学号04122030指导教师陈皓2013年06月03日至时间2013年06月12日实验题目:学生宿舍管理系统一、实验目的通过本课程设计,强化上机动手能力,使学生在理论和实践的基础上进一步巩固《C 语言程序设计》课程学习的内容,掌握工程软件设计的基本方法。
通过这次实习练习,可以更进一步的熟悉所学的知识,还可以加强和巩固知识。
长达两周的上机练习,为我们提供了很好的编程环境。
更好的了解编程的意义,为将来参加实践活动以及以后的毕业设计打下坚实的基础。
二、实验内容我设计的是“车辆管理系统”,主要是针对车辆信息的管理,适用对象主要是需要统一管理的车辆,例如租车公司。
包括车辆的序号,车牌,品牌,车主信息。
在编写过程中主要运用C语言的基本知识有:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的调用与使用)等。
三、需求分析该程序是由C语言编写的一个车辆管理查询软件,本程序在Microsoft Visual C++ 6.0下运行,其主要功能是实现对车辆信息的录入、添加、删除、修改、查询、统计。
其中查询可以分别以序号,车牌号为关键字查询车辆信息。
四、概要设计1、方案设计2、数据结构说明程序中数据主要是学生信息,具体属于类型如下:struct car{int num; /*序号*/char chepai[10]; /*车牌号*/ char trademark[10]; /*品牌*/ char name[20]; /*车主姓名*/ char call[20]; /*联系方式*/ struct car *next;};3、模块功能说明第一密码模块:调用mima(),进行初始登陆,管理者的注册与登录操作。
C语言学生管理系统综合实验报告

count++;
printf("\n");}
}
printf("--------------------------------------------------\n");
}
void tjbhgrs()
{
int j,count=0;
printf("有不及格科目的学生是:\n");
}
}
void sx()
{
struct student temp;
int a,b,c;
for(a=0;a<i-1;a++)
{
c=a;
for(b=a+1;b<i;b++)
if(stu[b].ave>stu[c].ave)
c=b;
temp=stu[b];
stu[b]=stu[c];
stu[c]=temp;
佛山科学技术学院
实验报告
实验名称小型学生信息管理系统
实验项目编写一学生信息管理系统,用来管理学生基本信息及成绩信息
专业班级姓名XXX学号
指导教师成绩日期
一、试验目的
本实验为学生提供了一个既动手又动脑,上机实践的机会。学生通过分析和解决该实验,将课本上的理论知识和实际有机地结合起来,锻炼学生分析、解决较复杂问题的能力,提高学生编写综合系统程序的能力。
printf("\n");
}
printf("----------------------------------------------------------------\n");
C语言课程设计—学生宿舍管理系统设计报告

课程设计报告课程名称C语言程序设计课题名称学生宿舍管理系统专业电子技术班级学号姓名指导教师2012年6月19日湖南工程学院课程设计任务书课程名称C语言程序设计课题学生宿舍管理系统专业班级学生姓名学号指导老师审批任务书下达日期2012 年6 月19 日任务完成日期2012 年7 月4 日一、设计内容与设计要求1.设计内容:学生宿舍管理系统设计涉及的知识点:①掌握并熟练运用C语言的基本数据类型与各种表达式,程序的流程控制语句;②掌握数组的基本概念。
熟练掌握一维数组、二维数组的应用、掌握字符数组与字符串的关系以及字符串的简单处理。
③掌握函数的定义,函数的返回值,函数的调用,函数的形式参数和实际参数之间的关系;掌握变量的作用域与生存期,了解函数的作用域。
④掌握结构体的概念,结构体类型的定义,结构体变量的定义和初始化,结构体成员的表示,结构体变量的赋值含义,结构体与指针、函数的关系。
⑤掌握文件、文件类型指针的基本概念,熟练掌握文件的打开与关闭以及文件的建立、读写等有关操作。
2.设计要求:1)用C语言实现系统;利用结构体数组实现学生宿舍信息的数据结构设计;系统的各个功能模块要求用函数的形式实现;应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观;各项显示数据均要求以表格的形式输出;在各功能子模块中应设计相应的二级菜单。
2) 建立一个学生宿舍信息数据库,文件名为ssxxk.txt,并从该文件中读取数据;3)学生宿舍管理系统应能提供以下功能:①系统以菜单方式工作:通过提示用户输入一个数字选项,调用相应的功能函数。
②显示功能:完成全部宿舍信息的显示,显示时按表格的形式,且应有表头;③追加功能:完成一个(或多个)学生入住宿舍的登记(追加记录),要求在追加过程中有相应的提示信息,完成追加后能重新显示;④查询功能:要求可选择按指定学号和指定姓名两种方式定位查询,查询的结果要求以表格的形式显示,若查询不到应给出相应的提示信息。
计算机实习报告-宿舍管理系统

计算机实习报告面向过程编程用C语言求解实际问题班级:学号:姓名:实习时间:年月日- 月日一、开发任务开发任务的具体要求。
宿舍管理系统:编程模拟实现宿舍系统的管理。
二、需求分析(这一部分主要是确定要做什么,以及问题的边界。
如下例所示,说明电话号簿管理程序将实现的基本功能。
具体来说,就是给出程序的基本功能和性能)1.说明自己针对这个任务将完成哪些功能的设计。
宿舍管理系统的基本功能是:(1)选择登陆身份:管理员登陆或用户登录。
(2)管理员功能有:(a)创建宿舍(b)修改宿舍信息(c)添加宿舍(d)查询空闲宿舍、床位(e)统计宿舍信息(f)显示所有宿舍信息(g)文本导入宿舍信息(h)保存宿舍信息(3)普通用户功能有:(a)查询空闲宿舍(b)查询空闲床位(c)统计信息(d)显示所有宿舍信息2.说明程序将会具有什么样的性能:程序中有如下性能:(1)用菜单方式提供对操作的选择,一目了然。
(2)为了防止宿舍信息的破坏,管理员操作必须是有管理员密码才可进入。
普通用户的操作则不用密码。
(3)选择显示后及时清屏,方便用户的后操作。
(4)可导出文本文件,也可从文本文件中导入,便于信息的永久存储。
三、程序设计(这一部分主要是说怎么做,以及语言环境对问题处理的特殊影响。
如下例所示,电话号码簿的结构体类型,电话号码信息的存储数组,以及结果输出格式。
具体来说,就是给出程序的数据结构,模块划分,主程序结构)针对需求做如下设计:(1)数据结构设计利用结构体组建宿舍相关信息,包括宿舍编号、楼栋编号、宿舍性质、已住人数、空床人数。
typedef struct _dormitory{int dormNO;//宿舍编号int apartmentNO;//楼栋编号int dormAttribute;//宿舍性质(男/女)int personNum;//已住人数int bedavailble;//空床位数}dormitory;初始化程序时,规定最多有1000个宿舍,每个宿舍最多4人。
学生宿舍管理系统c语言实习报告
西安邮电大学C语言课程设计报告题目:学生宿舍管理系统院系名称:计算机学院专业名称:软件工程班级:1205班学生姓名:邵欢学号(8位):04123157指导教师:王小银一.设计目的1. 掌握结构体的定义和使用。
2.理解链表工作原理,熟悉基本操作。
3.熟悉C语言中文件操作。
4.掌握文件的定义方法及文件指针的概念,掌握文件打开、关闭、读、写文件基本操作函数。
5掌握C语言数据类型,如何定义一个整型、字符型和实型的变量,以及它们赋值的方法。
6.握函数的调用及嵌套,顺序结构、选择分支结构、循环结构及其嵌套的应用、结构体、指针以及综合应用,会使用文件的一些函数。
7.会独自分析问题解决问题,提高解决问题的能力。
8.提高分析问题和解决问题的能力,提高程序设计水平二. 设计内容1.运用结构体及链表等编辑一个简单的学生宿舍基本信息管理系统,使之能够完成学生基本信息的输入、保存、读取、查找、插入、删除、修改、排序、统计、输出、退出。
2.利用密码对系统信息进行管理。
2.执行编译操作,并根据提示调试此程序,排除所有的错误和警告,直到编译成功为止。
3.执行运行操作,逐一对每个模块进行调试,直到全部程序运行成功为止。
4.接受老师的检查并回答老师所提出的问题,知道令老师点头为止。
5.根据自己的源程序及运行情况截取相应的图片,完成实验报告。
三.概要设计1.功能模块图2.各个模块详细的功能描述。
登陆界面:需将在文件中设置好的密码与输入的密码进行比较,正确即可进入主界面,可选择要输入的信息,否则退出1.输入模块struct Node*creat_inf()进入输入信息模块,用do-while循环对学生信息进行输入。
2.保存信息模块void save_inf(struct Node*head)对信息进行保存,保存到文件中。
3.读取信息模块struct Node*read_inf()从指定文件中读取出保存的信息。
4.查找信息模块struct Node*find(struct Node*p)在已保存的信息中按学号查找对应学号。
学生宿舍管理系统c语言报告
学生宿舍管理系统c语言报告一、引言学生宿舍管理系统是一个用于管理学生宿舍的软件系统。
它能够帮助学校方便地进行学生宿舍的分配、入住、退房、维修等管理工作。
本报告将介绍该系统的设计与实现过程,包括需求分析、系统架构、关键功能与算法等。
二、需求分析2.1 功能需求学生宿舍管理系统需要具备以下主要功能:1. 学生信息管理:包括学生基本信息、联系方式等;2. 宿舍信息管理:包括宿舍楼层、房间号、容纳人数等;3. 入住管理:学生入住、退房、换宿舍等;4. 维修管理:记录宿舍维修情况及维修进度;5. 报表生成:生成各类统计报表,如入住率、维修次数等;6. 用户权限管理:不同用户拥有不同的操作权限。
2.2 性能需求学生宿舍管理系统需要满足以下性能需求:1. 数据处理快速:能够快速响应用户操作,保持系统的高可用性;2. 数据存储安全:对于敏感信息需要进行加密保存,确保数据安全性;3. 界面友好易用:操作界面简洁明了,用户易于操作;4. 扩展性强:系统可以方便地扩展功能,满足学校不同的管理需求。
三、系统架构学生宿舍管理系统采用三层架构进行开发,包括表示层、业务逻辑层和数据访问层。
3.1 表示层表示层是用户与系统交互的界面,这里采用命令行界面来展示系统功能。
用户可以通过输入指令来执行相应的操作,系统会返回相应的结果。
3.2 业务逻辑层业务逻辑层负责处理系统的业务逻辑,将用户的操作请求转发给数据访问层,并对返回结果进行处理后返回给表示层。
同时也包括系统的核心算法的实现。
3.3 数据访问层数据访问层负责与数据库进行交互,处理数据库的读写操作。
它封装了对数据库的操作方法,并提供给业务逻辑层使用。
四、关键功能与算法4.1 学生分配算法学生分配算法是学生宿舍管理系统的核心功能之一。
该算法需考虑学生的性别、年级、特殊需求等因素,确保学生宿舍分配的公平性和合理性。
算法步骤如下:1. 根据学生的性别和年级筛选出符合条件的宿舍楼;2. 根据学生的特殊需求,进一步筛选符合条件的房间;3. 若找到符合条件的房间,则将学生分配到该房间,更新宿舍数量信息;4. 若未找到符合条件的房间,提示学生重新选择或申请特殊宿舍。
C语言学生管理系统_综合实验报告
C语言学生管理系统_综合实验报告一、引言学生管理系统是一种方便高校进行学生信息管理的工具,具备添加、删除、查询、修改等基本功能,可以提高学校教务部门的工作效率,减少人力资源的浪费。
本文将介绍一个基于C语言的学生管理系统的设计和实现。
二、系统设计1.需求分析学生管理系统主要包括学生信息、教师信息和课程信息的录入、查询、修改和删除等功能,同时要求可以按照学号、姓名等字段进行快速检索。
系统还需要能够自动生成学生的成绩单和课程表,方便学生进行查看。
2.系统架构学生管理系统采用客户端-服务器模式,客户端和服务器之间通过网络进行数据传输。
客户端通过命令行界面与用户交互,服务器负责处理客户端发送的请求并返回相应的结果。
3.系统功能模块(1)学生信息管理模块:包括学生信息的添加、查询、修改和删除等功能。
(2)教师信息管理模块:包括教师信息的添加、查询、修改和删除等功能。
(3)课程信息管理模块:包括课程信息的添加、查询、修改和删除等功能。
(4)成绩管理模块:包括成绩的录入和查询功能。
(5)课程表模块:根据学生选课情况生成学生的课程表。
三、系统实现1.开发环境系统开发环境选择C语言,编译器使用GCC,开发工具使用Dev-C++。
2.数据存储系统的数据存储采用文本文件的形式,每个学生、教师和课程信息分别存储在一个文本文件中,使用逗号分隔各个字段。
3.界面设计系统界面使用命令行界面,通过菜单来提供各个功能的选项,用户可以根据提示输入相应的指令进行操作。
4.功能实现(1)学生信息管理功能:用户输入学生信息后,系统将学生信息保存到指定的文本文件中,并返回操作结果。
(2)教师信息管理功能:用户输入教师信息后,系统将教师信息保存到指定的文本文件中,并返回操作结果。
(3)课程信息管理功能:用户输入课程信息后,系统将课程信息保存到指定的文本文件中,并返回操作结果。
(4)成绩管理功能:用户输入学生学号和对应的课程信息后,系统将成绩保存到指定的文本文件中,并返回操作结果。
软件工程实验报告宿舍管理系统
软件工程实验报告宿舍管理系统学校专业学号姓名一、系统分析 (3)1.业务流程图 (3)二、需求分析 (3)三、系统整体设计 (5)1.系统管理模块 (5)2.宿舍信息管理模块 (5)3.学生入住管理模块 (5)4.宿舍卫生检查模块 (5)5.水电收费模块 (6)6.报修管理模块 (6)7.来访人员管理模块 (6)8.报表统计模块 (6)四、功能描述: (7)1.宿舍管理系统总数据流图: (7)2.宿舍信息登记分数据流图: (7)3.入住学生信息登记分数据流图: (7)4.宿舍卫生检查分数据流图: (8)5.宿舍水电收费分数据流图: (8)6.宿舍报修分数据流图: (9)7.来访人员登记分数据流图: (9)五静态结构模型 (9)1.定义系统对象 (9)六、软件运行需求 (10)1.硬件接口 (10)2.软件接口 (10)3.故障处理 (10)4.其他问题: (10)七、数据字典(DD) (10)一、系统分析1.业务流程图3种不同权限的用户进入特定的界面进行各自操作。
以学生用户权限登录,操作流程如图1-2所示:以员工权限登录,操作流程如图1-3所示:以最高管理员权限登录,操作流程如图1-4所示:二、需求分析在本系统分析中采用用例驱动的分析方法分析需求的主要任务,识别参与者和识别用例。
并建立用例模型。
由于学生宿舍管理工作存在工作量大、事务繁琐的特点,宿舍管理人员需付出大量的工作时间来从事各种事务性工作,但工作的效率很低。
为提高工作效率,减轻校方人员的工作负担,决定针对学生宿舍管理开发管理系统软件,以供宿舍管理人员通过电脑操作进行宿舍管理,从而使学校的宿舍管理工作系统化、规范化、自动化,提供整个宿舍管理的效率,使总体管理水平上升到一个新的高度。
本系统能减少很多不必要的资源,消除了以前用冗余的纸张式管理,大节省了学校能源。
并且计算机的存储与快速查询功能大大提高了宿舍管理的效率,并且还提高了学籍信息管理的精确度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西安邮电大学C语言课程设计报告题目:学生宿舍管理系统院系名称:计算机学院专业名称:软件工程班级:1205班学生姓名:邵欢学号(8位):04123157指导教师:王小银一.设计目的1. 掌握结构体的定义和使用。
2.理解链表工作原理,熟悉基本操作。
3.熟悉C语言中文件操作。
4.掌握文件的定义方法及文件指针的概念,掌握文件打开、关闭、读、写文件基本操作函数。
5掌握C语言数据类型,如何定义一个整型、字符型和实型的变量,以及它们赋值的方法。
6.握函数的调用及嵌套,顺序结构、选择分支结构、循环结构及其嵌套的应用、结构体、指针以及综合应用,会使用文件的一些函数。
7.会独自分析问题解决问题,提高解决问题的能力。
8.提高分析问题和解决问题的能力,提高程序设计水平二. 设计内容1.运用结构体及链表等编辑一个简单的学生宿舍基本信息管理系统,使之能够完成学生基本信息的输入、保存、读取、查找、插入、删除、修改、排序、统计、输出、退出。
2.利用密码对系统信息进行管理。
2.执行编译操作,并根据提示调试此程序,排除所有的错误和警告,直到编译成功为止。
3.执行运行操作,逐一对每个模块进行调试,直到全部程序运行成功为止。
4.接受老师的检查并回答老师所提出的问题,知道令老师点头为止。
5.根据自己的源程序及运行情况截取相应的图片,完成实验报告。
三.概要设计1.功能模块图2.各个模块详细的功能描述。
登陆界面:需将在文件中设置好的密码与输入的密码进行比较,正确即可进入主界面,可选择要输入的信息,否则退出1.输入模块struct Node*creat_inf()进入输入信息模块,用do-while循环对学生信息进行输入。
2.保存信息模块void save_inf(struct Node*head)对信息进行保存,保存到文件中。
3.读取信息模块struct Node*read_inf()从指定文件中读取出保存的信息。
4.查找信息模块struct Node*find(struct Node*p)在已保存的信息中按学号查找对应学号。
5.插入信息模块int insert(struct Node*p0),将想要插入的信息添加到已有信息中,并保存。
6.删除信息模块int del(struct Node*head),按学号找出要删除的学生信息,找到删除。
7.修改信息模块void modify(struct Node*p),按学好着出要修改的学生信息,在输入要修改的内容,并保存。
8.信息排序模块struct Node*sort(struct Node*head)按宿舍号对学生信息进行排序。
9.统计信息模块int statis(struct Node*head),将保存的学生信息进行统计,并输出。
10.输出信息模块,void print(struct Node*p)将之前做过修改、排序、插入的所有信息输出。
11.退出。
四.详细设计1.功能函数的调用关系图2.各功能函数的数据流程图1.密码登陆界面。
.2息3.插入模块L4.删除模块5.修改模块6.7.统计模块8.输出模块3.重点设计及编码程序的主要设计在各个模块的功能方面,其中密码部分及主界面各模块的调用是比较着重设计的环节printf("\n\n\n\n\n\t\t\t 欢迎登陆学生宿舍信息管理系统\n");printf("\n\n\n\n\t\t\t\t请输入密码:");for(i=0;i<6;i++){system("stty -echo");scanf("%c",s+i);printf("*");system("stty echo");}s[6]='\0';//限制密码为6位printf("\n\n\n\n\n\t\t\t 输入完毕,请按任意键继续。
");getchar();if(strcmp(s,"358046")==0){printf("\n\n\n\n\n\t\t 密码输入正确,系统正在打开中,按任意键进入……");getchar();do{system("clear");Menu();scanf("%d",&select);system("clear");switch(select){case1://保存基本信息到指定文件head=creat_inf();//创建基本信息单链表system("clear");save_inf(head);printf("\n");break;case2://显示链表信息print(head);getchar();printf("\n");printf("请按任意键返回主菜单。
");getchar();break;case3://插入if(insert(head)){printf("插入成功!\n");save_inf(head);printf("请按任意键返回主菜单。
");getchar();}else{printf("有重号,插入失败!\n");print(head);printf("\n");printf("请按任意键返回主菜单。
");getchar();}break;case4://修改modify(head);save_inf(head);getchar();printf("请按任意键返回主菜单。
");getchar();break;case5://删除if(del(head))/*删除*/{printf("已正确删除!\n");}else printf("要删除结点不存在\n");print(head);save_inf(head);printf("请按任意键返回主菜单。
");getchar();break;case6://查找p=find(head);if(p){printf("该生信息为:\n");printf("学号:%d 姓名:%s 性别:%c 年龄:%d 宿舍楼号:%s 宿舍号:%s\n",p->num,p->name,p->sex,p->age,p->addr,p->room);}elseprintf("未找到该学生!\n");getchar();printf("请按任意键返回主菜单。
");getchar();break;case7://从指定的磁盘文件中读取信息并存入单链表中head=read_inf();print(head);printf("请按任意键返回主菜单。
");getchar();break;case8://打印head=read_inf();print(head);printf("请按任意键返回主菜单。
");getchar();break;case9://统计printf("已存%d个学生信息!\n",statis(head));getchar();printf("请按任意键返回主菜单。
");getchar();break;case10:sort(head);save_inf(head);getchar();printf("请按任意键返回主菜单。
");getchar();break;default:printf("\n\n\n\n\n\n\n\n\t\t\t\t 感谢您的使用。
");printf("\n\n\n\t\t\t 确定退出?(y/n):");//fflush(stdin);getchar();ch=getchar();printf("\n\n\t\t");if(ch=='y'||ch=='Y'){exit(0);}break;//system("pause");}}while(1);//end do}else{printf("\n\n\n\n\n\t\t\t 对不起,您的密码输入有误!\n\n");printf("\n\n\t\t\t\t 请按任意键退出。
");getchar();}}四.测试数据及运行结果1.正常测试数据和运行结果要求提供3组正常测试数据和运行结果将学号为3的学生宿舍号修改为135删除学号为2的学生查找学号为1的学生信息按年龄大小排序(从大到小)人数统计从指定文件中读取数据2.异常测试数据及运行结果要求提供2组异常测试数据和运行结果删除学号为2的学生信息六.调试情况,设计技巧及体会1.用Switch()语句时发现当用整型作为判断依据时,用户如果输入的为字符就会出现卡屏的现象,而用字符型时有可能出现死循环。
2.语法错误容易发现,逻辑错误不易发现而且比较隐蔽,而且很难修改。
3.程序设计应分模块设计,在编写过程中不要一大块的区编译,当你完成整个程序的一小部分时,就进行编译查错,程序首先要保证没有语法错误,这样以便以后调试,函数名及变量名尽量要做到见名知意,方便自己调试,也方便他人阅读。
4.对于程序中的注释是我们一直不够重视的,很多人编程时不写注释,或者注释很少,这样也不利于自己修改程序,更不利于他人阅读程序。
1.改进方案利用switch-case.制作主界面,供选择,利用两个链表来实现对信息的排序,使得在编写过程中的难度降低,再利用do-while循环,使得程序的可读性也变好。
2.体会在设计过程中的体会:在开始的设计中我确实感到自己知识运用十分不灵活,有些概念理解不到位,有些子函数不会编,只是照着课本套,我也感觉到把这门课学好是十分有用的,还有这门课的逻辑思维是非常严密的,学好它能够很好的训练人的逻辑思维的。
C语言软件设计既然作为一门利用C语言理论课程的另一门学科必定有它的重要性,C程序设计需要我们总结理论课所学知识,并熟练应用。
它是学生的一种强化训练和智力的开发。
我想其目的并不是要求我们能编写出高水平的程序,而是要求我们能独立进行实践,完成自己的工作,并培养我们大学生在动手方面的技能。