C语言项目设计-学校管理信息系统_第1页
C语言项目设计-学校管理信息系统_第2页
C语言项目设计-学校管理信息系统_第3页
C语言项目设计-学校管理信息系统_第4页
C语言项目设计-学校管理信息系统_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、C语言项目设计课程设计题目:学校管理信息系统 学生学号:学生姓名:指导老师:一、项目设计目的及功能:本系统由C语言编写而成,主要实现对学校信息的管理。系统主要内容为学校编号、学校名称(河海大学)、学校专业总数、学校在校学生人数、建校时间(年月日),可实现从外部读入数据、数据输入、添加、查询(按编号查询,按名称查询)、删除(按编号删除,按名称删除,删除全部)、排序以及对所输入的数据的保存等功能。二、运行结果截图:程序运行主界面:增加学校信息:删除学校信息:按编号删除:按名称删除:删除全部:修改学校信息:按编号修改:按名称修改:查询学校信息:按编号查询: 按名称查询:排序:三、程序代码:程序一(结

2、构体数组+文件):#include#include#include#include#define N 500int i;void showmenu();void read();void printone(int n);void printall();int idsearch();int namesearch();void addone();void deleteone_id();void deleteone_name();void deleteall();void paixu();void saveall();typedef struct _schoolchar id16;char name3

3、2;int zynum;_int64 stnum;int year;int month;int day;School;School xxN;int main()i=0;showmenu();return 0;void showmenu()int num1,num2,num3,num4,num5,num6,num7;printf (*n);printf (* 学校信息管理系统 *n);printf (*n);printf (* 1.读入已有信息 *n);printf (* 2.列出所有学校 *n);printf (* 3.查询指定学校 *n);printf (* 4.添加记录 *n);print

4、f (* 5.删除记录 *n);printf (* 6.重新排序 *n);printf (* 7.保存信息 *n);printf (* 8.修改信息 *n);printf (* 0.退出系统 *n);printf (*n);printf (请选择:);scanf(%d,&num1);printf(n);switch (num1)case 1:read();printf(按任意键返回主菜单!n);getch();system(cls);showmenu ();break;case 2:printall();printf(按任意键返回主菜单!n);getch();system(cls);showm

5、enu ();break;case 3: if(i=0) printf(没有学校可以查询!n); Sleep(2000); system(cls); showmenu(); else LOOP: system(cls); printf (*n); printf (* 1.按编号查询 *n); printf (* 2.按名称查询 *n); printf (*n); printf (请选择:); scanf (%d,&num2); printf(n); if (num2=1) idsearch(); printf(按任意键返回主菜单!n); getch();system(cls); showmen

6、u(); else if (num2=2) namesearch(); printf(按任意键返回主菜单!n); getch();system(cls); showmenu(); else printf (error!n); Sleep(2000); goto LOOP; break;case 4:addone();printf(按任意键返回主菜单!n);getch();system(cls);showmenu ();break;case 5: if (i=0) printf(没有学校可以删除!n); Sleep(2000); system(cls); showmenu (); else SI

7、GN: system(cls); printf (*n); printf (* 1.按编号删除一条信息 *n); printf (* 2.按名称删除一条信息 *n); printf (* 3.清空列表 *n); printf (*n); printf (请选择:); scanf (%d,&num3); printf(n); if (num3=1) deleteone_id(); printf(已成功删除此条信息!n按任意键返回主菜单!n); getch(); system(cls); showmenu(); else if (num3=2) deleteone_name(); printf(已

8、成功删除此条信息!n按任意键返回主菜单!n); getch(); system(cls); showmenu(); else if (num3=3) deleteall();printf (已删除所有学校信息!n); printf(按任意键返回主菜单!n); getch(); system(cls); showmenu(); else printf (error!n); Sleep(2000);system(cls); goto SIGN; break;case 6:paixu();printf(按任意键返回主菜单!n);getch();system(cls);showmenu ();brea

9、k; case 7:saveall();printf(按任意键返回主菜单!n);getch();system(cls);showmenu();break;case 0: loop: system(cls);printf (*n);printf (* 确定退出? *n);printf (*n);printf (* 1.是 *n);printf (* 2.否 *n);printf (* 3.取消 *n);printf (*n);printf (请选择:);scanf (%d,&num3);printf(n);if (num3=1) Loop: system(cls);printf (*n); pr

