代写CMPUT 291作业、代做Python/Java实验设计作业、代写C/C++编程实验作业、代做File and Database作业
2018/11/4 CMPUT 291 (Fall 2018 LAB LEC): Mini-Project 1
https://eclass.srv.ualberta.ca/mod/page/view.php?id=3273240 1/5
Dashboard / My courses / CMPUT 291 (Fall 2018 LAB LEC)
/ 8 October - 14 October / Mini-Project 1
CMPUT 291 - File and Database
Management (Fall 2018)
Mini-Project 1
CMPUT291 - Fall 2018
Mini Project I
(group project)
Due: Nov 5 at 5pm
Clarifications:
You are responsible for monitoring the course news and discussion forums in eclass and this
section of the project specification for more details and clarifications. No clarification will be
posted after 5pm on Nov 4.
Oct 26. To get the timestamp in sqlite, you will need datetime('now'). The function date('now')
will give date but not time.
Oct 31. At demo time, you will be given a database file name (that has our test data) and you
will be passing it to your application as a command line argument. Don't hard-code the
database name in your application since you cannot change your code at demo time.
Oct 31. Member A can book member B only on the rides offered by member A (i.e. member A
is the driver of the ride).
Oct 31. All string matches are case-insensitive except when matching the password. You
cannot make any assumption on the case of the strings in the database. The database can
have strings in uppercase, lowercase or any mixed format.
Oct 31. When booking a member on a ride, the pickup and the drop off locations can be any
locations from the locations table. They don't have to match the pickup, drop off or the
enroute locations of the ride.
2018/11/4 CMPUT 291 (Fall 2018 LAB LEC): Mini-Project 1
https://eclass.srv.ualberta.ca/mod/page/view.php?id=3273240 2/5
Nov 2. Regarding error checking, every good programmer should do some basic error
checking to make sure the data entered is correct. We cannot say how much error checking
you should or should not do, or detail out all possible checkings. We won't be trying to break
down your system but your system also should not break down when the user makes a
mistake.
Introduction
The goal of this assignment is twofolds: (1) to teach the use of SQL in a host programming
language, and (2) to demonstrate some of the functionalities that result from combining SQL
with a host programming language.
Your job in this project is to build a system that keeps the enterprise data in a database and to provide
services to users. You will be storing data in a SQLite database and will be writing code in Python (or
similarly Java/JDBC, C, etc.) to access it. Your code will implement a simple command line interface.
You are free to implement a GUI interface instead but there will be no support nor bonus for doing that.
You are also free to write your code in Python, Java, C, C++, Perl or any other language that is suited
for the task. If you decide to use any language other than Python, discuss it with the instructor first.
Your project will be evaluated on the basis of 84% of the mark for implementing the functionalities listed
in this specification; this component will be assessed in a demo session. Another 12% of the mark will
be assigned for both the documentation and the quality of your source code. 4% of the mark is assigned
for the quality of your group coordination and the project break-down between partners.
Group work policy
You will be doing this project with one or two other partners from the 291 class. Register your
group at the group registration page. It is assumed that all group members contribute
somewhat equally to the project, hence they would receive the same mark. In case of difficulties
within a group and when a partner is not lifting his/her weight, make sure to document all your
contributions. If there is a break-up, each group member will get credit only for his/her portion
of the work completed.
Database Specification
You are given the following relational schema.
members(email, name, phone, pwd)
cars(cno, make, model, year, seats, owner)
locations(lcode, city, prov, address)
rides(rno, price, rdate, seats, lugDesc, src, dst, driver, cno)
bookings(bno, email, rno, cost, seats, pickup, dropoff)
enroute(rno, lcode)
requests(rid, email, rdate, pickup, dropoff, amount)
inbox(email, msgTimestamp, sender, content, rno, seen)
Tables are derived from the specification of Assignment 1 and are identical to those in Assignment 2
except (1) the field pwd which is added to members, and (2) table inbox which is new. The table inbox
will keep the messages exchanged between members. For example, the tuple <m1,t,m2,c,r,s> in inbox
indicates that member m1 has a message from member m2 with a timestamp t (this is of type date and
includes date and time) and content c, and the message is regarding ride r. The last column indicates
2018/11/4 CMPUT 291 (Fall 2018 LAB LEC): Mini-Project 1
https://eclass.srv.ualberta.ca/mod/page/view.php?id=3273240 3/5
whether the message is seen or not and can take one of the values 'y' and 'n'. Each time a message is
sent, the timestamp is set by your system to current date and time (i.e. date('now') in sqlite), rno is set to
the current ride number and seen is set to 'n'. The SQL commands to create the tables of the system
are given here (right click to save as a file). Use the given schema in your project and do not change
any table/column names.
Login Screen
The first screen of your system should provide options for members to login and for new members to
register. Existing members should be able to login using a valid email and password, denoted
with email and pwd in table members. After a login, all unseen messages of the member will be
displayed, and the status of the messages will be set to seen (i.e, the seen column is set to 'y').
Unregistered members should be able to sign up by providing a unique email, a name, a phone, and a
password. Proper messages should be given if the provided email is not unique. After a successful login
or signup, members should be able to perform the subsequent operations (possibly chosen from a
menu) as discussed next.
Members should be able to logout and there must be also an option to exit the program.
System Functionalities
Members should be able to perform all of the following tasks. All string matches must be caseinsensitive
(e.g., edmonton will match Edmonton, EDMONTON, edmontoN and edmonton).
1. Offer a ride.The member should be able to offer rides by providing a date, the number of
seats offered, the price per seat, a luggage description, a source location, and a
destination location. The member should have the option of adding a car number and any
set of enroute locations. For locations (including source, destination and enroute), the
member should be able to provide a keyword, which can be a location code. If the
keyword is not a location code, your system should return all locations that have the
keyword as a substring in city, province or address fields. If there are more than 5
matching locations, at most 5 matches will be shown at a time, letting the member select
a location or see more matches. If a car number is entered, your system must ensure that
the car belongs to the member. Your system should automatically assign a unique ride
number (rno) to the ride and set the member as the driver of the ride.
2. Search for rides.The member should be able to enter 1-3 location keywords and retrieve
all rides that match all keywords. A ride matches a keyword if the keyword matches one of
the locations source, destination, or enroute. Also a location matches a keyword if the
keyword is either the location code or a substring of the city, the province, or the address
fields of the location. For each matching ride, all information about the ride (from the
rides table) and car details (if any) will be displayed. If there are more than 5 matches, at
most 5 will be shown at a time, and the member is provided an option to see more. The
member should be able to select a ride and message the member posting the ride that
h/she wants to book seats on that ride.
3. Book members or cancel bookings.The member should be able to list all bookings on
rides s/he offers and cancel any booking. For any booking that is cancelled (i.e. being
deleted from the booking table), a proper message should be sent to the member whose
booking is cancelled. Also the member should be able to book other members on the
rides they offer. Your system should list all rides the member offers with the number of
2018/11/4 CMPUT 291 (Fall 2018 LAB LEC): Mini-Project 1
https://eclass.srv.ualberta.ca/mod/page/view.php?id=3273240 4/5
available seats for each ride (i.e., seats that are not booked). If there are more than 5
matching rides, at most 5 will be shown at a time, and the member will have the option to
see more. The member should be able to select a ride and book a member for that ride by
entering the member email, the number of seats booked, the cost per seat, and pickup
and drop off location codes. Your system should assign a unique booking number (bno)
to the booking. Your system should give a warning if a ride is being overbooked (i.e. the
number of seats booked exceeds the number of seats offered), but will allow overbooking
if the member confirms it. After a successful booking, a proper message should be sent to
the other member that s/he is booked on the ride.
4. Post ride requests.The member should be able to post a ride request by providing a date,
a pick up location code, a drop off location code, and the amount willing to pay per seat.
The request rid is set by your system to a unique number and the email is set to the email
address of the member.
5. Search and delete ride requests.The member should be able to see all his/her ride
requests and be able to delete any of them. Also the member should be able to provide a
location code or a city and see a listing of all requests with a pickup location matching the
location code or the city entered. If there are more than 5 matches, at most 5 matches will
be shown at a time. The member should be able to select a request and message the
posting member, for example asking the member to check out a ride.
Groups of size 3 must counter SQL injection attacks and make the password non-visible at the time of
typing.
Testing
At development time, you will be testing your programs with your own data sets (but
conforming to the project specification). At demo time, we will be creating the database
using these SQL statements (right click to save as a file) and will be populating it with our own
test data set. Your application will be tested under a TA account.
The demo will be run using the source code submitted and nothing else. It is essential to include
every file that is needed to compile and run your code including all source code and any makefile or
script that you may use to compile or run your code. You will neither be able to change your code, nor
use any file other than those submitted. This policy can be altered only in exceptional cases at the
instructor's discretion and for a hefty penalty. As a test drill, you should be able to set up your application
under someone else's account (in case of testing, this would be under a TA account) within 3 minutes at
most.
Every group will book a time slot convenient to all group members to demo their projects. At demo
time, all group members must be present.The TA will be using a script to both create and populate
the tables. The TA will be asking you to perform various tasks and show how your application is
handling each task. A mark will be assigned to your demo immediately after the testing.
Instructions for Submissions
Your submission includes (1) the application source code, (2) README.txt, and (3) your design
document Report.pdf.http://www.6daixie.com/contents/3/2103.html
Create a single gzipped tar file with all your source code, additional files you may need for
your demo, README.txt and Report.pdf. Name the file prjcode.tgz.
2018/11/4 CMPUT 291 (Fall 2018 LAB LEC): Mini-Project 1
https://eclass.srv.ualberta.ca/mod/page/view.php?id=3273240 5/5
You are logged in as Dongheng Li (Log out)
CMPUT 291 (Fall 2018 LAB LEC)
Help
Email

