diff --git "a/01-\344\272\247\345\223\201\351\224\200\351\207\217\346\225\260\346\215\256\345\220\210\345\271\266-\345\206\205\345\256\271\351\241\271\347\233\256-\347\254\254\344\270\200\345\215\225\345\205\203 \346\225\260\346\215\256\344\270\216\346\225\260\346\215\256\347\232\204\347\273\204\347\273\207/README.md" "b/01-\344\272\247\345\223\201\351\224\200\351\207\217\346\225\260\346\215\256\345\220\210\345\271\266-\345\206\205\345\256\271\351\241\271\347\233\256-\347\254\254\344\270\200\345\215\225\345\205\203 \346\225\260\346\215\256\344\270\216\346\225\260\346\215\256\347\232\204\347\273\204\347\273\207/README.md" index 6f28d27615151f0762c65c6478c6504a0cdd86b6..1f62d2e59275897d8108c289e8b96ae413e7a337 100644 --- "a/01-\344\272\247\345\223\201\351\224\200\351\207\217\346\225\260\346\215\256\345\220\210\345\271\266-\345\206\205\345\256\271\351\241\271\347\233\256-\347\254\254\344\270\200\345\215\225\345\205\203 \346\225\260\346\215\256\344\270\216\346\225\260\346\215\256\347\232\204\347\273\204\347\273\207/README.md" +++ "b/01-\344\272\247\345\223\201\351\224\200\351\207\217\346\225\260\346\215\256\345\220\210\345\271\266-\345\206\205\345\256\271\351\241\271\347\233\256-\347\254\254\344\270\200\345\215\225\345\205\203 \346\225\260\346\215\256\344\270\216\346\225\260\346\215\256\347\232\204\347\273\204\347\273\207/README.md" @@ -1,3 +1,4 @@ +# 试一下可不可以? # 01-产品销量数据合并-内容项目-第一单元 数据与数据的组织 ### 一、项目主题 ### 二、项目内容 diff --git "a/11-\345\255\246\346\240\241\345\244\226\346\235\245\344\272\272\345\221\230\350\277\233\345\207\272\347\231\273\350\256\260\347\263\273\347\273\237-\346\213\223\345\261\225\351\241\271\347\233\256-\347\254\254\344\272\214\345\215\225\345\205\203 \346\225\260\347\273\204\343\200\201\351\223\276\350\241\250\344\270\216\345\255\227\347\254\246\344\270\262/README.md" "b/11-\345\255\246\346\240\241\345\244\226\346\235\245\344\272\272\345\221\230\350\277\233\345\207\272\347\231\273\350\256\260\347\263\273\347\273\237-\346\213\223\345\261\225\351\241\271\347\233\256-\347\254\254\344\272\214\345\215\225\345\205\203 \346\225\260\347\273\204\343\200\201\351\223\276\350\241\250\344\270\216\345\255\227\347\254\246\344\270\262/README.md" index 77db2259de463c2a96fe991be66b5e69783cdfaf..661d72781f2c56d8b1cb9a3f746791d54f7e37e4 100644 --- "a/11-\345\255\246\346\240\241\345\244\226\346\235\245\344\272\272\345\221\230\350\277\233\345\207\272\347\231\273\350\256\260\347\263\273\347\273\237-\346\213\223\345\261\225\351\241\271\347\233\256-\347\254\254\344\272\214\345\215\225\345\205\203 \346\225\260\347\273\204\343\200\201\351\223\276\350\241\250\344\270\216\345\255\227\347\254\246\344\270\262/README.md" +++ "b/11-\345\255\246\346\240\241\345\244\226\346\235\245\344\272\272\345\221\230\350\277\233\345\207\272\347\231\273\350\256\260\347\263\273\347\273\237-\346\213\223\345\261\225\351\241\271\347\233\256-\347\254\254\344\272\214\345\215\225\345\205\203 \346\225\260\347\273\204\343\200\201\351\223\276\350\241\250\344\270\216\345\255\227\347\254\246\344\270\262/README.md" @@ -1,32 +1,114 @@ # 11-学校外来人员进出登记系统-拓展项目-第二单元 数组、链表与字符串 ### 一、项目主题 +外来人员进出登记系统。 ### 二、项目内容 #### 1.项目背景 +解决访客手写登记很麻烦的问题。 #### 2.项目设计依据 +利用数组来实现访客的登记,实现访客登记程序化,完全可以实现,之后带领学生学习系统搭建是,可以采用网站来实现,不用手写了。 #### 3.项目概述 ### 三、项目指导 ### 四、项目实施流程 +1.分析外来人员进出登记系统的需要求。 +2.分析需要哪些访客信息,如何存储。 +3.分析访客登记系统需要的功能模块。 +4.如何实现访客系统。 ### 五、项目实施环节安排 + #### 第一阶段:项目准备阶段 1. 确定项目主题 - +外来人员进出登记系统。 2. 项目需求分析与总体规划 +(1)分析访客登记需要解决的问题:解决手写麻烦的问题 +(2)分析访客需要存储的数据,如何存储:姓名、身份证、手机号码,以数组的方式进行存储 +(3)分析访客离开需要进行的操作 +(4)分析查看访客记录需要进行的操作 +3. 分组、分工 +戴元聪 +#### 第二阶段:项目的指导阶段 +1. 抽象与建模 +data=[name,sfz,phone,time] +(1)访客登记需要4个信息:name,sfz,phone,有访客输入。 +(2)访问的时间有系统自动生成,所以是4个信息都需要登记,并包装到字列表中。 +(3)访客登记使用字列表用append方法存到visitor数组中。 +(4)访客离开使用列表的pop方法 +(5)查看所有访客使用列表遍历 -3. 分组、分工 +2. 设计算法 +(1)访客离开,需要对已保存的访客信息进行查找,如果找到则删除,如果找不到则重新输入查找信息,继续查找。 +(2)系统菜单用自定义函数menu来实现。 +3. 项目程序实现 -#### 第二阶段:项目的指导阶段 -1. 抽象与建模 +``` +''' +外来人员进出登记系统 +1.当有外人进入时,刷身份证,收集该人员的信息,并按照进入顺序放入外来人员的序列。 +2.学校管理员或门卫可以查看当前时刻在学校的外来人员信息,查看结果以外来人员进入学校的顺序显示。 +3.当外来人员离开时,也只需要在身份证信息采集设备上刷一下身份证,系统将其从来访人员序列中删除。 -2. 设计算法 +''' +from datetime import datetime as dt +class visitor: + def __init__(self): + self.guess = [] -3. 项目程序实现 + def register(self): + s = input('姓名 身份证号 联系电话:') + t=s.strip().split() + t.append(str(dt.today())) + self.guess.append(t) + + def leave(self): + i, flag = 0, False + s = input('请输入你的身份证号码:') + while not flag: + if i>=len(self.guess): + print('no guess or number is error!') + s = input('请输入你的身份证号码:') + i=0 + elif s==self.guess[i][1]: + flag=True + print('已离开:', self.guess.pop(i)) + else: + i+=1 + def view(self): + for i in range(len(self.guess)): + print(f'{i+1}.{self.guess[i]}') + + +def menu(): + menudata = ['1.访客登记', '2.访客离开', '3.查看访客', '0.退出'] + print('---外来人员进出登记系统---') + for i in menudata: + print(i) + select = int(input('请选择相应需要,执行相应操作:')) + while select not in [1, 2, 3, 0]: + select = int(input('请选择相应需要,执行相应操作:')) + return select + + +if __name__ == '__main__': + data = visitor() + while True: + select = menu() + if select == 1: + data.register() + elif select == 2: + data.leave() + elif select == 3: + data.view() + elif select == 0: + break + else: + print('输入错误,再来!') +``` #### 第三阶段:项目汇报阶段 ### 六、项目汇报环节安排 diff --git "a/11-\345\255\246\346\240\241\345\244\226\346\235\245\344\272\272\345\221\230\350\277\233\345\207\272\347\231\273\350\256\260\347\263\273\347\273\237-\346\213\223\345\261\225\351\241\271\347\233\256-\347\254\254\344\272\214\345\215\225\345\205\203 \346\225\260\347\273\204\343\200\201\351\223\276\350\241\250\344\270\216\345\255\227\347\254\246\344\270\262/\345\244\226\346\235\245\344\272\272\345\221\230\350\277\233\345\207\272\347\231\273\350\256\260\347\263\273\347\273\237.py" "b/11-\345\255\246\346\240\241\345\244\226\346\235\245\344\272\272\345\221\230\350\277\233\345\207\272\347\231\273\350\256\260\347\263\273\347\273\237-\346\213\223\345\261\225\351\241\271\347\233\256-\347\254\254\344\272\214\345\215\225\345\205\203 \346\225\260\347\273\204\343\200\201\351\223\276\350\241\250\344\270\216\345\255\227\347\254\246\344\270\262/\345\244\226\346\235\245\344\272\272\345\221\230\350\277\233\345\207\272\347\231\273\350\256\260\347\263\273\347\273\237.py" new file mode 100644 index 0000000000000000000000000000000000000000..a246c6207a13bac4fd7ca520c21381863d6396c8 --- /dev/null +++ "b/11-\345\255\246\346\240\241\345\244\226\346\235\245\344\272\272\345\221\230\350\277\233\345\207\272\347\231\273\350\256\260\347\263\273\347\273\237-\346\213\223\345\261\225\351\241\271\347\233\256-\347\254\254\344\272\214\345\215\225\345\205\203 \346\225\260\347\273\204\343\200\201\351\223\276\350\241\250\344\270\216\345\255\227\347\254\246\344\270\262/\345\244\226\346\235\245\344\272\272\345\221\230\350\277\233\345\207\272\347\231\273\350\256\260\347\263\273\347\273\237.py" @@ -0,0 +1,62 @@ +''' +外来人员 +1.当有外人进入时,刷身份证,收集该人员的信息,并按照进入顺序放入外来人员的序列。 +2.学校管理员或门卫可以查看当前时刻在学校的外来人员信息,查看结果以外来人员进入学校的顺序显示。 +3.当外来人员离开时,也只需要在身份证信息采集设备上刷一下身份证,系统将其从来访人员序列中删除。 + +''' + +from datetime import datetime as dt +class visitor: + def __init__(self): + self.guess = [] + + def register(self): + s = input('姓名 身份证号 联系电话:') + t=s.strip().split() + t.append(str(dt.today())) + self.guess.append(t) + + def leave(self): + i, flag = 0, False + s = input('请输入你的身份证号码:') + while not flag: + if i>=len(self.guess): + print('no guess or number is error!') + s = input('请输入你的身份证号码:') + i=0 + elif s==self.guess[i][1]: + flag=True + print('已离开:', self.guess.pop(i)) + else: + i+=1 + def view(self): + for i in range(len(self.guess)): + print(f'{i+1}.{self.guess[i]}') + + +def menu(): + menudata = ['1.访客登记', '2.访客离开', '3.查看访客', '0.退出'] + print('---外来人员进出登记系统---') + for i in menudata: + print(i) + select = int(input('请选择相应需要,执行相应操作:')) + while select not in [1, 2, 3, 0]: + select = int(input('请选择相应需要,执行相应操作:')) + return select + + +if __name__ == '__main__': + data = visitor() + while True: + select = menu() + if select == 1: + data.register() + elif select == 2: + data.leave() + elif select == 3: + data.view() + elif select == 0: + break + else: + print('输入错误,再来!')