当前位置:文档之家› C语言学生学籍信息管理系统设计说明

C语言学生学籍信息管理系统设计说明

学生学籍信息管理系统设计1、需求分析学生基本信息、学生成绩基本信息要存入文件当中,因而要提供文件的输入输出操作;查询功能要求提供查找和显示操作;删除功能要求实现删除操作;排序功能要求实现排序操作;另外还应该提供键盘式选择菜单以实现功能选择。

2、总体设计整个系统可以设计为数据录入模块、数据查询模块、数据删除模块和数据排序模块。

3、详细设计设计学生基本信息和学生成绩基本信息结构体数组。

Struct{int stuNo; //学号char name[20]; //姓名char sex[2]; //性别int domNum; //宿舍号int tel; //电话号码}StuInfo; //学生基本信息结构体Struct{int stuNo; //学号char courseNo; //课程编号char courseName; //课程名称int creditHour; //学分Int triGrade; //平时成绩Int experiGrade; //实验成绩Int examGrade; //卷面成绩Float totalGrade; //综合成绩Float finalCreHour; //实得学分}StuGraInfo; //学生成绩基本信息结构体(1)数据录入模块学生基本信息文件可以在磁盘建立,采用写文件方式录入学生成绩基本信息。

综合成绩和实得学分通过计算得到。

(2)查询模块通过菜单选择查询功能,再选择学生基本情况查询和成绩查询,若选择前者,再通过菜单选择学号、姓名或宿舍号码,按照基本查找算法查找A.TXT,然后把查找结果输出若选择后者,则先在A.TXT中查找学号对应的姓名,再在B.TXT中查找该学生的课程情况,并统计科目和实得总学分,输出结果。

(3)删除模块通过菜单选择删除学生的功能,输入要删除学生的学号,则分别在A.TXT和B.TXT中查找该生信息,删除之;或者输入学生的姓名,先在 A.TXT中得到该生的学号,删除该生信息,再在B.TXT中删除该学号对应的信息。

注意:C语言中没有直接删除信息的函数,需要自己实现,可以采取读出数据,判断数据(如果不删除,则进入缓冲区,否则删除),写入数据(把缓冲区中的数据写入文件)的步骤进行。

(4)排序模块通过菜单选择排序依据,采用排序算法(冒泡、插入、选择等)对数据进行排序并输出结果。

#include <time.h>#include<stdio.h>#include<conio.h>#include <stdlib.h>#include<string.h>void input();void display();void find();void delmodify();void delfile();void save();# define MAX 100;struct employe{char jobno[10]; //职工号char name[20]; //姓名char sex[10]; //性别int age; //年龄char edulevel[10]; //学历char salary[10]; //工资char addr[20]; //地址char tel[11]; //电话}; //职工信息结构体struct employe a[100];int number=0;main(){int n;start: printf("\t\t\t\t欢迎使用职工信息管理系统\n"); do{printf("\t\t\t1.职工信息输入\n");printf("\t\t\t2.职工信息浏览\n");printf("\t\t\t3.职工信息查询\n");printf("\t\t\t4.职工信息删除修改\n");printf("\t\t\t5.删除文件中的职工信息\n");printf("\t\t\t6.保存职工信息\n"); printf("\t\t\t7.退出\n");printf("\t\t\t选择功能选项:");fflush(stdin);scanf("%d",&n);switch(n){case 1 : system("cls"); input(); break; case 2 : system("cls"); display(); break; case 3 : system("cls"); find(); break; case 4 : system("cls"); delmodify(); break; case 5 : system("cls"); delfile(); break; case 6 : system("cls"); save(); break; case 7 : system("exit"); exit(0);default :system("cls"); goto start;}}while(1);}void input(){int i=0;char j;do{printf("\t\t\t\t录入职工信息\n输入第%d 个职工的信息:\n",i+1); printf("输入职工号:");fflush(stdin);gets(a[i].jobno);printf("输入职工姓名:");fflush(stdin);gets(a[i].name);printf("输入职工性别:");fflush(stdin);scanf("%s",a[i].sex);printf("输入职工年龄:");fflush(stdin);scanf("%d",&a[i].age);printf("输入职工学历:");fflush(stdin);gets(a[i].edulevel);printf("输入职工工资:");fflush(stdin);gets(a[i].salary);printf("输入职工地址:");fflush(stdin);gets(a[i].addr);printf("输入职工电话:");fflush(stdin);gets(a[i].tel);i++;number=i;printf("是否继续录入?(Y or N):"); fflush(stdin);scanf("%s",&j);}while(j!='n'&&j!='N');}void display(){int i=0;char ch;do{printf("\n\n");for(i=0;i<number;i++){printf("\t\t第%d 个职工的信息:\n",i+1); printf("\t职工号%s\n",a[i].jobno);printf("\t姓名%s\n",a[i].name);printf("\t性别%s\n",a[i].sex);printf("\t年龄%d\n",a[i].age);printf("\t学历%s\n",a[i].edulevel);printf("\t工资%s\n",a[i].salary);printf("\t地址%s\n",a[i].addr);printf("\t电话%s\n",a[i].tel);}printf("\t\t按任意键返回主菜单");fflush(stdin);ch=getchar();}while(!ch);system("cls");}void find (){void find1();void find2();int m;char ch;start :printf("\n\n");printf("\t\t\t选择查询职工信息的模式\n"); do{printf("\t\t\t1.通过职工号\n");printf("\t\t\t2.通过职工学历\n");printf("\t\t\t选择功能选项:");fflush(stdin);scanf("%d",&m);switch(m){case 1 :system("cls"); find1(); break; case 2 : system("cls"); find2(); break;default :system("cls"); goto start;}printf("\t\t按任意键返回主菜单"); fflush(stdin);ch=getchar();}while(!ch);system("cls");}void find1(){int i;char str[20],ch;do{printf("输入要查询的职工号:"); fflush(stdin);gets(str);for(i=0;i<number;i++)if(!strcmp(a[i].jobno,str)){printf("\t职工号%s\n",a[i].jobno); printf("\t姓名%s\n",a[i].name); printf("\t性别%s\n",a[i].sex); printf("\t年龄%d\n",a[i].age); printf("\t学历%s\n",a[i].edulevel); printf("\t工资%s\n",a[i].salary); printf("\t地址%s\n",a[i].addr); printf("\t电话%s\n",a[i].tel);}printf("\t\t按任意键返回查询菜单"); fflush(stdin);ch=getchar();}while(!ch);system("cls");}void find2(){int i;char str[20],ch;do{printf("输入要查询的职工学历:"); gets(str);for(i=0;i<number;i++)if(!strcmp(a[i].edulevel,str)){printf("\t职工号%s\n",a[i].jobno); printf("\t姓名%s\n",a[i].name); printf("\t性别%s\n",a[i].sex); printf("\t年龄%d\n",a[i].age); printf("\t学历%s\n",a[i].edulevel); printf("\t工资%s\n",a[i].salary); printf("\t地址%s\n",a[i].addr); printf("\t电话%s\n",a[i].tel);}printf("\t\t按任意键返回查询菜单");fflush(stdin);ch=getchar();}while(!ch);system("cls");}void delmodify(){void del();void modify();char ch;int p;start : printf("\t\t\t职工信息的删除?修改?\n"); do{printf("\t\t\t1.删除\n");printf("\t\t\t2.修改\n");printf("选择功能选项:");fflush(stdin);scanf("%d",&p);switch(p){case 1 :system("cls"); del(); break;case 2 : system("cls"); modify(); break; default :system("cls"); goto start;}printf("\t\t按任意键返回主菜单");fflush(stdin);ch=getchar();}while(!ch);system("cls");}void del(){char str[20];int i;printf("\t\t\t1.输入要删除职工的姓名:\n"); fflush(stdin);scanf("%s",&str);for(i=0;i<number;i++){if(!strcmp(a[i].name,str)){if(i==number) number-=1;else{a[i]=a[number-1];number-=1;}break;}}system("cls");}void modify(){int i;char str[20];printf("\t\t\t2.输入要修改职工的姓名:\n"); fflush(stdin);scanf("%s",&str);for(i=0;i<number;i++)if(!strcmp(a[i].name,str)){system("cls");printf("\t\t\t2.输入新插入职工的信息:\n"); printf("输入职工号:");fflush(stdin);gets(a[i].jobno);printf("输入职工姓名:");fflush(stdin);gets(a[i].name);printf("输入职工性别:");fflush(stdin);scanf("%s",a[i].sex);printf("输入职工年龄:");fflush(stdin);scanf("%d",&a[i].age);printf("输入职工学历:");fflush(stdin);gets(a[i].edulevel);printf("输入职工工资:"); fflush(stdin);gets(a[i].salary);printf("输入职工地址:"); fflush(stdin);scanf("%s",a[i].addr);printf("输入职工电话:"); fflush(stdin);gets(a[i].tel);printf("\n\n"); break;}system("cls");}void save (){FILE *fp;int i;char filepath[20];printf("输入要保存的文件路径:");fflush(stdin);gets(filepath);if((fp=fopen(filepath,"w"))==NULL){printf("\n保存失败!");exit(0);}for(i=0;i<number;i++)fprintf(fp,"%s%s%s%d%s%d%s%s",a[i].jobno,a[i].name,a[i].sex,a[i].age,a[i].edulevel,a[i].sal ary,a[i].addr,a[i].tel);fclose(fp);printf("职工信息已保存在%s中!\n",filepath);fclose(fp);printf("职工信息已保存在%s中!\n",filepath);system("pause");system("cls");}void delfile(){FILE *fp;char filepath[20];printf("输入要删除的文件路径:");fflush(stdin);gets(filepath);fp=fopen(filepath,"w");fclose(fp);printf("保存在文件%s中的所有信息已经删除!\n",filepath); system("pause");system("cls");}. . .. . . . 专业专注.。

相关主题