因为专业,所以值得信赖。如有需要,请加QQ:99515681 或邮箱:99515681@qq.com

微信:codinghelp

转载于:https://www.cnblogs.com/javanewpython/p/9931343.html

CMPUT 291 (Fall 2018 LAB LEC): Mini-Project相关推荐

  1. CSCI 1133 CSCI 1133, Fall 2018 Programming Examination

    代写CSCI 1133作业.代做Python编程作业.代写GitHub作业.代做Python程序设计作业 CSCI 1133, Fall 2018 Programming Examination 1 ...

  2. CISC-235 Fall 2018 Assignment

    代写CISC-235作业.代做Python/Java编程作业.代写C/C++课程设计作业.代做HOTNCU留学生作业 CISC-235 Fall 2018 Assignment 2 A certain ...

  3. CSCI-1200 Data Structures — Fall 2018

    代写CSCI-1200作业.代做C/C++编程作业.代写Bidirectional Maps作业.C/C++课程设计作业代做 CSCI-1200 Data Structures - Fall 2018 ...

  4. Fall 2020 Berkeley cs61a Hog Project

    ** Fall 2020 Berkeley cs61a Hog Project ** Fall 2020 的Hog和之前project有些变化,Github找不到,所以分享一下- "&quo ...

  5. CSCI561 Fall 2018 Foundations of Artificial Intelligence

    CSCI561留学生作业代写.代做Python程序语言作业.代写Artificial Intelligence作业.代做Python课程设计作业 CSCI561 Fall 2018 Foundatio ...

  6. 优达学城(Udacity)_评估指标mini project

    True Positive 数量: counter = 0 pre2 = clf.predict(features_test) print pre2 for index,value in enumer ...

  7. 机器人工程本科专业课教学资源汇总(2018年暑假补充学习用)

    手机应用软件:Robotics Engineering - Apps on Google Play This Robotics Engineering App provides the basic k ...

  8. CS61A 2022 fall lab0

    CS61A 2022 fall lab0:Getting Started 不得不感叹实验网站是真的高级- 打算用ubuntu做实验 文章目录 CS61A 2022 fall lab0:Getting ...

  9. 苹果近日更新了 Mac mini 的功耗和热输出 (BTU) 规格

    苹果近日更新了 Mac mini 的功耗和热输出 (BTU) 规格,对比 2018 款 Mac mini,搭载 Apple M1 芯片的新版 Mac mini在功耗控制和热输出方面拥有较大的提升. 备 ...

