C语言学生学籍信息管理系统设计(9页).doc
-C语言学生学籍信息管理系统设计-第 9 页学生学籍信息管理系统设计1、需求分析学生基本信息、学生成绩基本信息要存入文件当中,因而要提供文件的输入输出操作;查询功能要求提供查找和显示操作;删除功能要求实现删除操作;排序功能要求实现排序操作;另外还应该提供键盘式选择菜单以实现功能选择。2、总体设计 整个系统可以设计为数据录入模块、数据查询模块、数据删除模块和数据排序模块。3、详细设计 设计学生基本信息和学生成绩基本信息结构体数组。Struct int stuNo; /学号 char name20; /姓名 char sex2; /性别 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 jobno10; /职工号 char name20; /姓名 char sex10; /性别 int age; /年龄 char edulevel10; /学历 char salary10; /工资 char addr20; /地址 char tel11; /电话; /职工信息结构体struct employe a100;int number=0; main()int n;start: printf("tttt欢迎使用职工信息管理系统n");doprintf("ttt1.职工信息输入n");printf("ttt2.职工信息浏览n");printf("ttt3.职工信息查询n");printf("ttt4.职工信息删除修改 n");printf("ttt5.删除文件中的职工信息 n");printf("ttt6.保存职工信息 n");printf("ttt7.退出n");printf("ttt选择功能选项:");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;doprintf("tttt录入职工信息 n输入第 %d 个职工的信息:n",i+1);printf("输入职工号 :");fflush(stdin);gets(ai.jobno);printf("输入职工姓名:");fflush(stdin);gets(ai.name);printf("输入职工性别:");fflush(stdin);scanf("%s",ai.sex);printf("输入职工年龄:");fflush(stdin);scanf("%d",&ai.age);printf("输入职工学历:");fflush(stdin);gets(ai.edulevel);printf("输入职工工资:");fflush(stdin);gets(ai.salary);printf("输入职工地址:");fflush(stdin);gets(ai.addr);printf("输入职工电话:");fflush(stdin);gets(ai.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;doprintf("nn");for(i=0;i<number;i+)printf("tt第 %d 个职工的信息:n",i+1);printf("t职工号%sn",ai.jobno);printf("t姓名%sn",ai.name); printf("t性别%sn",ai.sex);printf("t年龄%dn",ai.age);printf("t学历%sn",ai.edulevel);printf("t工资%sn",ai.salary);printf("t地址%sn",ai.addr);printf("t电话%sn",ai.tel);printf("tt按任意键返回主菜单");fflush(stdin);ch=getchar();while(!ch);system("cls");void find ()void find1();void find2();int m;char ch;start :printf("nn"); printf("ttt选择查询职工信息的模式n");doprintf("ttt1.通过职工号n");printf("ttt2.通过职工学历n");printf("ttt选择功能选项:");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("tt按任意键返回主菜单");fflush(stdin);ch=getchar();while(!ch);system("cls");void find1()int i;char str20,ch;doprintf("输入要查询的职工号:");fflush(stdin);gets(str);for(i=0;i<number;i+)if(!strcmp(ai.jobno,str)printf("t职工号%sn",ai.jobno);printf("t姓名%sn",ai.name); printf("t性别%sn",ai.sex);printf("t年龄%dn",ai.age);printf("t学历%sn",ai.edulevel);printf("t工资%sn",ai.salary);printf("t地址%sn",ai.addr);printf("t电话%sn",ai.tel); printf("tt按任意键返回查询菜单");fflush(stdin);ch=getchar();while(!ch);system("cls");void find2()int i;char str20,ch;doprintf("输入要查询的职工学历:");gets(str);for(i=0;i<number;i+)if(!strcmp(ai.edulevel,str)printf("t职工号%sn",ai.jobno);printf("t姓名%sn",ai.name); printf("t性别%sn",ai.sex);printf("t年龄%dn",ai.age);printf("t学历%sn",ai.edulevel);printf("t工资%sn",ai.salary);printf("t地址%sn",ai.addr);printf("t电话%sn",ai.tel);printf("tt按任意键返回查询菜单");fflush(stdin);ch=getchar();while(!ch);system("cls");void delmodify()void del(); void modify(); char ch;int p;start : printf("ttt职工信息的删除?修改?n");doprintf("ttt1.删除n");printf("ttt2.修改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("tt按任意键返回主菜单");fflush(stdin);ch=getchar();while(!ch);system("cls");void del()char str20;int i;printf("ttt1.输入要删除职工的姓名:n");fflush(stdin);scanf("%s",&str);for(i=0;i<number;i+)if(!strcmp(ai.name,str)if(i=number) number-=1;elseai=anumber-1;number-=1;break;system("cls");void modify()int i;char str20;printf("ttt2.输入要修改职工的姓名:n");fflush(stdin);scanf("%s",&str);for(i=0;i<number;i+)if(!strcmp(ai.name,str)system("cls");printf("ttt2.输入新插入职工的信息:n");printf("输入职工号 :");fflush(stdin);gets(ai.jobno);printf("输入职工姓名:");fflush(stdin);gets(ai.name);printf("输入职工性别:");fflush(stdin);scanf("%s",ai.sex);printf("输入职工年龄:");fflush(stdin);scanf("%d",&ai.age);printf("输入职工学历:");fflush(stdin);gets(ai.edulevel);printf("输入职工工资:");fflush(stdin);gets(ai.salary);printf("输入职工地址:");fflush(stdin);scanf("%s",ai.addr);printf("输入职工电话:");fflush(stdin);gets(ai.tel);printf("nn");break;system("cls");void save ()FILE *fp;int i;char filepath20;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",ai.jobno,ai.name,ai.sex,ai.age,ai.edulevel,ai.salary,ai.addr,ai.tel);fclose(fp);printf("职工信息已保存在%s中!n",filepath);fclose(fp);printf("职工信息已保存在%s中!n",filepath);system("pause");system("cls");void delfile()FILE *fp;char filepath20;printf("输入要删除的文件路径:");fflush(stdin);gets(filepath);fp=fopen(filepath,"w");fclose(fp);printf("保存在文件%s中的所有信息已经删除!n",filepath);system("pause");system("cls");