学生籍贯信息记录簿系统课程设计源代码

合集下载

学生信息管理系统java课程设计(含源代码)

学生信息管理系统java课程设计(含源代码)

JAVA 程序设计 课程设计陈述宇文皓月课 题: 学生信息管理系统 姓 名: 学 号: 同组姓名: 专业班级: 指导教师: 设计时间:目 录1、需要实现的功能32、设计目的3 1、功能模块划分32、数据库结构描述43、系统详细设计文档64、各个模块的实现方法描述95、测试数据及期望结果11一、系统描述1、需求实现的功能1.1、录入学生基本信息的功能学生基本信息主要包含:学号、姓名、年龄、出生地、专业、班级总学分,在拔出时,如果数据库已经存在该学号,则不克不及再拔出该学号。

1.2、修改学生基本信息的功能在管理员模式下,只要在表格中选中某个学生,就可以对该学生信息进行修改。

评阅意见:评定成绩:指导老师签名:年 月 日1.3、查询学生基本信息的功能可使用“姓名”对已存有的学生资料进行查询。

1.4、删除学生基本信息的功能在管理员模式下,只要选择表格中的某个学生,就可以删除该学生。

1.5、用户登陆用分歧的登录权限可以进入分歧的后台界面,从而实现权限操纵。

1.6、用户登陆信息设置可以修改用户登陆密码2、设计目的学生信息管理系统是一个教育单位不成缺少的部分。

一个功能齐全、简单易用的信息管理系统不单能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。

所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。

但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:效率低、保密性差、人工的大量浪费;另外时间一长,将发生大量的文件和数据,这对于查找、更新和维护都带来了很多困难。

随着科学技术的不竭提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

作为计算机应用的一部分,使用计算机对学校的各类信息进行管理,具有手工管理无法比较的优点。

例如:检索迅速、查询方便、效率高、可靠性好、存储量大、保密性好、寿命长、成本低等。

学生信息管理系统系统源代码

学生信息管理系统系统源代码

