C语言课程设计-学生信息管理系统.修改后的

课程设计(论文)

题目名称学生个人信息管理系统

课程名称C语言程序课程设计

学生姓名李灵利

学号1141303073

系、专业信息工程系、通信工程

指导教师黄同成

目录

2 需求分析 (3)

2.1 要求 (3)

2.2任务 (3)

2.3 运行环境 (3)

2.4 开发工具 (3)

3概要设计与详细设计 (3)

4 具体代码实现 (5)

4.1程序代码 (5)

5.2 课程设计总结 (21)

参考文献 (22)

致谢 (23)

1前言

编写一个程序来处理同学个人信息。通过一个结构体数组来存放输入的每一

位同学的记录(包括姓名、电话号码、e_mail、地址),然后将其信息存入文件中。输入一个姓名查询该同学的信息,并显示在屏幕上。

2 需求分析

2.1 要求

(1)用C语言实现程序设计;

(2)利用结构体进行相关信息处理;

(3)画出查询模块的流程图;

(4)系统的各个功能模块要求用函数的形式实现;

(5)界面友好(良好的人机互交),程序要有注释。

2.2任务

用C语言编写一个能够管理学生个人信息的管理系统。程序运行时显示菜单,菜单内容包括:

(1)录入个人信息:5个学生的个人信息,学生信息可以包括学号、姓名、性别、出生日期、联系电话、邮编和家庭住址等;

(2)修改个人信息:用户可以修改个人信息,在输入某同学的编号后,进入修改信息的菜单至少包括:

①修改学生姓名②修改学生联系电话

(3)查询个人信息:可以按学号查询;(4)浏览所有信息:显示所有同学的信息;

(5)删除个人信息:按学生姓名删除记录。(6)退出系统。

其中,学生信息可以用二进制文件方式存储。

2.3 运行环境

(1)WINDOWS2000/XP系统

(2)TurboC2.0编译环境

2.4 开发工具

C语言

3概要设计与详细设计

3、1系统流程图

图3.1 系统流程图

3.2查询程序流程图

图3.2 查询程序流程图

4 具体代码实现

4.1程序代码

#include /*I/o函数*/

#include /*其他说明*/

#include /*字符串函数*/

#define LEN 5 /*学号和姓名最大学生人数*/ #define N 5 /*最大学生人数*/

struct record /*声明函数体*/

{

char code[20]; /*学号*/

char name[10]; /*姓名*/

char sex[5]; /*性别*/

char time[20]; /*出生年月*/

char add[20]; /*家庭地址*/

char tel[20]; /*电话*/

char mail[20]; /*邮箱地址*/

}stu[N];

int k=1,m,n;

void shuru();

void chaxun();

void xiugai();

void shanchu();

void xianshi();

void baocun();

void caidan();

void tuichuxitong();

void huanyingyemian();

int main()

{

while(k)

{

huanyingyemian();

system("pause");

system("cls");

printf("请按任意键进入主菜单!\n");

system("cls");

caidan();

system("pause");

}

return 0;

}

void help()

