学生寝室管理系统设计与实现 数据结构

学生寝室管理系统设计与实现 数据结构,第1张

宿舍管理,没什么好玩的,就是繁琐,很多东西需要你细化,而且一般要求为交互式平台,而且选项多,出错处较多,排错就是一个相当大的工程。我写的这个里面没有太多的排错功能,因为那东西就是烦而已,多几个if 判断下而已,因为烦的慌,觉得也没啥意思,就没细细的写,粗略的写了几个。 查询也是只写了按学号查询,是用的折半查找。排序是用的快速排序,因为时间消耗比较小,喏,那是上个排序综合里有的,所以写这个就用的那个里的快速排序,很简单,就是对copy下而已,改下结构体,complete!呵呵,程序如下:头文件里的:struct student

{

char name[10]

int num

int dormin

}cpp文件:// 宿舍管理.cpp : 定义控制台应用程序的入口点。

//

///////////////////////////////////////////////////////////////////////

/*8、宿舍管理查询软件(**)

任务:为宿舍管理人员编写一个宿舍管理查询软件, 程序设计要求:

(1)采用交互工作方式

(2)可以增加、删除、修改信息

(3)建立数据文件 ,数据文件按关键字(姓名、学号、房号)进行排序(选择、快速排序、堆排序等任选一种)

(4) 查询 : a.按姓名查询 b.按学号查询 c按房号查询

(5) 打印任一查询结果(可以连续 *** 作)

*/

/////////////////////////////////////////////////////////////////////

#include "stdafx.h"

#include<fstream>

#include<stdlib.h>

#include<iostream>

using namespace std

#define max 10

int _tmain(int argc, _TCHAR* argv[])

{void input(student *,int)void display(student *,int)void add(student *,int &,int)<br>void qsort(student *,int,int)void del(student *,char *,int &)void change(student *,char *,int )<br>void search(student *,int,int,int)</p><p>int stunum,choose<br>ifstream infile("stunum.txt")<br>if(!infile) cout<<"文件中尚未创建信息!"<<endl<br>else infile>>stunum<br>infile.close()</p><p>char name[10]<br>cout<<"****************************************************"<<endl<br>cout<<endl<<endl<br>cout<<"欢迎进入学生宿舍管理系统!!"<<endl<br>cout<<endl<<endl<br>cout<<"****************************************************"<<endl<br>while(1){<br>cout<<"1.输入学生宿舍信息"<<endl<br>cout<<"2.显示已输入信息"<<endl<br>cout<<"3.信息修改"<<endl<br>cout<<"4.信息查询"<<endl<br>cout<<"5.信息排序"<<endl<br>cout<<"6.退出系统"<<endl<br>cout<<"请输入需要执行的任务:"<br>cin>>choose<br>student *SS=new student[max]<br>switch(choose){<br> case 1:{cout<<"输入数据将使原来数据丢失,确定这样做吗?(y/n)"<<endl<br>bool yn=0char temp<br>cin>>temp<br>if(temp=='y') yn=1<br>if(yn){cout<<"请输入学生数目:"<br>cin>>stunum<br>input(S,stunum)<br>ofstream outfile("stunum.txt")<br>outfile<<stunum<br>outfile.close()break}}

case 2:display(S,stunum)break

case 3:

{int cchoosecout<<"1.修改信息"<<endl<br> cout<<"2.添加信息"<<endlcout<<"3.删除信息"<<endlcout<<"请输入要执行的任务:"<<endl<br> cin>>cchoose<br> switch(cchoose)<br> {case 1:{cout<<"请输入修改的信息人名"<<endlcin>>namechange(S,name,stunum)break}

case 2:{int adcout<<"请输入添加人数:"cin>>adadd(S,stunum,ad)break}

case 3:{cout<<"请输入删除信息的人名"<<endlcin>>namedel(S,name,stunum)break}

break}break}

case 4:{cout<<"请输入学号:"<br> int cchoosecin>>cchoosesearch(S,0,stunum,cchoose)<br> break}

case 5:{ifstream infile("stuinfor.txt",ios::in)<br> for(int i=0i<stunumi++)<br> infile>>S[i].name>>S[i].num>>S[i].dormin<br> qsort(S,0,stunum-1)<br>ofstream outfile("sorted_infor.txt")<br> for(int i=0i<stunumi++) {outfile<<S[i].name<<' '<<S[i].num<<' '<<S[i].dormin<<endl<br>cout<<S[i].name<<' '<<S[i].num<<' '<<S[i].dormin<<endl}

outfile.close()infile.close()break}

case 6:cout<<" 谢谢使用!"<<endlexit(1)}

}

ofstream outfile("stunum.txt")

outfile<<stunum

outfile.close()

return 0

}