学生信息管理系统系统源代码(总34页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--系统源代码一、登录界面代码using System;using ;using ;using ;using ;using partial class login : protected void txtid_Click(object sender, EventArgs e){= "";= "";}protected void Button1_Click(object sender, EventArgs e){string strconn = ["connStr"];SqlConnection conn = new SqlConnection(strconn);();DataSet ds=new DataSet () ;SqlDataAdapter da = new SqlDataAdapter("select * from users where userid='" + + "' and userpwd='" + + "'", conn);(ds);if [0].==0){Label3 .Text ="账号或密码错误,请重新输入!";}else{Session ["userid"]=txtid .Text ;Session["userpwd"] = ;Session["username"] = [0].Rows[0]["username"].ToString(); Session["userpower"] = [0].Rows[0]["userpower"].ToString(); if (Session["userpower"].ToString () == "0"){("admin/");}else if (Session["userpower"].ToString() == "1"){("student/");}else{= "对不起,权限验证失败";}}();();}}二、添加课程页面代码using System;using ;using ;using ;using ;using partial class addcourse : SqlCommand mycmd;SqlConnection conn;protected void Page_Load(object sender, EventArgs e){"onblur", "checkcourseid()");string strconn = ["connStr"];conn = new SqlConnection(strconn);}protected void Button1_Click(object sender, EventArgs e){if == ""){= "课程号不能为空";}else{string sqlstr = "";sqlstr = "insert intocourse(courseid,coursename,coursetime,fen,type,teacher)values('" + + "','" + + "','" + + "','" + + "','" + + "','" + + "')";();mycmd = new SqlCommand(sqlstr, conn);();try{();("<script>javascript:alert('添加成功!!!');</script>");}catch (SqlException){("<script>javascript:alert('添加失败!!!');</script>");}finally{();sqlstr = "";}}}protected void Button2_Click(object sender, EventArgs e) {= "";= "";= "";= "";= "";}protected void Button3_Click(object sender, EventArgs e) {("");}}三、添加成绩程序代码using System;using ;using ;using ;using ;using partial class addscore : SqlCommand mycmd; SqlConnection conn;protected void Page_Load(object sender, EventArgs e){string strconn = ["connStr"];conn = new SqlConnection(strconn);}{if .ToString ()== ""){= "学号不能为空";}else{string sqlstr = "";sqlstr = "insert intoscore(userid,username,courseid,coursename,score,[year])values('" + + "','" + + "','" + + "','" + + "','" + + "','" + + "')";();mycmd = new SqlCommand(sqlstr, conn);();try{();("<script>javascript:alert('添加成功!!!');</script>");}catch (SqlException){("<script>javascript:alert('添加失败!!!');</script>");}finally{();sqlstr = "";}}}{= "";= "";= "";= "";}protected void Button3_Click(object sender, EventArgs e){("");}protected void userid_SelectedIndexChanged(object sender, EventArgs e){string sqlstr = "";sqlstr = "select username from students where userid='" + + "'";();mycmd = new SqlCommand(sqlstr, conn);();SqlDataReader da;da = ();while ()){= da["username"].ToString();}}protected void txtcourseid_SelectedIndexChanged(object sender, EventArgs e){string sqlstr = "";sqlstr = "select coursename from course where courseid='" + + "'";();mycmd = new SqlCommand(sqlstr, conn);();SqlDataReader da;da = ();while ()){= da["coursename"].ToString();}}}四、添加学生程序代码using System;using ;using ;using ;using ;using ;using ;using partial class addstudent : SqlComman d mycmd; protected void Page_Load(object sender, EventArgs e){"onblur", "checkuserid()");string strconn = ["connStr"];SqlConnection conn = new SqlConnection(strconn);}protected void Button1_Click(object sender, EventArgs e) {if == "")return;string strconn = ["connStr"];SqlConnection conn = new SqlConnection(strconn);string sqlstr = "";string sql = "";sqlstr = "insert intostudents(userid,username,sex,minzu,birthday,class,comefrom,beizhu,xuey,zhua ny,tel,idc,zhengzmm,zhiw,huoj,weij)values('" + + "','" + + "','" + + "','" + + "','" + + "','" + + "','" + + "','" + + "','" + + "','" + + "','" + + "','" + + "','" + + "','" + + "','" + + "','" + + "')";();mycmd = new SqlCommand(sqlstr, conn);();string name = 获取上传文件的名称string type = ("\\") + 1);alue = wpath;();oString();string sql = "select courseid from course where courseid='" + nam + "'"; SqlCommand DBHelper;DBHelper = new SqlCommand(sql, conn);();SqlDataReader dr = ();if ()){("<b class='Error'>该课程号已经存在,请换一个</b>");}else{("<b class='Right'>该课程号可以使用</b>");}();}}六、检查学号唯一性程序代码using System;using ;using ;using ;using ;using partial class checkuser : protected void Page_Load(object sen der, EventArgs e){= 0;string strconn = ["connStr"];SqlConnection conn = new SqlConnection(strconn);string nam = ["name"].ToString();string sql = "select userid from students where userid='" + nam + "'";SqlCommand DBHelper;DBHelper = new SqlCommand(sql, conn);();SqlDataReader dr = ();if ()){("<b class='Error'>该学号已经存在,请换一个</b>");}else{("<b class='Right'>该学号可以使用</b>");}();}}七、课程信息程序代码using System;using ;using ;using ;using ;using partial class course : SqlConnection conn;SqlDataReader getdata;protected void Page_Load(object sender, EventArgs e){string strconn = ["connStr"];conn = new SqlConnection(strconn);SqlDataReader getdata;SqlCommand mycmd;DataSet ds = new DataSet();string sql = "";sql = "select * from course order by courseid";mycmd = new SqlCommand(sql, conn);();getdata = ();= getdata;();();();}protected void Button1_Click(object sender, EventArgs e) {DataSet ds;SqlDataReader da;string strsql = "";SqlCommand cmd;();strsql = "select * from course where courseid='" + + "'or coursename like '" + + "'";cmd = new SqlCommand(strsql, conn);da = ();= da;();();();}}八、编辑、删除学生信息程序代码using System;using ;using ;using ;using ;using partial class images_editstudent : SqlCommand cmd;SqlCommand cmd2;protected void Page_Load(object sender, EventArgs e){if (!{string sql = "";SqlDataReader reader;string uid = "";uid = ["id"];string strconn = ["connStr"];SqlConnection conn = new SqlConnection(strconn);sql = "select * from students where userid='" + uid + "'";SqlCommand cmd;cmd = new SqlCommand(sql, conn);();reader = ();while ()){= reader["userId"].ToString();= reader["username"].ToString();= reader["sex"].ToString();= reader["minzu"].ToString();= reader["birthday"].ToString();= reader["class"].ToString();= reader["comefrom"].ToString();= reader["xuey"].ToString();= reader["zhuany"].ToString();= reader["tel"].ToString();= reader["idc"].ToString();}();sql = "";();}}protected void Button1_Click(object sender, EventArgs e) {string uid="";uid=Page .Request ["id"];string strconn = ["connStr"];SqlConnection conn = new SqlConnection(strconn);string sql="";sql = "update students set userid='" + + "',username='" + + "',minzu='" + + "',sex='" + + "',birthday='" + + "',class='" + + "',comefrom='" + + "',beizhu='" + + "',xuey='" + + "',zhuany='" + + "',tel='" + + "',idc='" + + "',zhengzmm='" + + "'where userid='" + uid + "'";cmd=new SqlCommand (sql,conn );();try{();["color"] = "blue";= "编辑成功";("<script>javascript:alert('编辑成功!!!');</script>");}catch(SqlException ){= "编辑失败";["color"] = "red";}();();}protected void Button2_Click(object sender, EventArgs e){string sql = "";string uid = "";string sqlall = "";uid = ["id"];string strconn = ["connStr"];SqlConnection conn = new SqlConnection(strconn);sql = "delete from students where userid='" + uid + "'";sqlall = "delete from images where userid='" + uid + "'";cmd = new SqlCommand(sql, conn);cmd2 = new SqlCommand(sqlall,conn);();try{();string sql1 = "";sql1 = "delete from users where userid='" + uid + "'"; SqlCommand cmd1 = new SqlCommand(sql1, conn); ();try{();["color"] = "blue";= "删除成功";("<script>javascript:alert('删除成功!!!');</script>");}catch (SqlException){= "删除失败";("<script>javascript:alert('删除失败!!!');</script>"); }finally{sql1 = "";}}catch(SqlException ){= "删除失败";["color"] = "red";}();();= "";= "";= "";= "";= "";= "";= "";= "";= "";= "";= "";}protected void Button3_Click(object sender, EventArgs e) {("");}}九、编辑、删除课程信息程序代码using System;using ;using ;using ;using ;using partial class editcourse : SqlCommand cmd;protected void Page_Load(object sender, EventArgs e){if (!{string sql = "";SqlDataReader reader;string uid = "";uid = ["id"];string strconn = ["connStr"];SqlConnection conn = new SqlConnection(strconn);sql = "select * from course where courseid='" + uid + "'"; SqlCommand cmd;cmd = new SqlCommand(sql, conn);();reader = ();while ()){= reader["courseid"].ToString();= reader["coursename"].ToString();= reader["coursetime"].ToString();= reader["fen"].ToString();= reader["type"].ToString();= reader["teacher"].ToString();}();sql = "";();}}protected void Button1_Click(object sender, Even tArgs e){string uid = "";uid = ["id"];string strconn = ["connStr"];SqlConnection conn = new SqlConnection(strconn);string sql = "";sql = "update course set courseid='" + + "',coursename='" + +"',coursetime='" + + "',fen='" + + "',type='" + + "',teacher='" + + "' where courseid='" + uid + "'";cmd = new SqlCommand(sql, conn);();try{();= "编辑成功";("<script>javascript:alert('编辑成功!!!');</script>");}catch (SqlException){= "编辑失败";}();();}protected void Button2_Click(object sender, EventArgs e){string sql = "";string uid = "";uid = ["id"];string strconn = ["connStr"];SqlConnection conn = new SqlConnection(strconn);sql = "delete from course where courseid='" + uid + "'";cmd = new SqlCommand(sql, conn);();try{();= "删除成功";("<script>javascript:alert('删除成功!!!');</script>"); }catch (SqlException){= "删除失败";}();();= "";= "";= "";= "";= "";}protected void Button3_Click(object sender, EventArgs e) {("");}}十、编辑、删除成绩信息程序代码using System;using ;using ;using ;using ;using partial class editscore : SqlCommand cmd;SqlConnection conn;protected void Page_Load(object sender, EventArgs e) {if (!{string sql = "";SqlDataReader reader;string uid = "";uid = ["id"];string strconn = ["connStr"];conn = new SqlConnection(strconn);sql = "select * from score where id='" + uid + "'"; SqlCommand cmd;cmd = new SqlCommand(sql, conn);();reader = ();while ()){= reader["id"].ToString();= reader["userid"].ToString();= reader["username"].ToString();= reader["courseid"].ToString();= reader["coursename"].ToString();= reader["score"].ToString();}();sql = "";();}}protected void Button1_Click(object sender, EventArgs e){string uid = "";uid = ["id"];string sql = "";string strconn = ["connStr"];conn = new SqlConnection(strconn);sql = "update score set userid='" + + "',username='" + + "',courseid='" + + "',coursename='" + + "',score='" + + "',[year]='" + + "'where id='" + uid + "'";cmd = new SqlCommand(sql,conn );();try{();= "编辑成功";("<script>javascript:alert('编辑成功!!!');</script>");}catch (SqlException){= "编辑失败";}();();}protected void Button2_Click(object sender, EventArgs e){string sql = "";string uid = "";uid = ["id"];string strconn = ["connStr"];conn = new SqlConnection(strconn);sql = "delete from score where id='" + uid + "'";cmd = new SqlCommand(sql, conn);();try{();= "删除成功";("<script>javascript:alert('删除成功!!!');</script>");}catch (SqlException){= "删除失败";}();();= "";= "";= "";= "";}protected void Button3_Click(object sender, EventArgs e){("");}protected void userid_SelectedIndexChanged(object sender, EventArgs e) {string strconn = ["connStr"];conn = new SqlConnection(strconn);string sqlstr = "";sqlstr = "select username from students where userid='" + + "'";cmd = new SqlCommand(sqlstr, conn);();SqlDataReader da;da = ();while ()){= da["username"].ToString();}}protected void txtcourseid_SelectedIndexChanged(object sender, EventArgs e){string strconn = ["connStr"];conn = new SqlConnection(strconn);string sqlstr = "";sqlstr = "select coursename from course where courseid='" + + "'";();cmd = new SqlCommand(sqlstr, c onn);();SqlDataReader da;da = ();while ()){= da["coursename"].ToString();}}}十一、修改密码程序代码using System;using ;using ;using ;using partial class modify_pwd : Sql Connection conn; protected void Page_Load(object sender, EventArgs e){string strconn = ["connStr"];conn = new SqlConnection(strconn);}protected void Button1_Click(object sender, EventArgs e) {string sql="";SqlCommand cmd;string uid;string pwd;uid = Session["userid"].ToString ();pwd = Session["userpwd"].ToString();if == ""){= "原密码不能为空";}else if == ""){= "新密码不能为空";}else if !={= "新密码和确认密码不一致";}else if != pwd)= "原密码不正确";}else{sql = "";sql = "update users set userpwd='" + + "'where userid='" + uid + "'"; cmd = new SqlCommand(sql, conn);();try{();= "密码修改成功";}catch (SqlException){= "密码修改失败";}finally{();}}}protected void Button2_Click(object sender, EventArgs e){("");}}十二、学生身份操作主界面程序代码using System;using ;using ;using ;using ;using partial class student : protected void Page_Load(object sender, EventArgs e){string strconn = ["connStr"];SqlConnection conn = new SqlConnection(strconn);string strsql = "";string a = Session["userid"].ToString();();strsql = "select * from students where userid='"+a+"'";DataSet ds=new DataSet () ;SqlDataAdapter da= new SqlDataAdapter(strsql, conn);(ds);if [0]. == 0){Response .Write ("没有记录");}else{= [0].Rows[0]["userid"].ToString();= [0].Rows[0]["username"].ToString();= [0].Rows[0]["sex"].ToString();= [0].Rows[0]["minzu"].ToString();= DateTime .Parse [0].Rows[0]["birthday"].ToString()).ToShortDateString ();= [0].Rows[0]["class"].ToString();= [0].Rows[0]["comefrom"].ToString();= [0].Rows[0]["beizhu"].ToString();}();}}十三、学生身份成绩信息程序代码using System;using ;using ;using ;using ;using partial class score : SqlConnection conn;protected void Page_Load(object sender, EventArgs e){string strconn = ["connStr"];conn = new SqlConnection(strconn);SqlDataReader getdata;SqlDataAdapter da = new SqlDataAdapter();SqlCommand mycmd;DataSet ds = new DataSet();string Sql;Sql = "select * from score where userid='" + Session["user id"] + "'"; mycmd = new SqlCommand(Sql, conn);= mycmd;(ds, "login");();// getdata = ();// = getdata;= ["login"]; ;();();}protected void Button1_Click(object sender, EventArgs e){= 0;SqlDataReader getdata;SqlDataAdapter da = new SqlDataAdapter();SqlCommand mycmd;DataSet ds = new DataSet();string Sql;Sql = "select * from score where userid='" + + "'or year='" + + "'"; mycmd = new SqlCommand(Sql, conn);= mycmd;(ds, "login");();//getdata = ();// = getdata;= ["login"]; ;();();}protected void datagrid1_PageIndexC hanged(object source, DataGridPageChangedEventArgs e){= ;();}}。

学生籍贯信息记录簿系统

学生籍贯信息记录簿系统

#include "stdio.h"#include "stdlib.h"#include "conio.h"#include "string.h"#define N 20struct student//结构体,用于存储学生的籍贯信息{char studentID[20];char name[20];char sex[20];char age[20];char province[20];};void Menu1(){puts("\t\t-----欢迎进入学生籍贯信息记录簿系统-----");puts("\t\t 1----添加学生籍贯信息");puts("\t\t 2----显示学生籍贯信息");puts("\t\t 3----删除学生籍贯信息");puts("\t\t 4----修改学生籍贯信息");puts("\t\t 5----查询系统");puts("\t\t 6----退出");puts("\t\t 请选择……");}void Menu2(){puts("\t\t-----欢迎进入学生籍贯查询子系统-----");puts("\t\t 1---按姓名查询");//按学号或姓名查询其籍贯;puts("\t\t 2---按学号查询");puts("\t\t 3---按籍贯查询");//按籍贯查询并输出该籍贯的所有学生;puts("\t\t 4---返回");puts("\t\t 请选择……");}int reads(struct student stu[N]) // 读取文件中的内容{FILE *fp;int i=0;if((fp=fopen("学生籍贯信息记录簿.txt","r"))==NULL){printf("文件打开失败!\n");return 0;}else{for(i=0;!feof(fp);i++)fscanf(fp,"%s %s %s %s %s\n",stu[i].studentID,stu[i].name,stu[i].sex,stu[i].age,stu[i].province);}fclose(fp);return i;}void save(struct student stu[N],int n) // 学生籍贯信息改变后更新并保存文件{FILE *fp;int i=0;if((fp=fopen("学生籍贯信息记录簿.txt","w"))==NULL){printf("文件打开失败!\n");return ;}else{for(i=0;i<n;i++)fprintf(fp,"%s %s %s %s %s\n",stu[i].studentID,stu[i].name,stu[i].sex,stu[i].age,stu[i].provin ce);}fclose(fp);}void show() // 学生籍贯信息显示函数{struct student stu[N];int i,n;n=reads(stu);printf("*********************所有的学生信息如下**********************\n\n");printf(" 学号姓名性别年龄籍贯\n");printf("*************************************************************\n");for(i=0;i<n;i++)printf("%s\t%s\t\t%s\t%s\t\t%s\n",stu[i].studentID,stu[i].name,stu[i].sex,stu[i].age,stu[i].province) ;getch();}void add()/*添加学生籍贯信息*/{FILE *fp;int n,i;struct student stu;if((fp=fopen("学生籍贯信息记录簿.txt","a"))==NULL) //向文件中添加学生信息{printf("文件打开失败!\n");return;}printf("请输入要添加的学生信息数量,按回车键确认:");scanf("%d",&n);for(i=1;i<=n;i++){printf("\n请输入第%d个学生的学号、姓名,性别,年龄,籍贯,用空格分开,并按回车键确认:\n",i);scanf("%s%s%s%s%s",stu.studentID,,stu.sex,&stu.age,stu.province);fprintf(fp,"\n%s\t%s\t\t%s\t%s\t\t%s\n",stu.studentID,,stu.sex,stu.age,stu.province);}fclose(fp);}void del() /*删除学生籍贯信息*/{struct student stu[N];char number[20];int n,i,j;n=reads(stu);printf("\n请输入要删除学生信息的学号,按回车键确认:");scanf("%s",number);for(i=0;i<n;i++)if(strcmp(number,stu[i].studentID)==0) break;if(i>=n){printf("没有该学生信息!\n");return;}else{for(j=i+1;j<n;j++)stu[j-1]=stu[j];}save(stu,n-1);printf("删除成功!\n");}void change() //更改学生籍贯信息{struct student stu[N];int n,i;char number[20];printf("\n请输入要更改信息的学生学号,按回车键确认:");scanf("%s",number);n=reads(stu);for(i=0;i<n;i++)if(strcmp(number,stu[i].studentID)==0)break;if(i>=n){printf("没有该学生信息!");return;}printf("\n请输入更改后学生的学号,姓名,性别,年龄,籍贯按回车键确认:\n");scanf("%s %s %s %s %s\n",stu[i].studentID,stu[i].name,stu[i].sex,stu[i].age,stu[i].province);save(stu,n);}void find1()//按姓名查询籍贯{struct student stu[N];int n,i;char name[20];printf("\n请输入要查询的学生的姓名,按回车键确认:");scanf("%s",name);n=reads(stu);for(i=0;i<n;i++)if(strcmp(name,stu[i].name)==0)printf("该学生的籍贯为%s",stu[i].province);else if(i>=n){printf("没有该学生信息!");return;}}void find2()//按学号查询籍贯{struct student stu[N];int n,i;char xuehao[20];printf("\n请输入要查询的学生的学号,按回车键确认:");scanf("%s",xuehao);n=reads(stu);for(i=0;i<n;i++)if(strcmp(xuehao,stu[i].studentID)==0)printf("该学生的籍贯为%s",stu[i].province);else if(i>=n){printf("没有该学生信息!");return;}}//查询子函数void find3()//按籍贯查询并输出该籍贯的所有学生{struct student stu[N];int n,i;char pro[20];printf("\n请输入要查询籍贯,按回车键确认:");scanf("%s",pro);n=reads(stu);for(i=0;i<n;i++)if(strcmp(pro,stu[i].province)==0)printf("%s\t",stu[i].name);else if(i>=n){printf("无此学生信息!");return;}}void main(){int choice1,choice2;Menu1();while(12){scanf("%d",&choice1);switch(choice1){//调用子函数。

学生信息记录薄.

学生信息记录薄.
if (k == 1)
{
system("cls");
goto c;
}
else
{
system("pause");
}
return 0;
}
3.2 数据录入实现
StuNode *CreateList(StuNode *Head)
{
StuNode *pnew,*paid,*ps,*pe;
Head=NULL;
cout<<"开始创建学生链表,输入学号为0或负则停止:"<<endl;
实现修改学生信息;
StuNode *showscjg(StuNode *Head)
实现显示四川籍贯信息的学生信息;
StuNode *showfscjg(StuNode *Head)
实现显示非四川籍贯信息的学生信息;
3 详细设计
3.1 主函数的实现
int _tmain(int argc, _TCHAR* argv[])
//cout<<infile.tellg()<<endl;
if(Head==NULL)
{
Head=pnew;
paid=pnew;
paid->next=NULL;
}
else
{
paid->next=pnew;
paid=pnew;
paid->next=NULL;
}
}//while,读文件结束
infile.close();
关键词:学生籍贯信息、更快、更强、更加规范、更加方便

