搜索
您的当前位置:首页C语言学生学籍信息管理系统设计

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

来源:飒榕旅游知识分享网
桂 林 航 天 工 业 高 等 专 科 学 校

学生学籍信息管理系统设计 1、需求分析

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

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

设计学生基本信息和学生成绩基本信息结构体数组。 Struct {

int stuNo; //学号 char name[20]; //姓名 char sex[2]; //性别 int domNum; //宿舍号 int tel; //电话号码 }StuInfo; //学生基本信息结构体

页脚内容1

桂 林 航 天 工 业 高 等 专 科 学 校

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中查

页脚内容2

桂 林 航 天 工 业 高 等 专 科 学 校

找学号对应的姓名,再在B.TXT中查找该学生的课程情况,并统计科目和实得总学分,输出结果。 (3)删除模块

通过菜单选择删除学生的功能,输入要删除学生的学号,则分别在A.TXT和B.TXT中查找该生信息,删除之;或者输入学生的姓名,先在A.TXT中得到该生的学号,删除该生信息,再在B.TXT中删除该学号对应的信息。注意:C语言中没有直接删除信息的函数,需要自己实现,可以采取读出数据,判断数据(如果不删除,则进入缓冲区,否则删除),写入数据(把缓冲区中的数据写入文件)的步骤进行。 (4)排序模块

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

#include #include #include #include #include

void input(); void display(); void find();

页脚内容3

桂 林 航 天 工 业 高 等 专 科 学 校

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];

页脚内容4

桂 林 航 天 工 业 高 等 专 科 学 校

