资源描述
《C语言项目设计》
课程设计题目:
学校管理信息系统
学生学号:
学生姓名:
指导老师:
一、项目设计目的及功能:
本系统由C语言编写而成,主要实现对学校信息的管理。系统主要内容为学校编号、学校名称(河海大学)、学校专业总数、学校在校学生人数、建校时间(年月日),可实现从外部读入数据、数据输入、添加、查询(按编号查询,按名称查询)、删除(按编号删除,按名称删除,删除全部)、排序以及对所输入的数据的保存等功能。
二、运行结果截图:
程序运行主界面:
增加学校信息:
删除学校信息:
按编号删除:
按名称删除:
删除全部:
修改学校信息:
按编号修改:
按名称修改:
查询学校信息:
按编号查询:
按名称查询:
排序:
三、程序代码:
程序一(结构体数组+文件):
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<windows.h>
#define N 500
int 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 _school
{
char id[16];
char name[32];
int zynum;
__int64 stnum;
int year;
int month;
int day;
}School;
School xx[N];
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");
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("按任意键返回主菜单!\n");getch();system("cls");showmenu ();break;
case 2:printall();printf("按任意键返回主菜单!\n");getch();system("cls");showmenu ();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");
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:
if (i==0)
{
printf("没有学校可以删除!\n");
Sleep(2000);
system("cls");
showmenu ();
}
else
{
SIGN:
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("已成功删除此条信息!\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 ();break;
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");
printf ("* 是否保存? *\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(2000);goto Loop;
}
}
else if (num3==2||num3==3)
;
else
{
printf ("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 ("* 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",xx[w].name);
break;
case 2 :
printf(" 请输入学校专业总数: ");
scanf("%d",&xx[w].zynum);
break;
case 3 :
printf(" 请输入学校在校人数总数: ");
scanf("%I64d",&xx[w].stnum);
break;
case 4 :
printf(" 请输入建校时间/年: ");
scanf("%d",&xx[w].year);
break;
case 5 :
printf("请输入建校时间/月: ");
scanf("%d",&xx[w].month);
break;
case 6 :
printf("请输入建校时间/日: ");
scanf("%d",&xx[w].day);
break;
default:
printf("error!!!\n");
Sleep(2000);
system("cls");
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");
printf ("****************************\n");
printf ("请选择:");
scanf ("%d",&num6);
switch (num6)
{
case 1:
printf(" 请输入学校编号: ");
scanf("%s",xx[y].id);
break;
case 2 :
printf(" 请输入学校专业总数: ");
scanf("%d",&xx[y].zynum);
break;
case 3 :
printf(" 请输入学校在校人数总数: ");
scanf("%I64d",&xx[y].stnum);
break;
case 4 :
printf(" 请输入建校时间/年: ");
scanf("%d",&xx[y].year);
break;
case 5 :
printf("请输入建校时间/月: ");
scanf("%d",&xx[y].month);
break;
case 6 :
printf("请输入建校时间/日: ");
scanf("%d",&xx[y].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;
}
default :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",xx[i].id,xx[i].name,&xx[i].zynum,&xx[i].stnum,&xx[i].year,&xx[i].month,&xx[i].day);
i++;
}
printf("已读入文件信息!\n");
fclose(fp);
}
void printone(int n)
{
if (i!=0)
{
printf("******************************************************************\n");
printf ("学校编号 学校名称 学校专业总数 学校在校学生人数 建校时间年 月 日\n");
printf("******************************************************************\n");
printf("* %-s\t%-s\t%-d\t%-I64d\t%-d\t%-d\t%-d\t *\n",xx[n].id,xx[n].name,xx[n].zynum,xx[n].stnum,xx[n].year,xx[n].month,xx[n].day);
printf("******************************************************************\n");
}
}
void printall()
{
if (i!=0)
{
int j;
printf("*****************************************************************\n");
printf ("学校编号 学校名称 学校专业总数 学校在校学生人数 建校时间年 月 日\n");
printf("*****************************************************************\n");
for(j=0;j<i;j++)
printf("* %-s\t%-s\t%-d\t%-I64d\t%-d\t%-d\t%-d\t *\n",xx[j].id,xx[j].name,xx[j].zynum,xx[j].stnum,xx[j].year,xx[j].month,xx[j].day);
printf("*****************************************************************\n");
}
}
int idsearch()
{
int a;
char id[16];
printf("请输入学校编号:");
scanf("%s",id);
printf("\n");
for(a=0;a<i;a++)
{
if(strcmp(id,xx[a].id)==0)
{
printone(a);
return a;
}
}
return -1;
}
int namesearch()
{
int a;
char name[32];
printf("请输入学校名称:");
scanf("%s"
展开阅读全文