学生宿舍管理软件C语言源代码(完整版).doc

上传人:飞****2 文档编号:15006009 上传时间:2022-05-10 格式:DOC 页数:12 大小:69KB
返回 下载 相关 举报
学生宿舍管理软件C语言源代码(完整版).doc_第1页
第1页 / 共12页
学生宿舍管理软件C语言源代码(完整版).doc_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《学生宿舍管理软件C语言源代码(完整版).doc》由会员分享,可在线阅读,更多相关《学生宿舍管理软件C语言源代码(完整版).doc(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上源程序代码:#include#include#include#define M 100int dirty=0; /用来判断是否已保存操作/定义一个存储学生相关信息的结构体typedef structchar S_name31; /学生姓名 char S_class31; /学生班级 char S_number16; /学生学号int D_number; /学生所在寝室的宿舍号 char S_address500; /学生地址 int S_phone20; /学生电话号码 int Total; /学生总数StudentM,St;/判断学号是否与表中所存学号重复void

2、S_number_Judge(Student S,int t)int i;for(i=1;iTotal)-1;i+)while(strcmp(Si.S_number,St.S_number)=0)printf(学号输入失败,该学号已存在,请重新输入学号!n);printf(请输入学生的学号(15个字符以内):); scanf(%s,St.S_number);getchar();i=1;/添加学生信息函数void Add(Student S)printf(请输入学生姓名(30个字符以内):);scanf(%s,S+(S-Total).S_name);getchar();/获取换行符 printf

3、(“请输入学生班级(30个字符以内):”); scanf(%s,SS-Total.S_class); getchar();printf(请输入学生的学号(15个字符以内):);scanf(%s,SS-Total.S_number); getchar();S_number_Judge(S,S-Total);/判断输入的学号是否与表中所存在的学号重复printf(请输入宿舍号码:);scanf(%d,&SS-Total.D_number); getchar(); printf(请输入学生地址:); scanf(%s,SS-Total.S_address); getchar(); printf(“请

4、输入学生电话号码:”); scanf(%s,&SS-Total. S_phone);getchar();dirty=1;printf(添加成功!nn);/修改学生信息函数void Alter(Student S)int i;int flag=0; /用来判断表中是否存在所要修改的学生的信息char name20;printf(请输入你要修改学生的姓名:); scanf(%s,name);getchar();for(i=1;iTotal;i+)if(strcmp(Si.S_name,name)=0)flag=i;if(!flag)printf(你所要修改的学生信息在表中不存在!n);elsepr

5、intf(新信息如下:n);printf(请输入学生姓名(30个字符以内):);scanf(%s,Sflag.S_name);getchar(); printf(“请输入学生班级(30个字符以内):”); scanf(%s,Sflag.S_class); getchar();printf(请输入学生的学号(15个字符以内):);scanf(%s,Sflag.S_number);getchar();S_number_Judge(S,flag);printf(请输入宿舍号:);scanf(%d,&Sflag.D_number); getchar(); printf(请输入学生地址:); scanf

6、(%s,Sflag.S_address); getchar(); printf(“请输入学生电话号码:”); scanf(%s,&Sflag. S_phone);getchar();dirty=1;printf(修改成功!n);putchar(n);/删除学生信息void Delete(Student S)int i,j;int flag=0; /用来判断表中是否存在所要删除的学生的信息char name20;printf(请输入你要删除学生的姓名:);scanf(%s,name); getchar();for(i=1;iTotal;i+)if(strcmp(Si.S_name,name)=0

7、)flag=i;if(!flag)printf(你所要删除的学生在表中不存在!);else for(i=flag;iTotal;i+) j=i+1; strcpy(Si.S_name,Sj.S_name); strcpy(Si.S_number,Sj.S_number); Si.D_number=Sj.D_number; (S-Total)-;dirty=1;printf(删除成功!);printf(nn);/显示所有学生信息函数void Display_All(Student S)int i;printf(全体学生信息如下:n);printf(学生姓名 学生班级 学生学号 宿舍号 学生地址

8、学生电话号码n);for(i=1;iTotal;i+)printf(%-20s%-20s %-15s%-5d%s-10%sn,Si.S_name,Si.S_class,Si.S_number,Si.D_number,Si.S_address,Si.S_phone);putchar(nn);/排序函数按照寝室号从小到大排序(冒泡法)void Sort_D_number(Student S)int i,j,t;char name30;char number15; char address300; char Cnumber30;for(i=1;iTotal;i+)for(j=i;jTotal;j+)

9、if(Si.D_numberSj.D_number)strcpy(name,Si.S_name);strcpy(number,Si.S_number); strcpy(address,Si.S_address); strcpy(Cnumber,Si.S_class);t=Si.D_number;strcpy(Si.S_name,Sj.S_name);strcpy(Si.S_number,Sj.S_number); strcpy(Si.S_address,Sj.S_address); strcpy(Si.S_class,Sj.S_class);Si.D_number=Sj.D_number;st

