学生信息管理系统65017_第1页
学生信息管理系统65017_第2页
学生信息管理系统65017_第3页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言程序设计课程设计任务书一、设计题目学生信息管理系统(难度系数)二、设计主要容主要容:该系统通过结构体数组或链表实现了对学生信息的批量录入、浏览、修改、删除、添加和查询功能。具体要求如下:学生信息包括:学号、性别、出生年月、地址、,试设计学生信息管理系统,使之 能提供以下功能:(1)基本功能: 系统以文字菜单方式工作:提供一个字符主菜单使用户可以选择不同的字符来实 现系统的各个功能,各个功能实现后又能够返回到主菜单。 批量录入功能:在录入的过程中,通过询问用户是否继续录入的方法来录入多个 学生的信息。 浏览功能:按一定的格式显示所有学生信息。 修改功能:输入要修改的学号,先对该学号进行查询

2、,如果查询成功,则可以根 据提示对该学生每项信息进行修改,如果查询不成功,则显示相应的提示信息。 删除功能:输入要删除的学号,先对该学号进行查询,如果查询成功,则删除该 学生的所有信息,如果查询不成功,则显示相应的提示信息。 添加功能:输入要添加的学号,先对该学号进行查询,如果查询成功,则提示输 入的学号已存在的信息,并要求能够重新输入,如果查询不成功,贝U输入该学生的其他 信息,从而完成一个学生信息的录入。 查询功能:能够分别按输入的学号和查询学生信息,如果查询成功,则按一定 的格式显示查询结果,如果查询不成功,则显示相应的提示信息。(2)扩展功能: 保存功能:首先提示用户输入保存的文件名,

3、将结构体数组或链表中的学生信 息保存在指定的文件中。 顺序浏览:按照学号的顺序显示所有学生信息。三、原始资料1作者书名出版地:,2008四、要求的设计成果(1) 实现该系统功能的程序代码(2) 撰写符合规要求的课程设计报告五、进程安排序号课程设计容学时分配备注1选题与搜集资料1天2分析与设计1天3模块实现4天4系统调试与测试2天5撰写课程设计报告2天合计10天六、主要参考资料1 梁旭,谷晓琳,黄明.C语言课程设计第2版:电子工业,2009.2 王新.C语言课程设计.:清华大学,2009.3 谭浩强.C语言程序设计.:清华大学,2011.指导教师(签名):20年 月日目录1系统需求分析11.1系

4、统概述11.2系统功能分析 12系统结构设计22.1系统结构图22.2函数详细说明 33系统实现44系统测试14结论181 系统需求分析1 1 系统概述学生信息是学校管理中一项繁琐的工作。 纸质的学生信息登记表已经不能满足我们 的要求,更新麻烦,查询困难等缺点是纸质信息登记表所不能克服的。在此情况下,迫 切需要一个电子版的学生管理系统来满足我们的需求,对学生信息进行必要的管理,能 够使管理人员、班主任和任课教师对记录查询更加方便。考虑到要对学生信息进行快速 检索,所以采用结构体数组实现学生信息管理系统。要现插入、查找、删除、修改、保 存等基本功能,人机界面友好,使用文字化界面。为此,设计一套实

5、用的学生信息管理 系统就可以大大简化管理人员、班主任和任课教师的工作,方便学生查询自己的学习情 况。1.2 系统功能分析系统以文字菜单方式工作: 提供一个字符主菜单使用户可以选择不同的字符来实 现系统的各个功能,各个功能实现后又能够返回到主菜单。 批量录入功能:在录入的过程中,通过询问用户是否继续录入的方法来录入多个 学生的信息。 浏览功能:按一定的格式显示所有学生信息。 修改功能:输入要修改的学号,先对该学号进行查询,如果查询成功,则可以根 据提示对该学生每项信息进行修改,如果查询不成功,则显示相应的提示信息。 删除功能:输入要删除的学号,先对该学号进行查询,如果查询成功,则删除该 学生的所

6、有信息,如果查询不成功,则显示相应的提示信息。 添加功能:输入要添加的学号,先对该学号进行查询,如果查询成功,则提示输 入的学号已存在的信息,并要求能够重新输入,如果查询不成功,则输入该学生的其他 信息,从而完成一个学生信息的录入。 查询功能:能够分别按输入的学号和查询学生信息,如果查询成功,则按一定 的格式显示查询结果,如果查询不成功,则显示相应的提示信息。(2) 扩展功能: 保存功能:首先提示用户输入保存的文件名,将结构体数组或链表中的学生信 息保存在指定的文件中。 顺序浏览:按照学号的顺序显示所有学生信息。2.1系统结构图浏览*录入2系统结构设计主菜,始单*删除*添加*查询f 保存继续录

