C语言课程设计方案学生信息管理系统 .docx
精品名师归纳总结封面可编辑资料 - - - 欢迎下载精品名师归纳总结作者: PanHongliang仅供个人学习#include <stdio.h>/*I/O 函数 */ #include <stdlib.h>/* 其它说明 */ #include <string.h>/* 字符串函数 */#defineBUFLEN 100 /*缓冲区最大字符数 */#defineLEN 15/*学号和姓名最大字符数 , 实际请更换 */ #defineN 100/*最高校生人数 , 实际请更换 */可编辑资料 - - - 欢迎下载精品名师归纳总结structrecord/* 结构体 */char codeLEN+1 。 /* 学号 */ char nameLEN+1 。 /* 姓名 */ int age 。 /* 年龄 */char sex3 。 /* 性别 */char timeLEN+1。 /*产生年月 */ char add30。 /*家庭的址 */char telLEN+1。 /*电话号码 */ char mail30。 /*电子邮件的址 */stuN。intk=1,n,m 。 /*定义全局变量 */ void readfile。/*函数声明 */ void seek。void modify。void insert。void del。 void display。void save。void menu 。intmainwhile k menu 。system "pause" 。return0 。void helpprintf"n0.欢迎使用系统帮忙!n" 。printf"n1.进入系统后 , 先刷新同学信息 , 再查询。 n" 。printf"n2.依据菜单提示键入数字代号。n" 。printf"n3.增加同学信息后 , 切记储存按。 n" 。printf"n4.感谢您的使用! n" 。void readfile/*建立信息*/char *p= "student.txt" 。FILE *fp 。int i=0 。iffp=fopen"student.txt", "r" =NULLprintf"Open file %s error. Strike any key to exit.",p 。system "pause" 。可编辑资料 - - - 欢迎下载精品名师归纳总结exit0。while fscanffp,"%s %s%d%s %s %s %s %s,"stui.code,stui.name,&stui.age, stui.sex,stui.time,stui.add,stui.tel,stui.mail=8i+ 。i=i 。fclosefp。n=i 。printf" 录入完毕! n" 。void seek/* 查找 */inti,item,flag。char s121。 /*以姓名和学号最长长度 +1为准 */printf"n" 。printf"-1.按学号查询-n" 。printf"-2.按姓名查询-n" 。printf"-3.退出本菜单-n" 。printf"n" 。while 1printf" 请选择子菜单编号 :" 。scanf "%d",&item 。flag=0 。switch itemcase 1:printf" 请输入要查询的同学的学号:n" 。scanf "%s" ,s1 。for i=0 。i<n 。i+if strcmpstui.code,s1=0flag=1 。printf" 同学学号同学姓名年龄性别产生年月的址电话E-mailn" 。printf"-n" 。printf"%6s %7s %6d %5s %9s %8s %10s %14sn" ,stui.code,stui.name,stui.age, stui.sex,stui.time,stui.add,stui.tel,stui.mail。if flag=0printf" 该学号不存在! n" 。 break 。case 2:printf" 请输入要查询的同学的姓名:n" 。可编辑资料 - - - 欢迎下载精品名师归纳总结scanf "%s" ,s1 。for i=0 。i<n 。i+if strcmpstui.name,s1=0flag=1 。printf" 同学学号同学姓名年龄性别产生年月的址电话E-mailn" 。printf"-n" 。printf"%6s %7s %6d %5s %9s %8s %10s %14sn" ,stui.code,stui.name,stui.age, stui.sex,stui.time,stui.add,stui.tel,stui.mail。if flag=0printf" 该姓名不存在! n" 。 break 。case 3: return 。default:printf" 请在 -3 之间选择 n" 。void modify/* 修改信息 */inti,item,num。char sex13,s1LEN+1,s2LEN+1。 /*以姓名和学号最长长度 +1为准 */ printf" 请输入要要修改的同学的学号:n" 。scanf "%s" ,s1 。for i=0 。i<n 。i+if strcmpstui.code,s1=0/* 比较字符串是否相等*/ num=i。printf"-n" 。printf"1. 修改姓名 n" 。printf"2. 修改年龄 n" 。printf"3. 修改性别 n" 。printf"4. 修改产生年月 n" 。printf"5. 修改的址 n" 。printf"6. 修改电话号码 n" 。printf"7. 修改E-mail 的址n" 。printf"8. 退出本菜单 n" 。printf"-n" 。while 1printf" 请选择子菜单编号 :" 。scanf "%d",&item 。switch itemcase 1:printf" 请输入新的姓名 :n" 。可编辑资料 - - - 欢迎下载精品名师归纳总结scanf "%s" ,s2 。strcpystunum.name,s2。 break 。case 2:printf" 请输入新的年龄 :n" 。scanf "%d",&stunum.age。break 。case 3:printf" 请输入新的性别 :n" 。scanf "%s" ,sex1 。strcpystunum.sex,sex1。 break 。case 4:printf" 请输入新的产生年月:n" 。scanf "%s" ,s2 。strcpystunum.time,s2。 break 。case 5:printf" 请输入新的的址 :n" 。scanf "%s" ,s2 。strcpystunum.add,s2。 break 。case 6:printf" 请输入新的电话号码:n" 。scanf "%s" ,s2 。strcpystunum.tel,s2。 break 。case 7:printf" 请输入新的 E-mail 的址:n" 。scanf "%s" ,s2 。strcpystunum.mail,s2。 break 。case 8: return 。default:printf" 请在 -8 之间选择 n" 。void sort/* 按学号排序 */inti,j,*p,*q,s。char temp10。for i=0 。i<n-1 。i+for j=n-1 。j>i 。j-if strcmpstuj-1.code,stuj.code>0strcpytemp,stuj-1.code。strcpystuj-1.code,stuj.code。strcpystuj.code,temp。strcpytemp,stuj-1.name。strcpystuj-1.name,stuj.name。可编辑资料 - - - 欢迎下载精品名师归纳总结strcpystuj.name,temp。strcpytemp,stuj-1.sex。strcpystuj-1.sex,stuj.sex。strcpystuj.sex,temp。strcpytemp,stuj-1.time。strcpystuj-1.time,stuj.time。strcpystuj.time,temp。strcpytemp,stuj-1.add。strcpystuj-1.add,stuj.add。strcpystuj.add,temp。strcpytemp,stuj-1.tel。strcpystuj-1.tel,stuj.tel。strcpystuj.tel,temp。strcpytemp,stuj-1.mail。strcpystuj-1.mail,stuj.mail。strcpystuj.mail,temp。p=&stuj-1.age。q=&stuj.age。s=*q 。*q=*p 。*p=s 。void insert/* 插入函数 */inti=n,j,flag。printf" 请输入待增加的同学数 :n" 。scanf "%d",&m。doflag=1。while flagflag=0 。printf" 请输入第 %d 个同学的学号 :n" ,i+1。scanf "%s" ,stui.code。for j=0 。j<i 。j+if strcmpstui.code,stuj.code=0printf" 已有该学号 , 请检查后重新录入 .n" 。flag=1 。break 。 /* 如有重复马上退出该层循环, 提高判定速度 */可编辑资料 - - - 欢迎下载精品名师归纳总结printf" 请输入第 %d 个同学的姓名:n",i+1。scanf"%s" ,stui.name。printfscanf" 请输入第 %d 个同学的年龄"%d",&stui.age。:n",i+1。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" ,stui.add。printf" 请输入第 %d 个同学的电话 :n" ,i+1。scanf "%s" ,stui.tel。printf" 请输入第 %d 个同学的 E-mail:n",i+1 。scanf "%s" ,stui.mail。if flag=0i=i。i+ 。while i<n+m 。n+=m。printf" 录入完毕! nn" 。sort。void delinti,j,flag=0。char s1LEN+1 。printf" 请输入要删除同学的学号 :n" 。scanf "%s" ,s1 。for i=0 。i<n 。i+if strcmpstui.code,s1=0flag=1。for j=i。j<n-1 。j+ stuj=stuj+1。if flag=0printf" 该学号不存在! n" 。if flag=1printf" 删除成功 , 显示结果请选择菜单 n" 。可编辑资料 - - - 欢迎下载精品名师归纳总结n- 。void displayinti 。printf" 全部同学的信息为 :n" 。printf" 同学学号同学姓名年龄性别产生年月的址电话E-mailn" 。printf"-n" 。for i=0 。i<n 。i+printf"%6s %7s %5d %5s %9s %8s %10s %14sn" ,stui.code,stui.name,stui.age, stui.sex,stui.time,stui.add,stui.tel,stui.mail。void saveinti 。FILE *fp。fp=fopen "student.txt", "w" 。 /* 写入 */ for i=0 。i<n 。i+fprintffp,"%s %s %d %s %s %s %s %sn" ,stui.code,stui.name,stui.age, stui.sex,stui.time,stui.add,stui.tel,stui.mail。fclosefp。void menu /*界面 */intnum。printf" nn电信同学信息治理系统nn" 。printf" *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" 。可编辑资料 - - - 欢迎下载精品名师归纳总结printf"* 6.显示当前信息* * 7.储存当前同学信息 *n" 。printf"* *n" 。printf"* 8.退出系统*n" 。printf"*n" 。printf"n" 。printf" 请选择菜单编号 :" 。scanf "%d",&num 。switch numcase 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" 请在 -8 之间选择 n" 。版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理。版权为潘宏亮个人全部This article includes some parts, including text,pictures, and design. Copyright is Pan Hongliang's personalownership.用户可将本文的内容或服务用于个人学习、争论或观看,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵害本网站及相关权益人的合法权益。除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人的书面许可,并支付酬劳。可编辑资料 - - - 欢迎下载精品名师归纳总结Users may use the contents or services of this article for personal study, research or appreciation, and other non-commercial or non-profit purposes, but at the same time, they shall abide by the provisions of copyright law and other relevant laws, and shall not infringe upon the legitimate rights of this website and its relevant obligees. In addition, when any content or service of this article is used for other purposes, written permission and remuneration shall be obtained from the person concerned and the relevant obligee.转载或引用本文内容必需是以新闻性或资料性公共免费信息为使用目的的合理、善意引用,不得对本文内容原意进行曲解、修 改,并自负版权等法律责任。Reproduction or quotation of the content of this article must be reasonable and good-faith citation for the use of news or informative public free information. It shall not misinterpret or modify the original intention of the content of this article, and shall bear legal liability such as copyright.可编辑资料 - - - 欢迎下载