void input(student *stu,int all)

{ofstream outfile("stuinfor.txt")<br>for(int i=0i<alli++)<br>{cout<<"请输入第"<<i+1<<"个学生的姓名 学号 宿舍号:"<br> cin>>stu[i].name>>stu[i].num>>stu[i].dormin<br> outfile<<stu[i].name<<" "<<stu[i].num<<" "<<stu[i].dormin<<endl<br>}

outfile.close()

}

void display(student *stu,int all)

{

ifstream infile("stuinfor.txt",ios::in)

if(!infile) cerr<<"文件打开失败!"<<endl

else{

for(int i=0i<alli++)

{cout<<"输入的第"<<i+1<<"个学生的姓名 学号 宿舍号分别为:"<br> infile>>stu[i].name>>stu[i].num>>stu[i].dormin<br> cout<<stu[i].name<<" "<<stu[i].num<<" "<<stu[i].dormin<<endl<br>}

infile.close()}

}

void add(student *stu,int &all,int add)

{

ofstream outfile("stuinfor.txt",ios::app)

for(int i=0i<addi++)

{

cout<<"请输入第"<<all+i+1<<"个学生的姓名 学号 宿舍号:"

cin>>stu[all+i].name>>stu[all+i].num>>stu[all+i].dormin

outfile<<stu[all+i].name<<" "<<stu[all+i].num<<" "<<stu[all+i].dormin<<endl

}

all+=add

outfile.close()

}

//快速排序

int partition(student *a,int low,int high)

{

student temint piv=a[low].num

while(high>low)

{

while(high>low&&a[high].num>=piv) high--

tem=a[high]a[high]=a[low]a[low]=tem

while(high>low&&a[low].num<=piv) low++

tem=a[high]a[high]=a[low]a[low]=tem

}

return low

}

void qsort(student *a,int low,int high)

{int pivotloc<br>if(low<high)<br>{<br> pivotloc=partition(a,low,high)<br> qsort(a,low,pivotloc-1)<br> qsort(a,pivotloc+1,high)<br>}

}

void del(student *stu,char *name,int &num)

{int delperchar check<br>ifstream infile("stuinfor.txt")<br> for(int i=0i<numi++) <br> {<br> infile>>stu[i].name>>stu[i].num>>stu[i].dormin<br> if(strcmp(name,stu[i].name)==0) delper=i}

cout<<"您要删除的信息如下:"<<endl

cout<<stu[delper].name<<" "<<stu[delper].num<<" "<<stu[delper].dormin<<endl

cout<<"您确定要删除吗?(y/n)"<<endl

cin>>check

ofstream outfile("stuinfor.txt")

if(check=='y'||'Y')

{

for(int i=delperi<numi++) stu[i]=stu[i+1]

num--

for(int i=0i<numi++) outfile<<stu[i].name<<" "<<stu[i].num<<" "<<stu[i].dormin<<endl

cout<<"信息已删除!"<<endl}

infile.close()

outfile.close()

}

void change(student *stu,char *name,int num)