7、入修改学号*修改姓名修改出生年月修改性别修改地址4修改电话号码添加退出2.2 函数详细说明1. 主函数: 调用桌面函数。2. 桌面函数: 调用每个功能函数,实现浏览,录入,修改,删除,添加, 查询,学生信息的功能。3. 浏览函数: 调用读取函数,排序函数和表格函数。4. 录入函数: 批量录入学生信息。5. 查询函数: 按输入的学号或查询学生信息,如果查询成功,则按一定的 格式显示查询结果,如果查询不成功,则显示相应的提示信息。6. 排序函数: 将输入数组中的学生信息按学号排序。7. 表格函数: 将学生信息以表格形式输出。8. 修改函数: 输入要修改的学号,先对该学号进行查询,如果查询成功, 则

8、可以根据提示对该学生每项信息进行修改,如果查询不成功,则显示 相应的提示信息。9. 删除函数: 输入要删除的学号,先对该学号进行查询,如果查询成功, 则删除该学生的所有信息,如果查询不成功,则显示相应的提示信息。10. 添加函数: 输入要添加的学号,先对该学号进行查询,如果查询成功, 则提示输入的学号 已存在的信息,并要求能够重新输入,如果查询不 成功,则输入该学生的其他信息,从而完成一个学生信息的录入。11. 保存函数: 将结构体数组中的学生信息保存在指定的文件中。12. 读取函数: 查找用户先前保存学生信息的文件,读出先前保存的学生信3 系统实现3.1 预处理#include<std

9、io.h>#include<stdlib.h>#include<string.h>/ 标准输入 /输出函数库/标准函数库/字符串处理函数库数据类型定义学生成绩管理系统 n");n");3.2 int n; struct student char num20; char name20; char sex20; char time20; char address20; char tel20;s100;3.3 主函数 int main() void index(); index(); return 0;3.4 桌面函数 void index() vo