10、rcpy(Sj.S_name,name);strcpy(Sj.S_number,number); strcpy(Sj.S_address,address); strcpy(Sj.S_class,Cnumber);Sj.D_number=t;/排序函数按照学号从小到大排序(冒泡法)void Sort_S_number(Student S)int i,j,t;char name30;char number15; char address300; char Cnumber30;for(i=1;iTotal;i+)for(j=i;jTotal;j+)if(strcmp(Si.S_number,Sj.S

11、_number)0)strcpy(name,Si.S_name);strcpy(number,Si.S_number); strcpy(address,Si.S_address); strcpy(Cnumber,Si.S_class);t=Si.D_number;strcpy(Si.S_name,Sj.S_name);strcpy(Si.S_number,Sj.S_number); strcpy(Si.S_address,Sj.S_address); strcpy(Si.S_class,Sj.S_class);Si.D_number=Sj.D_number;strcpy(Sj.S_name,n

12、ame);strcpy(Sj.S_number,number); strcpy(Sj.S_address,address); strcpy(Sj.S_class,Cnumber);Sj.D_number=t;/排序函数按照班级号从小到大排序(冒泡法)void Sort_S_class (Student S)int i,j,t;char name30;char number15; char address300; char Cnumber30;for(i=1;iTotal;i+)for(j=i;jTotal;j+)if(strcmp(Si.S_class,Sj.S_class)0)strcpy(

13、name,Si.S_name);strcpy(number,Si.S_number); strcpy(address,Si.S_address); strcpy(Cnumber,Si.S_class);t=Si. D_number;strcpy(Si.S_name,Sj.S_name);strcpy(Si.S_number,Sj.S_number); strcpy(Si.S_address,Sj.S_address); strcpy(Si.S_class,Sj.S_class);Si. D_number =Sj. D_number;strcpy(Sj.S_name,name);strcpy(S

14、j.S_number,number); strcpy(Sj.S_address,address); strcpy(Sj.S_class,Cnumber);Sj. D_number =t;/查询函数以班级为关键字进行查询(顺序查找)void Query_S_class(Student S)int i,j=0;char classnumber31;printf(请输入你要查找的班级号(30个字符以内):);scanf(%s,classnumber);getchar();printf(所查找学生信息如下:n);printf(学生姓名 学生班级 学生学号 宿舍号 学生地址 学生电话号码n);for(i

15、=1;iTotal;i+)if(strcmp(classnumber,Si.S_class)=0)printf(%-20s%-20s %-15s%-5d%s-10%sn,Si.S_name, Si.S_class,Si.S_number,Si.D_number,Si.S_address,Si.S_phone); j=1; if(!j)printf(n查找失败,表中不存在该学生的信息!nn);/查询函数以姓名为关键字进行查询(顺序查找)void Query_S_name(Student S)int i,j=0;char name31;printf(请输入你要查找的学生的姓名(30个字符以内):)

16、;scanf(%s,name);getchar();printf(所查找学生信息如下:n);printf(学生姓名 学生班级 学生学号 宿舍号 学生地址 学生电话号码n);for(i=1;iTotal;i+)if(strcmp(name,Si.S_name)=0)printf(%-20s%-20s %-15s%-5d%s-10%sn,Si.S_name, Si.S_class,Si.S_number,Si.D_number,Si.S_address,Si.S_phone); j=1; if(!j)printf(n查找失败,表中不存在该学生的信息!nn);/查询函数以学号为关键字进行查询(折半查

17、找)void Query_S_number(Student S)int i,j,top,base,mid;char number15;j=0;base=1;top=S-Total;printf(请输入你要查找学生的学号:);scanf(%s,number);getchar();Sort_S_number(S); /将表中原数据按照学号从小到大排序printf(所查找学生信息如下:n);printf(学生姓名 学生班级 学生学号 宿舍号 学生地址 学生电话号码n);if(strcmp(number,S1.S_number)=0&strcmp(number,SS-Total.S_number)=0

18、)while(base0)base=mid+1;elsetop=mid-1;if(!j)printf(n查找失败,表中不存在该学生的信息!nn);/查询函数以寝室号为关键字进行查询(折半查找)void Query_D_number(Student S)int i,j,m,n,base,top,mid;j=0;base=1;top=S-Total;printf(请输入你要查询的寝室号:);scanf(%d,&i);getchar();Sort_D_number(S);/将表中原数据按照寝室号从小到大排序printf(所查找寝室信息如下:n);printf(学生姓名 学生班级 学生学号 宿舍号 学

19、生地址 学生电话号码n);if(i=S1.D_number&iTotal.D_number)while(baseS-Total)break;if(n0)while(Sn.D_number=i)printf(%-20s%-15s%-5dn,Sn.S_name,Sn.S_number,Sn.D_number); n-;if(nSmid.D_number)base=mid+1;elsetop=mid-1;if(!j)printf(n查找失败,表中不存在该寝室的信息!nn);/存储函数void Save(Student S)St Std;int i;int flag1=0,flag2=0; /判断存储