经过一个学期的学习,我们应掌握C++语言编程的基础知识。较熟练地编写C++语言应用程序。了解C语言的常用标准函数、编程技巧、异常处理。联系已学过的内容,巩固所学的理论,增强独立工作能力。通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能力都有一个很大的提高。通过本次设计,进一步培养学生热爱专业的思想,同时对本专业综合素质的提高起一个积极的推动作用。

学生籍贯信息记录簿系统课程设计源代码样本

学生籍贯信息记录簿系统课程设计源代码样本

+64编制一种学生籍贯信息记录簿,每个学生信息涉及:学号、姓名、籍贯。

详细功能:(1)创立信息链表并以磁盘文献保存;(2)读取磁盘文献并显示输出所有学生籍贯信息;(3)按学号或姓名查询其籍贯;(4)按籍贯查询并输出该籍贯所有学生;(5)能添加、删除和修改学生籍贯信息;#include "dos.h"#include "stdio.h"#include "stdlib.h"#include "conio.h"#include "math.h"#include "string.h"/**********************建立链表******************************/struct hj{ int age;long number;char name[10],address[50],sex[2];struct hj *next;};/**************************文献操作函数******************************/FILE *fp;void openfile(char xx[20]){fp=fopen(xx,"ab+");if(fp==NULL)fp=fopen(xx,"wb");}/************************录入信息函数***********************************/void hjnew(void){system("cls");int n=0,xage;long xnumber;char xname[10];char xaddress[50];char xsex[2];struct hj *head;struct hj *x1,*x2;head=NULL;x2=NULL;printf("\n ★★★★★欢迎使顾客籍管理系统★★★★★\n"); printf("\n ★★★录入信息★★★\n");printf("\n 〓提示输入0返回上级菜单〓\n\n\n"); printf("\n 请输入学号【15字内】:");scanf("%ld",&xnumber);if(xnumber==0)goto haha;printf("\n 请输入姓名【10字内】:");scanf("%s",xname);printf("\n 请输入年龄【|-__-|】:"); scanf("%d",&xage);printf("\n 请输入性别【男OR女】:");scanf("%s",xsex);printf("\n 请输入籍贯【25字内】:"); scanf("%s",xaddress);while(xnumber!=0){n++;x1=(struct hj *)malloc(sizeof(struct hj));x1->number=xnumber;strcpy(x1->name,xname);strcpy(x1->sex,xsex);x1->age=xage;strcpy(x1->address,xaddress);if(n==1)head=x1;elsex2->next=x1;x2=x1;printf("\n 请输入学号【15字内】:"); scanf("%ld",&xnumber);if(xnumber==0)break;printf("\n 请输入姓名【10字内】:"); scanf("%s",xname);printf("\n 请输入年龄【|-__-|】:"); scanf("%d",&xage);printf("\n 请输入性别【男OR女】:");scanf("%s",xsex);printf("\n 请输入籍贯【25字内】:"); scanf("%s",xaddress);}x2->next=NULL;x1=head;while(x1!=NULL){openfile("hj.txt");char d[5]="四川";fwrite(x1,sizeof(struct hj),1,fp);fclose(fp);if(strstr(x1->address,d)!=NULL){openfile("schj.txt");fwrite(x1,sizeof(struct hj),1,fp);fclose(fp);}else{openfile("qthj.txt");fwrite(x1,sizeof(struct hj),1,fp);fclose(fp);}x1=x1->next;}haha:;}/*****************************查询函数*************************/void hjxmselect(void) //按学号方式查询函数{ssmmx:int n=0;long hh;system("cls");printf("\n ★★★★★欢迎使顾客籍管理系统★★★★★\n"); printf("\n ★★★查询编辑信息★★★\n");printf("\n 〓提示输入0返回上级菜单〓\n\n\n"); printf(" 请您输入学号:");scanf("%ld",&hh);if(hh!=0){struct hj *p;struct hj *q=NULL,*head=NULL;fp=fopen("hj.txt","rb");if(fp==NULL){printf("\n没有记录,请输入记录然后再查询!"); getch();goto jjx;}while(!feof(fp)){n++;p=(struct hj *)malloc(sizeof(struct hj));fread(p,sizeof(struct hj),1,fp);if(n==1)head=p;elseq->next=p;q=p;}q->next=NULL;p=head;while(p!=NULL){if(p->number==hh){int a;printf("\n 结果→ 学号=%ld 姓名=%s 年龄=%d 性别=%s ",p->number,p->name,p->age,p->sex);printf("\n 地址=%s",p->address);printf("\n\n 操作→ ⑴更改数据⑵删除数据⑶查询其她数据⑷返回上页⑸退出程序\n\n 请您选取操作:");ssmx:scanf("%d",&a);switch(a){void hjedit(struct hj *headd,struct hj *pp);void hjdelete(struct hj *headdd,struct hj *ss);case 1:hjedit(head,p);goto ssmmx;break;case 2:hjdelete(head,p);goto ssmmx;break;case 3:goto ssmmx;case 4:goto jjx;case 5:exit(0);default:printf("\n 错误选取,请重新选取:");goto ssmx;}}elsep=p->next;}int iiii=0;printf("\n 没有此记录1.重新查询2.返回上一页3.退出程序!");printf("\n 请选取:");qqqq:scanf("%d",&iiii);switch(iiii){case 1:goto ssmmx;case 2:goto jjx;case 3:exit(0);default:printf("\n 错误选取,请重新选取:");goto qqqq;}goto jjx;}jjx:;}void hjxhselect(void)//按姓名方式查询函数{ssmm:int n=0;char hh[10];system("cls");printf("\n ★★★★★欢迎使顾客籍管理系统★★★★★\n"); printf("\n ★★★查询编辑信息★★★\n");printf("\n 〓提示输入0返回上级菜单〓\n\n\n"); printf(" 请您输入姓名:");scanf("%s",hh);if(strcmp(hh,"0")!=0){struct hj *p;struct hj *q=NULL,*head=NULL;fp=fopen("hj.txt","rb");if(fp==NULL){printf("\n没有记录,请输入记录然后再查询!");getch();goto jjj;}while(!feof(fp)){n++;p=(struct hj *)malloc(sizeof(struct hj));fread(p,sizeof(struct hj),1,fp);if(n==1)head=p;elseq->next=p;q=p;}q->next=NULL;p=head;while(p!=NULL){if(strcmp(p->name,hh)==0){int a;printf("\n 结果→ 学号=%ld 姓名=%s 年龄=%d 性别=%s ",p->number,p->name,p->age,p->sex);printf("\n 地址=%s",p->address);printf("\n\n 操作→ ⑴更改数据⑵删除数据⑶查询其她数据⑷返回上页⑸退出程序\n\n 请您选取操作:");ssm:scanf("%d",&a);switch(a){void hjedit(struct hj *headd,struct hj *pp);void hjdelete(struct hj *headdd,struct hj *ss);case 1:hjedit(head,p);goto ssmm;break;case 2:hjdelete(head,p);goto ssmm;break;case 3:goto ssmm;case 4:goto jjj;case 5:exit(0);default:printf("\n 错误选取,请重新选取:");goto ssm;}}elsep=p->next;}int iii=0;printf("\n 没有此记录1.重新查询2.返回上一页3.退出程序!");printf("\n 请选取:");qqq:scanf("%d",&iii);switch(iii){case 1:goto ssmm;case 2:goto jjj;case 3:exit(0);default:printf("\n 错误选取,请重新选取:");goto qqq;}goto jjj;}jjj:;}void hjjgselect(void)//按籍贯方式查询{yyy:int i;system("cls");printf("\n ★★★★★欢迎使顾客籍管理系统★★★★★\n"); printf("\n ★★★籍贯方式查询信息★★★\n\n\n"); printf("\n 一显示所有信息\n");printf("\n 二显示四川籍所有信息\n");printf("\n 三显示其他籍所有信息\n");printf("\n 四自定义查询信息\n");printf("\n 五←返回上级菜单\n");printf("\n 六↓退出程序\n");printf("\n\n 请选取:");scanf("%d",&i);switch(i){ void zdyselect(void);void allselect(char a[8]);case 1:allselect("hj.txt");goto yyy;break;case 2:allselect("schj.txt");goto yyy;break;case 3:allselect("qthj.txt");goto yyy;break;case 4:zdyselect();case 5:break;case 6:exit(0);}}void zdyselect(void){ssmmz:int n=0,j=0;char hh[10];system("cls");printf("\n ★★★★★欢迎使顾客籍管理系统★★★★★\n"); printf("\n ★★★自定义查询信息★★★\n\n\n"); printf(" 请您输入地址核心字:");scanf("%s",hh);if(strcmp(hh,"0")!=0){struct hj *p;struct hj *q=NULL,*head=NULL;fp=fopen("hj.txt","rb");if(fp==NULL){printf("\n 没有记录,请输入记录然后再查询!");getch();goto jjz;}while(!feof(fp)){n++;p=(struct hj *)malloc(sizeof(struct hj)); fread(p,sizeof(struct hj),1,fp);if(n==1)head=p;elseq->next=p;q=p;}q->next=NULL;p=head;while(p!=NULL){if(strstr(p->address,hh)!=NULL){int a;j++;printf("\n 结果→ 学号=%ld 姓名=%s 年龄=%d 性别=%s ",p->number,p->name,p->age,p->sex);printf("\n 地址=%s",p->address);printf("\n\n 操作→ ⑴更改数据⑵删除数据⑶查询下一条数据⑷返回上页⑸退出程序\n\n 请您选取操作:");ssmz:scanf("%d",&a);switch(a){void hjedit(struct hj *headd,struct hj *pp);void hjdelete(struct hj *headdd,struct hj *ss);case 1:hjedit(head,p);goto ssmmz;break;case 2:hjdelete(head,p);goto ssmmz;break;case 3:p=p->next;continue;case 4:goto jjz;case 5:exit(0);default:printf("\n 错误选取,请重新选取:");goto ssmz;}p=p->next;}elsep=p->next;}if(j==0){printf("\n\n\n没有匹配记录按任意键继续!");getch();fclose(fp);goto ssmmz;}else{ int xx;printf("\n\n查询完毕!⑴继续查询⑵返回上一级菜单⑶退出程序");printf("\n请选取:");scanf("%d",&xx);if(xx==2)goto jjz;else if(xx==3)exit(0);}goto ssmmz;jjz:;}}void allselect(char a[8])//所有查询{int n=0;int k=0;system("cls");printf("\n ★★★★★欢迎使顾客籍管理系统★★★★★\n"); printf("\n ★★★籍贯方式信息★★★\n\n\n");struct hj *p;struct hj *q=NULL,*head=NULL;fp=fopen(a,"rb");if(fp==NULL){printf("\n对不起,没有记录无法查询!");goto xxxx;}rewind(fp);while(!feof(fp)){n++;p=(struct hj *)malloc(sizeof(struct hj));fread(p,sizeof(struct hj),1,fp);if(n==1)head=p;elseq->next=p;q=p;}q->next=NULL;struct hj *h1,*p2,*q3,*r4,*s5;h1=p2=(hj *)malloc(sizeof(struct hj));p2->next=head;while(p2->next!=NULL){q3=p2->next;r4=p2;while(q3->next!=NULL){if(q3->next->number<p2->next->number) r4=q3;q3=q3->next;}if(r4!=p2){s5=r4->next;r4->next=s5->next;s5->next=p2->next;p2->next=s5;}p2=p2->next;}head=h1->next->next;free(h1);p=head;while(p!=NULL&&n>0){n--;printf("\n学号=%ld 姓名=%s 年龄=%d 性别=%s",p->number,p->name,p->age,p->sex);printf("\n地址=%s",p->address);p=p->next;}xxxx:printf("\n→显示完毕←\n⑴↑返回上级菜单⑵↓退出程序\n请选择:"); xxx:scanf("%d",&n);switch(n){case 1:break;case 2:exit(0);default:printf("\n错误选取,请重新选取:");goto xxx;}}void hjselect(void)//查询编辑信息函数{cxbegin:int a;system("cls");printf("\n ★★★★★欢迎使顾客籍管理系统★★★★★\n"); printf("\n ★★★查询编辑信息★★★\n\n\n"); printf("\n 一按学号方式查询\n");printf("\n 二按姓名方式查询\n");printf("\n 三按籍贯方式查询\n");printf("\n 四→显示所有信息\n");printf("\n 五←返回上级菜单\n");printf("\n 请选择查询方式:");cxmm:scanf("%d",&a);switch(a){case 1:hjxmselect();goto cxbegin;break;case 2:hjxhselect();goto cxbegin;break;case 3:hjjgselect();goto cxbegin;break;case 4:allselect("hj.txt");goto cxbegin;break;case 5:break;default:printf("\n错误选取,请重新选取:");goto cxmm;}}void hjde(void)//删除界面函数{cxxbegin:int a;system("cls");printf("\n ★★★★★欢迎使顾客籍管理系统★★★★★\n"); printf("\n ★★★删除信息★★★\n\n\n");printf("\n 一按学号方式删除\n");printf("\n 二按姓名方式删除\n");printf("\n 三按籍贯方式删除\n");printf("\n 四→删除所有信息\n");printf("\n 五←返回上级菜单\n");printf("\n 请选择删除方式:");cxxmm:scanf("%d",&a);int i=0;switch(a){case 1:hjxmselect();goto cxxbegin;break;case 2:hjxhselect();goto cxxbegin;break;case 3:zdyselect();goto cxxbegin;break;case 4:fp=fopen("hj.txt","wb");if(fp!=NULL)i++;fp=fopen("schj.txt","wb");if(fp!=NULL)i++;fp=fopen("qthj.txt","wb");if(fp!=NULL)i++;if(i==3){printf("\n 所有数据已经删除敲任意键继续");getch();}goto cxxbegin;break;case 5:break;default:printf("\n错误选取,请重新选取:");goto cxxmm;}}//==============删除函数接口===============void hjdelete(struct hj *headdd,struct hj *ss){struct hj *q;char d[5]="四川";if(headdd==ss){headdd=headdd->next;goto gogo;}q=headdd;while(q!=NULL){if(q->next->number==ss->number) {break;}q=q->next;}q->next=ss->next;gogo:q=headdd;fp=fopen("hj.txt","wb");while(q!=NULL){fwrite(q,sizeof(struct hj),1,fp);q=q->next;}fclose(fp);q=headdd;fp=fopen("schj.txt","wb");while(q!=NULL){if(strstr(q->address,d)!=NULL){fwrite(q,sizeof(struct hj),1,fp);}q=q->next;}fclose(fp);q=headdd;fp=fopen("qthj.txt","wb");while(q!=NULL){if(strstr(q->address,d)==NULL){fwrite(q,sizeof(struct hj),1,fp);}q=q->next;}fclose(fp);}//===============编辑函数接口==============void hjedit(struct hj *headd,struct hj *pp) {int n=0;struct hj *p,*p1,*p2;char d[5]="四川";printf("\n 输入→ 学号="); scanf("%ld",&pp->number);printf("\n 姓名="); scanf("%s",pp->name);printf("\n 年龄="); scanf("%d",&pp->age);printf("\n 性别="); scanf("%s",pp->sex);printf("\n 地址="); scanf("%s",pp->address);p=headd;fp=fopen("hj.txt","wb");while(p!=NULL){fwrite(p,sizeof(struct hj),1,fp);p=p->next;}fclose(fp);p1=headd;fp=fopen("schj.txt","wb");while(p1!=NULL){if(strstr(p1->address,d)!=NULL){fwrite(p1,sizeof(struct hj),1,fp);}p1=p1->next;}fclose(fp);p2=headd;fp=fopen("qthj.txt","wb");while(p2!=NULL){if(strstr(p2->address,d)==NULL){fwrite(p2,sizeof(struct hj),1,fp);}p2=p2->next;}fclose(fp);}/*****************************主函数****************************************/ int main(int argc,char* argv[]){begin:int t;system("cls");printf("\n ★★★★★欢迎使顾客籍管理系统★★★★★\n\n\n\n\n");printf(" 一录入学生籍贯信息\n\n");printf(" 二查编学生籍贯信息\n\n");printf(" 三删除学生籍贯信息\n\n");printf(" 四退出程序\n\n");printf(" 请您选取:");mm:scanf("%d",&t);switch(t){case 1:hjnew();break;case 2:hjselect();break;case 3:hjde();break;case 4:exit(0);default:printf("\n 错误选取,请重新选取:");goto mm;}goto begin;return 0;}。

