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

下载本文档

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

文档简介

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

2、序一(结构体数组 +文件):#include<stdio.h>#include<stdlib.h>#include<string.h>#include<windows.h>#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();v

3、oid paixu();void saveall();typedef struct _schoolchar id16;char name32;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

4、");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

5、("*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");showmen

6、u ();break; case 3:if(i=0)printf(" 没有学校可以查询!n");Sleep(2000);system("cls");showmenu();elseLOOP:system("cls");printf ("*n");printf ("*1.按编号查询printf ("*2.按名称查询*n");*n");printf ("*n");printf (" 请选择: ");scanf ("%d",

7、&num2);printf("n");if (num2=1)idsearch();printf(" 按任意键返回主菜单!n");getch();system("cls");showmenu();else if (num2=2)namesearch();printf(" 按任意键返回主菜单!n");getch();system("cls");showmenu();elseprintf ("error!n");Sleep(2000);goto LOOP;break;cas

8、e 4:addone();printf(" 按任意键返回主菜单! n");getch();system("cls");showmenu ();break; case 5:if (i=0)printf(" 没有学校可以删除!n");Sleep(2000);system("cls");showmenu ();elseSIGN:system("cls");printf ("*n");printf ("*1.按编号删除一条信息printf ("*2.按名称删除一条

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

10、name();printf(" 已成功删除此条信息!n 按任意键返回主菜单!n");getch();system("cls");showmenu();else if (num3=3)deleteall();printf (" 已删除所有学校信息!n");printf(" 按任意键返回主菜单!n");getch();system("cls");showmenu();elseprintf ("error!n");Sleep(2000);system("cls"

11、);goto SIGN;break;case 6:paixu();printf(" 按任意键返回主菜单!case 7:saveall();printf(" 按任意键返回主菜单!case 0:loop:system("cls");printf ("*n");printf ("*确定退出?*n");printf ("*n");printf ("*1.是*n");printf ("*2.否*n");printf ("*3.取消*n");n&q

12、uot;);getch();system("cls");showmenu ();break; n");getch();system("cls");showmenu();break;printf ("*n");printf (" 请选择: ");scanf ("%d",&num3);printf("n");if (num3=1)Loop:system("cls");printf ("*n");printf ("

13、*是否保存?*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);c