20、是否成功FILE *fp; if(fp=fopen(Dorm_Manage,w)=NULL) printf(打开文件失败!nn); flag1=1; exit(0); /结束程序for(i=1;iTotal;i+) if(fwrite(&Si,sizeof(Std),1,fp)!=1) printf(数据写入错误nn); flag2=1;exit(0); if(!flag1&!flag2) printf(数据存储成功!nn);dirty=0; fclose(fp);/加载记录函数void Load(Student S)St Std;FILE *fp;if(fp=fopen(Dorm_Manag

21、e,r)=NULL)printf(打开文件失败!nn);exit(0);while(!feof(fp)fread(&S+(S-Total),sizeof(Std),1,fp);fclose(fp); printf(加载数据成功!nn); (S-Total)-; /由于读取问题,表中个数要减去/退出程序时判断是否保存函数void Judge_Save(int i,Student S)char ch;if(i)printf(表中数据已改变,是否保存后再退出(Y/N)?:);ch=getchar();getchar();while(ch!=n&ch!=N&ch!=y&ch!=Y)printf(请输入

22、N(n)或者Y(y):);ch=getchar();getchar();if(ch=y|ch=Y)Save(S);/菜单void Menu()/菜单printf( 学生管理nn);printf(*菜单*n);printf(1.添加学生信息 | 8.按照班级号从小到大排序n”);printf(2.修改学生信息 | 9.按照寝室号从小到大排序n);printf(3.删除学生信息 | 10.按照学号从小到大排序n);printf(4.以姓名查询学生信息 | 11.显示所有学生的相关信息n);printf(5.以学号查询学生信息 | 12.保存操作n);printf(6.以寝室号查询该寝室中的全部学生

23、信息 | 13.加载记录n); printf(“7.以班级号查询该班级中的全部学生信息 | 14.退出程序n);printf(*n);void main()int i;Student S;S-Total=0;doMenu();printf(请选择所要实现的功能(请输入114中的任意一个数字):);scanf(%d,&i);getchar(); /获取换行符putchar(n);switch(i)case 1:Add(S); break;case 2:Alter(S); break;case 3:Delete(S); break;case 4:Query_S_name(S); break;cas

24、e 5:Query_S_number(S); break;case 6:Query_D_number(S); break; case 7: Query_S_class (S); break; case 8: Sort_S_class (S); printf(排序完成!nn); break;case 9:Sort_D_number(S); printf(排序完成!nn); break;case 10:Sort_S_number(S);十几年的学校教育让我们大学生掌握了足够的科学文化知识,深韵的文化底子为我们创业奠定了一定的基础。特别是在大学期间,我们学到的不单单是书本知识,假期的打工经验也帮了大

25、忙。 printf(排序完成!nn); break;case 11:Display_All(S); break;1、DIY手工艺市场状况分析case 12:Save(S);(三)上海的文化对饰品市场的影响 break;case 13:Load(S);我们长期呆在校园里,没有工作收入一直都是靠父母生活,在资金方面会表现的比较棘手。不过,对我们的小店来说还好,因为我们不需要太多的投资。 break;case 14:Judge_Save(dirty,S);“碧芝”最吸引人的是那些小巧的珠子、亮片等,都是平日里不常见的。店长梁小姐介绍,店内的饰珠有威尼斯印第安的玻璃珠、秘鲁的陶珠、奥利的施华洛世奇水晶

26、、法国的仿金片、日本的梦幻珠等,五彩缤纷,流光异彩。按照饰珠的质地可分为玻璃、骨质、角质、陶制、水晶、仿金、木制等种类,其造型更是千姿百态:珠型、圆柱型、动物造型、多边形、图腾形象等,美不胜收。全部都是进口的,从几毛钱一个到几十元一个的珠子,做一个成品饰物大约需要几十元,当然,还要决定于你的心意。“碧芝”提倡自己制作:端个特制的盘子到柜台前,按自己的构思选取喜爱的饰珠和配件,再把它们串成成品。这里的饰珠和配件的价格随质地而各有同,所用的线绳价格从几元到一二十元不等,如果让店员帮忙串制,还要收取的手工费。 exit(0);而手工艺制品是一种价格适中,不仅能锻炼同学们的动手能力,同时在制作过程中也

27、能体会一下我国传统工艺的文化。无论是送给朋友还是亲人都能让人体会到一份浓厚的情谊。它的价值是不用金钱去估价而是用你一颗真诚而又温暖的心去体会的。更能让学生家长所接受。 break;default:printf(选择错误:请在选项到之间选择!nn);400-500元1326% break;调研结论:综上分析,我们认为在学院内开发“DIY手工艺品”商店这一创业项目是完全可行的。while(i!=14);调研提纲:众上所述,我们认为:我们的创意小屋计划或许虽然会有很多的挑战和困难,但我们会吸取和借鉴“漂亮女生”和“碧芝”的成功经验,在产品的质量和创意上多下工夫,使自己的产品能领导潮流,领导时尚。在它们还没有打入学校这个市场时,我们要巩固我们的学生市场,制作一些吸引学生,又有使学生能接受的价格,勇敢的面对它们的挑战,使自己立于不败之地。专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