14- AMALIY ISH.
Mavzu: Kichik loyihalarni yaratish. Visual C++ muxitida turli sohalarga oid masalalarni yechish uchun (mini )kichik loyihalarni loyihalash usullari.
Ishning maqsadi: Visual C++ muxitida kichik loyihalarni loyihalash usullari
Kichik loyihalar algorimlarini yozish usullarini o’rgatish
Topshiriqlar
OLE texnologiyasidan foydalangan holda Visual Studio C ++ da yangi MFC dasturiy ta'minot loyihasini yarating Microsoft Office dasturlari bilan yaratilgan hujjatni ko'rish va tahrirlash uchun joylashtiring.
Variant №
Ilova hujjatining turi Microsoft Office
1
MS WORD
2
MS EXCEL
3
MS PoverPoint
4
MS ACCESS
5
MS WORD
6
MS EXCEL
7
MS PoverPoint
8
MS ACCESS
9
MS WORD
10
MS EXCEL
11
MS PoverPoint
12
MS ACCESS
13
MS WORD
14
MS EXCEL
15
MS PoverPoint
16
MS ACCESS
17
MS WORD
18
MS EXCEL
19
MS PoverPoint
20
MS ACCESS
Index.js
import express from "express";
import layout from "express-ejs-layouts";
import { connect } from "mongoose";
import session from "express-session";
import flash from "express-flash";
import moment from "moment/moment.js";
import router from "./router/mainrouter.js"
import signrouter from "./router/sigrouter.js"
const app = express();
connect('mongodb://localhost/userdate', {useNewUrlParser: true, useUnifiedTopology: true});
app.set('views', './views')
app.set('view engine', 'ejs');
app.use(express.static("public"));
app.use(express.urlencoded({ extended:false }));
app.use(express.json());
app.use(layout);
app.use(session({
secret: "213sf345fgg234fgwsdgt324",
cookie: {maxAge: 1000 * 60 * 60 * 24},
saveUninitialized:false,
resave:false
}));
app.use(flash());
app.use((req, res, next) => {
res.locals.user = req.session.user || "";
res.locals.message = req.flash();
res.locals.moment = moment;
next();
});
app.use(router)
app.use(signrouter)
app.listen(3000, () => {
console.log(`Server is running on Port: 3000`);
})
Signrouter.js
import { hash, compare } from "bcrypt";
import { Router } from "express";
import userdb from "../mudols/userdb.js";
let router = new Router();
router.get("/signup",(req, res) => {
res.render("main/signup", { title:"Sign Up"});
});
router.get("/signin",(req, res) => {
res.render("main/signin", { title:"Sign In"});
})
router.post("/signup", async (req, res) => {
let name = req.body.name
let existUser = await userdb.findOne({name : name});
if (existUser) {
req.flash("errors", ["You do not sign up"]);
return res.redirect("/");
}
req.body.password = await hash(req.body.password, 10);
await userdb.create(req.body);
res.redirect("/");
});
router.post("/signin", async (req, res) => {
const { name, password } = req.body;
let user = await userdb.findOne({ name });
if (!user) {
req.flash("errors", ["User not find"]);
return res.redirect("/");
} else {
let isMatch = await compare(password, user.password);
if (isMatch) {
req.session.user = user;
return res.redirect("/");
} else {
req.flash("errors", ["User not find"]);
return res.redirect("/signin");
}
}
});
router.get("/logout", isAuth ,(req, res) => {
delete req.session.user;
res.redirect("/");
} );
export function isAuth(req, res, next) {
if (!req.session.user) {
return res.redirect("/signin");
} else {
next();
}
}
export default router
userdb.js
import { model, Schema } from "mongoose";
let signUp = new Schema({
name:{type:String, required:true},
password:{type:String, required:true},
},
{
timestamps:true
}
);
export default model("user", signUp);
signup.ejs
Signin.ejs
Layout.ejs
DOCTYPE html>
8-masala
<%- include('partial/navbor.ejs'); %>
<% if (message.errors) {
message.errors.forEach(msg => { %>
<%= msg %>
<% }) } else if (message.success) { %>
<%= message.success %>
<% } %>
<%- body %>
logout
Home.ejs
Ishlab chiqaish
mahsulot nomi
mahsulot narhi
mahsulot baho o'sishi
<%maxsulot.forEach(el =>{ %>
<%= el.name %>
<%= el.number %>
<% el.baholar.forEach(item => {%>
<%= item.num %>
<%}) %>
">addbaho
<%})%>