收藏 分享(赏)

C语言课程设计(学生信息管理系统).doc

上传人:微传9988 文档编号:2446791 上传时间:2018-09-17 格式:DOC 页数:13 大小:52KB
下载 相关 举报
C语言课程设计(学生信息管理系统).doc_第1页
第1页 / 共13页
C语言课程设计(学生信息管理系统).doc_第2页
第2页 / 共13页
C语言课程设计(学生信息管理系统).doc_第3页
第3页 / 共13页
C语言课程设计(学生信息管理系统).doc_第4页
第4页 / 共13页
C语言课程设计(学生信息管理系统).doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

1、南京工程学院课程设计说明书(论文)题 目 学生信息管理系统 课 程 名 称 高级语言程序设计(C)院(系、部、中心 ) 通信工程学院 专 业 电子信息工程 班 级 电信082 学 生 姓 名 顾加楠 学 号 设 计 地 点 信息楼 D204 指 导 教 师 朱 昊 _设计起止时间:2009年06月 08日至2009年 06月12日目 录一、课程设计任务。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。二、系统设计方案.。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 三、数据结构描述与定义。 。 。 。 。 。 。 。 。 。 。 。 。四、程序主要代码分析. 。 。 。

2、 。 。 。 。 。 。 。 。 。 。五、测试结果与分析。 。 。 。 。 。 。 。 。 。 。 。 。 。. 六、课程设计总结。 。 。 。 。 。 。 。 。 。 。 。 。 。 。. 七、参考文献:。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 一、课程设计任务(一)前言本课程是继高级语言程序设计(C)课程之后,训练学生综合运用本课程知识,结合实际系统运用 C 语言进行系统设计以及调试,加深对本课程的理解,提高学生综合应用知识的能力、分析问题、解决问题的能力和利用 C 语言进行综合系统设计的实践技能。学 C 语言程序设计已有1学期了,对 C 语言的基本概念和常用算

3、法也有了一定的了解,平时虽然也做过一些练习,也看了不少程序从而掌握一定的语法知识和编程经验。但是对于有些功能强大的软件还是没有尝试过能否编得起来。所以决定在所学知识的基础上,再加以拓展,利用4个半天时间编个主题明确、具有一定使用价值的中小程序,以提高自身的编程水平与上机调试技能。(二)课程设计题目及要求学生信息管理系统设计:学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail 等。试设计一学生信息管理系统,使之能提供以功能:系统以菜单方式工作学生信息录入功能(学生信息用文件保存)-输入学生信息浏览功能-输出查询、排序功能-算法按学号查询、按姓名查询学生信息的删除与修改二、系

4、统设计方案(一)总体框架图:学生管理系统:1、录入学生信息2、修改学生信息3、查询学生信息4、浏览学生信息5、增加学生信息6、推出信息系统(二)模块设计模块一:头文件,变量定义,函数的声明对系统所使用的变量进行定义,对函数进行声明模块二:学生信息系统使用帮助声明函数 void help(),对整个系统进行使用说明模块三:录入学生信息声明函数 void readfile(),说明一个文件指针 FILE *fp 打开文件“student.txt“模块四:学生信息的查找声明 void seek()为查找函数,通过 switch(item)设定用学号查找,用姓名查找两个分支模块五:学生信息的修改声明

5、void modify()为学生信息修改函数,通过 switch(item)设定所要修改的项目模块六:学生信息按学号排序声明 void sort()将录入学生系按升序排列,用的是“冒泡排序法”实现排序模块七:增加学生信息声明 void insert()插入学生信息,先通过判断学生是否存在,若否则继续输入,若是跳出,重新循环模块八:删除学生信息声明 void del()实现学生信息删除,通过学号对比确定要删除的信息,然后用后一个替换掉。模块九:显示学生信息通过 display()函数输出学生信息模块十:保存信息通过 fp=fopen(“student.txt“,“w“);写入信息模块十一:界面菜

6、单通过 switch(num)调用,以上各函数,实现功能三、数据结构描述与定义(一)结构体:“结构体名”用作结构体类型的标志,它又称“结构体标记” 。声明一个结构体类型的一般形式为:Struct 结构体名成员表列;大括弧内是该结构体中的各个成员,由它们组成一个结构体。对各成员都应进行类型声明,即类型名 成员名也可以把“成员表列”称为“域表” 。每一个成员也称为结构体中的一个域。成员名定名规与变量名同。(二)结构体数组:一个结构体变量中可以存放一组数据(如本程序中一个学生的学号、姓名、成绩等) 。因为程序中需存放若干个学生的信息,这些数据需要参加运算,就得运用数组即结构体数组。结构体数组的每个数

7、组元素都是一个结构体类型的数据,它们分别包括各个成员(分量)项。四、程序主要代码分析#include /*I/O 函数*/#include /*其它说明*/#include /*字符串函数*/#define BUFLEN 100 /* 缓冲区最大字符数 */#define LEN 15 /* 学号和姓名最大字符数,实际请更改 */#define N 100 /* 最大学生人数,实际请更改*/struct record /*结构体*/char codeLEN+1; /* 学号 */char nameLEN+1; /* 姓名 */int age; /* 年龄 */char sex3; /* 性别

8、*/char timeLEN+1; /* 出生年月 */char add30; /* 家庭地址 */char telLEN+1; /* 电话号码 */char mail30; /* 电子邮件地址 */stuN;int k=1,n,m; /* 定义全局变量 */void readfile();/* 函数声明 */void seek();void modify();void insert();void del();void display();void save();void menu();int main() while(k)menu();system(“pause“);return 0;voi