10、id output(); void input(); void revise(); void del(); void add(); void search(); int x; system("cls"); printf(" printf("| printf("+/学号/性别/出生年月 /地址 /桌面函数声明/桌面函数/浏览函数声明 /录入函数声明 /修改函数声明 /删除函数声明 /添加函数声明 /查询函数声明/清屏printf("|1.浏览学生信息n");printf("|2.录入学生信息n");prin

11、tf("|3.修改学生信息n");printf("|4.删除学生信息 n");printf("|5.添加学生信息 n");printf("|6.查询学生信息 n");printf("|7.退出 n");n");printf("+printf("> 请选择 :");scanf("%d",&x); if(x=1) output(); if(x=2) input(); if(x=3) revise(); if(x=4) del(

12、); if(x=5) add(); if(x=6) search(); if(x=7) exit(0);3.5 浏览函数void output()/ 浏览函数void read();/ 读取函数声明void paixu();/ 排序函数声明void excel();/ 表格函数声明int x;system("cls");read();paixu();excel();printf(" 按任意键返回菜单 .");getchar();getchar();index();/录入函数3.6 录入函数void input()void save(); void ind

13、ex(); int i,x;/保存函数声明/桌面函数声明n=1;system("cls");printf("> 请输入学生信息 :n");for(i=0;i<n;i+)printf(" 学号 :");scanf("%s",&si.num); printf(":");scanf("%s",&);printf(" 性别 :");scanf("%s",&si.sex);printf("

14、; 出生年月 :");scanf("%s",&si.time); printf(" 地址 :");scanf("%s",&si.address); printf(":");scanf("%s",&si.tel);printf("n");printf("1 继续输入 n2 保存并返回主菜单 n"); printf("n");printf("> 请选择 :");scanf(&quo

15、t;%d",&x);if(x=1)n=n+1;if(x=2)save();index();3.7 查询函数void search()/查询函数void index();/桌面函数声明int i,x;char a20;system("cls");printf("> 请输入要查询的学号或 :"); scanf("%s",&a);printf("+-+n");printf("|学号| 性别| 出生年月 |地址 |n")printf("+-+n");f

16、or(i=0;i<n;i+) if(strcmp(a,si.num)=0|strcmp(a,)=0) printf("|%10s|%10s|%10s|%12s|%12s|%12s|n",si.num,, si.sex,si.time,si.address,si.tel);+n");printf("+break; if(i=n)printf(" 没有这个学生的纪录 n");printf("1 继续查询 n2 返回主菜单 n"); printf("> 请选择 :&quo

17、t;);scanf("%d",&x);if(x=1) search();if(x=2) index();/排序函数3.8 排序函数void paixu()int i,j; char a20; for(j=0;j<n-1;j+) for(i=0;i<n-j-1;i+) if(strcmp(si.num,si+1.num)>0)strcpy(a,si.num); strcpy(si.num,si+1.num); strcpy(si+1.num,a); strcpy(a,); strcpy(,si+1.name); strcp

18、y(si+1.name,a); strcpy(a,si.sex); strcpy(si.sex,si+1.sex); strcpy(si+1.sex,a); strcpy(a,si.time); strcpy(si.time,si+1.time); strcpy(si+1.time,a); strcpy(a,si.address); strcpy(si.address,si+1.address); strcpy(si+1.address,a); strcpy(a,si.tel); strcpy(si.tel,si+1.tel); strcpy(si+1.tel,a);3.9 表格函数void

19、excel() / 表格函数 int i;printf("+-+n");printf("|学号| 性别| 出生年月 |地址 |n");printf("+-+n");for(i=0;i<n;i+) printf("|%10s|%10s|%10s|%12s|%12s|%12s|n",si.num,, si.sex,si.time,si.address,si.tel);printf("+n");/修改函数/保存函数声明/桌面函数声明3.10 修改函数void revise()voi

20、d save(); void index();int i,x;char a20; system("cls"); printf("> 请输入要查询的学号 :");scanf("%s",&a);for(i=0;i<n;i+)if(strcmp(a,si.num)=0)|n");printf("+printf("|学号|性别+n");| 出生 年月 |地址printf("+n");printf("|%10s|%10s|%10s|%12s|%12s|%1

21、2s|n",si.num,,si.sex,si.time,si.address,si.tel);*n"printf("+n");printf(printf("1 修改学号 n2 修改 n3 修改性别 n4 修改出生年月 n5 修改地址 n6 修改 n"); printf("> 请选择 :");scanf("%d",&x);if(x=1)printf(" 请输入新学号 :"); scanf("%s",&si.num);if

22、(x=2)printf(" 请输入新 :"); scanf("%s",&);if(x=3)printf(" 请输入新性别 :"); scanf("%s",&si.sex);if(x=4)printf(" 请输入新出生年月 :"); scanf("%s",&si.time);if(x=5)printf(" 请输入新地址 :");scanf("%s",&si.address); if(x=6)p

23、rintf(" 请输入新 :"); scanf("%s",&si.tel);if(i=n-1)printf(" 没有这个学生的纪录 n");printf("n");printf("1 继续修改 n2 保存并返回主菜单 n"); printf("> 请选择 :");scanf("%d",&x);if(x=1)revise();if(x=2)save(); index();3.11 删除函数void del()/ 删除函数void sav

24、e();/ 保存函数声明void index();/ 桌面函数声明int i,x;char a20;system("cls");printf(" 请输入要删除的学号 :"); scanf("%s",a);printf("n");for(i=0;i<n;i+)if(strcmp(a,si.num)=0)strcpy(si.num,sn-1.num); strcpy(,); strcpy(si.sex,sn-1.sex); strcpy(si.time,sn-1.time); st

25、rcpy(si.address,sn-1.address); strcpy(si.tel,sn-1.tel);n=n-1;!n");printf(" 存在该生信息,删除了该生信息elseprintf(" 没有这个学生的纪录 n");printf("n");printf("1 继续删除 n2 保存并返回主菜单 n");printf("> 请选择 :");scanf("%d",&x);if(x=1)del();if(x=2)save(); index();3.12

26、添加函数void add()/ 添加函数void save();/保存函数声明void index();/桌面函数声明int i,x;char a20;system("cls");printf(" 请输入要添加学生的学号 :"); scanf("%s",a);for(i=0;i<n;i+) if(strcmp(a,si.num)=0) printf(" 输入的学号已存在 ! 请重新输入 :"); scanf("%s",a); break;n=n+1;printf("> 请输

27、入学生信息 :n"); printf(" 学号 :");scanf("%s",&sn-1.num); printf(":");scanf("%s",&); printf(" 性别 :");scanf("%s",&sn-1.sex); printf(" 出生年月 :");scanf("%s",&sn-1.time); printf(" 地址 :");scanf

28、("%s",&sn-1.address); printf(":");scanf("%s",&sn-1.tel);printf("n");printf("1 继续添加 n2 保存并返回主菜单 n"); printf("> 请选择 :");scanf("%d",&x);if(x=1)add();if(x=2)save(); index();3.13 保存函数void save()/ 保存函数void index();/ 桌面函数声明FILE *fp;int i;system("cls"); if(fp=fopen("stu.txt","wb")=NULL)printf(" 打开文件失败 !n"); exit(0);if (fwrite(&n,sizeof(int),1,fp)!=1)printf(" 写入文件错误 !n");for(i=0;i<n;i+) if(fwrite

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论