{int changechar check,nam[10]<br>int cn,cd<br>ifstream infile("stuinfor.txt")<br> for(int i=0i<numi++) <br> {<br> infile>>stu[i].name>>stu[i].num>>stu[i].dormin<br> if(strcmp(name,stu[i].name)==0) change=i<br> }

cout<<"您要修改的信息如下:"<<endl

cout<<stu[change].name<<" "<<stu[change].num<<" "<<stu[change].dormin<<endl

cout<<"您确定要修改吗?(y/n)"<<endl

cin>>check

ofstream outfile("stuinfor.txt")

if(check=='y'||'Y')

{

cout<<"请依次输入姓名 学号 宿舍号"<<endl

cin>>nam>>cn>>cd

strcpy(stu[change].name,nam)stu[change].num=cnstu[change].dormin=cd

for(int i=0i<numi++)

outfile<<stu[i].name<<" "<<stu[i].num<<" "<<stu[i].dormin<<endl

cout<<"信息已修改!"<<endl}

infile.close()

outfile.close()}void search(student *stu,int low,int high,int check)

{int mid=(low+high)/2<br>ifstream infile("sorted_infor.txt")<br>if(!infile) cerr<<"文件打开失败!"<<endl<br>else <br>{for(int i=0i<highi++) infile>>stu[i].name>>stu[i].num>>stu[i].dormin<br>while(stu[mid].num!=check&&high>=low) {mid=(low+high)/2if(stu[mid].num>check) high=mid-1<br>else low=mid+1}//折半查找

}

if(stu[mid].num==check)

{cout<<"您要查询的信息如下:"<<endl<br>cout<<stu[mid].name<<" "<<stu[mid].num<<" "<<stu[mid].dormin<<endl}

else cout<<"未能查到您所要查询信息!"<<endl

}

php学生管理系统源码,供大家参考,具体内容如下

功能:

1.添加/删除/修改

2.数据存储.

界面分布:

index.php

--->主界面

add.php --->stu添加

action --->sql中add/del/update

(处理html表单-->mysql的数据存储 && 页面跳转)

edit.php --->stu修改

menu.php

-->首页

1. index.php

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>学生信息管理</title>

<script>

function doDel(id) {

if(confirm('确认删除?')) {

window.location='action.php?action=del&id='+id

}

}

</script>

</head>

<body>

<center>

<?php

include ("menu.php")

?>

<h3>浏览学生信息</h3>

<table width="500" border="1">

<tr>

<th>ID</th>

<th>姓名</th>

<th>性别</th>

<th>年龄</th>

<th>班级</th>

<th> *** 作</th>

</tr>

<?php

//1. 链接数据库

try{

$pdo = new PDO("uri:mysqlPdo.ini","root","1")

}catch (PDOException $e) {

die('connection failed'.$e->getMessage())

}

//2.执行sql

$sql_select = "select * from stu"

//3.data 解析

foreach ( $pdo->query($sql_select) as $row) {

echo "<tr>"

echo "<th>{$row['id']} </th>"

echo "<th>{$row['name']}</th>"

echo "<th>{$row['sex']} </th>"

echo "<th>{$row['age']} </th>"

echo "<th>{$row['classid']}</th>"

echo "<td>

<a href='edit.php?id={$row['id']}'>修改</a>

<a href='javascript:void(0)' onclick='doDel({$row['id']})'>删除</a>

</td>"

echo "</tr>"

}

?>

</table>

</center>

</body>

</html>

2. add.php

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>学生管理系统</title>

</head>

<body>

<center>

<?php include ('menu.php')?>

<h3>增加学生信息</h3>

<form action="action.php?action=add" method="post">

<table>

<tr>

<td>姓名</td>

<td><input type="text" name="name"></td>

</tr>

<tr>

<td>年龄</td>

<td><input type="text" name="age"></td>

</tr>

<tr>

<td>性别</td>

<td><input type="radio" name="sex" value="男">男</td>

<td><input type="radio" name="sex" value="女">女</td>

</tr>

<tr>

<td>班级</td>

<td><input type="text" name="classid"></td>

</tr>

<tr>

<!--<td></td>-->

<td><a href="index.php">返回</td>

<td><input type="submit" value="添加"></td>