10、intf (* 是否保存? *n); printf (*n); printf (* 1.是 *n); printf (* 2.否 *n); printf (* 3.取消 *n); printf (*n); printf (请选择:); scanf(%d,&num4); printf(n); switch (num4) case 1: saveall();printf(谢谢使用!n);exit(0); case 2: printf(谢谢使用!n);exit(0); case 3: printf(谢谢使用!n);exit(0); default :printf(error!n);Sleep(200

11、0);goto Loop; else if (num3=2|num3=3);elseprintf (error!);Sleep(2000);goto loop;break; case 8: mark: system(cls); printf (*n); printf (* 1.按编号修改一条信息 *n); printf (* 2.按名称修改一条信息 *n); printf (*n); printf (请选择:); scanf (%d,&num5); printf(n); if (num5=1) int w; w=idsearch(); MARK: printf (*n); printf (*

12、1.学校名称 *n); printf (* 2.学校专业总数 *n); printf (* 3.学校在校人数总数 *n); printf (* 4.建校时间/年 *n); printf (* 5.建校时间/月 *n); printf (* 6.建校时间/日 *n); printf (*n); printf (请选择:); scanf (%d,&num6); switch (num6) case 1: printf( 请输入学校名称: ); scanf(%s,); break; case 2 : printf( 请输入学校专业总数: ); scanf(%d,&xxw.zynum)

13、; break; case 3 : printf( 请输入学校在校人数总数: ); scanf(%I64d,&xxw.stnum); break; case 4 : printf( 请输入建校时间/年: ); scanf(%d,&xxw.year); break; case 5 : printf(请输入建校时间/月: ); scanf(%d,&xxw.month); break; case 6 : printf(请输入建校时间/日: ); scanf(%d,&xxw.day); break; default: printf(error!n); Sleep(2000);system(cls);

14、goto MARK; break; printf(n); printone(w); printf(按任意键返回主菜单!n); getch(); system(cls); showmenu(); else if (num5=2) int y; y=namesearch(); Mark: printf (*n); printf (* 1.学校编号 *n); printf (* 2.学校专业总数 *n); printf (* 3.学校在校人数总数 *n); printf (* 4.建校时间/年 *n); printf (* 5.建校时间/月 *n); printf (* 6.建校时间/日 *n);

15、printf (*n); printf (请选择:); scanf (%d,&num6); switch (num6) case 1: printf( 请输入学校编号: ); scanf(%s,xxy.id); break; case 2 : printf( 请输入学校专业总数: ); scanf(%d,&xxy.zynum); break; case 3 : printf( 请输入学校在校人数总数: ); scanf(%I64d,&xxy.stnum); break; case 4 : printf( 请输入建校时间/年: ); scanf(%d,&xxy.year); break; cas

16、e 5 : printf(请输入建校时间/月: ); scanf(%d,&xxy.month); break; case 6 : printf(请输入建校时间/日: ); scanf(%d,&xxy.day); break; default: printf(error!n); Sleep(2000);system(cls); goto Mark; break; printone(y); printf(按任意键返回主菜单!n); getch(); system(cls); showmenu(); else printf (error!n); Sleep(2000); goto mark; def