最新文章

  1. gitlab的搭建与汉化
  2. Java Web学习总结(6)——通过Servlet生成验证码图片
  3. onvif 开发之video streamer---onvif实现功能和经验
  4. Integer源码解析
  5. python基础(笔记)
  6. java同类型同字段名称对象赋值
  7. Android Bitmap占用内存计算公式
  8. Android实现保存图片和视频到系统相册
  9. 基于python技术的酒店管理系统
  10. win7网络感叹号dns服务器未响应,笔记本win7系统下无线网络显示已连接却不能上网有感叹号如何解决...
  11. 嵌入式知识-ARM裸机-学习笔记(9):SD卡启动详解(S5PV210)
  12. 矩阵论极简笔记(2):列空间、正交补、零空间、行空间
  13. 路由交换技术之代理ARP
  14. JS实现动态添加和删除div
  15. 美德乐吸奶器怎么样?
  16. JS类中event的简单实现
  17. 数据库6:GROUPING运算符分组,表的分组
  18. CSS width = 100vw 和width = 100%的区别
  19. android手机换机助手,S 换机助手
  20. 现在的游戏都是java吗_Java程序员:工作还是游戏,是该好好衡量一下了

热门文章

  1. 【超详细】树莓派4B 安装Paddle-Lite 2.8.0
  2. 骆驼命名法 ,匈牙利命名法 和 帕斯卡命名法
  3. JAVA标准系列(JSRnbsp;4:nbsp;ECperfnbsp;Benc…
  4. 计算机一级中级实务难度,中级会计职称机考模式不适应怎么办?如何提高应试能力?...
  5. html中的样式表CSS
  6. 基于SSM框架springBoot实现的企业级进销存ERP系统【源码+数据库+毕设】
  7. 牙科镜柄的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  8. 全世界都在说中国话?2022国际大数据竞赛首次以“中文”命题
  9. 最新Fiora二次元聊天室宝塔源码+搭建教程/带后台
  10. 好程序员大数据教程分享超详细大数据学习路线