课程设计报告 学生籍贯信息记录簿(源程序)

课程设计报告 学生籍贯信息记录簿(源程序)
}
void () //读取文本文件student.dat的信息
{
FILE *fp;
if((fp=fopen("student.dat","r"))==NULL) return ;//以只读的方式打开student.dat文件
n=0;
scanf("%s",&choose);
switch(choose)
{
case '1':{Input();Save1();}break;
case '2':{Readfile();Display();}break;
case '3':{Readfile();Find(1);}break;
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<windows.h> //开始界面
#define MAX 50 //宏定义最多输入人数
fprintf(fp,"%s %s %s\n",stu[i].num,stu[i].name,stu[i].address);//用格式化输出函数输出内容到student.dat
}
fclose(fp);
}
void Display() //2.读取信息并显示
{
int i;
printf(" 学号 姓名 籍贯:\n");
for(i=0;i<n;i++)

学生籍贯管理系统c语言课程设计

学生籍贯管理系统c语言课程设计

学生籍贯管理系统c语言课程设计学生籍贯管理系统C语言课程设计一、引言学生籍贯管理系统是一种利用计算机技术来管理学生的籍贯信息的系统,通过该系统可以方便地记录、查询和更新学生的籍贯信息。

本文将介绍如何使用C语言来设计实现学生籍贯管理系统。

二、系统需求分析学生籍贯管理系统主要包括以下功能:1. 学生信息的录入:用户可以输入学生的基本信息和籍贯信息,包括学生的姓名、性别、年龄、学号等。

2. 学生信息的查询:用户可以根据学生的姓名、学号等信息来查询学生的籍贯信息。

3. 学生信息的修改:用户可以修改学生的籍贯信息,包括籍贯的省份、城市、详细地址等。

4. 学生信息的删除:用户可以删除学生的籍贯信息。

5. 学生信息的统计:系统可以统计学生的籍贯信息,包括各个省份的学生人数、男女比例等。

三、系统设计1. 数据结构设计:为了存储学生的信息,我们可以定义一个结构体来表示学生的籍贯信息,包括省份、城市和详细地址等字段。

2. 用户界面设计:可以使用命令行界面来实现用户和系统的交互,通过菜单来提供各种功能选项。

3. 功能模块设计:可以将系统的各种功能划分为不同的模块,如录入模块、查询模块、修改模块、删除模块和统计模块等。

四、系统实现1. 数据结构定义:可以使用C语言的结构体来定义学生的籍贯信息,例如:```struct Address {char province[20];char city[20];char detail[50];};struct Student {char name[20];char gender[10];int age;int studentId;struct Address address;};```2. 功能实现:(1) 录入功能:可以使用scanf函数来获取用户输入的学生信息,并将其保存到一个结构体数组中。

(2) 查询功能:可以通过遍历结构体数组,根据用户输入的姓名或学号来查找对应的学生信息,并输出。

C语言程序设计学生籍贯信息记录簿

C语言程序设计学生籍贯信息记录簿

C语言程序设计学生籍贯信息记录簿编制一个学生籍贯信息记录簿,每个学生信息包括:学号、姓名、籍贯。

具体功能:(1)创建信息链表并以磁盘文件保存;(2)读取磁盘文件并显示输出所有学生的籍贯信息;(3)按学号或姓名查询其籍贯;(4)按籍贯查询并输出该籍贯的所有学生;(5)能添加、删除和修改学生的籍贯信息;#include<conio.h>#include<stdio.h>#include<stdlib.h>#include<string.h>#include<time.h>typedef struct{char id[12];char name[21];char origin[101];}student;FILE *fp;student stu,cache;void Menu(){system("cls");time_t t = time(0);char tmp[64];strftime(tmp, sizeof(tmp), "%Y/%m/%d %A",localtime(&t));puts(tmp);printf("\n");printf("1 --输入信息\n");printf("2 --显示所有信息\n");printf("3 --按学号查询\n");printf("4 --按姓名查询\n");printf("5 --按籍贯查询\n");printf("0 --退出\n\n\n请输入选项:");}void Creat_add(){system("cls");fp=fopen("stu_origin.dat","rb+");if(fp==NULL){fp=fopen("stu_origin.dat","wb+");if(fp==NULL){printf("can't creat the filestu_origin.dat!\n");printf("Press any key to exit...");getch();} }fseek(fp,0,SEEK_END);char next='y';while(next=='y'||next=='Y'){printf("请输入学号:");scanf("%s",stu.id);printf("请输入姓名:");scanf("%s",);printf("请输入籍贯:");scanf("%s",stu.origin);printf("\n\n确定写入数据?(y/n)");if(getch()=='y'||getch()=='Y') fwrite(&stu,sizeof(stu),1,fp);printf("\n\n是否继续输入?(y/n)");next=getch();system("cls");}fclose(fp);}void Display_all(){system("cls");fp=fopen("stu_origin.dat","rb");if(fp==NULL) {printf("can't open the file stu_origin.dat!\nPress any key to get back...");getch();}else{rewind(fp);printf("\n\n学号\t\t姓名\t\t籍贯\n");while(fread(&stu,sizeof(stu),1,fp))printf("%s\t%s\t%s\n",stu.id,,stu.origin);fclose(fp);printf("\n\nPress any key to get back...");getch();}}int Check_Id(char *Id,char c){rewind(fp);while(fread(&cache,sizeof(stu),1,fp)){if(strcmp(Id,cache.id)==0){printf("\n\n学号\t\t姓名\t\t籍贯\n");printf("%s\t%s\t%s\n",cache.id,,cache.origin);return 0;}}printf("\n\n无此学生!\n");return 1;}int Check_Name(char *Name,char c){int n=0;rewind(fp);while(fread(&cache,sizeof(stu),1,fp)){if(strcmp(Name,)==0){if(++n==1)printf("\n\n学号\t\t姓名\t\t籍贯\n");printf("%s\t%s\t%s\n",cache.id,,cache.origin);}}if(!n){printf("\n\n无此学生!\n");return 1;}return 0;}int Check_Orgin(char *Origin,char c){int n=0;rewind(fp);while(fread(&cache,sizeof(stu),1,fp)){if(strcmp(Origin,cache.origin)==0){if(++n==1)printf("\n\n学号\t\t姓名\t\t籍贯\n");printf("%s\t%s\t%s\n",cache.id,,cache.origin);}}if(!n){printf("\n\n无此学生!\n");return 1;}return 0;}void Search_id(){fp=fopen("stu_origin.dat","rb");if(fp==NULL) {printf("can't open the file stu_origin.dat!\nPress any key to get back...");getch();}char k;do{system("cls");do{printf("请输入学号:");gets(stu.id);}while(Check_Id(stu.id,'s'));printf("\n\n继续查询?(y/n)");k=getch();}while(k=='y'||k=='Y');fclose(fp);printf("\nPress any key to get back...");getch();}void Search_name(){fp=fopen("stu_origin.dat","rb");if(fp==NULL) {printf("can't open the file stu_origin.dat!\nPress any key to get back...");getch();}do{system("cls");do{printf("请输入姓名:");gets();}while(Check_Name(,'s'));printf("\n\n继续查询?(y/n)");}while(getch()=='y'||getch()=='Y');fclose(fp);printf("\nPress any key to get back...");getch();}void Search_origin(){fp=fopen("stu_origin.dat","rb");if(fp==NULL) {printf("can't open the file stu_origin.dat!\nPress any key to get back...");getch();}do{system("cls");do{printf("请输入籍贯:");gets(stu.origin);}while(Check_Orgin(stu.origin,'s'));printf("\n\n继续查询?(y/n)");}while(getch()=='y'||getch()=='Y');fclose(fp);printf("\nPress any key to get back...");getch(); }void Call(){char key=getch();if(key=='1') Creat_add();if(key=='2') Display_all();if(key=='3') Search_id();if(key=='4') Search_name();if(key=='5') Search_origin();if(key=='0') exit(1);}void main(){while(1){Menu();Call();}}该程序还不能删除和修改信息。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

+64编制一个学生籍贯信息记录簿,每个学生信息包括:学号、姓名、籍贯。

具体功能:(1)创建信息链表并以磁盘文件保存;(2)读取磁盘文件并显示输出所有学生的籍贯信息;(3)按学号或姓名查询其籍贯;(4)按籍贯查询并输出该籍贯的所有学生;(5)能添加、删除和修改学生的籍贯信息;#include "dos.h"#include "stdio.h"#include "stdlib.h"#include "conio.h"#include "math.h"#include "string.h"/**********************建立链表******************************/struct hj{ int age;long number;char name[10],address[50],sex[2];struct hj *next;};/**************************文件操作函数******************************/FILE *fp;void openfile(char xx[20]){fp=fopen(xx,"ab+");if(fp==NULL)fp=fopen(xx,"wb");}/************************录入信息函数***********************************/void hjnew(void){system("cls");int n=0,xage;long xnumber;char xname[10];char xaddress[50];char xsex[2];struct hj *head;struct hj *x1,*x2;head=NULL;x2=NULL;printf("\n ★★★★★欢迎使用户籍管理系统★★★★★\n"); printf("\n ★★★录入信息★★★\n");printf("\n 〓提示输入0返回上级菜单〓\n\n\n"); printf("\n 请输入学号【15字内】:");scanf("%ld",&xnumber);if(xnumber==0)goto haha;printf("\n 请输入姓名【10字内】:");scanf("%s",xname);printf("\n 请输入年龄【|-__-|】:");scanf("%d",&xage);printf("\n 请输入性别【男OR女】:");scanf("%s",xsex);printf("\n 请输入籍贯【25字内】:");scanf("%s",xaddress);while(xnumber!=0){n++;x1=(struct hj *)malloc(sizeof(struct hj));x1->number=xnumber;strcpy(x1->name,xname);strcpy(x1->sex,xsex);x1->age=xage;strcpy(x1->address,xaddress);if(n==1)head=x1;elsex2->next=x1;x2=x1;printf("\n 请输入学号【15字内】:");scanf("%ld",&xnumber);if(xnumber==0)break;printf("\n 请输入姓名【10字内】:");scanf("%s",xname);printf("\n 请输入年龄【|-__-|】:");scanf("%d",&xage);printf("\n 请输入性别【男OR女】:");scanf("%s",xsex);printf("\n 请输入籍贯【25字内】:");scanf("%s",xaddress);}x2->next=NULL;x1=head;while(x1!=NULL){openfile("hj.txt");char d[5]="四川";fwrite(x1,sizeof(struct hj),1,fp);fclose(fp);if(strstr(x1->address,d)!=NULL){openfile("schj.txt");fwrite(x1,sizeof(struct hj),1,fp);fclose(fp);}else{openfile("qthj.txt");fwrite(x1,sizeof(struct hj),1,fp);fclose(fp);}x1=x1->next;}haha:;}/*****************************查询函数*************************/void hjxmselect(void) //按学号方式查询函数{ssmmx:int n=0;long hh;system("cls");printf("\n ★★★★★欢迎使用户籍管理系统★★★★★\n"); printf("\n ★★★查询编辑信息★★★\n");printf("\n 〓提示输入0返回上级菜单〓\n\n\n"); printf(" 请您输入学号:");scanf("%ld",&hh);if(hh!=0){struct hj *p;struct hj *q=NULL,*head=NULL;fp=fopen("hj.txt","rb");if(fp==NULL){printf("\n没有记录,请输入记录然后再查询!");getch();goto jjx;}while(!feof(fp)){n++;p=(struct hj *)malloc(sizeof(struct hj));fread(p,sizeof(struct hj),1,fp);if(n==1)head=p;elseq->next=p;q=p;}q->next=NULL;p=head;while(p!=NULL){if(p->number==hh){int a;printf("\n 结果→ 学号=%ld 姓名=%s 年龄=%d 性别=%s ",p->number,p->name,p->age,p->sex);printf("\n 地址=%s",p->address);printf("\n\n 操作→ ⑴更改数据⑵删除数据⑶查询其他数据⑷返回上页⑸退出程序\n\n 请您选择操作:");ssmx:scanf("%d",&a);switch(a){void hjedit(struct hj *headd,struct hj *pp);void hjdelete(struct hj *headdd,struct hj *ss);case 1: hjedit(head,p);goto ssmmx;break;case 2: hjdelete(head,p);goto ssmmx;break;case 3: goto ssmmx;case 4: goto jjx;case 5:exit(0);default:printf("\n 错误的选择,请重新选择:");goto ssmx;}}elsep=p->next;}int iiii=0;printf("\n 没有此记录1.重新查询2.返回上一页3.退出程序!");printf("\n 请选择:");qqqq:scanf("%d",&iiii);switch(iiii){case 1: goto ssmmx;case 2: goto jjx;case 3: exit(0);default: printf("\n 错误的选择,请重新选择:");goto qqqq;}goto jjx;}jjx:;}void hjxhselect(void)//按姓名方式查询函数{ssmm:int n=0;char hh[10];system("cls");printf("\n ★★★★★欢迎使用户籍管理系统★★★★★\n"); printf("\n ★★★查询编辑信息★★★\n");printf("\n 〓提示输入0返回上级菜单〓\n\n\n"); printf(" 请您输入姓名:");scanf("%s",hh);if(strcmp(hh,"0")!=0){struct hj *p;struct hj *q=NULL,*head=NULL;fp=fopen("hj.txt","rb");if(fp==NULL){printf("\n没有记录,请输入记录然后再查询!");getch();goto jjj;}while(!feof(fp)){n++;p=(struct hj *)malloc(sizeof(struct hj));fread(p,sizeof(struct hj),1,fp);if(n==1)head=p;elseq->next=p;q=p;}q->next=NULL;p=head;while(p!=NULL){if(strcmp(p->name,hh)==0){int a;printf("\n 结果→ 学号=%ld 姓名=%s 年龄=%d 性别=%s ",p->number,p->name,p->age,p->sex);printf("\n 地址=%s",p->address);printf("\n\n 操作→ ⑴更改数据⑵删除数据⑶查询其他数据⑷返回上页⑸退出程序\n\n 请您选择操作:");ssm:scanf("%d",&a);switch(a){void hjedit(struct hj *headd,struct hj *pp);void hjdelete(struct hj *headdd,struct hj *ss);case 1: hjedit(head,p);goto ssmm;break;case 2: hjdelete(head,p);goto ssmm;break;case 3: goto ssmm;case 4: goto jjj;case 5:exit(0);default:printf("\n 错误的选择,请重新选择:");goto ssm;}}elsep=p->next;}int iii=0;printf("\n 没有此记录1.重新查询2.返回上一页3.退出程序!");printf("\n 请选择:");qqq:scanf("%d",&iii);switch(iii){case 1: goto ssmm;case 2: goto jjj;case 3: exit(0);default: printf("\n 错误的选择,请重新选择:");goto qqq;}goto jjj;}jjj: ;}void hjjgselect(void)//按籍贯方式查询{yyy:int i;system("cls");printf("\n ★★★★★欢迎使用户籍管理系统★★★★★\n"); printf("\n ★★★籍贯方式查询信息★★★\n\n\n"); printf("\n 一显示所有信息\n");printf("\n 二显示四川籍所有信息\n");printf("\n 三显示其它籍所有信息\n");printf("\n 四自定义查询信息\n");printf("\n 五←返回上级菜单\n");printf("\n 六↓退出程序\n");printf("\n\n 请选择:");scanf("%d",&i);switch(i){ void zdyselect(void);void allselect(char a[8]);case 1:allselect("hj.txt");goto yyy;break;case 2: allselect("schj.txt");goto yyy;break;case 3: allselect("qthj.txt");goto yyy;break;case 4: zdyselect();case 5: break;case 6: exit(0);}}void zdyselect(void){ssmmz:int n=0,j=0;char hh[10];system("cls");printf("\n ★★★★★欢迎使用户籍管理系统★★★★★\n"); printf("\n ★★★自定义查询信息★★★\n\n\n"); printf(" 请您输入地址关键字:");scanf("%s",hh);if(strcmp(hh,"0")!=0){struct hj *p;struct hj *q=NULL,*head=NULL;fp=fopen("hj.txt","rb");if(fp==NULL){printf("\n 没有记录,请输入记录然后再查询!");getch();goto jjz;}while(!feof(fp)){n++;p=(struct hj *)malloc(sizeof(struct hj));fread(p,sizeof(struct hj),1,fp);if(n==1)head=p;elseq->next=p;q=p;}q->next=NULL;p=head;while(p!=NULL){if(strstr(p->address,hh)!=NULL){int a;j++;printf("\n 结果→ 学号=%ld 姓名=%s 年龄=%d 性别=%s ",p->number,p->name,p->age,p->sex);printf("\n 地址=%s",p->address);printf("\n\n 操作→ ⑴更改数据⑵删除数据⑶查询下一条数据⑷返回上页⑸退出程序\n\n 请您选择操作:");ssmz:scanf("%d",&a);switch(a){void hjedit(struct hj *headd,struct hj *pp);void hjdelete(struct hj *headdd,struct hj *ss);case 1: hjedit(head,p);goto ssmmz;break;case 2: hjdelete(head,p);goto ssmmz;break;case 3: p=p->next;continue;case 4: goto jjz;case 5:exit(0);default:printf("\n 错误的选择,请重新选择:");goto ssmz;}p=p->next;}elsep=p->next;}if(j==0){printf("\n\n\n没有匹配的记录按任意键继续!");getch();fclose(fp);goto ssmmz;}else{ int xx;printf("\n\n查询完毕! ⑴继续查询⑵返回上一级菜单⑶退出程序");printf("\n请选择:");scanf("%d",&xx);if(xx==2)goto jjz;else if(xx==3)exit(0);}goto ssmmz;jjz: ;}}void allselect(char a[8])//全部查询{int n=0;int k=0;system("cls");printf("\n ★★★★★欢迎使用户籍管理系统★★★★★\n"); printf("\n ★★★籍贯方式信息★★★\n\n\n");struct hj *p;struct hj *q=NULL,*head=NULL;fp=fopen(a,"rb");if(fp==NULL){printf("\n对不起,没有记录无法查询!");goto xxxx;}rewind(fp);while(!feof(fp)){n++;p=(struct hj *)malloc(sizeof(struct hj)); fread(p,sizeof(struct hj),1,fp);if(n==1)head=p;elseq->next=p;q=p;}q->next=NULL;struct hj *h1,*p2,*q3,*r4,*s5;h1=p2=(hj *)malloc(sizeof(struct hj));p2->next=head;while(p2->next!=NULL){q3=p2->next;r4=p2;while(q3->next!=NULL){if(q3->next->number<p2->next->number) r4=q3;q3=q3->next;}if(r4!=p2){s5=r4->next;r4->next=s5->next;s5->next=p2->next;p2->next=s5;}p2=p2->next;}head=h1->next->next;free(h1);p=head;while(p!=NULL&&n>0){n--;printf("\n学号=%ld 姓名=%s 年龄=%d 性别=%s",p->number,p->name,p->age,p->sex);printf("\n地址=%s",p->address);p=p->next;}xxxx:printf("\n→显示完毕←\n⑴↑返回上级菜单⑵↓退出程序\n请选择:"); xxx:scanf("%d",&n);switch(n){case 1:break;case 2:exit(0);default:printf("\n错误的选择,请重新选择:");goto xxx;}}void hjselect(void)//查询编辑信息函数{cxbegin:int a;system("cls");printf("\n ★★★★★欢迎使用户籍管理系统★★★★★\n"); printf("\n ★★★查询编辑信息★★★\n\n\n");printf("\n 一按学号方式查询\n");printf("\n 二按姓名方式查询\n");printf("\n 三按籍贯方式查询\n");printf("\n 四→显示全部信息\n");printf("\n 五←返回上级菜单\n");printf("\n 请选择查询方式:");cxmm:scanf("%d",&a);switch(a){case 1: hjxmselect();goto cxbegin;break;case 2: hjxhselect();goto cxbegin;break;case 3: hjjgselect();goto cxbegin;break;case 4: allselect("hj.txt");goto cxbegin;break;case 5: break;default:printf("\n错误的选择,请重新选择:");goto cxmm;}}void hjde(void)//删除界面函数{cxxbegin:int a;system("cls");printf("\n ★★★★★欢迎使用户籍管理系统★★★★★\n"); printf("\n ★★★删除信息★★★\n\n\n");printf("\n 一按学号方式删除\n");printf("\n 二按姓名方式删除\n");printf("\n 三按籍贯方式删除\n");printf("\n 四→删除全部信息\n");printf("\n 五←返回上级菜单\n");printf("\n 请选择删除方式:");cxxmm:scanf("%d",&a);int i=0;switch(a){case 1: hjxmselect();goto cxxbegin;break;case 2: hjxhselect();goto cxxbegin;break;case 3: zdyselect();goto cxxbegin;break;case 4:fp=fopen("hj.txt","wb");if(fp!=NULL)i++;fp=fopen("schj.txt","wb");if(fp!=NULL)i++;fp=fopen("qthj.txt","wb");if(fp!=NULL)i++;if(i==3){printf("\n 全部数据已经删除!!!!!!敲任意键继续");getch();}goto cxxbegin;break;case 5: break;default:printf("\n错误的选择,请重新选择:");goto cxxmm;}}//==============删除函数接口=============== void hjdelete(struct hj *headdd,struct hj *ss){struct hj *q;char d[5]="四川";if(headdd==ss){headdd=headdd->next;goto gogo;}q=headdd;while(q!=NULL){if(q->next->number==ss->number){break;}q=q->next;}q->next=ss->next;gogo:q=headdd;fp=fopen("hj.txt","wb");while(q!=NULL){fwrite(q,sizeof(struct hj),1,fp);q=q->next;}fclose(fp);q=headdd;fp=fopen("schj.txt","wb");while(q!=NULL){if(strstr(q->address,d)!=NULL){fwrite(q,sizeof(struct hj),1,fp);}q=q->next;}fclose(fp);q=headdd;fp=fopen("qthj.txt","wb");while(q!=NULL){if(strstr(q->address,d)==NULL){fwrite(q,sizeof(struct hj),1,fp);}q=q->next;}fclose(fp);}//===============编辑函数接口============== void hjedit(struct hj *headd,struct hj *pp){int n=0;struct hj *p,*p1,*p2;char d[5]="四川";printf("\n 输入→ 学号=");scanf("%ld",&pp->number);printf("\n 姓名=");scanf("%s",pp->name);printf("\n 年龄=");scanf("%d",&pp->age);printf("\n 性别=");scanf("%s",pp->sex);printf("\n 地址=");scanf("%s",pp->address);p=headd;fp=fopen("hj.txt","wb");while(p!=NULL){fwrite(p,sizeof(struct hj),1,fp);p=p->next;}fclose(fp);p1=headd;fp=fopen("schj.txt","wb");while(p1!=NULL){if(strstr(p1->address,d)!=NULL){fwrite(p1,sizeof(struct hj),1,fp);}p1=p1->next;}fclose(fp);p2=headd;fp=fopen("qthj.txt","wb");while(p2!=NULL){if(strstr(p2->address,d)==NULL){fwrite(p2,sizeof(struct hj),1,fp);}p2=p2->next;}fclose(fp);}/*****************************主函数****************************************/int main(int argc, char* argv[]){begin:int t;system("cls");printf("\n ★★★★★欢迎使用户籍管理系统★★★★★\n\n\n\n\n");printf(" 一录入学生籍贯信息\n\n");printf(" 二查编学生籍贯信息\n\n");printf(" 三删除学生籍贯信息\n\n");printf(" 四退出程序\n\n");printf(" 请您选择:");mm:scanf("%d",&t);switch(t){case 1: hjnew();break;case 2: hjselect();break;case 3: hjde();break;case 4:exit(0);default:printf("\n 错误的选择,请重新选择:");goto mm;}goto begin;return 0;}。

相关文档
最新文档