14、ase 2: printf(" 谢谢使用! n");exit(0);case 3: printf(" 谢谢使用! n");exit(0);default :printf("error!n");Sleep(2000);goto Loop;else if (num3=2|num3=3);elseprintf ("error!");Sleep(2000);goto loop;break;case 8:mark:system("cls");printf ("*n");printf (

15、"*1.按编号修改一条信息printf ("*2.按名称修改一条信息printf ("*n");printf (" 请选择: ");scanf ("%d",&num5);printf("n");if (num5=1)*n");*n");int w;w=idsearch();MARK:printf ("*n");printf ("*1.学校名称printf ("*2.学校专业总数printf ("*3.学校在校人数总数p

16、rintf ("*4.建校时间 /年printf ("*5.建校时间 /月printf ("*6.建校时间 /日printf ("*n");printf (" 请选择: ");scanf ("%d",&num6);switch (num6)*n");*n");*n");*n");*n");*n");case 1:printf("请输入学校名称: ");scanf("%s",);bre

17、ak;case 2 :printf("请输入学校专业总数scanf("%d",&xxw.zynum);break;: ");case 3 :printf("请输入学校在校人数总数: ");scanf("%I64d",&xxw.stnum);break;case 4 :printf("请输入建校时间/年 : ");scanf("%d",&xxw.year);break;case 5 :printf(" 请输入建校时间/ 月 : ");

18、scanf("%d",&xxw.month);break;case 6 :printf(" 请输入建校时间/日 : ");scanf("%d",&xxw.day);break;default:printf("error!n");Sleep(2000);system("cls");goto MARK;break;printf("n");printone(w);printf(" 按任意键返回主菜单!n");getch();system(&quo

19、t;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");printf (&

20、quot;*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("%I

21、64d",&xxy.stnum);break;case 4 :printf("请输入建校时间/年 : ");scanf("%d",&xxy.year);break;case 5 :printf(" 请输入建校时间/ 月 : ");scanf("%d",&xxy.month);break;case 6 :printf(" 请输入建校时间/日 : ");scanf("%d",&xxy.day);break;default:printf(&

22、quot;error!n");Sleep(2000);system("cls");goto Mark;break;printone(y);printf(" 按任意键返回主菜单!n");getch();system("cls");showmenu();elseprintf ("error!n");Sleep(2000);goto mark;default :printf("error!");Sleep(2000);system("cls");showmenu();vo

23、id 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");

24、fclose(fp);void 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

25、!=0)int j;printf("*n");printf (" 学校编号学校名称学校专业总数学校在校学生人数建校时间年月 日n");printf("*n");for(j=0;j<i;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;p

26、rintf(" 请输入学校编号:");scanf("%s",id);printf("n");for(a=0;a<i;a+)if(strcmp(id,xxa.id)=0)printone(a);return a;return -1;int namesearch()int a;char name32;printf(" 请输入学校名称:");scanf("%s",name);printf("n");for(a=0;a<i;a+)if(strcmp(name,xxa.na

27、me)=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,,&xxi.zynum,&xxi.stnum,&xxi.year,&xxi.month,&xxi.day);i+;pri

28、ntf(" 已成功输入! n");void deleteone_id()if (i=0)printf(" 没有学校信息可以删除!n");elsechar id16;int n,j;printf(" 要输入的学校信息是:n");n=idsearch();if (n=-1)printf(" 没有此条学校信息!");elsefor (j=n;j<i;j+)xxj=xxj+1;i-;void deleteone_name()if (i=0)printf(" 没有学校信息可以删除!n");elsec

29、har name32;int n,j;printf(" 要输入的学校信息是:n");n=namesearch();if (n=-1)printf(" 没有此条学校信息!");elsefor (j=n;j<i;j+)xxj=xxj+1;i-;void deleteall()if (i=0)printf(" 没有学校信息可以删除!n");elsei=0;void paixu()if (i=0)printf(" 没有学校信息可以排序!n");elseint k,j,s;School t;for(s=0;s<=

30、i-2;s+)k=s;for(j=s+1;j<i;j+)if(strcmp(xxj.id,xxk.id)<0)k=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;j<i;j+)fprintf(fp,"%s %s %d %I64d %d %d %d",xxj.id,x

31、,xxj.zynum,xxj.stnum,xxj.year,xxj.month,xxj.day);printf(" 已全部成功保存!n");fclose(fp);程序二(链表 +文件):#include<stdio.h>#include<stdlib.h>#include<string.h>#include<windows.h>#include<conio.h>struct schoolchar id16;char name32;int zynum;_int64 stnum;int year;int

32、month;int day;typedef struct _lnodestruct school data;struct _lnode *next;Lnode;Lnode *first;FILE *fp;void showmenu();/主页显示函数声明void read();void addone();/添加数据函数声明void deleteone_id();/ 删除信息函数声明void deleteone_name();void deleteall();void paixu();/ 排序信息函数声明Lnode *idsearch();/按编号查找用函数声明Lnode *namesearch

33、();/ 按名称查找用函数声明void printall ();void saveall();/* 主函数 */int main()first = ( Lnode * ) malloc (sizeof (Lnode) );first -> next=NULL;showmenu();return 0;void printall ()Lnode *p1;p1 = ( Lnode * ) malloc ( sizeof (Lnode) );if (first=NULL)printf(" 没有内容可以输出!n");return;printf("n*n");

34、printf("%-5s %-5s %-5s %-5s %-5s %-5s %-5sn"," 学校编号 "," 学校名称 "," 学校专业总数 "," 学校在校学生人数 "," 建校时间年 "," 月 "," 日 ");printf("n*n");for(p1 = first; p1->next ; p1 = p1 -> next)printf("%-5s %-5s %-5d %-5I64d %

35、-5d %-5d %-5dn",p1->data.id,p1->,p1->data.zynum,p1->data.stnu m,p1->data.year,p1->data.month,p1->data.day);printf("n*n");void addone()Lnode *p;p = ( Lnode * ) malloc ( sizeof (Lnode) );printf("*n");printf(" 请输入学校信息 (格式: 学校编号 学校名称 学校专业总数 学校在

36、校学生人数 建校时间年 月日) :n");printf("*n");scanf("%s%s%d%I64d%d%d%d",p->data.id,p->,&p->data.zynum,&p->data.stnum,&p->data.year,&p->data.month,&p->data.day);printf(" 已成功输入! n");p->next=first;first=p;void deleteone_id()cha

37、r 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");return;for (q=first;q;q=q->next)p=q->next;if (strcm

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

39、cmp(first->,name)=0)p=first;first=first->next;free(p);printf(" 已删除此条学校信息!n");return;for (q=first;q;q=q->next)p=q->next;if (strcmp(p->,name)=0)q->next=p->next;free(p);printf(" 已删除此条学校信息!n");break;elseprintf(" 没有此条学校信息!n");void delet

40、eall()Lnode *p=first;first=first ->next;free(p);while (first)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=f

41、irst;for(j=0 ; j<n-1 ; j+)for( i=0; i<n-j-1; i+)if(i>0&&i<n-j-1) p=p->next; if(strcmp(p->data.id,(p->next)->data.id)>0) printf("1");t->data=p->data;p->data=(p->next)->data;(p->next)->data=t->data;p=first; / 冒泡排序 printf(" 重新排序结

42、果: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->,p1->data.zynum,p1->data.stnum,p1->data.year,p1->data.m

43、onth,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 ("

44、*n");printf ("*学校信息管理系统*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 (&q

45、uot;*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("按

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

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

温馨提示

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

评论

0/150

提交评论