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
#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 修改学生信息操作