学生信息管理系统
今天上机实训去了,做了一个学生管理系统,贴在我的博客里,以后方便使用啦
1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 #include<windows.h> 5 int N; 6 struct student{ 7 char num[10]; 8 char name[6]; 9 char sex[3]; 10 char pho[11]; 11 12 } STU[30]; 13 14 /********* 添加学生信息 ********/ 15 void add(){ 16 extern menu(); 17 extern esc(); 18 int i,n,k; 19 system("cls"); 20 printf("你要添加几个学生信息?\n"); 21 scanf("%d",&k); 22 printf("请输入: \n学号 姓名 性别 电话号码\n"); 23 for(i=N;i<N+k;i++){ 24 scanf("%s%s%s%s",&STU[i].num,&STU[i].name,&STU[i].sex,&STU[i].pho); 25 } 26 N=N+k; 27 printf("\n\n"); 28 printf("1.返回主菜单"); 29 printf("2.退出系统"); 30 scanf("%d",&n); 31 switch(n){ 32 case 1: menu(); break; 33 case 2: esc(); break;} 34 } 35 36 /********* 查找*********/ 37 int read(){ 38 int i; 39 char Num[10]; 40 printf("请输入学号:"); 41 scanf("%s",Num); 42 for(i=0;i<N;i++) 43 if(strcmp(Num,STU[i].num)==0) return i; 44 else 45 {read();} 46 } 47 48 /********* 更改学生信息 ********/ 49 void change(){ 50 int i,n; 51 system("cls"); 52 printf("请输入要修改的学生的学号\n"); 53 i=read(); 54 printf("请输入: \n学号 姓名 性别 电话号码\n"); 55 printf("%5s%5s%3s%10s\n",STU[i].num,STU[i].name,STU[i].sex,STU[i].pho); 56 scanf("%s%s%s%s",&STU[i].num,&STU[i].name,&STU[i].sex,&STU[i].pho); 57 printf("\n\n"); 58 printf("1.返回主菜单"); 59 printf("2.退出系统"); 60 scanf("%d",&n); 61 switch(n){ 62 case 1: menu(); break; 63 case 2: esc(); break; 64 }} 65 66 /********* 查找学生 ********/ 67 void look(){ 68 int i,n; 69 system("cls"); 70 printf("请输入要查找的学生的学号或者姓名\n"); 71 i=read(); 72 printf("请输入: \n学号 姓名 性别 电话号码\n"); 73 printf("%5s%5s%3s%10s",STU[i].num,STU[i].name,STU[i].sex,STU[i].pho); 74 printf("\n\n"); 75 printf("1.返回主菜单"); 76 printf("2.退出系统"); 77 scanf("%d",&n); 78 switch(n){ 79 case 1: menu(); break; 80 case 2: esc(); break;}} 81 82 /********* 删除学生信息 ********/ 83 void del(){ 84 int i,n,m; 85 char S[5]=" "; 86 system("cls"); 87 printf("请输入要删除的学生的学号或者姓名:\n"); 88 i=read(); 89 printf("请输入: \n学号 姓名 性别 电话号码\n"); 90 printf("%5s%5s%3s%10s",STU[i].num,STU[i].name,STU[i].sex,STU[i].pho); 91 printf("确定要删除该生信息?"); 92 printf("1.是"); 93 printf("2.否"); 94 scanf("%d",&m); 95 if(m==1){ 96 strcpy(STU[i].name,S); strcpy(STU[i].num,S); strcpy(STU[i].pho,S); strcpy(STU[i].sex,S);} 97 printf("\n\n"); 98 printf("1.返回主菜单"); 99 printf("2.退出系统"); 100 scanf("%d",&n); 101 switch(n){ 102 case 1: menu(); break; 103 case 2: esc(); break;}} 104 105 /********* 显示全部学生信息 ********/ 106 void alls(){ 107 int n,i; 108 system("cls"); 109 printf("请输入: \n学号 姓名 性别 电话号码\n"); 110 for(i=0;i<N;i++) 111 printf("%5s%5s%3s%10s\n",STU[i].num,STU[i].name,STU[i].sex,STU[i].pho); 112 printf("\n\n"); 113 printf("1.返回主菜单"); 114 printf("2.退出系统"); 115 scanf("%d",&n); 116 switch(n){ 117 case 1: menu(); break; 118 case 2: esc(); break;}} 119 120 /*********退出系统********/ 121 int esc(){ 122 int n; 123 system("cls"); 124 printf("\n\n"); 125 printf("1.返回主菜单"); 126 printf("2.退出系统"); 127 scanf("%d",&n); 128 switch(n){ 129 case 1: menu(); break; 130 case 2:exit(0); 131 } 132 } 133 134 menu(){ 135 int n; 136 system("cls"); 137 printf("\n\n"); 138 printf("*********** B15060528 张宝宝***************"); 139 printf("\n\n"); 140 printf(" 1 # 录入学生信息 *\n"); 141 printf(" 2 # 修改学生信息 *\n"); 142 printf(" 3 # 查询学生信息 *\n"); 143 printf(" 4 # 删除学生信息 *\n"); 144 printf(" 5 # 显示学生信息 *\n"); 145 printf(" 6 # 退出学生信息系统 *\n"); 146 printf("\n\n"); 147 printf("**********************************************\n"); 148 printf("请选择:"); 149 scanf("%d",&n); 150 switch(n){ 151 case 1: add(); 152 case 2: change(); 153 case 3: look(); 154 case 4: del(); 155 case 5: alls(); 156 case 6: esc();} 157 } 158 159 160 161 int main(){ 162 static N; 163 menu(); 164 return 0; 165 }
然后呢,刚才有人问我“秋后算账”啦,才突然想起去年帮人家写了一个课程设计,也是学生信息管理系统的设计,我就把代码找了出来,也粘贴上来好了
#include<stdio.h> #include <windows.h> #include<string.h> #include<process.h> #include<conio.h> #define N 30 typedef struct address { char name[20]; char B[20]; char num[10]; char phone[13]; char cla[8]; char E[10]; char Q[15]; }ADD; ADD add[N]; int n; void inputs(void); void save(void); void look(void); void search(void); void modify(void); void del(void); void menu(void); void main() { short int flag=0; system("color 1F"); menu(); do { flag=1; switch(getch()) { case '1' : inputs();break; case '2' : look();break; case '3' : search();break; case '4' : modify();break; case '5' : del();break; case '0' :exit(0); default : printf("输入有误\n"); } printf("按任意键继续\n"); getch(); menu(); }while (flag==1); } void menu(void) { system("cls"); printf("\n"); printf("*********个人通讯录管理系统**************\n"); printf(" 菜单 \n"); printf("[1] 新增联系人\n"); printf("[2] 阅览我的联系人\n"); printf("[3] 查找联系人\n"); printf("[4] 修改我的联系人\n"); printf("[5] 删除我的联系人\n"); printf("请输入您的选择\n"); } /***************【1】输入联系人的信息******************************/ void inputs(void) { int i; system("color B0"); system("cls"); printf("请问您需要增加几个联系人:\n"); scanf("%d",&n); for(i=0;i<n;i++) { printf("姓名 | 单位 | 固定电话 | 移动手机 | 分类 | Email | QQ\n"); scanf("%s%s%s%s%s%s%s",&add[i].name,&add[i].B,&add[i].num,&add[i].phone,&add[i].cla,&add[i].E,&add[i].Q); } printf("成功输入\n"); save(); } /******************【22】阅览全部************************/ void look(void) { int i; system("color 20"); system("cls"); for(i=0;i<n;i++) { printf("%5s%5s%10s%15s%15s%15s%13s\n",add[i].name,add[i].B,add[i].num,add[i].phone,add[i].cla,add[i].E,add[i].Q); printf("\n"); } printf("您共有%d个联系人\n",n); printf("\n"); } /*****************【333】查找***************************/ void search(void) { char a[10]; int i; system("cls"); system("color F0"); printf("请输入要查找的联系人的姓名\n"); scanf("%s",a); for(i=0;i<n;i++) { if(strcmp(a,add[i].name)==0) { printf("姓名 | 单位 | 固定电话 | 移动手机 | 分类 | Email | QQ\n"); printf("%5s%5s%10s%15s%15s%15s%13s\n",add[i].name,add[i].B,add[i].num,add[i].phone,add[i].cla,add[i].E,add[i].Q); printf("\n"); break; } else printf("您的通讯录里不存在该联系人\n"); } } /***************【4444】修改*****************/ void modify(void) { char a[10]; int i; system("cls"); printf("请输入要修改的联系人的姓名\n"); scanf("%s",a); for(i=0;i<n;i++) { if(strcmp(a,add[i].name)==0) { printf("姓名 | 单位 | 固定电话 | 移动手机 | 分类 | Email | QQ\n"); printf("%5s%5s%10s%15d%15s%15s%13s\n",add[i].name,add[i].B,add[i].num,add[i].phone,add[i].cla,add[i].E,add[i].Q); printf("\n"); printf("请重新输入该联系人的信息:\n"); scanf("%s%s%s%s%s%s%s",add[i].name,add[i].B,add[i].num,add[i].phone,add[i].cla,add[i].E,add[i].Q); printf("修改成功\n"); break; } else printf("您没有这个联系人\n"); } save(); } /*******************【55555】删除*************************/ void del(void) { int i; char m,a[10]; system("color FC"); system("cls"); printf("请输入要删除的联系人的姓名\n"); scanf("%s",a); for(i=0;i<n;i++) { if(strcmp(a,add[i].name)==0) { printf("姓名 | 单位 | 固定电话 | 移动手机 | 分类 | Email | QQ\n"); printf("%5s%5s%10s%15s%15s%15s%13s\n",add[i].name,add[i].B,add[i].num,add[i].phone,add[i].cla,add[i].E,add[i].Q); printf("确定要删除该联系人?(y/n)\n"); scanf("%s",&m); if(m=='y') { for(i=0;i<n-1;i++) add[i]=add[i+1]; n=n-1; printf("删除成功\n"); } else printf("删除失败\n"); break; } else printf("您无此联系人\n"); } } /******************【6】保存************************/ void save(void) { FILE *fp; int i,flag=1; char m; system("cls"); puts("确定保存联系人?(y/n)"); scanf("%s",&m); if(m=='y') { if((fp=fopen("address.dat","wb"))==NULL) { printf("文件打开失败\n"); return; } for(i=0;i<n;i++) if(fwrite(&add[i],sizeof(struct address),1,fp)!=1) { printf("保存失败\n"); flag=0; } if(flag==1) printf("保存成功!\n"); fclose(fp); } else return; }