17、ault :printf(error!);Sleep(2000);system(cls);showmenu();void read () FILE *fp; fp = fopen(keshe.txt,r+); if (fp = NULL) printf(未保存任何学校信息!n); return; while(!feof(fp) fscanf(fp,%s%s%d%I64d%d%d%d,xxi.id,,&xxi.zynum,&xxi.stnum,&xxi.year,&xxi.month,&xxi.day); i+; printf(已读入文件信息!n); fclose(fp);voi

18、d printone(int n)if (i!=0) printf(*n); printf (学校编号 学校名称 学校专业总数 学校在校学生人数 建校时间年 月 日n); printf(*n); printf(* %-st%-st%-dt%-I64dt%-dt%-dt%-dt *n,xxn.id,,xxn.zynum,xxn.stnum,xxn.year,xxn.month,xxn.day); printf(*n); void printall() if (i!=0) int j;printf(*n); printf (学校编号 学校名称 学校专业总数 学校在校学生人数 建校时

19、间年 月 日n); printf(*n); for(j=0;ji;j+) printf(* %-st%-st%-dt%-I64dt%-dt%-dt%-dt *n,xxj.id,,xxj.zynum,xxj.stnum,xxj.year,xxj.month,xxj.day); printf(*n); int idsearch()int a; char id16; printf(请输入学校编号:); scanf(%s,id); printf(n); for(a=0;ai;a+) if(strcmp(id,xxa.id)=0) printone(a); return a; retur

20、n -1;int namesearch()int a; char name32; printf(请输入学校名称:); scanf(%s,name); printf(n); for(a=0;ai;a+) if(strcmp(name,)=0) printone(a); return a; return -1;void addone() printf(*n); printf(请输入学校信息(格式:学校编号 学校名称 学校专业总数 学校在校学生人数 建校时间年 月 日):n); printf(*n);scanf(%s%s%d%I64d%d%d%d,xxi.id,,&x

21、xi.zynum,&xxi.stnum,&xxi.year,&xxi.month,&xxi.day);i+;printf(已成功输入!n);void deleteone_id()if (i=0) printf(没有学校信息可以删除!n);else char id16; int n,j;printf(要输入的学校信息是:n); n=idsearch();if (n=-1)printf(没有此条学校信息!);elsefor (j=n;ji;j+)xxj=xxj+1;i-; void deleteone_name()if (i=0) printf(没有学校信息可以删除!n);else char na

22、me32; int n,j;printf(要输入的学校信息是:n); n=namesearch(); if (n=-1)printf(没有此条学校信息!);elsefor (j=n;ji;j+)xxj=xxj+1;i-; void deleteall() if (i=0) printf(没有学校信息可以删除!n); elsei=0;void paixu() if (i=0) printf(没有学校信息可以排序!n); else int k,j,s; School t;for(s=0;s=i-2;s+)k=s;for(j=s+1;ji;j+)if(strcmp(xxj.id,xxk.id)0)k

23、=j; if(k!=s) t=xxs;xxs=xxk;xxk=t; printall();void saveall()FILE *fp; int j; if (fp=fopen(keshe.txt,w)=NULL) printf(不能打开文件!n); return; for (j=0;ji;j+) fprintf(fp,%s %s %d %I64d %d %d %d,xxj.id,,xxj.zynum,xxj.stnum,xxj.year,xxj.month,xxj.day); printf(已全部成功保存!n); fclose(fp);程序二(链表+文件):#include#

24、include#include#include#includestruct schoolchar id16;char name32;int zynum;_int64 stnum;int year;int month;int day;typedef struct _lnode struct school data; struct _lnode *next;Lnode;Lnode *first;FILE *fp;void showmenu(); /主页显示函数声明void read();void addone(); /添加数据函数声明void deleteone_id(); /删除信息函数声明vo

25、id deleteone_name();void deleteall();void paixu(); /排序信息函数声明Lnode *idsearch(); /按编号查找用函数声明Lnode *namesearch(); /按名称查找用函数声明void printall ();void saveall();/*主函数*/int main() first = ( Lnode * ) malloc (sizeof (Lnode) ); first - next=NULL; showmenu();return 0; void printall () Lnode *p1; p1 = ( Lnode *

26、 ) malloc ( sizeof (Lnode) ); if (first=NULL) printf(没有内容可以输出!n); return; printf(n*n); printf(%-5s %-5s %-5s %-5s %-5s %-5s %-5sn,学校编号,学校名称, 学校专业总数,学校在校学生人数,建校时间年,月,日); printf(n*n); for(p1 = first; p1-next ; p1 = p1 - next) printf(%-5s %-5s %-5d %-5I64d %-5d %-5d %-5dn,p1-data.id,,p1-dat

27、a.zynum,p1-data.stnum,p1-data.year,p1-data.month,p1-data.day); printf(n*n);void addone() Lnode *p; p = ( Lnode * ) malloc ( sizeof (Lnode) ); printf(*n); printf(请输入学校信息(格式:学校编号 学校名称 学校专业总数 学校在校学生人数 建校时间年 月 日):n); printf(*n);scanf(%s%s%d%I64d%d%d%d,p-data.id,,&p-data.zynum,&p-data.stnum,&p

28、-data.year,&p-data.month,&p-data.day);printf(已成功输入!n); p-next=first; first=p;void deleteone_id() char id16; Lnode *p,*q; p=q=first; printf(要删除的学校的编号是:); scanf(%s,id); if(first=NULL) printf(未有学校信息!n); return; if (strcmp(first-data.id,id)=0) p=first; first=first-next; free(p); printf(已删除此条学校信息!n); ret

29、urn; for (q=first;q;q=q-next) p=q-next; if (strcmp(p-data.id,id)=0) q-next=p-next; free(p); printf(已删除此条学校信息!n); break; else printf(没有此条学校信息!n); void deleteone_name() char name32; Lnode *p,*q; p=q=first; printf(要删除的学校的姓名是:); scanf(%s,name); if(first=NULL) printf(未有学校信息!n); return; if (strcmp(first-d

30、,name)=0) p=first; first=first-next; free(p); printf(已删除此条学校信息!n); return; for (q=first;q;q=q-next) p=q-next; if (strcmp(,name)=0) q-next=p-next; free(p); printf(已删除此条学校信息!n); break; else printf(没有此条学校信息!n); void deleteall() Lnode *p=first; first=first -next; free(p); while (first

31、) p=first; first=first-next; free(p); printf(删除成功!n);void paixu() Lnode *p=first, *t=NULL; int n;/计数器 for(n=0;p!=NULL;n+) p=p-next; n=n-1;/统计数据个数 printf(%d,n); int i,j; t = ( Lnode * ) malloc ( sizeof (Lnode) ); p=first; for(j=0 ; jn-1 ; j+) for( i=0; i0&inext; if(strcmp(p-data.id,(p-next)-data.id)0

32、) printf(1);t-data=p-data; p-data=(p-next)-data; (p-next)-data=t-data; p=first; /冒泡排序 printf(重新排序结果:n); printall();void saveall() Lnode *p1; fp=fopen(keshe.txt,w); p1=first;if(first!=NULL)while(p1-next!=NULL)fprintf(fp,%-5s %-5s %-5d %-5I64d %-5d %-5d %-5dn,p1-data.id,,p1-data.zynum,p1-d

33、ata.stnum,p1-data.year,p1-data.month,p1-data.day);p1=p1-next; Lnode *p=first; first=first -next; free(p); while (first) p=first; first=first-next; free(p); fclose(fp);printf(*n);printf(数据已保存!n);printf(*n);/* *主页显示函数*/void showmenu()int num1,num2,num3,num4,num5,num6,num7;printf (*n);printf (* 学校信息管理系

34、统 *n);printf (*n);printf (* 1.读入已有信息 *n);printf (* 2.列出所有学校 *n);printf (* 3.查询指定学校 *n);printf (* 4.添加记录 *n);printf (* 5.删除记录 *n);printf (* 6.重新排序 *n);printf (* 7.保存信息 *n);printf (* 8.修改信息 *n);printf (* 0.退出系统 *n);printf (*n);printf (请选择:);scanf(%d,&num1);printf(n);switch (num1)case 1:read();printf(按

35、任意键返回主菜单!n);getch();system(cls);showmenu ();break; case 2:printall();printf(按任意键返回主菜单!n);getch();system(cls);showmenu ();break;case 3: LOOP: system(cls); printf (*n); printf (* 1.按编号查询 *n); printf (* 2.按名称查询 *n); printf (*n); printf (请选择:); scanf (%d,&num2); printf(n); if (num2=1) idsearch(); printf

36、(按任意键返回主菜单!n); getch(); system(cls); showmenu(); else if (num2=2) namesearch(); printf(按任意键返回主菜单!n); getch(); system(cls); showmenu(); else printf (error!n); Sleep(2000); goto LOOP; break;case 4:addone();printf(按任意键返回主菜单!n);getch();system(cls);showmenu ();break;case 5: SIGN: system(cls); printf (*n)

37、; printf (* 1.按编号删除一条信息 *n); printf (* 2.按名称删除一条信息 *n); printf (* 3.清空列表 *n); printf (*n); printf (请选择:); scanf (%d,&num3); printf(n); if (num3=1) deleteone_id(); printf(按任意键返回主菜单!n); getch(); system(cls); showmenu(); else if (num3=2) deleteone_name(); printf(按任意键返回主菜单!n); getch(); system(cls); show

38、menu(); else if (num3=3) deleteall(); printf (已删除所有学校信息!n); printf(按任意键返回主菜单!n); getch(); system(cls); showmenu(); else printf (error!n); Sleep(2000); system(cls); goto SIGN; break;case 6:paixu();printf(按任意键返回主菜单!n);getch();system(cls);showmenu ();break; case 7:saveall();printf(按任意键返回主菜单!n);getch();

39、system(cls);showmenu();break;case 0: loop: system(cls);printf (*n);printf (* 确定退出? *n);printf (*n);printf (* 1.是 *n);printf (* 2.否 *n);printf (* 3.取消 *n);printf (*n);printf (请选择:);scanf (%d,&num3);printf(n);if (num3=1) Loop: system(cls); printf (*n); printf (* 是否保存? *n); printf (*n); printf (* 1.是 *

40、n); printf (* 2.否 *n); printf (* 3.取消 *n); printf (*n); printf (请选择:); scanf(%d,&num4); printf(/n); switch (num4) case 1: saveall();printf(已保存!n谢谢使用!);exit(0); case 2: printf(谢谢使用!);exit(0); case 3: printf(谢谢使用!);exit(0); default :printf(error!);Sleep(2000);goto Loop; else if (num3=2|num3=3)system(c

41、ls);showmenu();elseprintf (error!);Sleep(2000);goto loop;break;case 8: / mark: system(cls); printf (*n); printf (* 1.按编号修改一条信息 *n); printf (* 2.按名称修改一条信息 *n); printf (*n); printf (请选择:); scanf (%d,&num5); printf(n); if (num5=1) Lnode *w; w=idsearch(); if (w=NULL) printf(没有这条学校信息!); else MARK: printf

42、 (*n); printf (* 1.学校名称 *n); printf (* 2.学校专业总数 *n); printf (* 3.学校在校人数总数 *n); printf (* 4.建校时间/年 *n); printf (* 5.建校时间/月 *n); printf (* 6.建校时间/日 *n); printf (*n); printf (请选择:); scanf (%d,&num6); switch (num6) case 1: printf( 请输入学校名称: ); scanf(%s,); break; case 2: printf( 请输入学校专业总数: ); s

43、canf(%d,&w-data.zynum); break; case 3: printf( 请输入学校在校人数总数: ); scanf(%I64d,&w-data.stnum); break; case 4: printf( 请输入建校时间/年: ); scanf(%d,&w-data.year); break; case 5: printf(请输入建校时间/月: ); scanf(%d,&w-data.month); break; case 6: printf(请输入建校时间/日: ); scanf(%d,&w-data.day); break; default: printf(error

44、!n); Sleep(2000); system(cls); goto MARK; break; printf(n); printf(按任意键返回主菜单!n); getch(); system(cls); showmenu(); if (num5=2) Lnode *w; w=namesearch(); if (w=NULL) printf(没有这条学校信息!); else MARK2: printf (*n); printf (* 1.学校名称 *n); printf (* 2.学校专业总数 *n); printf (* 3.学校在校人数总数 *n); printf (* 4.建校时间/年

45、*n); printf (* 5.建校时间/月 *n); printf (* 6.建校时间/日 *n); printf (*n); printf (请选择:); scanf (%d,&num6); switch (num6) case 1: printf( 请输入学校名称: ); scanf(%s,); break; case 2: printf( 请输入学校专业总数: ); scanf(%d,&w-data.zynum); break; case 3: printf( 请输入学校在校人数总数: ); scanf(%I64d,&w-data.stnum); break; case 4: printf( 请输入建校时间/年: ); scanf(%d,&w-data.year); break; case 5: printf(请输入建校时间/月: ); scanf(%d,&w-data.month); break; case 6: printf(请输入建校时间/日: ); scanf(%d,&w-data.day); break; default: printf(error!n); Sleep(2000); system(cls); goto MARK2; break;

温馨提示

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

评论

0/150

提交评论