{ system("COLOR 2f");

printf("\n 尊敬的用户您好!");

printf("\n

============================================================\n");

printf("| |");

printf("\n | 1.欢迎进入帮助系统! |\n");

printf("| |");

printf("\n | ★★★★★★★★

|\n");

printf("| |");

printf("\n | 2.请按照菜单提示进入数字代号! |\n");

printf("| |");

printf("\n | 4.谢谢您的使用! |\n");

printf("| |");

printf("\n

============================================================\n");

}

void shuru() /* 实现录入学生基本信息功能 */

{

int i,flag=1;

while(flag)

{

flag=0;

printf("请输入需要创建信息的学生人数(1-5):\n");

scanf("%d",&n);

if(n<1||n>5)

{

flag=1;

printf("输入错误,检查后请重新输入!\n");

}

}

for(i=0;i

{

printf("请输入第%d个学生的基本信息:\n",i+1);

printf("请输入学号:\n");

scanf("%s",stu[i].code);

printf("请输入姓名:\n");

scanf("%s",stu[i].name);

getchar();

printf("请输入性别(男,女):\n");

scanf("%s",stu[i].sex);

printf("请输入出生年月(输入格式:年.月):\n");

scanf("%s",stu[i].time);

printf("请输入家庭地址:\n");

scanf("%s",stu[i].add);

printf("请输入电话号码:\n");

scanf("%s",stu[i].tel);

printf("请输入E-mail地址:\n");

scanf("%s",stu[i].mail);

}

printf("录入完毕!\n");

baocun();

}

void baocun() /*保存学生信息到文件的函数*/ {

int i;

FILE *fp;

if((fp=fopen("student.txt","wb"))==NULL) /*创建文件并判断是否能够打开成功*/

{

printf("文件不能打开!\n");

exit(0); /*如果不能打开文件,则关闭当前所有的文件*/

}

for(i=0;i

if(fwrite(&stu[i],sizeof(struct record),1,fp)!=1)

printf("文件输入错误!\n");

fclose(fp); /*关闭文件*/

}

void chazhao()

{

int i,t,flag;

char s1[30];

system("COLOR 5f");

printf("\n =================================\n");

printf(" | 1.按学号查询 |\n");

printf(" | 2.按姓名查询 |\n");

printf(" | 3.退出本菜单 |\n");

printf(" =================================\n"); while(1)

{

flag=0;

printf(" 请输入子菜单编号: ");

scanf("%d",&t);

switch(t)

{

case 1:

printf(" 请输入要查询的学生的学号: \n");

scanf("%s",s1);

for(i=0;i

if(strcmp(stu[i].code,s1)==0)

{

flag=1;

printf("学生学号学生姓名性别出生年月家庭地址电话 E-mail \n");

printf("============================================================= ===================\n");

printf("%6s %7s %5s %9s %8s %10s %14s\n",

stu[i].code,stu[i].name,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel, stu[i].mail);

}

if(flag==0)

printf("该学号不存在! \n");break;

case 2:

printf(" 请输入要查询的学生的姓名: \n");

scanf("%s",s1);

for(i=0;i

if(strcmp(stu[i].name,s1)==0)

{

flag=1;

printf("学生学号学生姓名性别出生年月家庭地址电话 E-mail \n");

printf("============================================================= ===================\n");

printf("%6s %7s %5s %9s %8s %10s %14s\n",

stu[i].code,stu[i].name,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel, stu[i].mail);

}

if(flag==0)

printf("该姓名不存在!\n");break;

case 3:

return;

default:

printf("请在1--3之间选择\n");

}

}

}

void xiugai()

{

int i,t,num;

char sex1[3],s1[30],s2[30];

printf(" 请输入要查询的学生的学号:\n");

scanf("%s",s1);

for(i=0;i

if(strcmp(stu[i].code,s1)==0)

num=i;

system("COLOR 4f");

printf("

=============================================\n");

printf(" | 1.修改姓名

|\n");

printf(" | 3.修改性别

|\n");

printf(" | 4.修改出生年月

|\n");

printf(" | 5.修改地址

|\n");

printf(" | 6.修改电话号码

|\n");

printf(" | 7.修改E-mail |\n");

printf(" | 8.修改退出本菜单

|\n");

printf("

=============================================\n"); while(1)

{

printf("请输入子菜单的编号:");

scanf("%d",&t);

switch(t)

{

case 1:

printf("请输入新的姓名:\n");

scanf("%s",s2);

strcpy(stu[num].name,s2);break;

case 2:

printf("请输入新的性别:\n");

scanf("%s",sex1);

strcpy(stu[num].sex,sex1);break;

case 3:

printf("请输入新的出生年月: \n");

scanf("%s",s2);

strcpy(stu[num].time,s2);break;

case 4:

printf("请输入新的地址: \n");

scanf("%s",s2);

strcpy(stu[num].add,s2);break;

case 5:

printf("请输入新的电话号码: \n");

scanf("%s",s2);

strcpy(stu[num].tel,s2);break;

case 6:

printf("请输入新的E-mail: \n");

scanf("%s",s2);

strcpy(stu[num].mail,s2);break;

case 7: return;

default:

printf("请在1--7之间选择\n");}

}

}

void paixu()

{

int i,j,*p,*q,s;

char temp[10];

for(i=0;i

{

for(j=n-1;j>i;j--)

if(strcmp(stu[j-1].code,stu[j].code)>0)

{

strcpy(temp,stu[j-1].code);

strcpy(stu[j-1].code,stu[j].code); strcpy(stu[j].code,temp);

strcpy(temp,stu[j-1].name);

strcpy(stu[j-1].name,stu[j].name); strcpy(stu[j].name,temp);

strcpy(temp,stu[j-1].sex);

strcpy(stu[j-1].sex,stu[j].sex); strcpy(stu[j].sex,temp);

strcpy(temp,stu[j-1].time);

strcpy(stu[j-1].time,stu[j].time); strcpy(stu[j].time,temp);

strcpy(temp,stu[j-1].add);

strcpy(stu[j-1].add,stu[j].add); strcpy(stu[j].add,temp);

strcpy(temp,stu[j-1].tel);

strcpy(stu[j-1].tel,stu[j].tel); strcpy(stu[j].tel,temp);

strcpy(temp,stu[j-1].mail);

strcpy(stu[j-1].mail,stu[j].mail); strcpy(stu[j].mail,temp);

// p=&stu[j-1];

// q=&stu[j];

//s=*p;

// *p=*q;

// *q=s;

}

}

}

void shanchu()

{

int i,j,flag=0;

char s1[15];

printf("请输入将要删除的学生的学号:\n");

scanf("%s",s1);

for(i=1;i

if(strcmp(stu[i].code,s1)==0)

{

flag=1;

for(j=i;j

stu[j]=stu[j+1];

}

if(flag==0)

printf("该学号不存在!\n");

if(flag==1)

{

printf("删除成功!显示结果请按6!\n");

n--;

}

}

void xianshi()

{

int i;

FILE *fp;

if((fp=fopen("student.txt","rb"))==NULL)

{

printf("打开文件时错误!请按任意键退出!");

system("pause");

exit(0);

}

printf(" 所有学生的信息为:\n \n");

printf("学生学号学生姓名性别出生年月家庭地址电话E-mail ");

printf("============================================================= ===================");

for(i=0;i

{ fread(&stu[i],sizeof(struct record),1,fp);

printf("%6s %7s %5s %9s %8s %10s %14s\n",

stu[i].code,stu[i].name,stu[i].

sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);

}

}

void tuichuxitong()

{

system("COLOR 3f");

printf(" ---------------\n");

printf("\n");

printf("\n");

}

void huanyingyemian()

{ system("COLOR 6f");

printf("\n");

printf("\n");

printf("\n");

printf("\n");

printf("\n");

printf("\n");

printf("\n");

printf("\n");

printf(" 尊敬的用户:您好!\n"); printf("\n");

printf("\n");

printf(" 欢迎使用\n");

printf("\n");

printf("\n");

printf(" -------☆--☆------\n");

printf("\n");

}

void caidan()

{ int num;

system("COLOR 1f");

printf("\n\n 学生个人信息管理系统\n\n");

printf("============================================================= ===================\n");

printf("\n");

printf(" ==============系统功能菜单

==============\n");

printf(" =======友情提醒:查询前请刷新

统!======\n");

printf("

========================================\n");

printf("

|======================================|\n");

printf(" | 0.系统帮助说明 1.输入学生信息|\n");

printf("

|--------------------------------------|\n");

printf(" | 2.查询学生信息 3.修改学生信息|\n");

printf("

|--------------------------------------|\n");

printf(" | 4.按学号删信息 |\n");

printf("

|--------------------------------------|\n");

printf(" | 5.显示当前信息 6.保存当前信息|\n");

printf("

|--------------------------------------|\n");

printf(" | 7.退出系统

|\n");

printf("

|======================================|\n");

printf("

========================================\n"); printf("请选择菜单编号: ");

scanf("%d",&num);

switch(num)

{

case 0:system("cls");help();break;

case 1:system("cls");shuru();break;

case 2:system("cls");chazhao();break;

case 3:system("cls");xiugai();break;

case 4:system("cls");shanchu();break;

case5:system("cls");xianshi();break;

case 6:system("cls");baocun();break;

case 7:system("cls");k=0;tuichuxitong(); break;

default:

printf("请在1--7之间选择\n");

}

}

4.2程序结果

图4.2.1 主界面

图4.2.2 输入学生信息操作

图4.2.3 按学号查询学生信息操作

图4.2.4 修改学生信息操作

相关文档
最新文档