int number=0; main() { int n;

start: printf(\"\\\\欢迎使用职工信息管理系统\\n\"); do {

printf(\"\\\1.职工信息输入\\n\"); printf(\"\\\2.职工信息浏览\\n\"); printf(\"\\\3.职工信息查询\\n\"); printf(\"\\\4.职工信息删除修改 \\n\"); printf(\"\\\5.删除文件中的职工信息 \\n\"); printf(\"\\\6.保存职工信息 \\n\"); printf(\"\\\7.退出\\n\"); printf(\"\\\选择功能选项:\");

fflush(stdin);

页脚内容5

桂 林 航 天 工 业 高 等 专 科 学 校

scanf(\"%d\ 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()

页脚内容6

桂 林 航 天 工 业 高 等 专 科 学 校

{int i=0; char j; do

{printf(\"\\\\录入职工信息 \\n输入第 %d 个职工的信息:\\n\ printf(\"输入职工号 :\"); fflush(stdin); gets(a[i].jobno);

printf(\"输入职工姓名:\"); fflush(stdin); gets(a[i].name);

printf(\"输入职工性别:\"); fflush(stdin); scanf(\"%s\

页脚内容7

桂 林 航 天 工 业 高 等 专 科 学 校

printf(\"输入职工年龄:\"); fflush(stdin);

scanf(\"%d\

printf(\"输入职工学历:\"); fflush(stdin); gets(a[i].edulevel);

printf(\"输入职工工资:\"); fflush(stdin); gets(a[i].salary);

printf(\"输入职工地址:\"); fflush(stdin); gets(a[i].addr);

printf(\"输入职工电话:\");

页脚内容8

桂 林 航 天 工 业 高 等 专 科 学 校

fflush(stdin); gets(a[i].tel); i++; number=i;

printf(\"是否继续录入?(Y or N):\"); fflush(stdin); scanf(\"%s\

}

while(j!='n'&&j!='N'); }

void display() {int i=0; char ch; do

{printf(\"\\n\\n\");

页脚内容9

桂 林 航 天 工 业 高 等 专 科 学 校

for(i=0;i{printf(\"\\第 %d 个职工的信息:\\n\ printf(\"\职工号%s\\n\ printf(\"\姓名%s\\n\ printf(\"\性别%s\\n\ printf(\"\年龄%d\\n\ printf(\"\学历%s\\n\ printf(\"\工资%s\\n\ printf(\"\地址%s\\n\ printf(\"\电话%s\\n\ }

printf(\"\\按任意键返回主菜单\"); fflush(stdin); ch=getchar(); }

while(!ch); system(\"cls\");

页脚内容10

桂 林 航 天 工 业 高 等 专 科 学 校

}

void find () {void find1(); void find2(); int m; char ch;

start :printf(\"\\n\\n\");

printf(\"\\\选择查询职工信息的模式\\n\");do

{printf(\"\\\1.通过职工号\\n\"); printf(\"\\\2.通过职工学历\\n\");

printf(\"\\\选择功能选项:\"); fflush(stdin); scanf(\"%d\ switch(m)

页脚内容11

桂 林 航 天 工 业 高 等 专 科 学 校

{case 1 :system(\"cls\"); find1(); break; case 2 : system(\"cls\"); find2(); break;

default :system(\"cls\"); goto start; }

printf(\"\\按任意键返回主菜单\"); fflush(stdin); ch=getchar(); }

while(!ch); system(\"cls\"); }

void find1() {int i;

char str[20],ch;

页脚内容12

桂 林 航 天 工 业 高 等 专 科 学 校

do {

printf(\"输入要查询的职工号:\"); fflush(stdin); gets(str);

for(i=0;iprintf(\"\职工号%s\\n\ printf(\"\姓名%s\\n\ printf(\"\性别%s\\n\ printf(\"\年龄%d\\n\ printf(\"\学历%s\\n\ printf(\"\工资%s\\n\ printf(\"\地址%s\\n\ printf(\"\电话%s\\n\ }

页脚内容13

桂 林 航 天 工 业 高 等 专 科 学 校

printf(\"\\按任意键返回查询菜单\"); fflush(stdin); ch=getchar(); }

while(!ch); system(\"cls\"); }

void find2() {int i;

char str[20],ch; do {

printf(\"输入要查询的职工学历:\"); gets(str);

for(i=0;i页脚内容14

桂 林 航 天 工 业 高 等 专 科 学 校

{

printf(\"\职工号%s\\n\ printf(\"\姓名%s\\n\ printf(\"\性别%s\\n\ printf(\"\年龄%d\\n\ printf(\"\学历%s\\n\ printf(\"\工资%s\\n\ printf(\"\地址%s\\n\ printf(\"\电话%s\\n\ }

printf(\"\\按任意键返回查询菜单\"); fflush(stdin); ch=getchar(); }

while(!ch); system(\"cls\"); }

页脚内容15

桂 林 航 天 工 业 高 等 专 科 学 校

void delmodify() {void del(); void modify(); char ch; int p;

start : printf(\"\\\职工信息的删除?修改?\\n\"); do

{printf(\"\\\1.删除\\n\"); printf(\"\\\2.修改\\n\"); printf(\"选择功能选项:\"); fflush(stdin); scanf(\"%d\ switch(p)

{case 1 :system(\"cls\"); del(); break; case 2 : system(\"cls\"); modify(); break; default :system(\"cls\"); goto start;

页脚内容16

桂 林 航 天 工 业 高 等 专 科 学 校

}

printf(\"\\按任意键返回主菜单\"); fflush(stdin); ch=getchar(); }

while(!ch); system(\"cls\"); }

void del() {char str[20]; int i;

printf(\"\\\1.输入要删除职工的姓名:\\n\");fflush(stdin); scanf(\"%s\ for(i=0;i页脚内容17

桂 林 航 天 工 业 高 等 专 科 学 校

if(!strcmp(a[i].name,str)) { } }

system(\"cls\"); }

if(i==number) number-=1; else

{a[i]=a[number-1]; number-=1; } break;

void modify() {int i; char str[20];

printf(\"\\\2.输入要修改职工的姓名:\\n\");

页脚内容18

桂 林 航 天 工 业 高 等 专 科 学 校

fflush(stdin); scanf(\"%s\ for(i=0;iprintf(\"\\\2.输入新插入职工的信息:\\n\"); printf(\"输入职工号 :\"); fflush(stdin); gets(a[i].jobno);

printf(\"输入职工姓名:\"); fflush(stdin); gets(a[i].name);

printf(\"输入职工性别:\"); fflush(stdin); scanf(\"%s\

页脚内容19

桂 林 航 天 工 业 高 等 专 科 学 校

printf(\"输入职工年龄:\"); fflush(stdin);

scanf(\"%d\

printf(\"输入职工学历:\"); fflush(stdin); gets(a[i].edulevel);

printf(\"输入职工工资:\"); fflush(stdin); gets(a[i].salary);

printf(\"输入职工地址:\"); fflush(stdin);

scanf(\"%s\

printf(\"输入职工电话:\");

页脚内容20

桂 林 航 天 工 业 高 等 专 科 学 校

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) {

页脚内容21

桂 林 航 天 工 业 高 等 专 科 学 校

printf(\"\\n保存失败!\"); exit(0); }

for(i=0;ifprintf(fp,\"%s%s%s%d%s%d%s%s\

fclose(fp);

printf(\"职工信息已保存在%s中!\\n\ fclose(fp);

printf(\"职工信息已保存在%s中!\\n\ system(\"pause\"); system(\"cls\"); }

void delfile() {FILE *fp;

页脚内容22

桂 林 航 天 工 业 高 等 专 科 学 校

char filepath[20];

printf(\"输入要删除的文件路径:\"); fflush(stdin); gets(filepath);

fp=fopen(filepath,\"w\"); fclose(fp);

printf(\"保存在文件%s中的所有信息已经删除!\\n\ system(\"pause\"); system(\"cls\"); }

页脚内容23

桂 林 航 天 工 业 高 等 专 科 学 校

页脚内容24

因篇幅问题不能全部显示,请点此查看更多更全内容

Top