<td><input type="reset" value="重置"></td>

</tr>

</table>

</form>

</center>

</body>

</html>

3. action.php

<?php

/**

* Created by PhpStorm.

* User: hyh

* Date: 16-7-7

* Time: 下午9:37

*/

//1. 链接数据库

try{

$pdo = new PDO("uri:mysqlPdo.ini","root","1")

}catch (PDOException $e) {

// echo 'Connection failed: ' . $e->getMessage()

die('connection failed'.$e->getMessage())

}

//2.action 的值做对 *** 作

switch ($_GET['action']){

case 'add'://add

$name = $_POST['name']

$sex = $_POST['sex']

$age = $_POST['age']

$classid = $_POST['classid']

$sql = "insert into stu (name, sex, age, classid) values ('{$name}', '{$sex}','{$age}','{$classid}')"

$rw = $pdo->exec($sql)

if ($rw >0){

echo "<script>alter('添加成功')</script>"

}else{

echo "<script>alter('添加失败')</script>"

}

header('Location: index.php')

break

case 'del'://get

$id = $_GET['id']

$sql = "delete from stu where id={$id}"

$rw = $pdo->exec($sql)

if ($rw >0){

echo "<script>alter('删除成功')</script>"

}else{

echo "<script>alter('删除失败')</script>"

}

header('Location: index.php')

break

case 'edit'://post

$id = $_POST['id']

$name = $_POST['name']

$age = $_POST['age']

$classid = $_POST['classid']

$sex = $_POST['sex']

//echo $id, $age, $age, $name

$sql = "update stu set name='{$name}', age={$age},sex='{$sex}',classid={$classid} where id={$id}"

//$sql = "update myapp.stu set name='jike',sex='女', age=24,classid=44 where id=17"

print $sql

$rw = $pdo->exec($sql)

if ($rw >0){

echo "<script>alter('更新成功')</script>"

}else{

echo "<script>alter('更新失败')</script>"

}

header('Location: index.php')

break

default:

header('Location: index.php')

break

}

4.edit.php

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>学生管理系统</title>

</head>

<body>

<center>

<?php include ('menu.php')

//1. 链接数据库

try{

$pdo = new PDO("uri:mysqlPdo.ini","root","1")

}catch (PDOException $e) {

die('connection failed'.$e->getMessage())

}

//2.执行sql

$sql_select = "select * from stu where id={$_GET['id']}"

$stmt = $pdo->query($sql_select)

if ($stmt->rowCount() >0) {

$stu = $stmt->fetch(PDO::FETCH_ASSOC)// 解析数据

}else{

die("no have this id:{$_GET['id']}")

}

?>

<h3>修改学生信息</h3>

<form action="action.php?action=edit" method="post">

<input type="hidden" name="id" value="<?php echo $stu['id']?>">

<table>

<tr>

<td>姓名</td>

<td><input type="text" name="name" value="<?php echo $stu['name']?>"></td>

</tr>

<tr>

<td>年龄</td>

<td><input type="text" name="age" value="<?php echo $stu['age']?>"></td>

</tr>

<tr>

<td>性别</td>

<td>

<input type="radio" name="sex" value="男" <?php echo ($stu['sex'] == "男")? "checked":""?>>男

</td>

<td>

<input type="radio" name="sex" value="女" <?php echo ($stu['sex'] == "女")? "checked":""?>>女

</td>

</tr>

<tr>

<td>班级</td>

<td><input type="text" name="classid" value="<?php echo $stu['classid']?>"></td>

</tr>

<tr>

<td></td>

<td><input type="submit" value="更新"></td>

<td><input type="reset" value="重置"></td>

</tr>

</table>

</form>

</center>

<?php

?>

</body>

</html>

5. menu.php

<!DOCTYPE html>

<html lang="en">

<body>

<h2>学生管理系统</h2>

<a href="index.php">浏览学生</a>

<a href="add.php">添加学生</a>

<hr>

</body>

</html>


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10016202.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存