9、d help() printf(“n0.欢迎使用系统帮助!n“);printf(“n1.进入系统后,先刷新学生信息,再查询;n“);printf(“n2.按照菜单提示键入数字代号;n“);printf(“n3.增加学生信息后,切记保存按7;n“);printf(“n4.谢谢您的使用!n“);void readfile()/* 建立信息 */char *p=“student.txt“;FILE *fp;int i=0;if (fp=fopen(“student.txt“,“r“)=NULL) printf(“Open file %s error! Strike any key to exit!“

10、,p);system(“pause“);exit(0);while(fscanf(fp,“%s %s%d%s %s %s %s %s“,stui.code,stui.name,i=i;fclose(fp);n=i;printf(“录入完毕!n“);void seek() /*查找*/int i,item,flag;char s121; /* 以姓名和学号最长长度+1为准 */printf(“-n“);printf(“-1.按学号查询-n“);printf(“-2.按姓名查询-n“);printf(“-3.退出本菜单-n“);printf(“-n“);while(1)printf(“请选择子菜单

11、编号:“);scanf(“%d“,flag=0;switch(item)case 1:printf(“请输入要查询的学生的学号:n“);scanf(“%s“,s1);for(i=0;ii;j-)if(strcmp(stuj-1.code,stuj.code)0)strcpy(temp,stuj-1.code);strcpy(stuj-1.code,stuj.code);strcpy(stuj.code,temp);strcpy(temp,stuj-1.name);strcpy(stuj-1.name,stuj.name);strcpy(stuj.name,temp);strcpy(temp,s

12、tuj-1.sex);strcpy(stuj-1.sex,stuj.sex);strcpy(stuj.sex,temp);strcpy(temp,stuj-1.time);strcpy(stuj-1.time,stuj.time);strcpy(stuj.time,temp);strcpy(temp,stuj-1.add);strcpy(stuj-1.add,stuj.add);strcpy(stuj.add,temp);strcpy(temp,stuj-1.tel);strcpy(stuj-1.tel,stuj.tel);strcpy(stuj.tel,temp);strcpy(temp,s

13、tuj-1.mail);strcpy(stuj-1.mail,stuj.mail);strcpy(stuj.mail,temp);p=q=s=*q;*q=*p;*p=s;void insert() /*插入函数*/int i=n,j,flag;printf(“请输入待增加的学生数:n“);scanf(“%d“,doflag=1;while(flag)flag=0;printf(“请输入第 %d 个学生的学号:n“,i+1);scanf(“%s“,stui.code);for(j=0;ji;j+)if(strcmp(stui.code,stuj.code)=0)printf(“已有该学号,请检查

14、后重新录入 !n“);flag=1;break; /*如有重复立即退出该层循环 ,提高判断速度*/printf(“请输入第 %d 个学生的姓名:n“,i+1);scanf(“%s“,stui.name);printf(“请输入第 %d 个学生的年龄:n“,i+1);scanf(“%d“,printf(“请输入第 %d 个学生的性别:n“,i+1);scanf(“%s“,stui.sex);printf(“请输入第 %d 个学生的出生年月:(格式:年. 月)n“,i+1);scanf(“%s“,stui.time);printf(“请输入第 %d 个学生的地址:n“,i+1);scanf(“%s

15、“,stui.add);printf(“请输入第 %d 个学生的电话:n“,i+1);scanf(“%s“,stui.tel);printf(“请输入第 %d 个学生的 E-mail:n“,i+1);scanf(“%s“,stui.mail);if(flag=0)i=i;i+;while(in+m);n+=m;printf(“录入完毕!nn“);sort();void del()int i,j,flag=0;char s1LEN+1;printf(“请输入要删除学生的学号:n“);scanf(“%s“,s1);for(i=0;in;i+)if(strcmp(stui.code,s1)=0)fl

16、ag=1;for(j=i;jn-1;j+)stuj=stuj+1;if(flag=0)printf(“该学号不存在!n“);if(flag=1)printf(“删除成功,显示结果请选择菜单 6n“);n-;void display()int i;printf(“所有学生的信息为:n“);printf(“学生学号 学生姓名 年龄 性别 出生年月 地址 电话 E-mailn“);printf(“-n“);for(i=0;in;i+) printf(“%6s %7s %5d %5s %9s %8s %10s %14sn“,stui.code,stui.name,stui.age,stui.sex,s

17、tui.time,stui.add,stui.tel,stui.mail);void save()int i;FILE *fp;fp=fopen(“student.txt“,“w“); /*写入*/for(i=0;in;i+)fprintf(fp,“%s %s %d %s %s %s %s %sn“,stui.code,stui.name,stui.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail);fclose(fp);void menu()/* 界面 */int num;printf(“ nn 电信082学生信息管理系统 nn“);pri

18、ntf(“ * nn“);printf(“ * 制作人: 顾加楠 * n n“);printf(“ * nn“);printf(“*系统功能菜单* n“);printf(“友情提醒:查询前请先刷新系统! n“);printf(“ - - n“);printf(“ * n“);printf(“ * 0.系统帮助及说明 * * 1.刷新学生信息 * n“);printf(“ * n“); printf(“ * 2.查询学生信息 * * 3.修改学生信息 * n“);printf(“ * n“);printf(“ * 4.增加学生信息 * * 5.按学号删除信息 * n“);printf(“ * n

19、“);printf(“ * 6.显示当前信息 * * 7.保存当前学生信息* n“);printf(“ * * n“);printf(“ * 8.退出系统 * n“);printf(“ * n“);printf(“ - - n“);printf(“请选择菜单编号:“);scanf(“%d“,switch(num)case 0:help();break;case 1:readfile();break;case 2:seek();break;case 3:modify();break;case 4:insert();break;case 5:del();break;case 6:display();break;case 7:save();break;case 8:k=0;break;default:printf(“请在0-8 之间选择n“);(结束)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 中等教育 > 小学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报